MCGS的232通讯不稳 点击:1611 | 回复:11



zhyiji

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2021年2月01日
发表于:2021-04-25 00:35:59
楼主
求助帖30分-已结帖

设计了一个MCGS通过rs232连接DTU进行无线远程读数,用四个不同设备地址的虚拟串口进行读数。读数不稳,经常只能随机读到三个串口的数据,请问是什么参数没设置好吗?怎样可以改善这种情况?




楼主最近还看过



关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2021-04-25 10:48:42
1楼

延迟周期改一改试试呢?

Allen010

  • 精华:0帖
  • 求助:0帖
  • 帖子:30帖 | 544回
  • 年度积分:73
  • 历史总积分:17753
  • 注册:2010年8月04日
发表于:2021-04-25 12:36:31
2楼

读数不稳,经常只能随机读到三个串口的数据的原因,很可能是  数据请求发下去,数据回复还没收到,就紧接着就进行 下个请求了; 可以把数据请求时间(采集周期)调大些:

1、将 父设备采集周期 设置稍大些,因 1秒 很多数据还没有 返回来; 

(1)若对 数据的时效性要求不高(毕竟是DTU),可以将此 设置为 10s  、30s ;   

(2)若希望快些,就设置 成3s 、5s;  同时将下面的DTU设备数据采集改为 1s;


2、modbus 很多驱动的编写,会对 连续地址的数据读取 更快些; 

若可能的话(若DTU连接设备的寄存器地址可以修改),也可以把DTU下面的 设备使用的 寄存器设置成 连续的,这样利于驱动处理,也能加快些速度;


第2点在很多场景中,对速度影响不是特别明显,可以不改。



柳红岩

  • 精华:1帖
  • 求助:7帖
  • 帖子:16帖 | 664回
  • 年度积分:841
  • 历史总积分:16817
  • 注册:2009年8月05日
发表于:2021-04-25 22:07:21
3楼

同意2楼观点。

对于实时性不高时可以加大采样周期。

今天还在讨论 PLC和机械手通信控制的问题。PLC发送条件信息至机械手,假设机械手要执行10000个任务,那么在扫描的过程中就存在0-10000扫描周期的问题。如果扫描很慢,程序的表现就有可能是你PLC发送请求,机械手要过几分钟才会动作(夸张点)。

gk2017

  • 精华:0帖
  • 求助:4帖
  • 帖子:4帖 | 25回
  • 年度积分:0
  • 历史总积分:168
  • 注册:2019年7月06日
发表于:2021-04-26 13:15:15
4楼

先看一下通讯状态有没有报什么   是0还是什么  ,是0的话再考虑是不是时间周期的问题

zhyiji

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2021年2月01日
发表于:2021-04-26 15:53:35
5楼

"Allen010" 的回复,发表在2楼
        对内容: 【读数不稳,经常只能随机读到三个串口的数据的原因,很可能是  数据请求发下去,数据回复还没收到,就紧接着就进行 下个请求了; 可以把数据请求时间(采集周期)调大些:1、将 父设备采集周期 设置稍大些,因...】进行回复:

        -----------------------------------------------------------------


改完之后还是一样的错误,还有其他原因吗?请问mcgspro在哪里能看到通讯日志啊?

勿忘初心gh

  • 精华:0帖
  • 求助:2帖
  • 帖子:10帖 | 109回
  • 年度积分:0
  • 历史总积分:347
  • 注册:2020年1月30日
发表于:2021-04-26 16:09:54
6楼
降低波特率试试

zhyiji

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 2回
  • 年度积分:0
  • 历史总积分:256
  • 注册:2021年2月01日
发表于:2021-04-26 16:10:58
7楼

"gk2017" 的回复,发表在4楼
        对内容: 【先看一下通讯状态有没有报什么   是0还是什么  ,是0的话再考虑是不是时间周期的问题...】进行回复:

        -----------------------------------------------------------------


请问即使不接上232,mobdus数据转发设备的通讯状态也是0,这是什么原因啊?有什么干扰吗?初始值设了1006

Allen010

  • 精华:0帖
  • 求助:0帖
  • 帖子:30帖 | 544回
  • 年度积分:73
  • 历史总积分:17753
  • 注册:2010年8月04日
发表于:2021-04-27 10:58:27
8楼

"zhyiji" 的回复,发表在5楼
        对内容: 【"Allen010" 的回复,发表在2楼        对内容: 【读数不稳,经常只能随机读到三个串口的数据的原因,很可能是  数据请求发下去,数据回复还没收到,就紧接着就进行 下个请求了; 可以把数...】进行回复:

        -----------------------------------------------------------------


可以这样的参数设置下:

1、对DTU的 采集周期 改成 5s ,或者10s ;

2、将父设备的 采集周期 改成 20s ,或者40s ;(4个DTU设备,父设备的采集周期 大于等于 子设备的采集周期的和,这样 设置,较稳妥些);


看这样设置 ,测试一下,看看是否正常。

Allen010

  • 精华:0帖
  • 求助:0帖
  • 帖子:30帖 | 544回
  • 年度积分:73
  • 历史总积分:17753
  • 注册:2010年8月04日
发表于:2021-04-27 11:01:49
9楼

可以用 modbus 的串口测试工具,选择  那个虚拟串口,对应上 相应的数据点,看看是否有数据上来;  再这个测试工具中 ,看下报文 。

Allen010

  • 精华:0帖
  • 求助:0帖
  • 帖子:30帖 | 544回
  • 年度积分:73
  • 历史总积分:17753
  • 注册:2010年8月04日
发表于:2021-04-27 11:10:44
10楼

MODBUS串口工具,监控报文的位置;

image.png

Smile-lyc

  • [管理员]
  • 精华:127帖
  • 求助:50帖
  • 帖子:3482帖 | 22331回
  • 年度积分:1963
  • 历史总积分:145694
  • 注册:2006年8月04日
发表于:2021-06-04 12:55:16
11楼

感谢求助者和答疑者对求助答疑板块的厚爱,赠人玫瑰,手留余香。

对于求助者要求:

1、请在一个月内自行结贴,把悬赏积分(如果设置积分悬赏求助)发放给答疑者;

2、如果在求助答疑过程中,自己已经有效解决问题,建议大家把解决问题方法在自己求助帖分享,有效分享可以获得50积分奖励。




热门招聘
相关主题

官方公众号

智造工程师