主控工作于MODBUS主模式,定时向分控以及工控屏通过MODBUS协议读写数据。
主控定时获取分控工作状态,将数值通过MODBUS的写操作16向工控屏写入数据进行显示。
同时通过读操作06读取用户在工控屏上输入的数值。
与此同时,当检测到开关等操作之后,通过MODBU写操作向分控发送命令,通知分控执行输出控制电磁阀,门锁等电器设备。
客户的控制系统
当RS485失效,分控无法正常控制电器设备,可能将正在玩游戏的顾客锁在房内,导致严重后果。
客户急忙联系到了我,我向客户了解到了以下情况:
- 屏幕与分控采用手拉手的连接方式;
- 连接在最远端的屏幕与主控之间的距离约为500m;
- RS485通信采用了双绞屏蔽线;
- 可能存在强电和弱电的电缆混在一起走线的情况;
- 为了提高响应速度改善客户体验,RS485通信的波特率设置为19200bps;
- 将整个系统(包括主控、分控以及工控屏)断电再重新上电之后,故障消失,RS485恢复正常通信;
可能因为终端没有接120欧姆的匹配电阻,导致通信信号发生了反射,破坏了信号完整性,使得通信发生了异常。
于是,立即将客户找到120欧姆的插件电阻,锁在了位于末端的屏幕的A+和B-之间;
运行了一个晚上,相安无事;第二天一大早,客户又找到了我,RS485通信又华丽丽的挂了。
作为有几十年工作经验的优秀的工程师,我再仔细分析了一下客户的系统;
这个故障有一个最明显的特征:运行一段时间之后才出故障;
我的脑海中闪过了一道亮光,立即与客户确认以下问题:
我: 你们所用的屏蔽双绞线的屏蔽层有接地吗?
客户:没有接地!
我:两头没有任何一头有接地吗?
客户:没有!
我:你把屏蔽线的屏蔽层接地试一下。
客户:接大地,还是接主控的V-?
我:如果主控的V-有接大地的话,可以接V-,否则接大地;
几分钟之后,从客户那里传来了好消息;
客户:我把屏蔽层接大地之后,RS485通信立即恢复了。
至此,完满解决了客户的问题。
问题原因:
电网或者空间的电荷耦合到屏蔽线的屏蔽层,如果屏蔽层没有接地,则屏蔽层的电荷积累得越来越多,最终将电荷A+,B-线上的波形,导致通信异常。
测量屏蔽层对地电压,可以达到几十甚至上百V的电压。
因此,需要将屏蔽层接到大地,将耦合到的电荷泄放到大地,避免电荷在屏蔽层的积累。
另外,控制器的地V-也需要接入到大地中,目的在于泄放从电源或者是空间耦合的电荷,避免影响控制器的正常运行。,同时避免触电的危险。
来源:物联网全栈开发