博图标准化编程技巧(十)规划设备状态字
刚入门做自控项目的时候,程序做的 非常简单,上位读取的变量也很少,拿普通水泵来说,上位一般就读取远程、自动、运行、故障四个开关量信号。在上位机主页做画面显示的时候有的业主要求主要状态都显示出来,此时就需要通过脚本判断四个状态的不同组合,开发和修改都比较麻烦。慢慢积累经验就开始给设备增加一个整数状态字变量来统一表示设备状态,一开始比较简单,用0表示停止,1表示运行,2表示故障,后来又给状态字增加就地、远程和自动等信息,形成了比较完善的状态字规则。做标准化编程后状态字的作用更加明显起来,同一类设备状态字的规则要一致,这样上位的图符就可以通用。另外状态字还可以用于设备设备状态的动作记录,可以比较详细的了解设备不同控制模式和不同运行状态的变化情况,方便溯源和分析。
以比较简单的电机类设备来说,控制模式一般有就地手动、远程手动、自动三种,运行状态一般有停止、正转、反转、正转启动中、反转启动中、故障等状态。可以把0~4的数字作为就地手动模式状态,5~9作为远程手动模式状态,10~14作为自动模式状态,15~19作为不同的异常状态。总体来说电机类设备状态字的规划如下:
0、就地停止;1、就地正转;2、就地反转;3、预留;4、预留;
5、远程停止;6、远程正转;7、远程反转;8、远程正转启动;9、远程反转启动;
10、自动停止;11、自动正转;12、自动反转;13、自动正转启动;14、自动反转启动;
15、互锁保护;16、故障保护;17、预留;18、预留;19、维保状态;
规划好状态字后可以在上位设备控件里利用状态字设计不同的颜色、文字和图幅表示不同状态,简单又方便。也可以用状态字的变化驱动驱动脚本记录设备状态,用于故障分析和问题追溯。