PLC响应后的数据格式:
校验和的计算,以D寄存器的读报文为例
读D123寄存器,地址为10F6H,读4个字节:
校验和是报文内CMD和ETX中间(包括CMD和ETX)各字节之和,上面报文校验和=30H+31H+30H+46H+36H+30H+34H+03H= 174H,取后两位74H,即为校验和,用ASCII码表示就是:37H和34H。
例如D寄存器中的数据为D123:1234H , D124:ABCDH,则PLC响应后,向PC发送数据报文为:
3、软件
PC机COM1端口初始化程序(与PLC端口参数一致)
........
outputb(0x3fb,0x80); /*通讯线控制寄存器控制字,访问波特率除数锁存器*/
outpoutb(0x3f8,0x0c); /*除数锁存器控制字低位,定波特率*/
outportb(0x3f9,0x00); /*除数锁存器控制字高位,定波特率*/
outportb(0x3fb,0x1a); /*通讯线控制寄存器控制字,定数据格式*/
outportb(0x3fc,0x03); /*MODEM控制寄存器控制字*/
......
port_test:
outportb(0x3f8,ENQ);
do {
in=inportb(0x3fd);
}while(!in&0x01);
in=inportb(0x3f8);
if(in==NAK)
{
printf("Error NAK!rn");
goto port_test
}
if(in!=ACK)
{printf("NOT RECEIVED ACK!rn");
goto port_test;
}
.......
8串口方式的端口初始化程序:
.........
stat=sio_reset();
stat=sio_open(port);
stat=sio_ioctl(port,B9600,P_EVEN|BIT-7|STOP_1);
port_test:
stat=sio_putch(port,0x05);
in=sio_getch(port);
if(in!=0x06) goto port_tes
..........
三、结束语
以上的软硬件方案已在漫湾电厂坝区闸门的数据采集和控制中得到应用,实现了单台工控机与10余台PLC的通讯,并与监控系统相连,实现了坝区闸门的远方监视和控制,数据通信可靠
本文关键字:三菱PLC PLC工业控制,电器控制 - PLC工业控制
上一篇:PLC和变频器控制的氧枪升降系统