北京亚控科技发展有限公司
2009年9月
“报警与打印”常见问题解答
目 录
1. 报警配置 ................................................................................................................ 1 1.1 请问组态王软件的变量报警限配置能否提供运行时在线修改,这样方便现场操作人员根据现场情况能够随时调整报警设置? ..................................... 1 1.2 请问组态王软件的变量报警能否提供运行时在线屏蔽,这样当现场某个设备人为停掉时可以手动屏蔽此设备变量的报警? ......................................... 1
1.3 在组态王中能否禁止报警的产生? .......................................................... 1 1.4 使用历史报警窗口查询历史报警信息,当组态王退出后,就查询不到了,为何?该如何处理? ......................................................................................... 1 1.5 报警产生后,如何判断属于哪个报警组,并根据不同报警组显示不同的提示信息? ............................................................................................................. 1 1.6 组态王中通过远程站点的方式实现网络通讯时,在客户端无法查询到服务器端的报警信息? ............................................................................................... 2 1.7 在组态王中定义了一个报警点,当报警发生时,为什么在报警窗口中没有显示? ................................................................................................................... 2 1.8 组态王往报警数据库存数据时,数据库字段的长度已经设置足够长了,但是对于某些字段只能存7/8个字符,为什么? .................................................. 2 1.9 当某报警点发生报警时播放一段声音,期间当报警恢复时声音也随之消失,在组态王中应如何实现? ............................................................................. 3 1.10 在组态王运行环境中能否动态修改变量的报警组及报警窗口的报警组? ............................................................................................................................. 3
1.11 在组态王中定义报警属性时,报警文本限制的字符个数是多少? .... 3 1.12 在组态王工程浏览器中双击\"报警配置\"选项,弹出提示信息\"打开alarm.cfg文件失败\",应如何解决? ....................................................................... 3 1.13 组态王的变量可以通过报警域AlarmEnable控制变量是否可以报警,有没有可以控制所有变量报警使能的功能? ......................................................... 3
1.14 组态王能否获得某个报警组当前的报警变量的数量? ........................ 4 1.15 报警设置为开关量的关断报警,运行时开关量是关闭的,报警窗口没有输出报警信息? ....................................................................................................... 4 2. 报警打印 ................................................................................................................ 4
2.1 组态王软件的实时报警自动打印功能是如何实现的? .......................... 4
北京亚控科技发展有限公司 i
“报警与打印”常见问题解答
2.2 组态王软件实现实时报警自动打印功能时,对打印机有什么要求? .. 4 2.3 组态王软件实现实时报警自动打印功能时,打印机输出的内容如何配置? ............................................................................................................................. 5
2.4 组态王是否支持报警网络打印? .............................................................. 5 2.5 使用组态王报警实时打印功能时,在运行时能否控制打印机的打印或停止? ......................................................................................................................... 5 3. 报警存储 ................................................................................................................ 6 3.1 我的工程中使用了组态王安装光盘提供的ACCESS报警数据库,并按使用手册说明进行了报警配置,为什么报警信息还是无法存储? ..................... 6 3.2 我的工程中使用了ACCESS报警数据库,发现报警数据库中记录的报警变量名称等不全,只能显示7个字符,如何解决? ......................................... 6
3.3 报警信息保存到数据库后如何进行查询? .............................................. 6 3.4 使用组态王提供的报警数据库实现报警记录存储时,报警日期格式默认为08-06-17,如何修改为我需要的格式? .................................................... 6
3.5 在组态王中如何实现将登陆用户的操作信息记录下来? ...................... 6 3.6 组态王的报警文件能够生成,但是某些变量的历史报警信息无法存储到文件中,为什么? ................................................................................................. 7 4. 报警输出 ................................................................................................................ 7
4.1 请问组态王软件都能提供什么报警输出方式? ...................................... 7 4.2 请问组态王软件的声音报警输出方式是如何实现的? .......................... 7 4.3 请问组态王软件的短信报警输出方式是如何实现的? .......................... 7 4.4 请问组态王软件的EMAIL报警输出方式是如何实现的? ................... 8 4.5 请问组态王软件的电话语音报警输出方式是如何实现的? .................. 8 4.6 请问组态王软件的变化率报警是如何实现的? ...................................... 8 4.7 用PlaySound()函数做声音报警时选用同步与异步播放有什么区别? . 8 4.8 请问组态王的报警信息如何能够提取出来赋值给单独的变量以供其他操作使用? ................................................................................................................. 8
4.9 在组态王中如何实现语音报警? .............................................................. 9 4.10 组态王的报警信息输出有哪几种方式?分别是什么? ........................ 9 4.11 在组态王中如何实现当两个报警同时产生时,同时播放两段不同的声
北京亚控科技发展有限公司 ii
“报警与打印”常见问题解答
音? ........................................................................................................................... 10 4.12 组态王报警窗口中的操作员列,在报警信息产生时,为什么显示不出相关信息来? ........................................................................................................... 10
4.13 在组态王中获得某个报警组当前的报警变量的数量? ...................... 10 4.14 组态王的实时报警窗口当报警恢复后报警信息自动消失,是否可以设定报警消失条件?比如:报警恢复时消失或报警确认时消失? ....................... 10
北京亚控科技发展有限公司 iii
“报警与打印”常见问题解答
1. 报警配置
1.1 请问组态王软件的变量报警限配置能否提供运行时在线修改,这样方便现场操作人员根据现场情况能够随时调整报警设置?
组态王软件的变量的域中提供了关于报警限的配置,通过对这些域的操作即可实现在运行状态下对报警信息的动态查询。具体使用说明请参照组态王的使用手册报警部分。 1.2 请问组态王软件的变量报警能否提供运行时在线屏蔽,这样当现场某个设备人为停掉时可以手动屏蔽此设备变量的报警?
组态王软件的变量的域中提供了关于报警使能AlarmEnable,通过对这些域的操作即可实现在运行状态下对报警信息的动态查询。具体使用说明请参照组态王的使用手册报警部分。
1.3 在组态王中能否禁止报警的产生?
可以,通过组态王提供的.AlarmEnable报警域来实现: .AlarmEnable:表示变量的报警使能状态,可读写。
当.AlarmEnable置0时,变量即使满足报警条件也不会产生报警; 当.AlarmEnable置1时,变量才会产生报警; .AlarmEnable默认值为1。 调用格式:报警点.AlarmEnable=1;
1.4 使用历史报警窗口查询历史报警信息,当组态王退出后,就查询不到了,为何?该如何处理?
组态王提供的历史报警窗口只能够查询组态王连续运行期间的历史报警信息,组态王一旦退出后将无法查询退出前的历史报警信息了。要想实现查询所有的报警信息,可以通过组态王提供的报警数据库功能,通过ODBC的方式将报警信息存放到外部数据库中,然后使用KVADODBGrid控件查询所有的报警信息。具体配置过程请参考组态王相关帮助文档。
1.5 报警产生后,如何判断属于哪个报警组,并根据不同报警组显示不同的提示信息?
实现过程如下:
北京亚控科技发展有限公司 1
“报警与打印”常见问题解答
1)在组态王数据词典中添加两个变量: 变量名:sGroupName变量类型:内存字符串 变量名:infostr 变量类型:内存字符串
2)在自定义函数命令语言中选择整型自定义函数→双击,在弹出的对话框中输入如下命令语言: sGroupName=GetGroupName(\" \if (nEvent==0) {
if (sGroupName应车间\") infostr=\"反应车间报警组\"; if (sGroupName==\"炼钢车间\") infostr=\"炼钢车间报警组\"; }
3)新建一画面,在画面上添加文本框,连接infostr变量;
1.6 组态王中通过远程站点的方式实现网络通讯时,在客户端无法查询到服务器端的报警信息?
通过远程站点实现网络通讯时,要想在客户端查询到服务器端的报警信息,首先要在服务器端的\"节点类型\"选项卡中将本机配置成报警服务器 ,然后在客户端的\"客户配置\"选项卡中配置此计算机为报警服务器的客户。
1.7 在组态王中定义了一个报警点,当报警发生时,为什么在报警窗口中没有显示?
请检查一下此变量的报警组和报警窗口的报警组是不是设置为同一个报警组。 1.8 组态王往报警数据库存数据时,数据库字段的长度已经设置足够长了,但是对于某些字段只能存7/8个字符,为什么?
在组态王报警配置-->数据库配置-->报警格式设置对话框中,变量名、报警组名等字段默认的字符长度是7个或8个,所以往数据库中保存数据时只能存7/8个字符,可以适当地修改此处的设置(设置范围是:1~31个字符),即可解决数据库存储问题。
北京亚控科技发展有限公司 2
“报警与打印”常见问题解答
1.9 当某报警点发生报警时播放一段声音,期间当报警恢复时声音也随之消失,在组态王中应如何实现?
实现过程如下:
1)新建一事件命令语言,输入如下命令: 事件描述:\\\\本站点\\报警变量.Alarm==1 PlaySound2(\"E:\\个人文件\\music\\china.wav\2)另建一事件命令语言,输入如下命令: \\\\本站点\\报警变量.Alarm==0
PlaySound2(\"E:\\个人文件\\music\\china.wav\
1.10 在组态王运行环境中能否动态修改变量的报警组及报警窗口的报警组?
变量的报警组和报警窗口的报警组都是使用Group域来表示,通过Group域可以得到变量所属的报警组的ID,是不能进行动态修改的,而通过Group域可以改变报警窗口的报警组,调用格式:报警窗口.Group=第一车间。
其中:第一车间是在开发环境中定义好的报警组名称。 1.11 在组态王中定义报警属性时,报警文本限制的字符个数是多少?
最多是15个字符。
1.12 在组态王工程浏览器中双击\"报警配置\"选项,弹出提示信息\"打开alarm.cfg文件失败\",应如何解决?
到工程路径下将alarm.cfg文件删除即可。
1.13 组态王的变量可以通过报警域AlarmEnable控制变量是否可以报警,有没有可以控
制所有变量报警使能的功能?
有,在组态王6.53版本(开发版65.30.2003.17246,运行版65.30.2003.17369)中增加了这个功能。
全局报警使能函数:EnableAllAlarm(is_enable); 参数描述:
m_is_enable 整数变量或数值。0--禁止所有报警,非0--使能所有报警。
北京亚控科技发展有限公司 3
“报警与打印”常见问题解答
返回值:整数型,反映当前全局报警使能的状态:若为非0:使能;为0:禁止。 1.14 组态王能否获得某个报警组当前的报警变量的数量?
可以,在组态王6.53版本(开发版65.30.2003.17246,运行版65.30.2003.17369)中增加了这个功能。
报警组当前报警变量数量函数:long GetAlarmNumInGroup(\"MachineName\\"GroupName\");
该函数实现对某一个报警组当前的报警变量数量进行统计的功能。 参数说明:
MachineName:报警组所在的站点名称(对于单机网络,使用时用空字符串代替) GroupName:要获取报警变量个数的报警组名 返回值:整型
特别说明:对于网络节点,需要把“本机为报警服务器”钩上,才能正确获取到远程节点的报警变量个数。
1.15 报警设置为开关量的关断报警,运行时开关量是关闭的,报警窗口没有输出报警信息?
开关量状态报警时,如果设置为关断报警,初始值设为1,运行组态王后才能正常发出关断状态报警。
2. 报警打印
2.1 组态王软件的实时报警自动打印功能是如何实现的?
实时报警自动打印功能是组态王软件在系统配置中通过配置实现的,不需要用户做编程。具体的配置方式为:
在组态王的工程浏览器中双击报警配置,在弹出的属性页中选择打印配置,然后钩选你要的打印选项即可。
2.2 组态王软件实现实时报警自动打印功能时,对打印机有什么要求?
实时报警自动打印是组态王将实时报警信息直接送到打印端口(如LPT1)输出打印,而不是调用WINDOWS系统的打印接口,因此要求打印机必须有硬件字库的支持。如果没有字库,则打印可能是乱码。现在市场上的针式打印机(如EPSON LQ1600K系
北京亚控科技发展有限公司 4
“报警与打印”常见问题解答
列、LQ1900等)就具有这种硬字库。
2.3 组态王软件实现实时报警自动打印功能时,打印机输出的内容如何配置?
在报警配置属性页的打印配置页中,当用户钩选了指定输出的信息如:报警打印后,用户就可以在“报警格式”中根据现场的需要钩选需要打印输出的信息了。 2.4 组态王是否支持报警网络打印?
支持,在组态王6.53版本(开发版65.30.2003.17246,运行版65.30.2003.17369)中提供了这个功能。
打开工程浏览器,在其目录显示区中单击系统配置→双击打印配置,在弹出的打印配置窗口中进行打印机的设置。这种设置方法能支持报警网路打印。
2.5 使用组态王报警实时打印功能时,在运行时能否控制打印机的打印或停止? 可以,在组态王6.53版本(开发版65.30.2003.17246,运行版65.30.2003.17369)中提供了这个功能。
报警实时打印功能主要是通过函数BOOL SetPrintAlarm(BOOL bitset)来实现的。 参数描述:
bitset:bool类型,为1时则停止报警打印,为0开始报警打印。
返回值为bool类型,能反映设置后的打印状态,为1时则停止报警打印,为0开始报警打印。
注:此函数只有当配置了报警配置中的报警打印后才能起作用。
北京亚控科技发展有限公司 5
“报警与打印”常见问题解答
3. 报警存储
3.1 我的工程中使用了组态王安装光盘提供的ACCESS报警数据库,并按使用手册说明进行了报警配置,为什么报警信息还是无法存储?
请注意,光盘上的文件的默认读写属性是只读,因此用户在从光盘上拷贝了此数据库到计算机后,必须将此文件的读写属性改为读写才能正常使用。
3.2 我的工程中使用了ACCESS报警数据库,发现报警数据库中记录的报警变量名称等不全,只能显示7个字符,如何解决?
在报警配置属性页的报警格式中每个字段都设定了预定长度,如果用户的变量名等超过了这个预定的长度,数据库就会出现记录不全的情况,用户可以通过将这个预定的长度改大一些解决。
3.3 报警信息保存到数据库后如何进行查询?
用户通过报警配置可以选择报警信息的保存方式:保持到文件、保存到数据库。对于保存到文件的报警信息,用户可以直接采用记事本打开浏览,但无法进行条件查询。
对于保存到关系数据库中的报警信息,一般使用KVADODBGrid控件来实现报警信息的条件查询。
3.4 使用组态王提供的报警数据库实现报警记录存储时,报警日期格式默认为08-06-17,如何修改为我需要的格式?
进行如下设置后即可实现所需的日期格式:
1)在组态王工程浏览器中双击报警配置→在弹出的报警配置属性页中选择数据库配置选项卡→将记录报警事件到数据库选项选中→单击此选项后面的报警格式按钮→在弹出的报警格式对话框中设置所需要的日期格式;
2)打开系统的控制面板→双击区域和语言选项→在弹出的对话框中设置所需要的日期格式;
3.5 在组态王中如何实现将登陆用户的操作信息记录下来?
使用组态王提供的报警数据库的功能来实现,具体实现过程如下:
1)将组态王安装盘中Value Pack\\报警窗数据库\\报警窗数据库.mdb的文件拷贝到本机的硬盘中,并将此文件的“只读”属性去掉;
北京亚控科技发展有限公司 6
“报警与打印”常见问题解答
2)在控制面板→管理工具→数据源(ODBC)中建立ODBC数据源,在数据源中连接报警窗数据库.mdb数据库(具体配置过程请参考组态王帮助文档);
3)在组态王工程浏览器中双击报警配置选项→选择数据库配置选项卡→选中记录操作事件到数据库后,在数据源编辑框中选择第二步建立的数据源;
4)组态王工程运行时,登陆用户的操作记录会自动保存到报警窗数据库.mdb文件中的Operate表格中;
3.6 组态王的报警文件能够生成,但是某些变量的历史报警信息无法存储到文件中,为什么?
请检查如下设置是否正确:
组态王系统配置-->报警配置-->报警配置属性页-->文件配置选项卡中的“记录报警事件到文件”选项是否选中,并且变量的报警优先级要大于等于此窗口中的报警优先级(报警优先级为1~999,数字越小优先级越高)。
4. 报警输出
4.1 请问组态王软件都能提供什么报警输出方式?
组态王能够提供的报警输出方式包括: 报警窗口输出;
声音报警(需要计算机配置有蜂鸣器、声卡、警号等发声设备);
短信报警(需要用户配置有短信模块设备如 SIMENS TC35等组态王提供了其驱动程序);
电话报警(需要用户配置有外置型的MODEM,组态王提供了MODEM的拨号驱动); 4.2 请问组态王软件的声音报警输出方式是如何实现的?
组态王的声音报警是通过调用函数PlaySound()或者Beep控件的函数来实现的。用户需要通过编写程序比如事件命令语言,在报警事件发生时调用这些函数即可。目前PlaySound()函数只支持WAV格式的音频文件,其他格式的音频文件暂不支持。 4.3 请问组态王软件的短信报警输出方式是如何实现的?
组态王的短信报警需要短信模块的支持比如SIEMENS的TC35通信模块。组态王软件是通过软件检测到报警信息后调用TC35模块的驱动程序将报警发送到此模块来实
北京亚控科技发展有限公司 7
“报警与打印”常见问题解答
现的。
4.4 请问组态王软件的EMAIL报警输出方式是如何实现的?
组态王的EMAIL报警需要网络的支持,组态王软件是通过软件检测到报警信息后调用EMAIL驱动程序将报警发送到此模块来实现的。 4.5 请问组态王软件的电话语音报警输出方式是如何实现的?
组态王的电话语音报警需要modem设备的支持,,组态王软件是通过调用组态王开发的语音拨号驱动程序将报警通过modem发送到其他电话的。
播放的语音是用户录制的WAV文件,此种WAV文件必须音频的要求为PCM, 2000
或NT下必须 8000 Hz、16 位、单声,否则有可能无法播放出声音。
4.6 请问组态王软件的变化率报警是如何实现的?
变化率报警是组态王的模拟量值在固定时间内的变化超过一定量时产生的报警。 变化率的时间单位有三种:秒、分和时。变化率报警利用如下公式计算:((变量的当前值 - 变量上一次的值)*100)* 单位对应的值/((这一次产生值的时间-上一次产生值的时间)* (最大值 - 最小值)(注:如果是秒,为1;如果是分,为60,如果是时,为3600))取其整数部分的绝对值做为结果,若计算结果大于定义的变化率的值,则出现报警。
4.7 用PlaySound()函数做声音报警时选用同步与异步播放有什么区别?
如果用“同步”方式,当前播放的声音文件不会被第二次播放的声音文件所中止,只有第一次播放的声音完毕后才播第二个声音文件。
如果是“异步”方式,先后播放不同的声音文件,那么即使第一次播的声音没有完成,第二次将覆盖第一次的声音文件。
因此除非特殊地情况,一般建议选用异步播放方式。
4.8 请问组态王的报警信息如何能够提取出来赋值给单独的变量以供其他操作使用? 组态王的报警信息默认显示在组态王的报警窗口中,为了实现用户能够使用变量读取这些报警信息,组态王提供了一个专门的报警转发控件KvAlmWinEv Control。使用此控件,用户可以方便的将希望取出的报警信息赋值给一组变量来处理。有关此控件的使用请参与详细的使用手册。
北京亚控科技发展有限公司 8
“报警与打印”常见问题解答
4.9 在组态王中如何实现语音报警?
$新报警变量是组态王提供的一个系统变量,主要表示当前系统中是否有新的报警产生,当系统中有新报警产生时,该变量能够被自动置为1,(但需要注意的是,该变量不能被自动清0,需要用人为将其清0),通常情况下可以利用此变量来实现语音报警,具体实现如下所示:
打开组态王事件命令语言对话框, 事件描述:\\\\本站点\\$新报警==1;
发生时:PlaySound2(“c:\\声音文件.wav”, 1, 0); \\\\本站点\\$新报警=0;
上述报警设置适用于发生任何报警都播放同一个声音文件的情况,对于不同的报警信息播放不同的声音文件的设置如下:
.Alarm:是变量的报警域,表示变量当前是否处于报警状态。变量处于正常状态时,域的值为0;变量处于报警状态时,无论是否被确认,域的值为1。
在组态王中新建事件命令语言1,打开命令语言对话框, 事件描述:\\\\本站点\\报警变量1.Alarm==1; 发生时: PlaySound2(“c:\\声音文件1.wav”, 1, 0); 在组态王中新建事件命令语言2,打开命令语言对话框, 事件描述:\\\\本站点\\报警变量2.Alarm==1; 发生时: PlaySound2(“c:\\声音文件2.wav”, 1, 0); 以此类推,新建事件命令语言3、4......。
注:PlaySound2函数通过安装了Windows wave形式音频设备驱动器的机器播放声音,声音为wav文件,PlaySound2函数的具体使用请参考函数手册。 4.10 组态王的报警信息输出有哪几种方式?分别是什么?
组态王的报警信息输出有如下三种方式:
1)组态王提供的文件输出(文件格式为.al2),此文件可以通过记事本打开; 2)外部数据库输出,可将报警信息存储到外部数据库中; 3)实时打印输出,要求使用针式打印机,且打印机要安装字库。
北京亚控科技发展有限公司 9
“报警与打印”常见问题解答
4.11 在组态王中如何实现当两个报警同时产生时,同时播放两段不同的声音? 需要计算机上安装两块声卡,使用组态王提供的PlaySound2()函数来实现,调用格式:
PlaySound2(\"E:\\个人文件\\music\\china.wav\PlaySound2(\"E:\\个人文件\\music\\china1.wav\
4.12 组态王报警窗口中的操作员列,在报警信息产生时,为什么显示不出相关信息来?
当报警发生时在报警窗口中的操作员列不会显示任何信息,只有报警确认后,才会在操作员列中显示是哪个用户确认了报警信息。如果没有任何用户登录的话,默认是“无”。
4.13 在组态王中获得某个报警组当前的报警变量的数量?
组态王6.53 2008版本新增加了GetAlarmNumInGroup函数,通过此函数可以获得某个报警组当前的报警变量的数量,使用方法如下:
long GetAlarmNumInGroup(MachineName, GroupName) 参数 描述
MachineName 报警组所在的站点名称 roupName 要获取报警变量个数的报警组名 返回值: 整型
特别说明:对于网络工程,需要把“本机为报警服务器”勾上,才能正确获取到远程节点的报警变量个数;
对于单机工程,MachineName参数为空即可; 调用方法如下:
\\\\本站点\\报警数量返回值=GetAlarmNumInGroup(\"\车间1\"); 需要更新文件。
4.14 组态王的实时报警窗口当报警恢复后报警信息自动消失,是否可以设定报警消失条件?比如:报警恢复时消失或报警确认时消失?
若将报警窗口设置为实时报警窗口,当其处于运行状态,待报警信号恢复后,其对应的报警信息也会自动消失,如果用户希望对报警信息进行保留,则可借助函数void SetAlarmWinDis(long nSet);
北京亚控科技发展有限公司 10
“报警与打印”常见问题解答
参数说明:nSet=1:恢复+确认
非1:恢复
默认还是报警恢复即报警消失;
报警恢复+报警确认:既显示报警事件又显示报警恢复事件。
需要更新组态王6.53版本(开发版65.30.2003.17246,运行版65.30.2003.17369)。
北京亚控科技发展有限公司 11
因篇幅问题不能全部显示,请点此查看更多更全内容