Delphi编写的Modbus源代码,可以支持主站也可支持从站。
支持Delphi 2009。

附件:
您所在的用户组无法下载或查看附件以下是代码片段
1
var
2
frmMain: TfrmMain;
3
4
implementation
5
6
{$R *.dfm}
7
8
procedure TfrmMain.btnReadClick(Sender: TObject);
9
var
10
Data: array[0..4096] of Word;
11
iAmount: Integer;
12
i: Integer;
13
sLine: String;
14
begin
15
iAmount := StrToInt(edtReadAmount.Text);
16
if (iAmount > 0) then
17
begin
18
mctPLC.Host := edtIPAddress.Text;
19
if mctPLC.ReadRegisters(StrToInt(edtReadReg.Text), iAmount, Data) then
20
begin
21
sLine := 'Register value(s) read:';
22
for i := 0 to (iAmount - 1) do
23
sLine := sLine +
24
#13#10' ' +
25
IntToStr(StrToInt(edtReadReg.Text) + i) +
26
': 0x' +
27
IntToHex(Data, 4);
28
ShowMessage(sLine);
29
end
30
else
31
ShowMessage('PLC read operation failed!');
32
end;
33
end; { btnReadClick }
34
35
36
procedure TfrmMain.btnWriteClick(Sender: TObject);
37
begin
38
mctPLC.Host := edtIPAddress.Text;
39
if mctPLC.WriteRegister(StrToInt(edtWriteReg.Text), StrToInt(edtValue.Text)) then
40
MessageDlg('PLC register write successful!', mtError, [mbOk], 0)
41
else
42
MessageDlg('PLC register write failed!', mtError, [mbOk], 0);
43
end; { btnWriteClick }
44
45
46
end. 解压密码回复可见: