技术论坛

Modbus通讯轮询问题

作者 主题
游侠

经验值: 360
发帖数: 11
精华帖: 0
主题:【探讨】Modbus通讯轮询问题


只看楼主 楼主 2023-03-21 09:03:03

如果我使用标志位轮询,通讯无**询,改成时间触发轮询就可以。新手望指点。

                                                                                                                  

新建 DOC 文档 (4).doc



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1816590&b_id=64&s_id=0&num=15

奇侠

经验值: 8140
发帖数: 843
精华帖: 14
回复:Modbus通讯轮询问题


只看楼主 1楼 2023-03-21 09:18:26

楼主,直接上传程序啊,你上传这么一点点是看不出来什么的,另外你最好按官方的例程来编程,这样基本不会出问题。


13478405725
以下网友喜欢您的帖子:

  
侠士

经验值: 1971
发帖数: 266
精华帖: 0
回复:Modbus通讯轮询问题


只看楼主 2楼 2023-03-21 11:52:38

标志位,置位复位指令的轮询,用1200试也不行,定时器和计数的都可轮询


 
以下网友喜欢您的帖子:

  
至圣

经验值: 19839
发帖数: 4383
精华帖: 2
回复:Modbus通讯轮询问题


只看楼主 3楼 2023-03-21 13:22:33

把程序截图上传看看。


 
以下网友喜欢您的帖子:

  
游侠

经验值: 360
发帖数: 11
精华帖: 0
回复:Modbus通讯轮询问题


只看楼主 楼主 4楼 2023-03-21 15:58:52

大家可以帮看看,标志位轮询就不行,时间轮询通讯就可以



通讯.zip



 
以下网友喜欢您的帖子:

  
至圣

经验值: 67540
发帖数: 14782
精华帖: 100
回复:Modbus通讯轮询问题


只看楼主 5楼 2023-03-21 18:05:43

不管你明不明白。我照说。

因为msg指令的en端接通之后但是first端未接通的这一个周期(以及以后的n个周期)。Done端并未输出有效成分。但是Done总要在这个周期输出一个值到端口。根据子程序内L值传递的原理,所有子程序都未有first信号,所有子程序都Done输出同一个状态。(包括你的error端也是相同的状态。)

另外。只有Done上升沿这个周期error才是有效成分。没有双线圈的情况下有效期是一个扫描周期。

你行的那个程序显然没有这种状态,所以没发现所谓的异常。

所以必定要en端和first端要同时接通。除非此期间你放弃使用Done端和error端的任何状态。

也就是说没叫它first之前你当它傻的就可以了。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8140
发帖数: 843
精华帖: 14
回复:Modbus通讯轮询问题


只看楼主 7楼 2023-03-21 19:54:10

帮你改了一下,你试试,其实可以再简化。

1111.smart.zip



13478405725
以下网友喜欢您的帖子:

  
游侠

经验值: 360
发帖数: 11
精华帖: 0
回复:Modbus通讯轮询问题


只看楼主 楼主 8楼 2023-03-22 08:27:03
以下是引用不欲勿施在2023-03-21 19:54:10的发言 >7楼

帮你改了一下,你试试,其实可以再简化。

1111.smart.zip


谢谢,我查看了一下程序,你调换了一下初始化使能位的位置,是不是和PLC扫描机制有关。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 67540
发帖数: 14782
精华帖: 100
回复:Modbus通讯轮询问题


只看楼主 9楼 2023-03-22 17:56:10
以下是引用手机用户20220118760488在2023-03-22 08:27:03的发言 >8楼

谢谢,我查看了一下程序,你调换了一下初始化使能位的位置,是不是和PLC扫描机制有关。

以下是引用不欲勿施在2023-03-21 19:54:10的发言 >7楼:帮你改了一下,你试...

引用7楼详细内容:

帮你改了一下,你试试,其实可以再简化。

1111.smart.zip


这是其中一个问题。

我猜你用一个计时器去延时一点时间,是不是因为你检测不到ctrl指令的Done的上升沿?但是又不知道什么事情,所以用了没办法的办法。


 
以下网友喜欢您的帖子:

  
游侠

经验值: 360
发帖数: 11
精华帖: 0
回复:Modbus通讯轮询问题


只看楼主 楼主 10楼 2023-03-23 08:30:09
以下是引用芳季在2023-03-22 17:56:10的发言 >9楼

这是其中一个问题。

我猜你用一个计时器去延时一点时间,是不是因为你检测不到ctrl指令的Done的上升沿?但是又不知道什么事情,所以用了没办法的办法。

以下是引用手机用户20220118760488在2023-03-22 08:27:03的发言 >8楼:谢谢,我查看了一下...

引用8楼详细内容:

谢谢,我查看了一下程序,你调换了一下初始化使能位的位置,是不是和PLC扫描机制有关。

以下是引用不欲勿施在2023-03-21 19:54:10的发言 >7楼:帮你改了一下,你试...

引用7楼详细内容:

帮你改了一下,你试试,其实可以再简化。

1111.smart.zip


季工,是的,标志位轮询不下去,一开始的时候是可以的,过段时间就不行了,复位重来也不行,不得已选用通讯效率差的时间加计数器轮询。不知为何,


 
以下网友喜欢您的帖子:

  
至圣

经验值: 67540
发帖数: 14782
精华帖: 100
回复:Modbus通讯轮询问题


只看楼主 11楼 2023-03-23 16:42:48

是不是通电第一次就可以,然后stop过就不行了?

报的出错是3还是5啊?如果确实是3,那么我还没想到为什么。


 
以下网友喜欢您的帖子:

  
游侠

经验值: 360
发帖数: 11
精华帖: 0
回复:Modbus通讯轮询问题


只看楼主 楼主 12楼 2023-03-24 08:14:29
以下是引用芳季在2023-03-23 16:42:48的发言 >11楼

是不是通电第一次就可以,然后stop过就不行了?

报的出错是3还是5啊?如果确实是3,那么我还没想到为什么。

季工是的,所以查了半天没有其他办法,才用了时间加计数器轮询,有没有好的思路可以查到原因。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 13017
发帖数: 1815
精华帖: 22
回复:Modbus通讯轮询问题


只看楼主 13楼 2023-03-24 20:24:06

EN端最好常使能保证OUT类型每次扫描结果是确定的0或1


 
以下网友喜欢您的帖子:

  
至圣

经验值: 67540
发帖数: 14782
精华帖: 100
回复:Modbus通讯轮询问题


只看楼主 14楼 2023-03-24 20:56:22

出现3的话都是协议问题。通讯不上而且偿试了3次。应该是逐一出现3的。你现在是同时出3还是每隔一点时间挨个出3?


 
以下网友喜欢您的帖子:

  
游侠

经验值: 360
发帖数: 11
精华帖: 0
回复:Modbus通讯轮询问题


只看楼主 楼主 15楼 2023-03-25 08:10:07
以下是引用芳季在2023-03-24 20:56:22的发言 >14楼

出现3的话都是协议问题。通讯不上而且偿试了3次。应该是逐一出现3的。你现在是同时出3还是每隔一点时间挨个出3?

对,全部都出现了3.


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 8140
发帖数: 843
精华帖: 14
回复:Modbus通讯轮询问题


只看楼主 16楼 2023-03-25 10:42:16

楼主,就这么一个简单的modbus rtu通信难成这样吗?要不要我给你做个简单的例程?


13478405725
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
Modbus通讯轮询问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。