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


SLMP报文组成SLMP报文格式根据报文类型为请求报文和响应报文 , 数据格式也会有所不同 , 当该帧报文为请求报文时 , 具体格式如下图所示:


当该帧报文为响应报文时 , 具体格式如下图所示:

下面针对各个部分进行说明:
  • 副帧头:副帧头部分占用4个字节 , 主要用来显示该帧报文是指令报文还是响应报文 , 如果该帧报文是指令报文 , 那么副帧头内容为50H 00H , 反之 , 如果该帧报文为响应报文 , 那么副帧头内容为D0H 00H , 具体如图所示:

  • 网络编号及目标站号:网络编号及目标站号各占一个字节 , 它们的值与网络架构是息息相关的 , 下图展示了三种不同的网络架构:

一般情况第一种网络架构使用居多 , 后面都以这种架构为例进行阐述 , 网络编号为00H , 目标站号为FFH 。
  • 请求目标模块I/0编号占两个字节 , 默认为FFH 03H 。
  • 请求目标多点站号占一个字节 , 默认为00H 。
  • 请求数据长是指从保留到请求数据 , 总共的字节长度之和 , 响应数据长是指结束代码和响应数据的长度和 。
  • 保留占两个字节 , 默认值为00H 00H 。
  • 结束代码占两个字节 , 正常结束时值为00H 00H , 异常结束时值为00H 04H 。
  • 请求数据是指作为执行的指令及子指令的参数数据 , 根据指令及子指令的情况 , 有时无需指定“请求数据” , 后续会做详细讲解 。
  • 响应数据是指作为请求数据的执行结果 , 根据指令来定 , 有时不会返回响应报文 , 后续会做详细讲解 。
  • 指令与子指令是报文的命令码 , 根据读取和写入不同的存储区会呈现不同的值 。 对于批量读取 , 指令为0401H , 子指令根据位或字分别为0001H和0000H , 对于批量写入 , 指令为1401H , 子指令根据位或字分别为0001H和0000H 。
  • 对于批量读取 , 请求数据由起始软元件编号、软元件代号及软元件点数三部分组成 , 其中起始软元件编号占3个字节 , 软元件代号占1个字节 , 软元件点数占2个字节 。
  • 对于批量写入 , 请求数据由起始软元件编号、软元件代号及写入数据三部分组成 , 其中起始软元件编号占3个字节 , 软元件代号占1个字节 , 写入数据占N个字节 。
  • 对于批量读取 , 响应数据将实际读取的数据按照指定的格式进行返回 。
  • 对于批量写入 , 响应数据部分为空 。

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