一、概述

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

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

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

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

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

通过图片可以看到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侧设置

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

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

实验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

参考下图理解

收回字符串: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)

实验二:连续读取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

参考下图理解指令

收到字符串: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)

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

最后,批量写入指令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设备生产数据的随意读取。

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

fx5u mc协议_SLMP协议和MC协议相关推荐

  1. 链路层协议——SLIP协议和PPP协议

    链路层协议--SLIP协议和PPP协议 SLIP协议和PPP协议都是链路层协议,都提供直接相连的两台设备之间传输数据报的方法 SLIP协议 SLIP协议全程 Serial Line IP.它是一种在串 ...

  2. 485通讯协议_HART协议和RS485协议有什么区别?

    HART协议和RS485协议的区别如下: 1.概念不同 HART协议是采用基于Bell202标准的FSK频移键控信号,在低频的4-20mA模拟信号上叠加幅度为0.5mA的音频数字信号进行双向数字通讯: ...

  3. http协议与https协议+UDP协议和TCP协议+WebSocket协议下服务端主动去发送信息+对称加密与非对称加密+get和post请求方式区别详解+浏览器内核以及jsj解析引擎

    TCP和UDP协议是TCP/IP协议的核心. 在TCP/IP网络体系结构中,TCP(传输控制协议,Transport Control Protocol).UDP(用户数据报协议,User Data P ...

  4. android rtsp协议转http协议_Http协议和Https协议

    序言 Http和Https属于计算机网络范畴,但作为开发人员,不管是后台开发或是前台开发,都很有必要掌握它们. 在学习Http和Https的过程中,主要是参考了阮一峰老师的博客<阮一峰:HTTP ...

  5. Bytom BIP-32协议和BIP-44协议解读

    我们知道HD(分层确定性)钱包,基于 BIP-32:多币种和多帐户钱包,基于 BIP-44:最近比原社区的钱包开发者对比原的BIP-32和BIP-44协议有疑问,所以我今天就专门整理了一下该协议的内容 ...

  6. 3.7 PPP协议和HDLC协议

    3.7 PPP协议和HDLC协议

  7. RabbitMQ MQTT协议和AMQP协议

    RabbitMQ MQTT协议和AMQP协议 1        序言... 1 1.1     RabbitMq结构... 1 1.2     RabbitMq消息接收... 4 1.3     Ex ...

  8. 计算机网络(二十)-广域网-PPP协议和HDLC协议

    一.广域网 广域网,通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,远距离通信,形成国际性的远程网络. 广域网的通信子网主要使用分组交换技术.广域网的通信子网可以利用 ...

  9. STM8单片机串口同时识别自定义协议和Modbus协议

      在单片机开发中,串口是最常用的和外界交换数据的渠道,要使用串口,那必不可少的就是通信协议,通信协议就是单片机和外界通信的语言,要想正常和其他设备正常交流,首先语言必须相通.   在实际开发过程中由 ...

最新文章

  1. 2022-2028年中国铝工业投资分析及前景预测报告(全卷)
  2. BZOJ 2333 【SCOI2011】 棘手的操作
  3. HTTP状态码--含义
  4. selenium IE 浏览器驱动下载地方
  5. Thinkphp3.2微信个人免签支付实例
  6. java 类 request_java普通类得到request对象
  7. IOS学习笔记(五)——UI基础UIWindow、UIView
  8. 软件工程之系统建模篇【设计接口类模型】
  9. while语句 ///do...while语句/// for语句/// foreach语句
  10. 基于Java的对称加密算法和非对称加密算法
  11. PSV 3.60 固化升级到 3.68 破解完全攻略
  12. 通过Matlab或python调用ABAQUS
  13. 多多自走棋服务器不稳定,多多自走棋突然宣布停服,数据将全部转移到腾讯服务器中...
  14. 测试职业发展前景之职业发展方向
  15. 嵌入式系统开发-麦子学院(12)——ARM Bootloader开发
  16. 有个空间,名叫 Gamma
  17. Js、 replace 全部内容替换、替换全部匹配内容、替换第一个
  18. “健康码”背后的腾讯C2B大练兵
  19. 3.Spark的安装(华为云学习笔记,Spark编程基础,大数据)
  20. 遇到糟心的事情-debug时总提示Source not found.

热门文章

  1. 常见的网站布局方式---左固定右自适应、左右固定中自适应等
  2. python整数池_对Python中小整数对象池和大整数对象池的使用详解
  3. mysql 创建和删除库_mysql入门系列:mysql创建、删除和选择数据库
  4. php时间转两位数年份,PHP常用时间函数资料整理
  5. java 漏洞挖掘_Java反序列化漏洞的挖掘、攻击与防御
  6. mac安装python3.8_mac安装pwntools(python3.8)解决多数问题
  7. python grid函数_(转)Python Tkinter Grid布局管理器详解
  8. java 线程管理框架_实现 Java 多线程并发控制框架
  9. python定义变量名的时候、需要注意问题_第39p,Python模块的名称空间问题,应该讲完了吧...
  10. python中返回上一步操作_通过实例解析Python文件操作实现步骤