组态王的烤漆房监控系统的设计
页”对话框,如图6-2所示,首先显示的是通用属性页。在该页中有一个“实时报警窗”和“历史报警窗”的选项,选择当前报警窗是哪一个类型。如果选择“实时报警窗”,则当前窗口将成为实时报警窗口;否则,如果选择“历史报警窗”,则当前窗口将成为历史报警窗口。实时和历史报警窗口的配置选项大多数相同。
(4)报警窗口名:定义报警窗口在数据库中的变量登记名。此报警窗口变量名可在为操作报警窗口建立的命令语言连接程序中使用。报警窗口名的定义应该符合组态王变量的命名规则。图中报警窗口名的定义为“历史报警”。
(5)单击报警窗口配置属性页中的“列属性”标签,设置报警窗口的列属性。
(6)在组态王工程浏览器“数据库散据词典”中新建一个变量或选择一个原有变量双击它,在弹出的’‘定义变量”对话框上选择’服警定义”属性页,如图6-3所示。
(7)报警“确认”按钮按下时的命令语言程序为Ack ( RootNode) , RootNode为报警组名;PgDn按钮,按下时的命令语言程序为PageDown(历史报警,14); PgUP按钮,按下时的命令语言程序为PageUp(历史报警,14);打印按钮,按下时的命令语言程序为Print Window(“历史报警”,0,0,0,10,10)。
图6-3 报警定义属性页
6.1.2 历史报警函数
Ack函数此函数常和按钮连接,当发生报警时,用此函数进行报警确认,它
组态王的烤漆房监控系统的设计
将产生确认报警事件。调用格式:
Ack(报警组名)或Ack(变量名); PageUp 函数
用于报警窗口信息的向后翻页显示。其调用格式:PugeUp(报警窗口名,翻页行数)。
报警是指当系统中某些量的值超过了所规定的界限时,系统自动产生相应警告信息,表明该量的值已经超限,提醒操作人员。如炼油厂的油品储罐,当往罐中输油时,如果没有规定油位的上限,系统就产生不了报警,无法有效提醒操作人员,则有可能会造成“冒罐”,形成危险。有了报警,就可以提示操作人员注意。报警允许操作人员应答。
离散量有两种状态:1、0。离散型变量的报警有三种状态: (1)1状态报警:变量的值由0变为1时产生报警。 (2)0状态报警:变量的值由1变为0时产生报警。
(3)状态变化报警:变量的值由0变为1或由1变为0时都产生报警。 模拟量主要是指整型变量和实型变量,包括内存型和I/O型。模拟型变量的报警类型主要有3种:越限报警、偏差报警和变化率报警。对于越限报警和偏差报警可以定义报警延时和报警死区。
组态王中报警和时间的处理方法是:当报警和事件发生时,组态王把这些信息存于内存中的缓冲区中,报警和事件在缓冲区中是以先进先出的队列形式存储的,所以只有最近的报警和事件在内存中。当缓冲区达到指定数目或记录定时时间到时,系统自动将报警和事件信息存进记录。报警的记录可以是文本文件、开放式数据库或打印机。另外,用户可以从人机界面提供的报警窗口中查看报警和事件信息。
组态王除了可以将界面发布为Web页面,使用户通过IE浏览器来访问现场的动态界面、实时数据信息、查询历史数据外,还提供了短信和E-mail功能。这两个功能以通用驱动程序的方式提供,使用方便。使用任意一个或两个功能,组态王就可以自动将需要的特定数据或报警信息,通过手机短信或电子邮件的方式发送给指定的用户。
使用手机短信功能时,用户需要向硬件厂商购买一个手机模块,另外需要一个手机卡,这样在此基础上构成了一个手机。目前组态王支持与西门子Siemens T35 Terminal设备之间短信息的发送、接收,设备中数据以短信息的形式传输。
组态王可以通过E-mail的方式向外发送较简单的邮件(不超过256个字符)。使用本功能之前,保证要发送邮件的主机已经连接到了局域网或广域网上。本地不需要特别的设置。
组态王的烤漆房监控系统的设计
6.2 实时报警界面制作 6.2.1 实时报警界面
在工程浏览器左侧的树型视图中选择“界面”,在右侧视图中双击“新建”,新建产生一幅名为“实时报警”的界面,如图6-4所示。
图6-4 实时报警的界面
文本“系统报警!”,红色,系统报警时文字显示闪动,在“动画连接”对话框中单击“闪烁”按钮,弹出对话框。输入闪烁的条件表达式“$ 新报警==1”,当此条件表达式的值为真时,图形对象开始闪烁。表达式的值为假时闪烁自动停止。单击“?”按钮可以查看已定义的变量名和变量域,如图6-5所示。
“$ 新报警==1”变量是组态王的一个系统变量,主要表示当前系统中是否有新的报警产生。当系统中无论有何种类型的新报警产生时,该变量被自动置为1。但需要注意的是,该变量不能被自动清0,需要用户人为地将其清0。
图6-5 文本“系统报警!”动画连接对话
确认”按钮按下时的命令语言程序为: Ack(RootNode);
PlaySound(“c:\\Sirenl.wav”, 0) C1osePicture(\实时报警\;
组态王的烤漆房监控系统的设计
P1aySound函数
此函数通过Windows的声音设备(若已安装)播放声音,声音为wav文件。调用格式:PlaySound (SoundName, Flags)。
参数及其描述:
SoundName代表要播放的声音文件的字符串或字符串变量
Flag可为下述之一:0-停止播放声音;1-同步播放声音;2-异步播放声音;3-重复播放声音直到下次调用PIaySound ( )函数为止。
实时报警界面为报警时自动弹出窗口,在工程浏览器中选择命令语言—数据改变命令语言,在浏览器右侧双击“新建”,弹出数据改变命令语言编辑器,如6-6所示。数据改变命令语言触发的条件:“\\\\本站点\\$新报警”变量或变量的域的值发生了变化。
图6-6 “数据改变命令语言”编辑器
输入命令语言:
ShowPicture(“实时报警”) PlaySound(“ c:\\Siren1.wav”,3); alarm_flag = 1; PlaySound函数
此函数通过Windows的声音设备(若以安装)播放声音,声音为WAV文件。
组态王的烤漆房监控系统的设计
调用格式:PlaySound(SoundName,Flags);
参数及其描述:
SoundName代表要播放的声音文件的字符串或字符串变量
Flag可为下述之一:0-停止播放声音;1-同步播放声音;2-异步播放声音;3-重复播放声音直到下次调用PIaySound ( )函数为止。
6.2.2 报警灯动画的制作
报警时报警灯旋转并播放声音,报警灯旋转动画采用6个报警灯在不同时间显示或隐含来实现,如图6-7所示。
在“动画连接”对话框中单击“隐含”按钮,弹出对话框,表达式为真时,被连接对象是显示。表达式依次为:
alarm_timer= =4&&alarm_flag= =1 alarm_timer= =3&&alarm_flag= =1 alarm_timer= =2&&alarm_flag= =1 alarm_timer= =1&&alarm_flag= =1 alarm_timer= =0&&alarm_flag= =1 \\\\本站点\\$新报警
图6-7 动画连接“隐含连接”对话框
alarm_timer为内存整型变量,在0~10之间自动变化,实现方法:在工程浏览器的目录显示区,选择“文件”|“命令语言”|“应用程序命令语言”,则在右边的内容显示区出现“请双击这儿进人<应用程序命令语言>对话框” 图标,如图6-8所示。
输人运行时,每100ms命令语言: