三菱PLC之SLMP协议报文说明
-Begin-
前言
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对应设备上。(获取资料加VX:xiketang777)
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所示:(获取资料加VX:xiketang777)
图1 ASCII编码格式通信
图2 二进制编码格式通信
二进制编码格式相对于ASCII编码格式来说,报文更短更紧凑,因此通信速度也更快,因此,一般我们选择二进制编码格式通信居多,后面的内容均以二进制编码为例进行阐述。
SLMP报文组成
SLMP报文格式根据报文类型为请求报文和响应报文,数据格式也会有所不同,当该帧报文为请求报文时,具体格式如下图所示:
当该帧报文为响应报文时,具体格式如下图所示:
下面针对各个部分进行说明:
副帧头:副帧头部分占用4个字节,主要用来显示该帧报文是指令报文还是响应报文,如果该帧报文是指令报文,那么副帧头内容为50H 00H,反之,如果该帧报文为响应报文,那么副帧头内容为D0H 00H,具体如图所示:(获取资料加VX:xiketang777)
网络编号及目标站号:网络编号及目标站号各占一个字节,它们的值与网络架构是息息相关的,下图展示了三种不同的网络架构:
一般情况第一种网络架构使用居多,后面都以这种架构为例进行阐述,网络编号为00H,目标站号为FFH。(获取资料加vx:xiketang777)
请求目标模块I/0编号占两个字节,默认为FFH 03H。
请求目标多点站号占一个字节,默认为00H。
请求数据长是指从保留到请求数据,总共的字节长度之和,响应数据长是指结束代码和响应数据的长度和。
保留占两个字节,默认值为00H 00H。
结束代码占两个字节,正常结束时值为00H 00H,异常结束时值为00H 04H。
请求数据是指作为执行的指令及子指令的参数数据,根据指令及子指令的情况,有时无需指定“请求数据”,后续会做详细讲解。
响应数据是指作为请求数据的执行结果,根据指令来定,有时不会返回响应报文,后续会做详细讲解。
指令与子指令是报文的命令码,根据读取和写入不同的存储区会呈现不同的值。对于批量读取,指令为0401H,子指令根据位或字分别为0001H和0000H,对于批量写入,指令为1401H,子指令根据位或字分别为0001H和0000H。
对于批量读取,请求数据由起始软元件编号、软元件代号及软元件点数三部分组成,其中起始软元件编号占3个字节,软元件代号占1个字节,软元件点数占2个字节。
对于批量写入,请求数据由起始软元件编号、软元件代号及写入数据三部分组成,其中起始软元件编号占3个字节,软元件代号占1个字节,写入数据占N个字节。
对于批量读取,响应数据将实际读取的数据按照指定的格式进行返回。
对于批量写入,响应数据部分为空
-END-
三菱PLC之SLMP协议报文说明相关推荐
- 三菱PLC的通讯协议
三菱PLC的通讯协议 测试FX3UPLC通讯报文 FX3U 扩展网口ENT-ADP MC协议 1E帧 #可以直接读取寄存器的地址,间接控制PLC执行 读取寄存器D100的地址 01 FF 0A 00 ...
- 三菱PLC的MC协议配置说明
三菱PLC的MC协议配置说明 先说一下弱智的踩坑记录 详细配置过程 1.三菱Q02H CPU+QJ71E71-100以太网模块设置MC协议 1.1 PLC编程线连接与编程线驱动安装 1.2 PLC通讯 ...
- C#上位机与PLC通讯源码 C#与三菱PLC通讯MC协议
C#上位机与PLC通讯源码 C#与三菱PLC通讯MC协议 ID:696642996063203
- 三菱MELSEC 1帧协议报文格式。
关于三菱 MC 1E协议报文说明: 是不是1E协议可以发送:D100 .报文: 01ff0A00 64 00 00 00 20 44 0200 试试,返回报文:810000000000 报文格式: ...
- 西门子PLC的S7协议报文解析说明
我们以S7的1500系列来查看握手和读取.写入[字Word或者位Bit]命令报文 以下报文不做说明时都是十六进制字节. 西门子PLC需要连接成功后发送两次握手命令方可进行读写通信. 西门子PLC的S7 ...
- 欧姆龙PLC的CIP协议报文
一.关于CIP协议 CIP通信是Common Industrial Protocl(CIP)的简称,它是一个点到点的面向对象协议, 能够实现工业器件(传感器,执行器)之间的连接,和高等级的控制器之间的 ...
- C#与三菱PLC MC协议通信,Java与三菱PLC MC协议通信
三菱PLC的MC协议是一种常用的通信协议,用于实现三菱PLC与其他设备之间的通信.以下是一些关于MC协议的基本信息: 协议格式 MC协议的通信数据格式如下: 数据头 网络编号 PC编号 目标模块IO编 ...
- 三菱PLC若想实现以太网无线通讯,需要具备哪些条件?
PLC模块在以太网通信最大特点在于PLC模块支持的网络协议较为广泛.可支持主要用于传输结构化数据的标准通信.PLC模块是一个符合ISO/IES9506-4的工业以太网通信标准,其提供了开放统一的通信标 ...
- 上位机与fx3u通讯串口_c#上位机与三菱PLC(FX3U)串口通讯
项目中会经常用到上位机与PLC之间的串口通信,本文介绍一下C#如何编写上位机代码 与三菱FX3U进行通讯 1. 第一种方法是自己写代码实现,主要代码如下: //对PLC的Y7进行置1 byte[] Y ...
最新文章
- Velocity魔法堂系列二:VTL语法详解
- IOS-开发中手势的处理
- 研究人员利用脑机接口可以直接预测我们的偏好
- linux uuid/uuid.h
- 随想录(简单的链接文件)
- mysql备份优化_MySQL备份流程及优化
- 【luogu1816】忠(RMQ问题、线段树)
- TypeScript学习笔记(七):模块
- flex blazeds java spring_flex+blazeds+java+spring后台消息推送
- c语言中余数恒等于1,恒等于符号怎么打就是“≡”符号在windows里怎么打出来具体到搜狗里怎么打,麻烦说细点儿...
- NTL密码算法开源库-大整数ZZ类(一)
- Office Excel2010保存新文件时出现未响应或者卡死的解决办法
- CF1129C Morse Code
- python做测试小工具_自制快速冒烟测试小工具--基于python多线程(2)
- appinventor HTML5,用APP Inventor纯图形化编程自制APP,通过WIFI物联网控制掌控板
- java刷铁机最新版本_我的世界:刷铁机其实很容易制作,但是有一个特殊的限制条件!...
- 如何看待马云又唱歌又拍电影
- 通配符证书配置Exchange2016 POP、IMAP加密模式
- LG有意进军自动驾驶领域, 或开发基于3D摄像头的安全驾驶辅助系统
- 关于android分享(sharedsdk的简单使用)