组态王报警存储与查询实例
组态王教学-报警存储与查询例程说明文档

常见问题解答北京亚控科技发展有限公司2009年8月目录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 组态王的历史记录属性中能够设置的定时记录最短时间是1分钟,如何实现1秒钟的定时记录功能? (2)1.9 在组态王中如何删除指定目录下的单个报表文件或多个报表文件? (2)1.10 如何打开组态王报表文件(*.rtl格式的文件)?能否使用其他应用程序打开? (3)1.11 能否对组态王报表控件中的行宽和列宽进行锁定? (3)1.12 在安装组态王的计算机A中能否读取另外一台安装组态王计算机B 上面的报表文件? (3)1.13 在组态王中实现以时分秒为文件名且每分钟保存一报表文件功能,当保存整点的报表时,指定文件夹内的文件名比实际时间少一个小时? (3)1.14 在组态王报表控件中对合并的单元格应如何计算它的行号和列号? 31.15 在组态王画面上如何得到指定变量在指定时间内的最大值、最小值和平均值? (3)1.16 使用组态王提供的kingreport.xls文件查询组态王历史数据,选择查询的工程后提示加载工程失败,为什么? (4)1.17 求报表中不为0的单元格数据的平均值? (4)1.18 为什么我使用ReportLoad()函数无法打开我使用ReportSaveas()函数保存的报表? (5)1.19 组态王的报表中如何实现报表数据的统计(如求和、求平均、检索最大最小值)? (5)1.20 组态王的报表能否直接保存成excel格式的文件,这样可以直接通过excel程序打开? (6)1.21 我使用组态王的报表控件制作工程报表,采用的ReportSetCellValue()来对报表控件进行后台填值操作,为什么当我显示报表时却是空白的? (6)1.22 在组态王运行系统中如何实现往报表单元格中插入数据? (6)1.23 组态王中扩展名为.rtl的文件是什么格式的文件?如何打开此类型的文件? (6)1.24 为什么在命令语言中使用报表函数却不执行? (7)2. 打印 (7)2.1 组态王软件对普通商业打印机的选择有什么要求? (7)2.2 组态王软件如何打印运行过程中的画面? (7)2.3 组态王软件的表格窗口的数据是如何进行打印输出的? (7)2.4 为什么用ReportPrint2()函数不能实现自动打印报表? (7)2.5 组态王软件的控件的数据是如何进行打印输出的? (8)2.6 在组态王中进行打印预览时,为什么不能进行打印方向的设置,如何解决? (8)1. 报表1.1组态王软件自带的报表窗口的行列设置限制是多少?组态王6.51及其以前版本,报表窗口的行列设置限制为2000行52列,对新版的组态王软件,报表窗口的行列设置限制有了改善,可以定义到20000行128列。
组态王报警存储与查询例程说明文档分析

------------------------------------------------------------精品文档-------------------------------------------------------- 报警存储与查询例程说明文档北京亚控科技发展有限公司月10年2018.“报警存储与查询”例程说明文档目录1. 功能概述 (1)2. 工程实例 (1)3. 操作步骤 (1)3.1 新建工程 (1)3.2 报警配置 (7)3.3 进入运行系统 (14)3.4 历史报警查询 (15)4. 注意事项 (25)i北京亚控科技发展有限公司.“报警存储与查询”例程说明文档1. 功能概述常规需求:很多工业现场要求将变量的报警信息进行存储,并且可以灵活的进行历史报警的查询、打印。
组态王中的实现方法:组态王支持通过ODBC接口将数据存储到关系数据库中,并且提供KV ADODBGrid控件对存储的历史报警信息进行条件查询,并可以对查询结果进行打印。
关系数据库可以为Access数据库或者SQLServer数据库。
2. 工程实例我们通过一个简单的工程对报警信息的存储以及历史报警信息的查询进行讲解。
历史报警的查询主要根据日期、报警组为条件进行查询。
报警信息存储的数据库以Access数据库为例进行。
下面就以此为例来演示完成这一现场需求的设置步骤。
3. 操作步骤3.1新建工程3.1.1定义设备新建一个工程,在设备处新建设备,我们在本例中定义一个仿真PLC的设备,设备列表为“PLC-亚控-仿真PLC-串口”,设备名称为“PLC1”。
此仿真PLC可以做为虚拟设备与组态王进行通讯。
仿真PLC主要有如下的寄存器:自动加1寄存器INCREA,自动减1寄存器DECREA,随机寄存器RADOM,常量寄存器STATIC,常量字符串寄存器STRING,CommErr寄存器。
具体的寄存器的使用请参考组态王IO驱动帮助。
组态王历史数据查询例程

组态王历史数据查询例程配置参考文档北京亚控科技发展有限公司技术部目录一、功能概述 (3)一、功能概述 (3)二、工程实例 (3)三、操作步骤: (3)1、定义设备: (3)2、定义变量: (3)3.制作画面: (4)3.1) 创建报表: (4)3.2) 命令语言: (5)4.进入运行系统: (10)四、注意事项 (14)图表图一报表 (4)图二报表设计 (5)图三历史数据报表 (5)图四快捷菜单 (6)图五按钮属性 (6)图六按钮属性 (6)图七动画连接 (7)图八选择函数 (8)图九命令语言 (8)图十打印报表 (9)图十一历史数据查询画面 (10)图十二报表属性 (11)图十三时间属性 (11)图十四变量属性 (12)图十五变量顺序设置 (12)图十六历史数据查询 (13)图十七报表打印 (14)一、功能概述常规需求:很多工业现场会存储数据并对存储的历史数据进行查询、打印输出。
历史数据查询一般为起始时间、结束时间、间隔时间都不固定,最终用户根据实际需要进行查询。
组态王中的实现方法:利用组态王内置报表以及报表的函数来实现对历史数据的查询。
组态王内置报表的操作类似excel,操作简单、方便,并且组态王提供了大量的报表函数来实现各种复杂功能。
二、工程实例我们举一个例子来说明日报表的实现方法。
在此例程中我们定义五个变量,分别为“压力”、“温度”、“密度”、“电流”、“电压”,运行系统运行后记录历史数据,查询日报表数据时自动从历史数据中查询整点数据生成报表,并可以保存、打印报表。
下面就以此为例来演示完成这一要求的具体步骤。
三、操作步骤:1、定义设备:根据工程中实际使用得设备进行定义,本例程使用亚控的仿真PLC设备,使用“PLC-亚控-仿真PLC-串口”驱动,定义设备名称为”PLC” 。
2、定义变量:在组态王中定义三个变量:压力(IO实数类型)、温度(IO实数类型)、密度(IO实数类型)。
压力变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器INCREA100,数据类型short,读写属性为只读,采集频率1000。
组态王历史报警查询

组态王历史报警查询第一步创建KVADODBGrid控件,插入通用控件,在插入通用控件内选择KV ADODBGrid Class 控件,如图定义控件属性在常规里面输入名字,与下边的按钮定义控件里与这里的名字相对应。
定义名字选择连接报警存储的数据库。
定义选择变量,注意在报表名称里面选择Alarm ,在报警格式—数据库选项里面不能选择分月保存报警数据表,因为表名称里面选择了Alarm 。
若选择了分月保存报警数据表测每月生成一个报表名称就对应不起来了。
编辑表格的大小时,首先按住Ctrl+Alt+O,不编辑了关闭当前画面就可以了第二步骤定义时间控件定义控件名字定义控件事件在CloseUp 里面定义的控件脚本string temp;Ayear=ADate.Year;Amonth=ADate.Month;Aday=ADate.Day;temp=StrFromInt(Ayear,10);if(Amonth<10)temp=temp+"/0"+StrFromInt(Amonth,10); elsetemp=temp+"/"+StrFromInt(Amonth,10);if(Aday<10)temp=temp+"/0"+StrFromInt(ADay,10); elsetemp=temp+"/"+StrFromInt(ADay,10);\\本站点\选择日期=temp;第三步骤定义按钮弹起时string whe;whe="AlarmDate='"+\\本站点\选择日期+"'";KV.Where=whe;KV.FetchData();KV.FetchEnd();注意特别注意:在报警配置属性里页里面—文件配置—报警格式里面报警日期、事件日期里选项一定要选择YYY/MM/DD格式不然读不出数据来。
组态王报警存储与查询例程说明文档分析-共27页

报警存储与查询例程说明文档北京亚控科技发展××公司2022年4月目录1. 功能概述 (1)2. 工程实例 (1)3. 操作步骤 (1)3.1 新建工程 (1)3.2 报警配置 (7)3.3 进入运行系统 (14)3.4 历史报警查询 (15)4. 注意事项 (25)1. 功能概述常规需求:很多工业现场要求将变量的报警信息进行存储,并且可以灵活的进行历史报警的查询、打印。
组态王中的实现方法:组态王支持通过ODBC接口将数据存储到关系数据库中,并且提供KVADODBGrid控件对存储的历史报警信息进行条件查询,并可以对查询结果进行打印。
关系数据库可以为Access数据库或者SQLServer数据库。
2. 工程实例我们通过一个简单的工程对报警信息的存储以及历史报警信息的查询进行讲解。
历史报警的查询主要根据日期、报警组为条件进行查询。
报警信息存储的数据库以Access 数据库为例进行。
下面就以此为例来演示完成这一现场需求的设置步骤。
3. 操作步骤3.1新建工程3.1.1定义设备新建一个工程,在设备处新建设备,我们在本例中定义一个仿真PLC的设备,设备列表为“PLC-亚控-仿真PLC-串口”,设备名称为“PLC1”。
此仿真PLC可以做为虚拟设备与组态王进行通讯。
仿真PLC主要有如下的寄存器:自动加1寄存器INCREA,自动减1寄存器DECREA,随机寄存器RADOM,常量寄存器STATIC,常量字符串寄存器STRING,CommErr寄存器。
具体的寄存器的使用请参考组态王IO驱动帮助。
3.1.2定义变量在数据词典中新建两个IO变量,变量名称分别为压力、流量,变量类型为IO实数,连接的设备为前面定义的仿真PLC设备“PLC1”,寄存器分别为INCREA100,DECREA100,数据类型为short,读写属性为“只读”。
这样压力变量就会从0开始自动加1,其变化范围是0到100,流量变量从100开始自动减1,其变化范围是0到100。
组态王报警例程文档讲解

报警系统应用例程说明文档此文档由北京亚控公司提供,仅作为KingSCADA3.0报警系统应用的使用参考,其中涉及内容的详细说明请参考KingSCADA3.0的使用说明或咨询技术支持工程师。
目录1. 概述 (1)2. 例程 (1)2.1 定义变量的报警属性 (1)2.2 报警配置 (3)2.3 报警显示 (6)2.4 报警查询 (12)2.5 报警窗的方法应用 (17)3. 注意事项 (18)1. 概述在工业控制系统中,当现场的数据超出正常范围时,系统应以报警的方式将其通知相关工作人员,工作人员接收到报警信息后会对报警做出相应的处理,所以报警系统在工业控制系统中是一个非常重要的组成部分。
KingSCADA3.0提供了强大的报警操作功能:包括报警存储功能、报警打印功能、报警显示功能、报警转发功能等等,下面将具体介绍每种功能的操作过程。
2. 例程2.1定义变量的报警属性在使用报警功能前,必须先要对变量的报警属性进行定义。
在开发系统“数据词典”中新建变量,本工程中我们以模拟量为例。
●变量名:temperature●变量类型:基本变量●数据类型:Mem Float●变量描述:温度●初始值:0●灵敏度:0●最小值:0●最大值:100变量temperature的报警属性如图1所示。
图1 变量temperatrue报警属性●变量名:pressure●变量类型:基本变量●数据类型:Mem Float●变量描述:压力●初始值:0●灵敏度:0●最小值:0●最大值:5变量pressure的报警属性如图2所示。
图2 变量temperatrue报警属性●变量名:alarmctrl●变量类型:基本变量●数据类型:内存离散●变量描述:报警约束●初始值:false报警约束是对变量报警的一种条件控制,可以通过关联一个离散变量对变量报警做一定的限制,当连接的离散量为1时,约束条件成立,即不产生报警事件;当连接的离散量为0时,约束条件不成立,即产生报警事件。
组态王报警解决方案
组态王报警解决方案解决问题:对于组态王应用中,比较特殊的报警功能要求,本方案展示以下两个功能的实现:一、 双击报警记录,执行指定功能二、 对报警记录进行数据库检索显示一、双击报警记录,执行指定功能功能说明:用户在报警窗口中双击一条报警记录,组态便执行指定的功能(比如显示指定画面)。
功能实现:通过报警预置自定义函数$System_xxxxAlarm,与变量的报警扩展域配合实现。
在组态王自定义函数中,有三个系统预置的报警自定义函数。
分别为实型变量报警事件($System_RealAlarm)、整型变量报警事件($System_LongAlarm)和离散型变量报警事件($System_DiscAlarm)预置自定义函数。
如果在配置报警窗的“操作属性”时,选择了“允许双击报警条”,则系统运行时双击报警事件报警条,会自动调用相应数据类型的函数。
在以上函数中,通过判断便可执行一段命令语言:if(nAction==1) //双击报警条{//执行命令语言}在变量的报警属性中,有扩展域1和扩展域2两个属性,在报警自定义函数中分别以dTag.ExtendFieldString1和dTag.ExtendFieldString2引用,可以代替字符串,比如使用在ShowPicture中。
与报警自定义函数配合,可以实现定制的功能。
举例:双击一条报警记录,显示指定画面。
1、新建报警用的变量A1,内存离散,扩展域1:报警变量1画面2、新建报警用的变量A2,内存离散,扩展域1:报警变量2画面3、新建画面:报警变量1画面,添加变量A1的值显示4、新建画面:报警变量2画面,添加变量A2的值显示5、新建画面:报警窗口,添加一个报警控件。
6、将以上3个画面都设为运行主画面7、设置报警控件为历史报警窗,选择需要显示的列,并在操作属性里选中“允许双击左键”8、在离散型变量的报警自定义函数$System_DiscAlarm中添加:If (nAction==1) {showPicture_(dTag.ExtendFieldStringl) ;}保存,运行工程,改变A1或A2的值,报警窗口中会出现相应记录。
组态软件基础及应用(组态王KingView)精品课件第五章 报警和事件系统
”
第 五 章 报警和事件系统
图5-7 报警窗口配置属性页
”
第 五 章 报警和事件系统
“列属性”主要配置报警窗口究竟显示哪些列,以及这些列的顺序,这就是所
谓的列属性。“操作属性”页可以设置“操作安全区”、“操作分类”、“允许报
警确认”、“显示工具条”以及“允许双击左键”;“条件属性”在运行期间可以
” 时,如果登录成功,则产生“登录成功”事件;如果登录失败或取消登录过程,则
产生“登录失败”事件;如果用户退出登录状态,则产生“注销”事件。 (3)“工作站事件”是指某个工作站站点上的组态王运行系统的启动和退出
事件,包括单机和网络。组态王运行系统启动,产生工作站启动事件;运行系统退 出,产生退出事件。
”
第 五 章 报警和事件系统
1. 报警缓冲区大小的定义 报警缓冲区是系统在内存中开辟的用户暂时存放系统产生的报警信息的空间, 其大小是可以设置的。在组态王工程浏览器中选择“系统配置→报警配置”,双击 后弹出“报警配置属性页”,在对话框的右上角为“报警缓冲区的大小”设置项, 如 图 5-5 所 示 , 报 警 缓 冲 区 大 小 设 置 值 按 存 储 的 信 息 条 数 计 算 , 值 的 范 围 为 1~10,000。报警缓冲区大小的设置直接影响着报警窗显示的信息条数。
组态王报警存储与查询实例
报警存储与历史报警查询配置参考文档北京亚控科技发展有限公司技术部目录一、功能概述 (4)一、功能概述 (4)二、工程实例 (4)三、操作步骤: (4)1、新建工程: (4)1.1) 定义设备: (4)1.2) 定义变量: (4)1.3) 定义报警: (6)1.4) 实时报警信息: (6)2、报警配置: (8)2.1)建立报警数据库: (8)2.2) 设置ODBC数据源: (9)2.3) 报警配置: (11)3、进入运行系统: (14)4、历史报警查询: (15)4.1)创建KVADODBGrid控件: (15)4.2)创建日历控件: (18)4.3)编辑其他画面: (20)5、进入运行系统: (21)四、注意事项 (22)图表图一定义变量压力 (5)图二定义变量流量 (5)图三报警组定义 (6)图四压力变量报警定义 (7)图五流量变量报警定义 (7)图六 ODBC数据源管理器 (9)图七 选择数据源的驱动程序 (10)图八数据源定义 (10)图九选择数据库 (10)图十 ODBC数据源定义 (11)图十一报警配置 (11)图十二数据库配置 (12)图十三数据库配置 (13)图十四数据库配置 (13)图十五实时报警 (14)图十六 Alarm表 (14)图十七插入通用控件 (15)图十八 KV控件属性 (16)图十九数据链接属性 (17)图二十KV控件配置 (18)图二十一运行系统画面 (18)图二十二日历控件 (19)图二十三控件事件函数 (20)图二十四报警查询 (21)图二十五历史报警查询 (22)一、功能概述常规需求:很多工业现场要求将变量的报警信息进行存储,并且可以灵活的进行历史报警的查询、打印。
组态王中的实现方法:组态王支持通过ODBC接口将数据存储到关系数据库中,并且提供KV ADODBGrid控件对存储的历史报警信息进行条件查询,并可以对查询结果进行打印。
关系数据库可以为Access数据库或者SQLServer数据库。
组态王应用——组态王对关系数据库的查询
组态王对关系数据库的查询配置参考文档北京亚控科技发展有限公司技术部目录一、功能概述 (3)一、功能概述 (3)二、工程实例 (3)三、操作步骤: (3)1、数据库以及表: (3)2、设置ODBC数据源: (3)3.利用SQL函数进行查询: (7)3.1) 定义变量: (7)3.2) 定义记录体: (7)3.3) 建立组态王与数据库的关联: (7)3.4) 查询数据库: (9)3.5) 进入运行系统: (11)4.利用KV ADODBG RID控件进行查询: (11)4.1) KVADODBGrid控件的介绍: (11)4.2) KVADODBGrid控件的使用: (12)4.3) 进入运行系统: (17)四、注意事项 (17)图表图一原料数据表 (4)图二 ODBC数据源管理器 (5)图三选择数据源的驱动程序 (5)图四数据源定义 (6)图五选择数据库 (6)图六 ODBC数据源定义 (6)图七定义记录体 (7)图八建立与数据库的连接 (8)图九断开与数据库的连接 (9)图十组态王画面 (10)图十一运行系统画面 (11)图十二插入通用控件 (12)图十三 KV控件属性 (13)图十四数据链接属性 (14)图十五KV控件配置 (14)图十六KV控件 (15)图十七KV控件 (16)图十八 KV ADODBGrid控件查询画面 (16)图十九 KV ADODBGrid控件运行画面 (17)一、功能概述常规需求:很多工业现场要求对关系数据库的数据根据不同的条件进行查询处理。
组态王中的实现方法:1、利用组态王的SQL函数实现对数据库的数据的查询处理。
2、利用组态王的KV ADODBGrid控件实现对数据库的查询处理。
这两种实现方法的不同之处在于:第一种方式是将查询结果对应到组态王的变量上,可以通过组态王的变量进行相关的计算处理以及在命令语言中使用,但是如果符合条件的记录有许多条则无法同时看到所有的查询选择结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报警存储与历史报警查询配置参考文档北京亚控科技发展有限公司技术部目录一、功能概述 (4)一、功能概述 (4)二、工程实例 (4)三、操作步骤: (4)1、新建工程: (4)1.1) 定义设备: (4)1.2) 定义变量: (4)1.3) 定义报警: (6)1.4) 实时报警信息: (6)2、报警配置: (8)2.1)建立报警数据库: (8)2.2) 设置ODBC数据源: (9)2.3) 报警配置: (11)3、进入运行系统: (14)4、历史报警查询: (15)4.1)创建KVADODBGrid控件: (15)4.2)创建日历控件: (18)4.3)编辑其他画面: (20)5、进入运行系统: (21)四、注意事项 (22)图表图一定义变量压力 (5)图二定义变量流量 (5)图三报警组定义 (6)图四压力变量报警定义 (7)图五流量变量报警定义 (7)图六 ODBC数据源管理器 (9)图七 选择数据源的驱动程序 (10)图八数据源定义 (10)图九选择数据库 (10)图十 ODBC数据源定义 (11)图十一报警配置 (11)图十二数据库配置 (12)图十三数据库配置 (13)图十四数据库配置 (13)图十五实时报警 (14)图十六 Alarm表 (14)图十七插入通用控件 (15)图十八 KV控件属性 (16)图十九数据链接属性 (17)图二十KV控件配置 (18)图二十一运行系统画面 (18)图二十二日历控件 (19)图二十三控件事件函数 (20)图二十四报警查询 (21)图二十五历史报警查询 (22)一、功能概述常规需求:很多工业现场要求将变量的报警信息进行存储,并且可以灵活的进行历史报警的查询、打印。
组态王中的实现方法:组态王支持通过ODBC接口将数据存储到关系数据库中,并且提供KV ADODBGrid控件对存储的历史报警信息进行条件查询,并可以对查询结果进行打印。
关系数据库可以为Access数据库或者SQLServer数据库。
二、工程实例我们通过一个简单的工程对报警信息的存储以及历史报警信息的查询进行讲解。
历史报警的查询主要根据日期、报警组为条件进行查询。
报警信息存储的数据库以Access数据库为例进行。
下面就以此为例来演示完成这一现场需求的设置步骤。
三、操作步骤:1、新建工程:1.1) 定义设备:新建一个工程,在设备处新建设备,我们在本例中定义一个仿真PLC的设备,设备列表为“PLC-亚控-仿真PLC-串口”,设备名称为“PLC1”。
此仿真PLC可以做为虚拟设备与组态王进行通讯。
仿真PLC主要有如下的寄存器:自动加1寄存器INCREA,自动减1寄存器DECREA,随机寄存器RADOM,常量寄存器 STATIC,常量字符串寄存器STRING,CommErr寄存器。
具体的寄存器的使用请参考组态王IO驱动帮助。
1.2) 定义变量:在数据词典中新建两个IO变量,变量名称分别为压力、流量,变量类型为IO实数,连接的设备为前面定义的仿真PLC设备“PLC1”,寄存器分别为INCREA100,DECREA100,数据类型为short,读写属性为“只读”。
这样压力变量就会从0开始自动加1,其变化范围是0到100,流量变量从100开始自动减1,其变化范围是0到100。
变量定义画面如下图一、图二所示:图一定义变量压力图二定义变量流量1.3) 定义报警:我们首先定义报警组,在报警组处双击进行报警组对话框,点击“增加”定义两个报警组,分别为“压力报警”、“流量报警”,确认完成报警组的定义,如图三所示:图三报警组定义报警组定义完成后。
重新编辑变量的定义,在变量定义的“报警定义”选项中我们对这两个变量进行报警的定义。
压力变量定义报警组名为“压力报警”,设置报警限为高、高高限,限值分别为70,95。
流量变量定义报警组名为“流量报警”,设置报警限为低、高报警,报警限值分别为10,90。
定义报警画面如下图四、图五所示:1.4) 实时报警信息:变量的报警就定义完成后,我们新建一个“实时报警”画面,在工具箱中选择报警窗口,然后在画面上完成报警窗口的制作,双击画面上的报警窗口,为报警窗口命名为“报警”,根据需要可以对报警窗口进行灵活的配置,详细的配置可以参考组态王手册或者组态王帮助,但是必须注意报警窗口的名字一定要填写,如果报警窗口没有名字,则此报警窗口无效。
在画面上制作两个按钮,分别为“画面切换”、“退出系统”。
命令语言如下:画面切换按钮:ShowPicture("报警查询");退出系统按钮:exit(0);图四压力变量报警定义图五流量变量报警定义报警窗口定义完成后,如果此时进入运行系统,则当出现报警后,报警信息会在报警窗口中出现。
需要注意的是,报警窗口显示的信息在计算机的内存中,如果组态王退出后再进入运行系统则原来的报警并不存在了,也就是说历史的报警信息并没有保存下来。
下面我们会详细讲解一下如何将报警信息进行保存以方便以后的查询。
2、报警配置:组态王报警配置主要分为三个配置选项:文件配置、数据库配置、打印配置。
文件配置主要是将报警信息存储到文件中,文件格式为 *.al2 ,我们可以通过记事本打开此文件对存储的信息进行浏览,因为此存储格式浏览不是很方便,我们现在不推荐客户使用。
数据库配置是将报警信息存储到关系数据库中,如Access,SQLServer等,此方式浏览、查询比较方便,本文就是以数据库配置作为讲解的重点。
打印配置为报警信息的实时打印,需要注意的时打印配置选择的打印机必须为带字库的针式打印机。
下面我们主要以Access数据库为例讲解报警存储到数据库的使用配置。
2.1)建立报警数据库:在Access中新建一个空数据库,例如建立路径为:D:\报警存储与查询\报警数据库.mdb。
在此数据库中创建一个数据表:表的名称为:Alarm。
表的字段名称如下表,字段类型为文本·类型。
字段名称说明AlarmDate 报警日期AlarmTime 报警时间VarName 变量名GroupName 报警组名AlarmValue 报警值LimitValue 限值AlarmType 报警类型Pri 优先级Quality 质量位AcrDate 事件日期AcrTime 事件时间OperatorName 操作员名VarComment 变量描述ResumeValue 恢复值EventType 事件类型MachineName 工作站名称IOServerName 报警服务器名称为了方便客户使用,在组态王的安装盘中已经有一个已经做好的一个数据库文件,我们可以直接使用。
此文件在组态王的安装盘的路径为:Value Pack\报警窗数据库,文件名为:报警窗数据库.mdb 。
我们可以直接拷贝此文件到计算机的硬盘中直接使用。
需要注意的是光盘中的文件为“只读”属性,必须将“只读”属性去掉才可以。
2.2) 设置ODBC 数据源:组态王通过ODBC 数据源将报警信息存储到数据库中,因此我们必须先建立ODBC 数据源。
在“控制面板”-----“管理工具”----“ODBC 数据源” 中建立ODBC 数据源,点击“ODBC 数据源”弹出“ODBC 数据源管理器”,如下图六所示:在“用户DSN ”中点击“添加”,弹出“选择数据源驱动程序”窗口,如下图七所示:选择“Microsoft Access Driver (*.mdb)”驱动,点击“完成”。
弹出如图八所示窗口,填写ODBC 数据源的名称,根据需要对数据源进行命名,如“报警”,点击“选择(S)”,如图九示,选择我们前面定义的数据库文件“D:\ 报警存储与查询\报警数据库.mdb ”。
点击“确定”完成ODBC 数据源的定义,如图十所示。
其他数据库如SQLServer 的ODBC 定义请参考相关文档。
图六 ODBC 数据源管理器没有Microsoft Access Driver ,打开目录:“C:\Windows\SysWOW64”,双击该目录下的“odbcad32.exe ”文件,就进去ODBC 数据源管理界面了图七 选择数据源的驱动程序图八数据源定义图九选择数据库图十 ODBC数据源定义2.3) 报警配置:数据库以及ODBC数据源定义完成后,我们进行报警配置中的数据库配置。
双击组态王工程浏览器的“系统配置”中的“报警配置”,弹出如图十一的“报警配置”对话框。
选择“数据库配置”选项卡,如图十二所示:我们根据需要将“记录报警事件到数据库”打上勾,点击报警格式,根据实际情况对报警格式进行选择配置,需要注意的是默认的报警格式没有选择报警日期、事件日期,因此必须进行报警格式的配置。
图十一报警配置图十二数据库配置“报警格式”配置如图十三所示:需要注意的是:在6.52版本之前的报警格式配置中没有“数据库选项,分月保存报警数据表,以日期时间类型保存日期时间”选项。
6.52版本增加了此选项。
其中“分月保存报警数据表”选项如果选中,则保存报警信息的数据库中的数据表每月生成一个,并且无需建表,只需要建一个空的数据库即可。
采用分月保存的方式的优点在于:如果报警信息数据量比较大,分表存储可以提高查询的速度。
缺点在于:无法进行跨月的查询,在编写脚本进行查询时需要考虑查询的是那一个数据表。
本文我们还是按照报警信息存储到一个数据表的方式为例进行介绍,也就是说我们不选中“分月保存报警数据表”。
其他选项需要注意的就是数据长度要根据实际情况进行设置,并且选中“报警组名”,如果使用描述则“变量描述”也需要选中。
报警格式设置完成后,点击“确定”返回“数据库配置”画面,在数据源处选择我们前面定义的数据源“报警”。
如图十四所示:点击“确定”完成报警的配置。
图十三数据库配置图十四数据库配置3、进入运行系统:画面开发完成后保存画面,在工程浏览器的“系统设置”-“设置运行系统”-“主画面配置”中,将新建的画面设置为主画面。
确认后点击工程浏览器的“View”按钮切换到运行系统。
系统运行后会将“实时报警”画面打开,如下图十五所示:图十五实时报警当有报警产生后,会在报警画面中显示当前的报警信息,同时也会将报警信息存储到Access数据库中。
我们可以打开D:\报警存储与查询\报警数据库.mdb的数据库,打开“Alarm”表,如图十六所示:报警信息已经存储到数据库中。
图十六 Alarm表4、历史报警查询:前面我们已经将报警存储到数据库中了,下面我们就介绍一下如何对存储到数据库中的报警进行查询。
我们根据日期、报警组为例进行报警的查询。
历史报警的查询主要是利用KV ADODBGrid控件进行查询。
4.1)创建KVADODBGrid控件:在工程中新建画面“报警查询”,单击工具箱中的“插入通用控件”按钮则弹出“插入控件”对话框。