发布于 2012-02-21 12:02:36
70楼
楼主的要求我也做过类似的,就是光字牌报警,而且做过多次了,我的控制要求是:
1、任意一个报警来,就触发一个变量导致按钮闪烁,同时触发该报警的光字牌闪烁
2、按下确认按钮,可以把画面中所有的光字牌复位(报警还在,光字牌就不闪变红色,报警已走,光字牌就恢复原色),同时按钮也不再闪烁(报警还在,按钮就不闪变红色,视轻重故障,报警已走,按钮就恢复原色)
我的做法:
由于是多个项目都会做光字牌,所以我就考虑程序要通用些,因此定义两个db,大小随项目具体内容而定,第一个db块存放报警的源数据,采用bool型数组,一般是来自I点也可能来自模拟量报警点,第二个db块存放每个报警的保持变量,用于记录报警来、确认后的状态,采用INT型数组;
编写一个fc块,管脚有两个db的编号和起始byte号(主要是考虑把两个db合并成一个db也是行的)、报警点的数量、报警复位命令和总报警输出指示。
在调用这个fc之前,还需要写一段赋值语句,也就是根据项目情况,把所有的报警源数据点逐一赋值到第一个db中去,一般用excel完成这种赋值语句是很轻松的事情。
这样,每次做项目不必修改fc了,只要编写一段赋值语句、定义两个db和调用一个可以重复利用的fc
有生之年,狭路相逢,终不能幸免