组态王报警存储与查询例程说明文档分析-共27页
组态王报警存储与查询例程说明文档分析

------------------------------------------------------------精品文档-------------------------------------------------------- 报警存储与查询例程说明文档北京亚控科技发展有限公司月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。
组态王短信报警例程说明

组态王短信报警使用参考文档北京亚控科技发展有限公司技术部目录一、功能概述 (4)一、功能概述 (4)二、工程实例 (4)三、操作步骤: (4)1、驱动程序介绍: (4)2、定义变量: (7)2.1) 定义设备: (7)2.2) 定义变量: (7)2.建立画面: (8)3.命令语言: (8)3.1) 自定义函数介绍: (8)3.2) 自定义函数命令语言: (10)4.运行系统: (12)四、注意事项 (13)图表图一报警设置画面 (8)图二自定义函数 (11)图三报警发送短信的自定义函数 (12)图四运行系统 (13)一、功能概述常规需求:很多工业现场要求报警发生后能够通过手机短信通知相关值班人员。
组态王中的实现方法:利用西门子的TC35短信模块,当报警发生后通过此模块发送报警信息。
二、工程实例以某工业现场应用为例,需要对采集的温度的高限报警、低限报警进行报警提示。
三、操作步骤:报警后发送手机短信必须借助于西门子的TC35模块,并且在TC35模块中放一张可以正常发送短信的手机卡。
组态王提供TC35的驱动程序,通过驱动程序控制手机短信的发送。
1、驱动程序介绍:本驱动支持组态王和西门子Siemens T35 Terminal设备之间进行通讯,发送、接收短信息。
组态王定义设备时请选择:智能模块->SIEMENS->TC35 Terminal地址设定:任意定义串口参数:波特率:9600 (19200、38500、可选)数据位:8停止位:1校验方式:无校验(奇校验、偶校验可选)寄存器说明说明:1.MsgNew,MsgNec,MsgNed字符串格式:eg: MsgNew0: <n>2002年9月5日来自xxxxx的消息: n为该短消息序号xxxxx为发送方号码MsgNec0: #####(短消息内容)注意:当短消息大于63个汉字(126个字符)时,组态王中只显示前63个汉字。
MsgNed保存63个之后的信息2.MsgOld,MsgInf字符串格式:eg: MsgOld0:<n>2002年9月5日来自xxxxx的消息: n为该短消息序号xxxxx为发送方号码MsgInf0: #####(短消息内容)注意:当短消息大于63个汉字(126个字符)时,组态王中只显示前63个汉字3.MsgSend,要发送的短消息内容,请不要大于63个汉字(126字符)的短消息,否则,组态王将只发送前63个汉字4.对于只写的参数,只要状态改变一次,就执行一次命令。
组态王和工业库数据存储与查询

组态王和工业库数据存储与查询例程说明文档此文档由北京亚控公司提供,如有疑问请致亚控技术支持工程师。
本文档主要介绍组态王和工业库KingHistorian之间的数据存储与查询。
一、 新建组态王工程步骤1:新建组态王工程。
工程名:组态王和工业库数据库存储与查询;步骤2:新建设备,关联亚控的仿真PLC设备。
设备名:仿真PLC;步骤3:新建变量。
变量名:test;变量类型:IO整数;连接设备:仿真PLC;寄存器:RADOM100;数据类型:short;记录和安全区:数据变化记录,变化灵敏0;二、 历史数据记录配置鼠标双击系统配置-历史数据记录,弹出如下图所示对话框。
组态王默认是把数据保存到组态王的历史库中,下面我们需要配置把历史记录保存到工业库KingHistorian中。
步骤1:单击历史库配置对话框的【配置可访问的工业库服务器】按钮,在弹出的工业库配置对话框中单击【添加】按钮,添加可访问的工业库。
本例程中:服务器:是工业库所在的电脑的IP地址,本例程组态王和工业库在一台电脑上;端口号:是默认的5678,与工业库的端口号设置一致即可;用户和密码:是默认的sa,与工业库设置一致即可。
添加完成后如下图所示:点击【连接测试】按钮,可测试与工业库的连接是否成功。
步骤2:在历史库配置对话框上勾选工业库服务器,则后面的【配置】按钮被激活,如下图所示。
步骤3:单击工业库服务器后面的【配置】按钮,弹出如下所示对话框。
点击【连接测试】按钮,如果弹出如下图所示对话框,说明组态王与工业库连接成功。
步骤4:在前缀名里加前缀KH,工程对应的组里输入CY,点击【开始】按钮,弹出“在工业库中建立变量过程完成!”的对话框,即把变量test添加到工业库中进行存储。
如下图是工业库的截图,变量test在工业库中存在于变量组CY中,变量名为KH_test。
三、 历史数据查询新建画面“test”,在画面上分别添加一个报表和按钮,在按钮弹起时写脚本: ReportSetHistData2(2,1);保存画面并运行组态王。
组态王软件详细教程第四讲报警和事件

组态王软件详细教程第四讲报警和事件第四报警和事件 1第四报报警和事件在本报程,您将,了解报警和事件口的作用窗,掌握报警和事件口报置方法窗,掌握行的报警和事件口的操作方法运窗报警和事件口的作用窗运行报警和事件报报是报控报控报件必不可少的功能~“报报王”提供了强有力的支持和报报的控制行报警和事件报报方法。
运报报王中的报警和事件主要包括报量报警事件、操作事件、用报登报事件和工作站事件。
通报报些报警和事件~用报可以方便地报报报报和报看系报的报警、操作和各工作站的行情。
报警和事件报个运况当生报~在报警中按照报置的报报件报报的报示出。
窗会条来报了分报报示报警事件~可以把报量分到不同的报警报~同报指定报警口中只报示所需的报警报划窗。
;注,报报曲报、报警口都是一报特殊的报量~有报量名和报量性等。
,窗属第四报警和事件 2报报曲报、报警口都是一报特殊的报量~有报量名和报量性等。
窗属报使报警口能报示报量的报警和事件信息~必报先做如下报置,窗内您定报报警报8 切报到工程报报器~在左报报报“报警报”~然后报右报的报报报入“报警报定报”报报。
双框8 在“报警报定报”报报中报报“修改”。
框è 在“修改报警报”报报中“框将RootNode”修改报“化工”。
厂8 报报“报”~报报“修改报警报”报报。
确框8报报“增加”按报~在“化工”报警报下再增加一分报“反报报报”。
厂个8 报报“报警报定报”报报的“报”按报。
报束报报警报的报置框确报置报量的报警定报性属报置报量“反报罐报力”的报警性。
属8 在工程报报器的左报报报“据报典”~在右报报报量名“反报罐报力”~报出“定报报量”报报。
数双框8 在“定报报量”报报中报报“报警定报”配置报~报出报报如下报,框框第四报警和事件 3 具报置如下,体低,10高,90报警报名 ,反报报报。
100报先报,8 报报“定”~报报此报报。
确框采用同报的方法定报“原料油液位”~“催化报液位” “成品油液位”的报警性。
组态王教学-报警存储与查询例程说明文档

常见问题解答北京亚控科技发展有限公司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列。
组态王对关系数据库的查询说明文档

组态王对关系数据库的查询例程说明文档目录1. 功能概述 (1)2. 工程实例 (1)3. 操作步骤 (1)3.1 数据库以及表 (1)3.2 设置ODBC数据源 (2)3.3 利用SQL函数进行查询 (5)3.4 利用KVADODBGrid控件进行查询 (11)4. 注意事项 (22)1. 功能概述常规需求:很多工业现场要求对关系数据库的数据根据不同的条件进行查询处理。
组态王中的实现方法:1)利用组态王的SQL函数实现对数据库的数据的查询处理。
2)利用组态王的KVADODBGrid控件实现对数据库的查询处理。
这两种实现方法的不同之处在于:第一种方式是将查询结果对应到组态王的变量上,可以通过组态王的变量进行相关的计算处理以及在命令语言中使用,但是如果符合条件的记录有许多条则无法同时看到所有的查询选择结果。
第二种方式是将查询结果显示到控件的表格中,可以看到所有符合条件的查询记录,并且可以另存为其他文件以及进行打印操作,还可以通过控件的属性、方法进行其他的处理。
2. 工程实例我们以上一个例程“组态王数据存储到外部数据库”中所存储的数据为例,上一个例程中我们把原料的生产厂家、原料编号、称量日期、称量时间,值班人员、原料重量的信息存到了Access数据库中,现在我们要求对存储的原料信息按照“称量日期”进行查询。
我们假设的前提是这个Access数据库已经存在,并且已经存数据在数据库中。
具体的存储数据到外部Access数据库的过程我们可以参考其他文档来实现。
下面就以此为例来演示完成这一需求的具体步骤。
3. 操作步骤3.1数据库以及表1)假设在工程文件夹中已经存在Access数据库,数据库为“数据.mdb”。
2)在数据库“数据.mdb”中有一个数据表:表的名称为:原料数据。
字段为:称量日期、称量时间、原料重量、原料厂家、原料编号、值班人员。
如下图一所示:原料重量为数字类型(单精度),其余为文本类型。
3)在数据库的原料数据表中已经存储了许多数据。
组态王报警例程文档讲解

报警系统应用例程说明文档此文档由北京亚控公司提供,仅作为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时,约束条件不成立,即产生报警事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
报警存储与查询例程说明文档北京亚控科技发展××公司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。
变量定义画面如下图一、图二所示:图一定义变量压力图二定义变量流量3.1.3定义报警我们首先定义报警组,在报警组处双击进行报警组对话框,点击“增加”定义两个报警组,分别为“压力报警”、“流量报警”,确认完成报警组的定义,如图三所示:图三报警组定义报警组定义完成后。
重新编辑变量的定义,在变量定义的“报警定义”选项中我们对这两个变量进行报警的定义。
压力变量定义报警组名为“压力报警”,设置报警限为高、高高限,限值分别为70,95。
流量变量定义报警组名为“流量报警”,设置报警限为低、高报警,报警限值分别为10,90。
定义报警画面如下图四、图五所示:图四压力变量报警定义图五流量变量报警定义3.1.4实时报警信息变量的报警就定义完成后,我们新建一个“实时报警”画面,在工具箱中选择报警窗口,然后在画面上完成报警窗口的制作,双击画面上的报警窗口,为报警窗口命名为“报警”,根据需要可以对报警窗口进行灵活的配置,详细的配置可以参考组态王手册或者组态王帮助,但是必须注意报警窗口的名字一定要填写,如果报警窗口没有名字,则此报警窗口无效。
在画面上制作两个按钮,分别为“画面切换”、“退出系统”。
命令语言如下:画面切换按钮:ShowPicture("报警查询");退出系统按钮:exit(0);报警窗口定义完成后,如果此时进入运行系统,则当出现报警后,报警信息会在报警窗口中出现。
需要注意的是,报警窗口显示的信息在计算机的内存中,如果组态王退出后再进入运行系统则原来的报警并不存在了,也就是说历史的报警信息并没有保存下来。
下面我们会详细讲解一下如何将报警信息进行保存以方便以后的查询。
3.2报警配置组态王报警配置主要分为三个配置选项:文件配置、数据库配置、打印配置。
文件配置主要是将报警信息存储到文件中,文件格式为*.al2 ,我们可以通过记事本打开此文件对存储的信息进行浏览,因为此存储格式浏览不是很方便,我们现在不推荐客户使用。
数据库配置是将报警信息存储到关系数据库中,如Access,SQLServer等,此方式浏览、查询比较方便,本文就是以数据库配置作为讲解的重点。
打印配置为报警信息的实时打印,需要注意的时打印配置选择的打印机必须为带字库的针式打印机。
下面我们主要以Access数据库为例讲解报警存储到数据库的使用配置。
3.2.1建立报警数据库在Access中新建一个空数据库,例如建立路径为:D:\ 报警存储与查询\报警数据库.mdb。
在此数据库中创建一个数据表:表的名称为:Alarm。
表的字段名称如下表,字段类型为文本类型。
为了方便客户使用,在组态王的安装盘中已经有一个已经做好的一个数据库文件,我们可以直接使用。
此文件在组态王的安装盘的路径为:Value Pack\报警窗数据库,文件名为:报警窗数据库.mdb 。
我们可以直接拷贝此文件到计算机的硬盘中直接使用。
需要注意的是光盘中的文件为“只读”属性,必须将“只读”属性去掉才可以。
3.2.2设置ODBC数据源组态王通过ODBC数据源将报警信息存储到数据库中,因此我们必须先建立ODBC 数据源。
在“控制面板”-“管理工具”-“ODBC数据源”中建立ODBC数据源,点击“ODBC数据源”弹出“ODBC数据源管理器”,如下图六所示:在“用户DSN”中点击“添加”,弹出“选择数据源驱动程序”窗口,如下图七所示:选择“Microsoft Access Driver (*.mdb)”驱动,点击“完成”。
弹出如图八所示窗口,填写ODBC数据源的名称,根据需要对数据源进行命名,如“报警”,点击“选择(S)”,如图九示,选择我们前面定义的数据库文件“D:\ 报警存储与查询\报警数据库.mdb”。
点击“确定”完成ODBC数据源的定义,如图十所示。
其他数据库如SQLServer的ODBC 定义请参考相关文档。
图六 ODBC数据源管理器图七选择数据源的驱动程序图八数据源定义图九选择数据库图十ODBC数据源定义3.2.3报警配置数据库以及ODBC数据源定义完成后,我们进行报警配置中的数据库配置。
双击组态王工程浏览器的“系统配置”中的“报警配置”,弹出如图十一的“报警配置”对话框。
选择“数据库配置”选项卡,如图十二所示:我们根据需要将“记录报警事件到数据库”打上勾,点击报警格式,根据实际情况对报警格式进行选择配置,需要注意的是默认的报警格式没有选择报警日期、事件日期,因此必须进行报警格式的配置。
图十一报警配置图十二数据库配置“报警格式”配置如图十三所示:需要注意的是:在6.52版本之前的报警格式配置中没有“数据库选项,分月保存报警数据表,以日期时间类型保存日期时间”选项。
6.52版本增加了此选项。
其中“分月保存报警数据表”选项如果选中,则保存报警信息的数据库中的数据表每月生成一个,并且无需建表,只需要建一个空的数据库即可。
采用分月保存的方式的优点在于:如果报警信息数据量比较大,分表存储可以提高查询的速度。
缺点在于:无法进行跨月的查询,在编写脚本进行查询时需要考虑查询的是那一个数据表。
本文我们还是按照报警信息存储到一个数据表的方式为例进行介绍,也就是说我们不选中“分月保存报警数据表”。
其他选项需要注意的就是数据长度要根据实际情况进行设置,并且选中“报警组名”,如果使用描述则“变量描述”也需要选中。
报警格式设置完成后,点击“确定”返回“数据库配置”画面,在数据源处选择我们前面定义的数据源“报警”。
如图十四所示:点击“确定”完成报警的配置。
图十三数据库配置图十四数据库配置3.3进入运行系统画面开发完成后保存画面,在工程浏览器的“系统设置”-“设置运行系统”-“主画面配置”中,将新建的画面设置为主画面。
确认后点击工程浏览器的“View”按钮切换到运行系统。
系统运行后会将“实时报警”画面打开,如下图十五所示:图十五实时报警当有报警产生后,会在报警画面中显示当前的报警信息,同时也会将报警信息存储到Access数据库中。
我们可以打开D:\ 报警存储与查询\报警数据库.mdb的数据库,打开“Alarm”表,如图十六所示:报警信息已经存储到数据库中。
图十六Alarm表3.4历史报警查询前面我们已经将报警存储到数据库中了,下面我们就介绍一下如何对存储到数据库中的报警进行查询。
我们根据日期、报警组为例进行报警的查询。
历史报警的查询主要是利用KVADODBGrid控件进行查询。
3.4.1创建KVADODBGrid控件在工程中新建画面“报警查询”,单击工具箱中的“插入通用控件”按钮则弹出“插入控件”对话框。
在“插入控件”对话框内选择“KVADODBGrid Class”控件,如图十七所示,在此画面中放入此控件。
双击此控件,为控件命名,控件名称可以根据需要确定,我们命名为“KV”。
图十七插入通用控件选择控件,单击右键,在弹出的菜单中选择“控件属性”。
弹出控件固有属性对话框,如下图十八所示。
点击“浏览”按钮弹出“数据链接属性”如图十九所示,选择“连接”选项卡,在“指定数据源”处选择“使用数据源名称”选项,通过下拉列表选择我们前面所定义的ODBC数据源“报警”,点击“确定”,返回图十八画面,“数据源”与“数据库”连接完成,下面进行数据表的配置。
图十八KV控件属性图十九数据链接属性在“表名称”处选择我们需要查询的数据表“Alarm”。
选择完成后,数据表的字段会显示在“有效字段”栏,我们可以将需要的字段添加到右边,在添加过程中可以对标题以及格式等进行相应的修改,如图二十所示:点击“确定”完成对KV控件的配置。
图二十KV控件配置配置完成后,同时按下键盘的“Ctrl”+“Alt”+“O”可以对控件的列宽进行设置,我们可以根据字段内容的多少设置合适的列宽以增加画面的美观程度。
设置完成后的画面如图二十一所示:图二十一运行系统画面3.4.2创建日历控件我们按照日期进行历史报警的查询,使用微软提供的通用控件“Microsoft Date and Time Picker Control ”,此控件在安装VB或者VC或者Office2019后会在通用控件中找到。
插入通过控件,如图二十二所示:选择后画到画面上,双击控件,在“常规”选项卡中为控件命名为“ADate”,点击“确定”,保存画面。
再次双击日历控件,选择“事件”选项卡,在“事件”选项卡中点击CloseUp事件,弹出控件事件函数编辑窗口,在函数声明中为此函数命名:CloseUp1();在编辑窗口中编写脚本程序,如图二十三所示:在编写脚本程序之前在数据词典中定义字符串变量“选择日期”,编写脚本程序如下:float Ayear;float Amonth;float Aday;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;图二十二日历控件图二十三控件事件函数编辑完成后点击“确认”,完成对日历控件的设置。