作者:Imzgu_208 | 来源:互联网 | 2024-12-18 11:57
本文旨在深入解析三菱PLC中的SLMP(Simple Mail Protocol)协议报文,帮助读者理解其工作机制和具体应用。SLMP协议主要用于三菱PLC与外部设备(如个人计算机或显示器等)之间通过以太网进行数据交换。该协议基于TCP/IP协议栈,具有明确的服务器和客户端角色划分。
协议概述
SLMP协议允许CPU模块或外部设备通过以太网对PLC设备进行数据访问。在此过程中,服务器端负责处理来自客户端的请求,并执行相应的数据处理任务;客户端则负责发起请求并接收服务器端的响应。这种通信机制确保了数据的安全性和可靠性。
三菱SLMP协议支持两种报文帧格式:3E帧和1E帧。3E帧适用于多种CPU模块,而1E帧仅限于FX5U/FX5UC CPU模块。值得注意的是,SLMP的报文格式与三菱的MC协议相兼容,这意味着可以通过MC协议实现与SLMP设备的互连互通。
通信准备与流程
在启动SLMP通信之前,需要完成以下准备工作:
- 物理连接:确保所有设备通过正确的电缆连接。
- 参数配置:使用工程工具设置必要的模块参数。
- 参数写入:将配置好的参数写入CPU模块,并通过断电重启或复位操作使参数生效。
- 状态验证:检查CPU模块是否成功进入初始处理状态。
- 开始通信:客户端发送SLMP请求报文,服务器端接收并处理请求,最后返回响应报文。
报文格式解析
SLMP协议报文主要分为请求报文和响应报文,每种报文都包含帧头和应用数据两大部分。帧头用于标识报文类型,而应用数据则包含了具体的命令或数据信息。
请求报文通常由上位机发起,用于向SLMP设备发送命令;响应报文则是SLMP设备对请求的回复。这些报文可以通过ASCII编码或二进制编码传输,其中二进制编码因效率更高而更为常用。
报文结构详述
SLMP报文的具体结构如下:
- 副帧头:4字节,用于标识报文是请求还是响应。请求报文的副帧头为50H 00H,响应报文的副帧头为D0H 00H。
- 网络编号和目标站号:各1字节,定义了报文在网络中的路径。例如,在常见的网络架构中,网络编号通常为00H,目标站号为FFH。
- 请求目标模块I/O编号:2字节,默认值为FFH 03H。
- 请求目标多点站号:1字节,默认值为00H。
- 请求数据长度:2字节,表示请求数据的总长度。
- 响应数据长度:2字节,表示响应数据的总长度。
- 保留字段:2字节,默认值为00H 00H。
- 结束代码:2字节,表示报文处理的结果。正常结束时为00H 00H,异常结束时为00H 04H。
- 请求数据:根据具体命令的不同,可能包含执行指令所需的各种参数。
- 响应数据:根据请求命令的不同,可能包含执行结果或为空。
- 指令与子指令:报文的核心部分,用于指定具体的读写操作。例如,批量读取时指令为0401H,子指令根据位或字分别为0001H和0000H;批量写入时指令为1401H,子指令同样根据位或字分别为0001H和0000H。
了解这些细节有助于开发者更好地设计和调试基于SLMP协议的应用程序。