三个流行的PLC:
PLC | 通讯协议 | 默认IP和端口 | 区别(发错误的报文) |
---|---|---|---|
西门子S7-1200 | S7 | 192.168.1.201 :102 | 2次验证(正常连接后,第一次发不断开,第二次发断开) |
三菱Q系列 | MC | 192.168.1.250 :4096 | 不验证(正常连接后,怎么发都不断开) |
欧姆龙CJ-2M系列 | FinsTCP | 192.168.1.14 :9600 | 1次验证(正常连接后,第一次发断开) |
这里主要写FinsTCP通讯:
本机电脑IP:192.168.1.200
PLC IP和端口:192.168.1.1:9600
以下报文都是按16进制发送。
一,握手命令
1、客户端向服务器发送命令00000000:这个命令长20字节,分成5组4字节。分别是:头(FINS) + 长度(0000000C) + 命令(00000000)+ 错误码(00000000) + 客户机节点地址。
46494E53是FINS的ASCII码值,即命令头。
0000000C是命令长度20(这个是按长度后面的命令长度来算,这里即:命令+错误码+客户机节点地址)。
00000000是命令码。
00000000是错误码。
000000C8是客户节点地址,(电脑的IP尾数16进制)。
即: 46494E53 0000000C 00000000 00000000 000000C8
2、PLC回复命令00000001:这个命令的长度是24字节,分成6组4字节。分别是:头(FINS)+ 长度(00000010) + 命令(00000001) + 错误码 + 客户机节点地址 + 服务器地址。
46494E53是FINS的ASCII码值,即命令头。
00000010是命令长度24。
00000001是命令码。
00000000是错误码。
000000C8