3.1 运行策略
运行策略是指对监控系统的运行流程进行控制的方法和条件,它能够对系统执行某项操作和实现某种功能进行有条件的约束。运行策略由多个复杂的功能模块组成,称为“策略块”,用来完成对系统运行流程的自由控制,使系统能按照设定的顺序和条件操作实时数据库,控制用户窗口的打开、关闭及控制设备构件的工作状态等,从而实现对系统工作过程的精确控制及有序的调度管理。
运行策略本身是系统提供的一个框架,其内部放置了由策略条件构件和策略构件组成的“策略行”。通过对运行策略的定义,系统能够按照设定的顺序和条件操作实时数据库,控制用户窗口的打开、关闭,并确定设备构件的工作状态等,从而实现对外部设备工作过程的精确控制。
MCGS为用户提供了进行策略组态的专用窗口和工具箱。
3.1.1 运行策略的类型
根据运行策略的不同作用和功能,MCGS把运行策略分为启动策略、退出策略、循环策略、报警策略、事件策略、热键策略、用户策略7种。每种策略都由一系列功能模块组成。
MCGS运行策略窗口中的“启动策略”“退出策略”“循环策略”为系统固有的3个策略块,其余的则由用户根据需要自行定义,每个策略都有自己的专用名称。MCGS系统的各个部分通过策略的名称来对策略进行调用和处理。
1.启动策略
启动策略在MCGS进入运行时首先由系统自动调用执行一次。一般在该策略中完成系统初始化功能,如给特定的数据对象赋不同的初始值、调用硬件设备的初始化程序等,具体需要何种处理,由用户组态设置。
2.退出策略
退出策略在MCGS退出运行前由系统自动调用执行一次。一般在该策略中完成系统善后处理功能,例如,可在退出时把系统当前的运行状态记录下来,以便下次启动时恢复本次的工作状态。
3.循环策略
在运行过程中,循环策略由系统按照设定的循环周期自动循环调用,循环体内所需执行的操作由用户设置。由于该策略块由系统循环扫描执行,故可把大多数关于流程控制的任务放在此策略块内处理,系统按先后顺序扫描所有的策略行,如果策略行的条件成立,则处理策略行中的功能块。在每个循环周期内,系统都进行一次上述处理工作。
4.报警策略
报警策略由用户在组态时创建,当指定数据对象的某种报警状态产生时,报警策略被系统自动调用一次。
5.事件策略
事件策略由用户在组态时创建,当对应表达式的某种事件状态产生时,事件策略被系统自动调用一次。
6.热键策略
热键策略由用户在组态时创建,当用户按下对应的快捷键时执行一次。
7.用户策略
用户策略是用户自定义的功能模块,根据需要可以定义多个,分别用来完成各自不同的任务。系统不能自动调用用户策略,需要在组态时指定调用用户策略的对象。
3.1.2 创建运行策略
在工作台窗口的“运行策略”选项卡中,单击“新建策略”按钮,选择策略类型为“用户策略”,即可新建一个用户策略块(窗口中增加一个策略块图标),如图3-1所示。
图3-1 新建用户策略块
策略块的默认名称为“策略×”(×为区别各个策略块的数字代码)。在未做任何组态配置之前,“运行策略”选项卡包括3个系统固有的策略块,新建的策略块只是一个空的结构框架,具体内容须由用户设置。
3.1.3 设置策略属性
在工作台窗口“运行策略”选项卡中,选中新建的“策略1”,单击“策略属性”按钮即可弹出图3-2所示的“策略属性设置”对话框。
1)策略名称:用于设置策略名称。
图3-2 用户策略属性设置
2)策略内容注释:为策略添加文字说明。
系统固有的3个策略块,名称是专用的,不能修改,也不能被系统其他部分调用,只能在运行策略中使用。对于循环策略块,还需要设置循环时间或设置策略的运行时刻。
3.1.4 策略行条件部分
策略行条件部分在运行策略中用来控制运行流程。在每一策略行内,只有当策略条件部分设定的条件成立时,系统才能对策略行中的策略构件进行操作。
通过对策略行条件部分的组态,用户可以控制在什么时候、什么条件下和什么状态下,对实时数据库进行操作,对报警事件进行实时处理,打开或关闭指定的用户窗口,完成对系统运行流程的精确控制。
在策略块中,每一策略行都有图3-3所示的“表达式条件”对话框,用户在使用策略行时可以对策略行的条件进行设置(系统默认表达式的条件为真)。
图3-3 “表达式条件”对话框
表达式:输入策略行条件表达式。
条件设置:用于设置策略行条件表达式的值成立的方式。
1)表达式的值非0时条件成立:当表达式的值为非0时,条件成立,执行该策略。
2)表达式的值为0时条件成立:当表达式的值为0时,执行该策略。
3)表达式的值产生正跳变时条件成立一次:当表达式的值产生正跳变(值从0~1)时,执行一次该策略。
4)表达式的值产生负跳变时条件成立一次:当表达式的值产生负跳变(值从1~0)时,执行一次该策略。
内容注释:对策略行条件加以注释。
3.1.5 策略构件
MCGS中的策略构件以功能块的形式来完成对实时数据库的操作、用户窗口的控制等功能,它充分利用面向对象的技术,把大量的复杂操作和处理封装在构件的内部。提供给用户的只是构件的属性和操作方法,用户只需在策略构件的属性对话框中正确设置属性值和选定构件的操作方法,就可满足大多数工程项目的需要。对于复杂的工程,只需定制所需的策略构件,然后将它们加入到系统中即可。
在传统的运行策略组态概念中,系统给用户提供了大量烦琐的模块,让用户利用这些模块来组态自己的运行策略,即使是非常简单的系统也要耗费大量的时间,这种组态只是比编程语言更图形化和直观化而已,对普通用户来说,难度和工作量仍然很大。
在MCGS运行策略组态环境中,一个策略构件就是一个完整的功能实体,用户要完成的不是“搭制”,而是真正地组态。在构件属性对话框内,正确地设置各项内容(像填表一样),就可完成所需的工作。同时,由于MCGS为用户提供了创建运行策略的良好构架,因此用户可以比较容易地将自己编制的功能模块以构件的形式装入系统设立的策略工具箱内,以便在组态运行策略块时调用。随着MCGS的广泛应用和不断发展,越来越多的功能强大的构件会不断地加入到系统中来。
目前,MCGS策略工具箱为用户提供了如下几种最基本的策略构件。
1)策略调用构件:调用指定的用户策略。
2)数据对象构件:用于数据值读、写、存盘和报警处理。
3)设备操作构件:执行指定的设备命令。
4)退出策略构件:用于中断并退出所在的运行策略块。
5)脚本程序构件:执行用户编制的脚本程序。
6)音响输出构件:播放指定的声音文件。
7)定时器构件:用于定时。
8)计数器构件:用于计数。
9)窗口操作构件:打开、关闭、隐藏和打印用户窗口。
10)EXCEL报表输出:将历史存盘数据以Excel文件形式输出,可对Excel文件进行显示、处理、打印和修改等操作。
11)报警信息浏览:对报警存盘数据进行显示。
12)存盘数据复制:将历史存盘数据转移或复制到指定的数据库或文本文件中。
13)存盘数据浏览:对历史存盘数据进行数据显示、打印。
14)存盘数据提取:对历史存盘数据进行统计处理。
15)配方操作处理:对配料参数等进行配方操作。
16)设置时间范围:设置操作的时间范围。
17)修改数据库:对实时数据存盘对象、历史数据库进行修改、添加和删除。