fx5u mc协议_SLMP协议和MC协议

本文详细介绍了SLMP协议的3E帧报文格式,并通过实例演示了如何在PLC与计算机间进行M100-M07读写操作,包括批量读取和写入数据的步骤。此外,还提到了4E帧与3E帧的区别,以及如何根据三菱GXWorks3的e-Manual进行相关PLC设备的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概述      

      SLMP(Seamless Message Protocol)是在以太网中使用的协议。MC协议则包含了串口以及以太网的通信协议,范围更广。

      SLMP的3E帧或4E帧(3)的报文格式与MC协议的兼容QnA系列3E帧或4E帧相同。本篇以3E帧为基础说明一下协议的使用,4E帧或者再之前的兼容A系列1E帧请参考MC协议手册。

下面来看看协议的报文格式

dfa518a1b82156b31d6cdaf67919dd6e.png

看起来很复杂,我们以一串实际指令来看看协议内容,同时对比一下4E和3E帧的差别,其实很简单。

“批量读取PLC的M100~M07一共8个位的值”,协议格式说明如下图

71064cff5331cd8cdd29eccdf48181be.png

       通过图片可以看到4E帧报文识别码5400,3E帧5000,同时4E帧多了序列号1234,固定值0000,其余全部相同。

关于图上每一部分报文元素,我们做以下说明,仅供参考:

Subheader:  SLMP报文报首识别码,4E帧默认5400。3E帧5000

序列号:         任意值,用于识别返回报文,与发送报文相同。4E帧专属,3E帧没有此项内容。

固定值:    4E帧固定值0000,3E帧不需要此内容。

网络号/站号:    跨网访问时用,访问本站时默认为00/FF

起始IO:        访问多CPU系统或通过CPU连接的Multidrop网络时用,单CPU为03FF。

多重站号:  访问通过Multidrop网络连接的CPU时用,不使用时为00。

数据长:           此数据帧之后所有数据帧长度(以字节计算)。

等待时间:       数据反馈超时等待时间,单位:250ms。00代表无限等待。

指令/子指令: SLMP指令,详细请参考SLMP协议手册。

软元件类型:   访问的软元件类型。BIN时,为2进制代码,请参考SLMP协议手册。

软元件号:       访问软元件的起始地址。占6位,十进制。本例M100,那就是“000100”

读写长度:       读写软元件长度。从本元素之后开始计算。

完成代码:      SLMP报文执行结果代码,正常完成为“00”,异常时为故障代码。在接收返回的代码里。

二、具体实验步骤:(所有例子都是以3E帧为例,请参考)

2.1 PLC侧设置

7ce6e10cd29791fa4a39f5005f211ae3.png

2.2 计算机侧,采用socket调试软件

设好PLC的IP地址,端口号,点击连接,成功后,如图

99b38f55ed584ad1cdd6ab9994673cd5.png

实验1:读取M100-M107连续8个位的值

发送字符串:35 30 30 30  30 30 46 46 30 33 46 46 30 30 30 30 31 38 30 30 31 30 30 34 30 31 30 30 30 31 4D 2A 30 30 30 31 30 30 30 30 30 38

参考下图理解

1fafa5a415ada4be46149433df74c5dc.png

收回字符串:44 30 30 30 30 30 46 46 30 33 46 46 30 30 30 30 30 43 30 30 30 30 31 30 30 30 30 30 30 30(红色部分M100~M107的数值,M100为1,其余为0)

977b1d846847f058dfa308db0bb8fc68.png

实验二:连续读取D0~D3一共4个字的值

发送字符串:35 30 30 30 30 30 46 46 30 33 46 46 30 30 30 30 31 38 30 30 31 30 30 34 30 31 30 30 30 30 44 2A 30 30 30 30 30 30 30 30 30 34

参考下图理解指令

73c901544e74b707f9825cb4f79f7d1d.png

收到字符串:44 30 30 30 30 30 46 46 30 33 46 46 30 30 30 30 31 34 30 30 30 30 30 30 36 34 30 30 30 30 30 30 30 30 30 30 30 30(D0~D3的值,D0为0064转换10进制100,其余为0)

25a4967faff112348fe13db28e351b9e.png

以上两个实验是读取的例子。那好了,要写入数据,如何呢?看下图指令表查找指令以及子指令

a5e84e20a46fa49998ca42ab7d42e5ac.png

最后,批量写入指令1401,下面两例子列出发送代码,简单说明,由于写入,返回代码没有具体数值,有完成代码,请参考上面解释理解。

一、写入M100-M107,全部置ON,值11111111

发送数据:35 30 30 30 30 30 46 46 30 33 46 46 30 30 30 30 32 30 30 30 31 30 31 34 30 31 30 30 30 31 4D 2A 30 30 30 31 30 30 30 30 30 38 31 31 31 31 31 31 31 31

如果需要将M100~M107全部复位,只需要将后面8位31 31 31 31 31 31 31 31修改为30 30 30 30 30 30 30 30即可。

二、批量写入D0~D3这4个字的值(100-H0064,100-H0064,100-h0064,100-H0064)

发送数据:35 30 30 30 30 30 46 46 30 33 46 46 30 30 30 30 32 38 30 30 31 30 31 34 30 31 30 30 30 30 44 2A 30 30 30 30 30 30 30 30 30 34 30 30 36 34 30 30 36 34 30 30 36 34 30 30 36 34

每个字占用4位,4个字占用后面16位,如果需要将D0~D3的值改为其他数值将后面16位30 30 36 34 30 30 36 34 30 30 36 34 30 30 36 34改为其他值即可,记得进行16进制ASCII转换。友情提醒100=H0064哦。

       以上代码内容是在QPLC或者LPLC基础上进行测试使用,仅供参考。如果使用FX5U或者iQ-RPLC等其他PLC,会有一些报文格式的差别,请以手册解释为准。

      关于手册,三菱GX Works3安装自带e-manual,里面有MC协议和SLMP协议两个手册,请参考。  除了本文提及的以太网那通信4E,3E,1E帧,在MC协议手册,还有串口通信的协议3C,4C帧内容。  

       有了这两个手册,上位计算机高手完全可以自由发挥,实现PLC设备生产数据的随意读取。

8a807b77857b02c2e75788d5736e0b6d.png

如何使用e-manual,请参前一篇文章“推荐|e-Manual Viewer,手册下载查询一站式服务”,请参考。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值