所谓“运行策略”,是用户为实现对系统运行流程自由控制所组态生成的一系列功能块的总称。MCGS为用户提供了进行策略组态的专用窗口和工具箱。
运行策略的建立,使系统能够按照设定的顺序和条件操作实时数据库,控制用户窗口的打开、关闭,以及设备构件的工作状态,从而实现对系统工作过程精确控制及有序调度管理的目的。
根据运行策略的不同作用和功能,MCGS把运行策略分为启动策略、退出策略、循环策略、用户策略、报警策略、事件策略、热键策略7种。每种策略都由一系列功能模块组成。
MCGS运行策略窗口中“启动策略”、“退出策略”、“循环策略”为系统固有的三个策略块,其余的则由用户根据需要自行定义,每个策略都有自己的专用名称,MCGS系统的各个部分通过策略的名称来对策略进行调用和处理。
启动策略在MCGS进入运行时,首先由系统自动调用执行一次。一般在该策略中完成系统初始化功能,例如:给特定的数据对象赋予不同的初始值,调用硬件设备的初始化程序等,具体需要何种处理,由用户组态设置。
退出策略在MCGS退出运行前,由系统自动调用执行一次。一般在该策略中完成系统善后处理功能。例如,可在退出时把系统当前的运行状态记录下来,以便下次启动时恢复本次的工作状态。
在运行过程中,循环策略由系统按照设定的循环周期自动循环调用,循环体内所需执行的操作由用户设置。由于该策略块是由系统循环扫描执行的,故可把大多数关于流程控制的任务放在此策略块内处理,系统按先、后顺序扫描所有的策略行,如策略行的条件成立,则处理策略行中的功能块。在每个循环周期内,系统都进行一次上述处理工作。
报警策略由用户在组态时创建,当指定数据对象的某种报警状态产生时,报警策略被系统自动调用一次。
事件策略由用户在组态时创建,当对应表达式的某种事件状态产生时,事件策略被系统自动调用一次。
热键策略由用户在组态时创建,当用户按下对应的热键时执行一次。
用户策略是用户自定义的功能模块,根据需要可以定义多个,分别用来完成各自不同的任务。用户策略系统不能自动调用,需要在组态时指定调用用户策略的对象,MCGS中可调用用户策略的地方有:
(1)主控窗口的菜单命令可调用指定的用户策略。
(2)在用户窗口内定义“按钮动作”动画连接时,可将图形对象与用户策略建立连接,当系统响应键盘或鼠标操作后,将执行策略块所设置的各项处理工作。
(3)选用系统提供的“标准按钮”动画构件作为用户窗口中的操作按钮时,将该构件与用户策略连接,单击此按钮或使用设定的快捷键,系统将执行该用户策略,如图2-26所示。
图2-26 构建与用户策略连接
策略构件中的“策略调用”构件,可调用其他策略块,实现子策略块的功能。
在工作台“运行策略”窗口页中,单击“新建策略”按钮,即可新建一个用户策略块(窗口中增加一个策略块图标),如图2-27所示,默认名称定义为“策略×”(×为区别各个策略块的数字代码)。在未做任何组态配置之前,运行策略窗口包括三个系统固有的策略块,新建的策略块只是一个空的结构框架,具体内容须由用户设置。
图2-27 新建用户策略块
在工作台的“运行策略”窗口页中,选中指定的策略块,单击工具条中的“属性”按钮( ),或执行“编辑”菜单中的“属性”命令,或单击鼠标右键选择“属性”命令,或按快捷键“Alt+Enter”,即可弹出如图2-28所示的“策略属性设置”对话框。
(1)策略名称:设置策略名称。
(2)策略内容注释:为策略添加文字说明。
对于系统固有的三个策略块,名称是专用的,不能修改,也不能被系统其他部分调用,只能在运行策略中使用。对于循环策略块,还需要设置循环时间或设置策略的运行时刻。
图2-28 “策略属性设置”对话框
策略行条件部分在运行策略中用来控制运行流程。在每一策略行内,只有当策略条件部分设定的条件成立时,系统才能对策略行中的策略构件进行操作。
通过对策略条件部分的组态,用户可以控制在什么时候、什么条件下、什么状态下,对实时数据库进行操作,对报警事件进行实时处理,打开或关闭指定的用户窗口,完成对系统运行流程的精确控制。
在策略块,每个策略行都有如图2-29所示的“表达式条件”对话框,用户在使用策略行时可以对策略行的条件进行设置(默认时表达式的条件为真)。
图2-29 “表达式条件”对话框
操作有如下几种方法。
(1)表达式:输入策略行条件表达式。
(2)条件设置:用于设置策略行条件表达式的值成立的方式。
(3)表达式的值非0时条件成立:当表达式的值非0时,条件成立,执行该策略。
(4)表达式的值为0时条件成立:当表达式的值为0时,执行该策略。
(5)表达式的值产生正跳变时条件成立一次:当表达式的值产生正跳变(值从0到1)时,执行一次该策略。
(6)表达式的值产生负跳变时条件成立一次:当表达式的值产生负跳变(值从1到0)时,执行一次该策略。
(7)内容注释:用于对策略行条件加以注释。