DELPHI与PLC的串口通讯(100分)

Y

ycy77

Unregistered / Unconfirmed
GUEST, unregistred user!
如何解决DELPHI与OMRON的PLC的串口通讯,最好能有源程序,请各位仁兄帮帮忙,小弟急用.
 
通过MSCOMM或SPCOMM做
 
ab_icerain,有没有具体的实例!
 
串口通信技术具体的要看实际情况
 
串口设置
with SpCommdo
begin
CommName:='COM1';
BaudRate:=9600;
ByteSize:=_8;
//TByteSize = ( _5, _6, _7, _8 );
ParityCheck:=True;
Parity:=Even;
//TParity = ( None, Odd, Even, Mark, Space )
StopBits:=_1;
//TStopBits = ( _1, _1_5, _2 )
StartComm;
//StopComm;
end;

发送数据
var
Buffer: Array[1..8] of Byte;
begin
Buffer[1]:=$02;
...
Buffer[ 8 ]:=$FF;

SpComm.WriteCommData(@Buffer,8);
end;

接收数据
procedure TForm1.SpCommReceiveData(Sender: TObject;
Buffer: Pointer;
BufferLength: Word);
var
Buf: PChar;
begin
GetMem(Buf,BufferLength);
try
Move(Buffer^,Buf^,BufferLength);
...
finally
FreeMem(Buf);
end;
end;
 
去 www.51delphi.com 下载工控组件,好象是IOCOMPS。
 
读PLC DM区——RD
读指定的若干个字的内容以指定字为首
命令格式:
@ ×10(1)×10(0) RD ×10(3)×10(2)×10(1)×10(0) … ×10(3)×10(2)×10(1)×10
节点号 识别码 起始字 字数
(0) FCS FS
验码 终止符
应答格式:
@ ×10(1)×10(0) RD ×16(1)×16(0) … ×16(3)×16(2)×16(1)×16(0) FCS FS
节点号 识别码 结束码 数据
写PLC DM区——WD
写指定的若干个字的内容以指定字为首
命令格式:
@ ×10(1)×10(0) WD ×10(3)×10(2)×10(1)×10(0) … ×16(3)×16(2)×16(1)×16
节点号 识别码 起始字 字数
(0) FCS FS
验码 终止符
应答格式:
@ ×10(1)×10(0) WD ×16(1)×16(0) FCS FS
节点号 识别码 结束码
注: ×10(1)表示10的1次方 FCS计算方法为:从@开始到之间所有的数字和字母转化为ASCII码然后把每个字母和数字的ASCII码写成8位2进制数(如ASCII码41写成0100 0001)进行异或得出2位16进制数。
 

Similar threads

回复
0
查看
697
不得闲
D
回复
0
查看
797
DelphiTeacher的专栏
D
D
回复
0
查看
750
DelphiTeacher的专栏
D
顶部