作者:小小闲森 | 来源:互联网 | 2023-09-25 12:56
目标:上位机作为主站,PLC作为从站,采用标准的Modbus-rtu通讯协议,实现上位机对PLC的控制,例如读取X,Y状态,设置Y的状态,读取D的值等等。
配置:上位机,串口调试软件,RS232串口,RS232转RS485通讯转换模块
台达PLC,DVP-SS2。
说明:RS232与RS485通讯有什么区别?
RS232通讯采用的是点对点通讯,传输距离短。
RS485通讯采用差分信号,传输距离长,可以一对多。一个主站可以发命令给各个从站,相应的从站返回请求数据,但是从站不可以主动发数据给主站或从站。
都遵循Modbus标准协议,相对于软件来说都一样,不同的是硬件端口。
调试过程:
1、将上位机串口,串口调试软件串口与PLC串口的通讯格式设置一致。
端口参数为:9600,8,n,1
2、PLC串口用的是COM2,定义为RS485端口,通过软件更改串口参数。
D1120:波特率设置,9600
D1121:PLC的地址号
M1143:ON表示采用RTU,OFF表示采用ASCII
M1120:通讯格式保持
3、PLC的功能码
4、PLC的Modbus地址
5、串口通讯指令
地址号 功能码 数据起始位置(低) 数据其实位置(高) 数据长度(低) 数据长度(高)CRC校验(低)CRC校验(高)
读取X0-X3输入点的状态:发送01 02 04 00 00 04 78 F9 接收01 02 01 00 A1 88
设置Y0的状态:发送01 05 05 00 FF 00 8C F6 Y0=1,发送01 05 05 00 00 00 CD 06 Y0=0
6、CRC校验
校验的目的是为了保证两边发送与接收的数据正确性,从地址码开始到数据长度结束,按照一定公式计算得到校验码,注意高低位,一般情况是低字节先进,高字节后进。
02 05 05 00 FF 00 CRC16校验结果是8C C5