小白求助Mosbus始终为FALSE 点击:592 | 回复:11



yy52hz

    
  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:148
  • 注册:2022年6月17日
发表于:2022-07-04 10:20:00
楼主
求助帖30分-已结帖

如图,定时器强制运行时,modbus的DONE和ERROR始终为False,BUSY会在TRUE和FALSE间不停切换,可以接收到数据,但不用定时器就不行了,请教这是什么原因呢,该如何修改呢

1656900989652.png



楼主最近还看过



AI雪

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 204回
  • 年度积分:26
  • 历史总积分:1951
  • 注册:2016年8月07日
发表于:2022-07-04 11:28:06
1楼

你这个触发最好用官方的教程,还有一个地方mode要改成4 你改了吗

yy52hz

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:148
  • 注册:2022年6月17日
发表于:2022-07-04 11:29:23
2楼

"AI雪" 的回复,发表在1楼
        对内容: 【你这个触发最好用官方的教程,还有一个地方mode要改成4 你改了吗...】进行回复:

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

mode要改成4是哪个,可以详细说一下吗,我刚接触还不熟悉


天自

  • 精华:0帖
  • 求助:1帖
  • 帖子:4帖 | 54回
  • 年度积分:51
  • 历史总积分:964
  • 注册:2022年5月09日
发表于:2022-07-04 11:39:25
3楼

PtP模块的Modbus RTU通信。读取数据记录和写入数据记录指令为异步读写指令,指令的执行需要N个扫描周期。BUSY能看到。当通信出现错误时,Modbus_Master指令的“ERROR”输出位将变为 TRUE 但是只保持一个扫描周期,第二周期将复位。所以通过TIA 软件程序监控时无法查询到错误。
Modbus_Master指令“STATUS” 参数中的错误代码仅在“ERROR” = TRUE 的扫描周期内有效。所以用自身的"ERROR"是不能触发的,

关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2022-07-04 12:16:54
4楼

用Done和Error位的上升沿触发一个内部位,这种方式,不要用这两个位直接作为下一条MSG指令的执行位。

请叫我王老湿

  • [版主]
  • 精华:0帖
  • 求助:0帖
  • 帖子:622帖 | 8548回
  • 年度积分:24
  • 历史总积分:335295
  • 注册:2011年4月25日
发表于:2022-07-04 13:10:55
5楼

BUSY跳变,ERROR又无报错,说明通信成功了,如果没收到数据,看看你地址偏移量是不是算错了

yy52hz

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:148
  • 注册:2022年6月17日
发表于:2022-07-05 08:53:05
6楼

"天自" 的回复,发表在3楼
        对内容: 【PtP模块的Modbus RTU通信。读取数据记录和写入数据记录指令为异步读写指令,指令的执行需要N个扫描周期。BUSY能看到。当通信出现错误时,Modbus_Master指令的“ERROR”输出位将...】进行回复:

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

明白了,您说的是对的,非常感谢

yy52hz

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:148
  • 注册:2022年6月17日
发表于:2022-07-05 08:54:09
7楼

"关育谋" 的回复,发表在4楼
        对内容: 【用Done和Error位的上升沿触发一个内部位,这种方式,不要用这两个位直接作为下一条MSG指令的执行位。...】进行回复:

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


是的,感谢回复,确实不能作为下一条的执行指令,谢谢您

yy52hz

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:148
  • 注册:2022年6月17日
发表于:2022-07-05 08:57:40
8楼

"请叫我王老湿" 的回复,发表在5楼
        对内容: 【BUSY跳变,ERROR又无报错,说明通信成功了,如果没收到数据,看看你地址偏移量是不是算错了...】进行回复:

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

是的,用定时器触发的通信成功了,上升沿后面的DONE和ERROR去掉后也通信成功了,谢谢您

yy52hz

  • 精华:0帖
  • 求助:1帖
  • 帖子:1帖 | 5回
  • 年度积分:0
  • 历史总积分:148
  • 注册:2022年6月17日
发表于:2022-07-05 09:12:57
9楼

"yy52hz" 的回复,发表在2楼
        对内容: 【"AI雪" 的回复,发表在1楼        对内容: 【你这个触发最好用官方的教程,还有一个地方mode要改成4 你改了吗...】进行回复:        ---------------------...】进行回复:

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

非常感谢这位大哥的详细指导,这个mode是采用图中上面的通信处理器MODBUS(RTU),然后在程序块->系统块->程序资源->MODBUS的数据块中;另外像我这样的最好采用轮询的方式。再次感谢这位大哥的指导,谢谢您

424201f7dde4863c1014076a4256d6b.jpg


关育谋

  • [版主]
  • 精华:5帖
  • 求助:22帖
  • 帖子:738帖 | 5640回
  • 年度积分:68
  • 历史总积分:84034
  • 注册:2004年5月28日
发表于:2022-07-05 22:17:10
10楼

引用 "yy52hz" 的回复,发表在7楼
        内容: "关育谋" 的回复,发表在4楼        对内容: 【用Done和Error位的上升沿触发一个内部位,这种方式,不要用这两个位直接作为下一条MSG指令的执行位。...】进行回复:        -...

如果问题解决了,请及时结贴,很认真的在回复您的问题。

Smile-lyc

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

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

对于求助者要求:

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

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

3、求助答疑板块版主结贴时间一般滞后30~45天,以方便大家对求助问题答疑足够时间,也为了每一个优秀答疑人员都可以获取到自己的积分和MP奖励。



热门招聘
相关主题

官方公众号

智造工程师