程序错误,还请各位帮忙

问题出在主程序的网络8和网络9上,在线监控时温度传感器1:VD0的数值是31.5,低温设置点:VD364为15,高温设置点:VD368为45,但是网络8和网络9同时输出报警,温度1低:V244.1和温度1高:V243.1同时为1,也就是说温度传感器1:VD0即大于45又小于15,我也没有检查出程序哪里有错误,就向各位大大请教了。
 
在线监控时,有的触点变为蓝色,中间有蓝色的方块;还有的左边变成蓝色,右边变成银灰色,请问这代表什么意思啊?而SM0.0的开点和闭点竟然同时为1,这是不是也不合常理啊?


主程序
Network 1 //温度传感器1低温报警// 网络注释
 LD     SM0.0
=      L60.0
LD     SM0.0
=      L63.7
LD     L60.0
CALL   AI_alarm:SBR7, L63.7, 温度传感器1:VD0, 低温设置点:VD364, 2.0, 温度1低:V244.1

Network 2 //温度传感器1高温报警// 网络注释
=      L60.0
LDN    SM0.0
=      L63.7
LD     L60.0
CALL   AI_alarm:SBR7, L63.7, 温度传感器1:VD0, 高温设置点:VD368, 2.0, 温度1高:V243.1


子程序变量IN:
L0.0:ALARM_L_LL
LD1:PV
LD5:Set_point
LD9:Set_point
变量OUT:
L13.0:Alarm_Out
变量TEMP:
L13.1:Alarm_Threshold_Latch
L13.2:Alarm_Done
L13.3:Reset_Alarm_Done
LD14:Reset_Set_point

子程序AI_alarm:
Network 1 // 高位报警复位阈值为报警点减去死区
// 网络注释
LDN    L0.0
MOVR   LD5, LD14
-R     LD9, LD14
Network 2 // 低位报警复位阈值为报警点加上死区
LD     L0.0
MOVR   LD5, LD14
+R     LD9, LD14
Network 3 // 报警误差带设置:从高设置点到高点减死区,都是高报警的范围;
             从低设置点到低点加死区,都是低报警的范围。
LD     L0.0
LDR<=  LD1, LD5
LD     L13.1
AR<    LD1, LD14
OLD
ALD
LDN    L0.0
LDR>=  LD1, LD5
LD     L13.1
AR>    LD1, LD14
OLD
ALD
OLD
=      L13.1
Network 4 // 报警复位使能延迟1秒
LDN    SM0.1
AN     L13.1
TON    T40, 10
Network 5 // 报警置位使能延迟1秒
LDN    SM0.1
A      L13.1
TON    T41, 10
Network 6 // 报警状态置位
LD     T41
=      L13.2
S      L13.0, 1
Network 7 
LD     T40
=      L13.3
Network 8 
LDN    L13.2
A      L13.3
A      M0.2
R      L13.0, 1
Network 9 
Network 10 

问题补充:
这个子程序的目的是14个模拟量在高位和低位时给出一个报警信号,ALARM_L_LL为1时输出为低位报警,ALARM_L_LL为0时输出为低位报警,以上面的例子为例,温度传感器VD0的数值是31.5,低温设置点VD364为15,那么,当VD0小于低温设置点时报警,大于低温设置点加死区时取消报警,也就是起到一个误差带的作用。

刚才一楼的大大说子程序使用了定时器,多次调用就不能正常运行了,请问这是为什么?

还有,在线监控时,而SM0.0的开点和闭点竟然同时显示为ON,这是不是故障了啊?

最佳答案

是主程序的网络1和2吧,你是在子程序里使用定时器,然后多次调用子程序,相当于同一个定时器被多次调用,你只需要把定时器从子程序挪到主程序里就可以了。

提问者对于答案的评价:
那子程序允许嵌套多少次啊

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月1日 下午2:06
下一篇 2020年11月1日 下午2:06

相关推荐