断电中断停止问题

我编写了一个自由口协议通信程序,有两路传感器通过一个串口输入,现在我遇到了几个问题想咨询下,谢谢各位大师指点。
 1、如果采用定时中断(10),两路输入采用分时,即分不同时段将两个传感器的型号发送出去,然后接受相应的数据,问题是:当一路传感器断电后,另一路传感器也不能发送数据,请问这是怎么回事呢?而且,当又给传感器上电后,发送接收数据不能自动更新,需要再次运行PLC,请问这出了什么问题吗?
 定时中断程序如下:
 主程序:
 先初始化,定义端口模式:
 LD     SM0.1
 MOVB   16#09, SMB30
 MOVB   16#EC, SMB87
 MOVB   16#0A, SMB88
 MOVB   16#0D, SMB89
 MOVW   +1000, SMW92
 MOVB   17, SMB94
 ENI
 ATCH   INT0, 9
 MOVB   150, SMB34
 ATCH   INT1, 10
 子程序定义时钟:
 LDN    T34
 TON    T33, 250
 TON    T34, 500
 LD     T33
 MOVB   16#1, VB53
 NOT
 MOVB   16#02, VB53(产生5秒周期时钟脉冲并分时将机型号传给VB53)
 中断0:(发送完成中断9)
 LD     SM0.0
 RCV    VB99, 0
 MOVB   250, SMB34
 ATCH   INT1, 10
 中断1:(定时中断10)
 LD     SM0.0
 DTCH   10
 XMT    VB50, 0

 2、如果采用上升沿中断,一路传感器断电后,另一路也不能输入,请问这是什么原因呢?但是当再给传感器上电后,中断会再启动,更新数据继续接收,这为什么与上面的不同呢?
 简要说明下程序:初始化与上面一样,连接的两个中断为发送完成中断9和接收完成中断23,中断程序为复位置位指令,如下:
 接收发送子程序:
 LD     M1.0
 EU
 XMT    VB50, 0
 LD     M1.1
 EU
 RCV    VB99, 0
 中断0:
 LD     SM0.0
 R      M1.0, 1
 S      M1.1, 1
 中断1:
 LD     SM0.0
 R      M1.1, 1
 S      M1.0, 1
 补充,两路传感器输入同样采用时钟脉冲分时向VB53传送不同的机型号,以得到两路输入,如果不这样,该如何实现两路输入呢?
 3、断电后不能接收发送另一路数据,这是否是一断电中断就停止,只运行主程序,且对定时中断来说还不能再次自动启动中断,如果不是,那么该如何实现路断电时另一路可以通呢?可不可以不通过中断只在主程序中使用接收发送命令,这样每循环一次程序就执行一次发送接收,这种发送接收又该如何出发呢?
 谢谢了,问题较多较烦,还望各位不吝赐教啊。

问题补充:
通讯过程中,一路传感器断电,另一路通电,不能接收到数据,采用程序状态监控时,发现中断程序都变成了灰色,而且采用状态表检测时发现smb86存储器始终为16#00,请问这代表了通讯中断了吗?数据没有传送吗?可是我不管怎么试也没有找到解决方法,望各位明示啊?可QQ联系:303627721 谢谢了

最佳答案

通讯,必须考虑容错。即估计到通讯过程随时会发生错误,又要估计到对方会无反应。然后正确处理这些情况,就不会发生中断通讯的现象。

提问者对于答案的评价:
谢谢 我正在尝试

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc321454.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 上午11:57
下一篇 2020年11月5日 上午11:58

相关推荐