1摘要
在实际的工控应用中,RS485总线上经常会挂接多个设备,不同的设备的厂商可能不一致,一旦出现问题,就很难解耦是谁的问题。本文解释一种简单的问题解耦方法,即学即精通。
2问题描述
工业现场应用最多的总线就是RS485,RS485用到最多的协议就是modbus-rtu,不同的厂家都通过该总线和协议进行数据交互。这也存在一个问题,不同的厂家的,不同的技术人员水平参差不齐,一旦系统出现问题,互相之间的扯皮自然少不了。
例如下图中的系统,一个主机带4个从机,数据无法读取到,问题的解耦还是比较棘手。有没有一种简单的方案,引入一个裁判,能够简单快速解耦是哪一方的问题。
3知识科普
关于使用RS485的现场,需要先了解以下的知识:
1) 90%以上的RS485通信之间使用的是modbus-rtu协议,该协议全球通用;
2) RS485标准电平全球通用,只要标注为RS485都可以互相连接,RS485输出的电平是0~5V,是通过总线上A-B的差值判断逻辑1还是逻辑0,A-B>0标示为逻辑1,A-B<0标示为逻辑0。
3) modbus-rtu 数据帧由地址、功能码、数据和校验组成,不同的功能码的数据字节数不同。
Modbus RTU协议数据帧是没有起始符和结束符,所以两个数据帧之间需要靠时间间隔来区分。协议中规定信息帧发送至少要有3.5个字符时间的停顿间隔。即在一个数据帧的最后一个字符传输完成之后,需要至少3.5个字符时间的停顿标定数据帧的结束,一个新的数据帧可在此停顿之后开始。
如果一个新消息在小于3.5个字符时间内接着前个消息开始,接受的设备将认为它是前一数据帧的延续,这将导致CRC校验出错。同时整个数据帧必须作为一连续的流传输。如果在帧完成之前有超过1.5字符时间的停顿时间,接受设备将刷新不完整的数据帧从而认为存在丢包现象。
那么一个字符是什么呢,他由1个bit起始位,8bit数据位,1个bit奇偶校验位(或者没有检验位,停止位变成2个),1个bit停止位组成,在发送时从起始位开始。
4Mthings简介
Mthings主要是模拟Modbus设备,可以配置为主和从设备。
2) 模拟仿真Modbus设备软件,支持Modbus从机被动读写功能。
3) 支持多设备、多通道并发运行,无设备个数限制。
4) 支持持久化数据配置、无菜单设计,操作友好。
5) 支持MODBUS-RTU、MODBUS-ASCII、MODBUS-TCP。
6) 支持串口、TCP客户端、TCP服务器(可接入多客户端)、UDP单播。
7) 支持全链路报文监控、存储、分析。
8)支持丰富的链路丢包统计方法。
9) 支持数据曲线录波,统计数据极值和均值,并可导出所有数据。
10) 支持MODBUS数据配置模板导入导出。
11) 支持多种变化数据模拟方法。
12)支持数据二次加工,界面呈现原始真实数据。
13) 支持良好的非标协议适配。
14) 性能优异,支持接入> 500设备节点,超20K数据点。
15) 永久免费,免安装,中文。
5解耦举例
我以PLC和HMI通信为例,假设两者无法正常通信,需要一个中间的裁判判定问题出在谁。解耦的步骤如下。
1) 将安装有Mthings的PC使用USB转485模块和PLC连接。如下图
2)本次实验要做的是通过电脑模拟RS485主站,PLC作为从站,使用Modbus-RTU协议。PLC端的配置如下:
3) Mthings配置PC为主机,地址和上述的PLC保持一致。
4) 配置串口的波特率信息,和PLC保持一致。
5) 配置需要访问的寄存器地址。地址是plc真实的地址。
6)可以批量读取PLC的数据,或者双击“数值”即可以访问PLC,如下图,访问PLC的数据为123,和第一步的plc中的数据保持一致。这就证明了,PLC作为从站,是正常的,如何hmi和plc无法通信,则问题可以解耦到hmi身上。
6总结延伸
本文接受的使用mthings解耦RS485通信中的modbus通信故障方法,可以快速解耦和定位问题,对于用户几乎无需对modbus协议的知识,使用该工具有两个好处:
1) 基本是配置式,用户无需对modbus协议有较深的理解;
2) 可以利用pc机(或者笔记本)模拟主机和从机,可以快速解耦各个厂商之间的问题。
审核编辑:汤梓红
-
RS485
+关注
关注
39文章
1135浏览量
82064 -
MODBUS
+关注
关注
28文章
1757浏览量
76749 -
总线
+关注
关注
10文章
2857浏览量
87893 -
RTU
+关注
关注
0文章
401浏览量
28596 -
解耦
+关注
关注
0文章
40浏览量
11882
原文标题:【避坑指南】使用Mthing工具解耦Modbus问题
文章出处:【微信号:创易栈,微信公众号:创易栈】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论