技术论坛

485通讯问题

作者 主题
侠客

经验值: 790
发帖数: 160
精华帖: 0
主题:【求助】485通讯问题


只看楼主 楼主 2021-02-26 11:06:09

一条485总线上挂了4个仪表,如果其中一个仪表发生通讯故障,会导致其他三个仪表出现通讯故障吗?在没有加装信号隔离器以及终端电阻的前提下。


 
以下网友喜欢您的帖子:

  
重要声明:

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

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

至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:485通讯问题


只看楼主 1楼 2021-02-26 11:28:38

有可能,看你如何编辑这个通讯轮询程序的。

一般习惯上,通讯轮询是使用上一个通讯读、写指令的完成位done,作为下一个通讯读、写指令的开始。

你可以考虑当通讯错误时,的那个error状态值为非0时,也作为往下轮询的条件,同时根据这个状态信息发出那个从站丢失的报警信息。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
回复:485通讯问题


只看楼主 2楼 2021-02-26 11:37:31

硬件上电气非隔离的话绝对会有影响,轻则全部通讯中断、重则全部通讯节点通讯芯片全部烧毁。

程序上可以做到很小的影响,就看你写的通讯逻辑是否足够灵活了。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 127331
发帖数: 22001
精华帖: 824
回复:485通讯问题


只看楼主 3楼 2021-02-26 11:41:19

485通讯首先要保证信号传输质量。

总线形式的两端安装终端电阻(包括上拉下拉电阻)是保证信号质量长期稳定的基础。


在轮询上,从站发生故障(无应答)是不可避免地。这要从主站的轮询机制上仔细考虑。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
侠客

经验值: 790
发帖数: 160
精华帖: 0
回复:485通讯问题


只看楼主 楼主 4楼 2021-02-26 11:58:16
以下是引用WWCWWC在2021-02-26 11:28:38的发言 >1楼

有可能,看你如何编辑这个通讯轮询程序的。

一般习惯上,通讯轮询是使用上一个通讯读、写指令的完成位done,作为下一个通讯读、写指令的开始。

你可以考虑当通讯错误时,的那个error状态值为非0时,也作为往下轮询的条件,同时根据这个状态信息发出那个从站丢失的报警信息。

程序没有问题啊,我是按时间轮询的,不管读没读到,我都会在下一个时刻点读下一个表。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 127331
发帖数: 22001
精华帖: 824
回复:485通讯问题


只看楼主 5楼 2021-02-26 15:42:17
以下是引用马纳个峰在2021-02-26 11:58:16的发言 >4楼

程序没有问题啊,我是按时间轮询的,不管读没读到,我都会在下一个时刻点读下一个表。

以下是引用WWCWWC在2021-02-26 11:28:38的发言 >1楼:有可能,看你如何编...

引用1楼详细内容:

有可能,看你如何编辑这个通讯轮询程序的。

一般习惯上,通讯轮询是使用上一个通讯读、写指令的完成位done,作为下一个通讯读、写指令的开始。

你可以考虑当通讯错误时,的那个error状态值为非0时,也作为往下轮询的条件,同时根据这个状态信息发出那个从站丢失的报警信息。

这是异步通讯!轮询没有那么写的。不能定时主站发送!

只能是等待、两次重发后,再跳转到下一个。等待时间要根据波特率计算后设置。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
侠客

经验值: 790
发帖数: 160
精华帖: 0
回复:485通讯问题


只看楼主 楼主 6楼 2021-03-01 08:56:49
以下是引用yming在2021-02-26 15:42:17的发言 >5楼

这是异步通讯!轮询没有那么写的。不能定时主站发送!

只能是等待、两次重发后,再跳转到下一个。等待时间要根据波特率计算后设置。

以下是引用马纳个峰在2021-02-26 11:58:16的发言 >4楼:程序没有问题啊,我...

引用4楼详细内容:

程序没有问题啊,我是按时间轮询的,不管读没读到,我都会在下一个时刻点读下一个表。

以下是引用WWCWWC在2021-02-26 11:28:38的发言 >1楼:有可能,看你如何编...

引用1楼详细内容:

有可能,看你如何编辑这个通讯轮询程序的。

一般习惯上,通讯轮询是使用上一个通讯读、写指令的完成位done,作为下一个通讯读、写指令的开始。

你可以考虑当通讯错误时,的那个error状态值为非0时,也作为往下轮询的条件,同时根据这个状态信息发出那个从站丢失的报警信息。

我改程序之后还是有这种现象,把那个有故障的仪表通讯线拔了其他的仪表就正常了


 
以下网友喜欢您的帖子:

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