...
代码块 |
---|
|
发送请求:【31】03 00 00 1f 02 f0 80 32 01 00 00 03 54 00 0e 00 00 04 01 12 0a 10 02 00 06 00 65 84 00 09 88
解释:
B1 B2:03 00 00 未知
B3 B4: 00 1F = 0x1F=31,读取报文总长度,从第一个字节到最后1个字节
B12 B13:03 54,序列号
B24 B25:00 06 = 06,读取的寄存器个数(??)
B26 B27:00 65=0x0065=101=DB101
B28:84 = 0x84,读取的数据块类型为DB块
B29~B31:=00 09 88=0x0000988=2440,2440/8=305*8 读取的偏移量offset(bit为单位)
PLC回复报文:
【31】03 00 00 1f 02 f0 80 32 03 00 00 03 54 00 02 00 0a 00 00 04 01 ff 04 00 30 00 03 ff 03 eb 00
解释:
B1 B2:03 00 00 未知
B3 B4: 00 1F = 0x1F=31,读取报文总长度,从第一个字节到最后1个字节
B12 B13:03 54,序列号,应该等于请求的序列号
B16 B17:00 0a = 0x000A=10,读取请求寄存器个数(6)+4
B24 B25:00 30 = 0x0030=48=6*8,读取的位长度(字节长度6)
B26 ~最后:6个字节,数据值
【31】03 00 00 1f 02 f0 80 32 03 00 00 03 56 00 02 00 0a 00 00 04 01 ff 04 00 30 00 04 00 03 ec 00 |
西门子S7 TCP(西门子S7 300 MPI连接在北辰S7-Net模块后,通过网络访问北辰模块的网口)
连接建立之后,会发送MPI(这里为2)、机架号(这里为0)、槽号(第一个2,第二个1)获得PDU大小。
如果槽号给错误了,会收不到数据且会被PLC断开连接:
代码块 |
---|
|
请求:
[022] 03 00 00 16 11 E0 00 00 00 01 00 C1 02 01 00 C2 02 01 01 C0 01 09 (槽号1)
应答:
[022] 03 00 00 16 11 D0 00 01 00 00 00 C1 02 01 00 C2 02 01 01 C0 01 09 |
数据:DB2:xxx的读取请求
代码块 |
---|
|
请求:【31】03 00 00 1F 02 F0 80 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 02 00 02 00 02 84 00 00 00
解释:
B1 B2:03 00 00 未知
B3 B4: 00 1F = 0x1F=31,读取报文总长度,从第一个字节到最后1个字节
B12 B13:03 54,序列号
B24 B25:00 06 = 06,读取的寄存器个数(??)
B26 B27:00 65=0x0065=101=DB101
B28:84 = 0x84,读取的数据块类型为DB块
B29~B31:=00 09 88=0x0000988=2440,2440/8=305*8 读取的偏移量offset(bit为单位)
应答:【27】 03 00 00 1B 02 F0 80 32 03 00 00 00 00 00 02 00 06 00 00 04 01 FF 04 00 10 00 00
解释:
B1 B2:03 00 00 未知
B3 B4: 00 1F = 0x1F=31,读取报文总长度,从第一个字节到最后1个字节
B12 B13:03 54,序列号,应该等于请求的序列号
B16 B17:00 0a = 0x000A=10,读取请求寄存器个数(6)+4
B24 B25:00 30 = 0x0030=48=6*8,读取的位长度(字节长度6)
B26 ~最后:2个字节,数据值 |
西门子S7 TCP(西门子S7 200PPI串口连接在北辰S7-Net模块后,通过网络访问北辰模块的网口)
连接建立之后,会发送MPI(这里为2)、机架号(这里为0)、槽号(第一个2,第二个1)获得PDU大小。
如果槽号给错误了,会收不到数据且会被PLC断开连接:
代码块 |
---|
|
请求:【22】03 00 00 16 11 E0 00 00 00 01 00 C1 02 01 00 C2 02 01 01 C0 01 09
应答:【22】03 00 00 16 11 D0 00 01 00 00 00 C1 02 01 00 C2 02 01 01 C0 01 09
请求:【25】03 00 00 19 02 F0 80 32 01 00 00 FF FF 00 08 00 00 F0 00 00 01 00 01 07 80
应答:【27】03 00 00 1B 02 F0 80 32 03 00 00 FF FF 00 08 00 00 00 00 F0 01 00 01 00 01 00 F0 |
数据:DB2:xxx的读取请求
代码块 |
---|
|
S300:【31】03 00 00 1F 02 F0 80 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 02 00 02 00 02 84 00 00 00
请求:【31】03 00 00 1F 02 F0 80 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 1E 00 02 00 01 1E 00 00 01
应答:【25】03 00 00 19 02 F0 80 32 03 00 00 00 00 00 02 00 04 00 00 04 01 03 00 00 00
解释:
B1 B2:03 00 00 未知
B3 B4: 00 1F = 0x1F=31,读取报文总长度,从第一个字节到最后1个字节
B12 B13:03 54,序列号
B24 B25:00 06 = 06,读取的寄存器个数(??)
B26 B27:00 65=0x0065=101=DB101
B28:84 = 0x84,读取的数据块类型为DB块
B29~B31:=00 09 88=0x0000988=2440,2440/8=305*8 读取的偏移量offset(bit为单位)
应答:【27】 03 00 00 1B 02 F0 80 32 03 00 00 00 00 00 02 00 06 00 00 04 01 FF 04 00 10 00 00
解释:
B1 B2:03 00 00 未知
B3 B4: 00 1F = 0x1F=31,读取报文总长度,从第一个字节到最后1个字节
B12 B13:03 54,序列号,应该等于请求的序列号
B16 B17:00 0a = 0x000A=10,读取请求寄存器个数(6)+4
B24 B25:00 30 = 0x0030=48=6*8,读取的位长度(字节长度6)
B26 ~最后:2个字节,数据值 |
西门子PLC S7-200/S7-200 Smart两种PLC的PPI协议(S7-300不适用)
...