CPU|新阁上位机开发——三菱PLC之SLMP协议报文说明

CPU|新阁上位机开发——三菱PLC之SLMP协议报文说明

文章图片

CPU|新阁上位机开发——三菱PLC之SLMP协议报文说明

文章图片

CPU|新阁上位机开发——三菱PLC之SLMP协议报文说明

文章图片

CPU|新阁上位机开发——三菱PLC之SLMP协议报文说明

文章图片

CPU|新阁上位机开发——三菱PLC之SLMP协议报文说明

文章图片



前言上位机开发中经常接入三菱的PLC 。
SLMP是三菱PLC用于CPU模块或外部设备(个人计算机或显示器等)使用以太网对PLC设备进行数据访问的一种协议 , SLMP协议是基于TCP/IP , 因此会存在服务器和客户端的功能区分 。
服务器功能是指CPU模块基于来自外部设备的要求报文(命令) , 执行数据处理的收发 。 而客户端功能是指可以使用专用命令向外部设备发送要求报文(命令) , 并从外部设备接收响应报文 。 服务器和客户端之间的通信过程如图所示 。


三菱的SLMP协议有两种不同的报文帧 , 分别为3E帧和1E帧 , 1E帧只支持FX5U/FX5UC CPU模块 。 这里说明一下 , SLMP的报文格式与三菱的MC协议的帧是相同的 。 SLMP的3E帧兼容MC协议的Qna系列3E帧 , SLMP的1E帧兼容MC协议的A系列1E帧 , 因此也可以通过MC协议将使用的外部设备连接到SLMP对应设备上 。
SLMP通信流程在正式开始SLMP通信之前 , 需要做一些准备工作 , 具体通信流程如下:(1) 电缆与外部设备的连接:进行用于SLMP通信的连接 。 (2) 参数设置:通过工程工具设置模块参数 。 (3) 写入至CPU模块:将已设置的参数写入至CPU模块 。 通过电源OFF→ON或复位 , 将参数设为有效 。 (4) 初始处理状态的确认:模块参数设置后 , 确认CPU模块的初始处理正常结束 。 (5) SLMP通信:服务器将从外部设备接收SLMP报文 , 客户端将向外部设备发送SLMP报文 。
SLMP报文格式通信协议报文一般分为请求报文和响应报文 , 请求报文是指上位机主动发动给SLMP设备的报文 , 响应报文是指SLMP设备响应请求而返回的报文 。 无论是请求报文还是响应报文 , 一般都是由“帧头”和“应用数据”构成 。 SLMP请求报文格式如下所示:

SLMP响应报文格式如下所示:

对于帧头 , 一般是指TCP与UDP帧头 , 对于上位机侧 , 需要在对象设备侧附加CPU模块侧(指令报文)的帧头后进行发送 , 一般会自动附加 , 上位机开发不需要考虑 。 对于CPU模块侧 , 会自动附加对象设备侧(响应报文)的帧头 , 因此无需用户设定 。 对于应用数据 , 主要是由副帧头和文本两部分组成 , 副帧头用于显示该报文为指令报文还是响应报文 , 文本则是各种不同功能的请求数据或响应数据 。 SLMP报文按照编码格式区分 , 可以分为ASCII编码和二进制 , 这两种方式报文发送的内容有所不同 , 具体如图1和图2所示:

图1 ASCII编码格式通信

图2 二进制编码格式通信
二进制编码格式相对于ASCII编码格式来说 , 报文更短更紧凑 , 因此通信速度也更快 , 因此 , 一般我们选择二进制编码格式通信居多 , 后面的内容均以二进制编码为例进行阐述 。