SLMP 简介
SLMP是三菱PLC用于CPU模块或外部设备(个人计算机或显示器等)使用以太网对PLC设备进行数据访问的一种协议,SLMP协议是基于TCP/IP,因此会存在服务器和客户端的功能区分。
服务器功能是指CPU模块基于来自外部设备的要求报文(命令),执行数据处理的收发。而客户端功能是指可以使用专用命令向外部设备发送要求报文(命令),并从外部设备接收响应报文。
slmp 包格式:
请求报文: 请求数据长度 = 保留 + 指令 + 子指令 + 请求数据
帧头 + 副帧头 + 请求目标网络编号 + 请求目标站号 + 请求目标i/0编号 + 请求目标多点站号 + 请求数据长度 + 保留 + 指令 + 子指令 + 请求数据
2bytes 1byte 1byte 2byte 1byte 2byte 2byte 2byte 2byte nbyte
二进制: 5000H 00H FFH FF03H 00H 0C00H 0000H 0401H 0100H 64 00 00 90 08 00H
正常响应报文: 响应数据长度 = 结束代码 + 响应数据
帧头 + 副帧头 + 请求目标网络编号 + 请求目标站号 + 请求目标i/0编号 + 请求目标多点站号 + 响应数据长度 + 结束代码 + 响应数据
2bytes 1byte 1byte 2byte 1byte 2bytes 2byte nbyte
D000H 00H FFH FF03H 00H 0600H 0000H 00 00 00 00H
异常响应报文: 响应数据长度 = 结束代码 + 出错信息部
帧头 + 副帧头 + 请求目标网络编号 + 请求目标站号 + 请求目标i/0编号 + 请求目标多点站号 + 响应数据长度 + 结束代码 + 出错信息部
2bytes 1byte 1byte 2byte 1byte 2bytes 2byte nbyte
D000H 00H FFH FF03H 00H 0600H 51C0H
出错信息部:
响应站网络编号 响应站PC编号 + 请求目标模块I/O编号 + 请求目标多点站号 + 指令 + 子指令
1byte 1byte 2byte 1byte 2byte 2byte
00H FFH FF03H 00H
二进制:
Request:50 00 00 FF FF 03 00 0C 00 00 00 01 04 01 00 64 00 00 90 08 00 位读取M100 - M108
Respond: D0 00 00 FF FF 03 00 06 00 00 00 00 00 00 00
Request:50 00 00 FF FF 03 00 10 00 00 00 01 14 01 00 64 00 00 90 08 00 11 11 11 11 位写入M100 - M108(11)
Respond: D0 00 00 FF FF 03 00 02 00 00 00
二进制:50 00 00 FF FF 03 00 0C 00 00 00 33 0E 00 00 64 00 00 90 08 00 Paramter Get
二进制:50 00 00 FF FF 03 00 0C 00 00 00 34 0E 01 00 64 00 00 90 08 00 Paramter Set