我们现场有一个变频器室,周末发生了变频器空调坏掉,温度高,变频器停机造成生产中断的情况。由于变频器室无人值守,领导希望把变频器室的温度接入控制系统,后台计算机显示温度,有报警功能,还要弹窗提醒。我经过在办公室计算机上模拟测试,实现了上面的要求。我把过程简单记录下来。
上面的需求还需要进一步明确:
1. 温度高就弹窗,无论当前画面是哪一个。
2. 发生弹窗后,中控工通知设备维护人员,在处理完之前,弹窗不能影响中控工其它操作。
3. 如果中控工关掉弹窗,温度还是异常,继续弹窗。
4. 弹窗只有一个,不能满屏不停的弹窗。
根据上面的需求,在citect项目程序中新建变量T100,内部变量,实数,模拟现场温度。新建一个数字量内部变量WENDU_ALARM_DISPLAYED,表示是否已经弹窗。
在主画面上放一个数字显示控件,关联T100。放两个按钮,分别用于T100+20.0和T100-20.0。
新建一个小画面,名字交WENDU,作为弹窗,长宽数字都小一点,”退出画面时“事件写下面的脚本
WENDU_ALARM_DISPLAYED=0
写cicode脚本
FUNCTION WENDU_ALARM()
IF T100>50.0 THEN
IF WENDU_ALARM_DISPLAYED=0 THEN
WENDU_ALARM_DISPLAYED=1
pagepopup('WENDU')
END
END
END
定义一个事件WENDU_ALARM,周期00:00:10,动作为WENDU_ALARM()
当前画面切换到其他画面的按钮鼠标点击事件写下面的脚本
pagedisplay('page2')
WENDU_ALARM_DISPLAYED=0
WENDU_ALARM()
其它画面切换时,都是类似的操作
保存、编译,做一下计算机向导,启用事件。
运行项目,使用按钮让T100超过50.0,每隔10秒会执行事件,如果没有弹窗就弹窗一次,弹窗期间不影响操作。如果关掉弹窗,每隔10秒还是会执行事件进行判断。
画面切换不影响弹窗。
上面的需求还需要进一步明确:
1. 温度高就弹窗,无论当前画面是哪一个。
2. 发生弹窗后,中控工通知设备维护人员,在处理完之前,弹窗不能影响中控工其它操作。
3. 如果中控工关掉弹窗,温度还是异常,继续弹窗。
4. 弹窗只有一个,不能满屏不停的弹窗。
根据上面的需求,在citect项目程序中新建变量T100,内部变量,实数,模拟现场温度。新建一个数字量内部变量WENDU_ALARM_DISPLAYED,表示是否已经弹窗。
在主画面上放一个数字显示控件,关联T100。放两个按钮,分别用于T100+20.0和T100-20.0。
新建一个小画面,名字交WENDU,作为弹窗,长宽数字都小一点,”退出画面时“事件写下面的脚本
WENDU_ALARM_DISPLAYED=0
写cicode脚本
FUNCTION WENDU_ALARM()
IF T100>50.0 THEN
IF WENDU_ALARM_DISPLAYED=0 THEN
WENDU_ALARM_DISPLAYED=1
pagepopup('WENDU')
END
END
END
定义一个事件WENDU_ALARM,周期00:00:10,动作为WENDU_ALARM()
当前画面切换到其他画面的按钮鼠标点击事件写下面的脚本
pagedisplay('page2')
WENDU_ALARM_DISPLAYED=0
WENDU_ALARM()
其它画面切换时,都是类似的操作
保存、编译,做一下计算机向导,启用事件。
运行项目,使用按钮让T100超过50.0,每隔10秒会执行事件,如果没有弹窗就弹窗一次,弹窗期间不影响操作。如果关掉弹窗,每隔10秒还是会执行事件进行判断。
画面切换不影响弹窗。
