组态王报警存储与查询例程说明文档分析.docx

上传人:b****8 文档编号:23704986 上传时间:2023-05-20 格式:DOCX 页数:29 大小:367.78KB
下载 相关 举报
组态王报警存储与查询例程说明文档分析.docx_第1页
第1页 / 共29页
组态王报警存储与查询例程说明文档分析.docx_第2页
第2页 / 共29页
组态王报警存储与查询例程说明文档分析.docx_第3页
第3页 / 共29页
组态王报警存储与查询例程说明文档分析.docx_第4页
第4页 / 共29页
组态王报警存储与查询例程说明文档分析.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

组态王报警存储与查询例程说明文档分析.docx

《组态王报警存储与查询例程说明文档分析.docx》由会员分享,可在线阅读,更多相关《组态王报警存储与查询例程说明文档分析.docx(29页珍藏版)》请在冰豆网上搜索。

组态王报警存储与查询例程说明文档分析.docx

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

报警存储与查询

例程说明文档

北京亚控科技发展有限公司月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接口将数据存储到关系数据库中,并且提供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。

变量定义画面如下图一、图二所示:

1

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

定义变量压力图一

2

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

定义变量流量图二

3.1.3定义报警我们首先定义报警组,在报警组处双击进行报警组对话框,点击“增加”定义两个报警组,分别为“压力报警”、“流量报警”,确认完成报警组的定义,如图三所示:

3

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

报警组定义图三

报警组定义完成后。

重新编辑变量的定义,在变量定义的“报警定义”选项中我们对这两个变量进行报警的定义。

压力变量定义报警组名为“压力报警”,设置报警限为。

流量变量定义报警组名为“流量报警”,设置报警限95高、高高限,限值分别为70,。

定义报警画面如下图四、图五所示:

10,90为低、高报警,报警限值分别为

4

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

压力变量报警定义图四

5

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

流量变量报警定义图五3.1.4实时报警信息画面,在工具箱中选择报警“实时报警”变量的报警就定义完成后,我们新建一个窗口,然后在画面上完成报警窗口的制作,双击画面上的报警窗口,为报警窗口命名为“报警”,根据需要可以对报警窗口进行灵活的配置,详细的配置可以参考组态王手册或者组态王帮助,但是必须注意报警窗口的名字一定要填写,如果报警窗口没有名字,则此报警窗口无效。

在画面上制作两个按钮,分别为“画面切换”、“退出系统”。

命令语言如下:

);报警查询画面切换按钮:

桓睯楐瑣牵?

exit(0);

退出系统按钮:

报警窗口定义完成后,如果此时进入运行系统,则当出现报警后,报警信息会在报警窗口中出现。

需要注意的是,报警窗口显示的信息在计算机的内存中,如果组态王退出后再进入运行系统则原来的报警并不存在了,也就是说历史的报警信息并没有保存下来。

下面我们会详细讲解一下如何将报警信息进行保存以方便以后的查询。

6

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

3.2报警配置

组态王报警配置主要分为三个配置选项:

文件配置、数据库配置、打印配置。

文件配置主要是将报警信息存储到文件中,文件格式为*.al2,我们可以通过记事本打开此文件对存储的信息进行浏览,因为此存储格式浏览不是很方便,我们现在不推荐客户使用。

数据库配置是将报警信息存储到关系数据库中,如Access,SQLServer等,此方式浏览、查询比较方便,本文就是以数据库配置作为讲解的重点。

打印配置为报警信息的实时打印,需要注意的时打印配置选择的打印机必须为带字库的针式打印机。

下面我们主要以Access数据库为例讲解报警存储到数据库的使用配置。

3.2.1建立报警数据库

在Access中新建一个空数据库,例如建立路径为:

D:

\报警存储与查询\报警数据库.mdb。

在此数据库中创建一个数据表:

表的名称为:

Alarm。

表的字段名称如下表,字段类型为文本类型。

字段名说

报警日AlarmDate

报警时AlarmTime

变量VarName

报警组名GroupName

报警值AlarmValue

限值LimitValue

报警类型AlarmType

优先级Pri

质量位Quality

事件日期AcrDate

事件时间AcrTime

操作员名OperatorName

变量描述VarComment

恢复值ResumeValue

事件类型EventType

7

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

工作站名MachineName

报警服务器名IOServerName

为了方便客户使用,在组态王的安装盘中已经有一个已经做好的一个数据库文件,报警窗数据库,文Pack\我们可以直接使用。

此文件在组态王的安装盘的路径为:

Value

需我们可以直接拷贝此文件到计算机的硬盘中直接使用。

.mdb。

件名为:

报警窗数据库要注意的是光盘中的文件为“只读”属性,必须将“只读”属性去掉才可以。

3.2.2数据源设置ODBCODBC因此我们必须先建立ODBC数据源将报警信息存储到数据库中,组态王通过数据源。

数据源,点击中建立ODBC在“控制面板”-“管理工具”-“ODBC数据源”

ODBC数据源管理器”,如下图六所示:

“ODBC数据源”弹出“”中点击“添加”,弹出“选择数据源驱动程序”窗口,如下图七所在“用户DSN”驱动,点击“完成”。

弹出如图八所示窗口,示:

选择“MicrosoftAccessDriver(*.mdb),(S)”,点击“选择填写ODBC数据源的名称,根据需要对数据源进行命名,如“报警””。

.mdb报警存储与查询\报警数据库D:

\如图九示,选择我们前面定义的数据库文件“ODBC的如图十所示。

其他数据库如SQLServer点击“确定”完成ODBC数据源的定义,定义请参考相关文档。

8

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

数据源管理器图六ODBC

图七选择数据源的驱动程序

9

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

数据源定义图八

图九选择数据库

10

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

数据源定义图十ODBC3.2.3报警配置双击组我们进行报警配置中的数据库配置。

数据库以及ODBC数据源定义完成后,态王工程浏览器的“系统配置”中的“报警配置”,弹出如图十一的“报警配置”对话框。

选择“数据库配置”选项卡,如图十二所示:

我们根据需要将“记录报警事件到数据库”打上勾,点击报警格式,根据实际情况对报警格式进行选择配置,需要注意的是默认的报警格式没有选择报警日期、事件日期,因此必须进行报警格式的配置。

11

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

报警配置图十一

图十二数据库配置版本之前的报警格式配置“报警格式”配置如图十三所示:

需要注意的是:

在6.526.52分月保存报警数据表,以日期时间类型保存日期时间”选项。

中没有“数据库选项,版本增加了此选项。

其中“分月保存报警数据表”选项如果选中,则保存报警信息的数

12

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

据库中的数据表每月生成一个,并且无需建表,只需要建一个空的数据库即可。

采用分月保存的方式的优点在于:

如果报警信息数据量比较大,分表存储可以提高查询的速度。

缺点在于:

无法进行跨月的查询,在编写脚本进行查询时需要考虑查询的是那一个数据表。

本文我们还是按照报警信息存储到一个数据表的方式为例进行介绍,也就是说我们不选中“分月保存报警数据表”。

其他选项需要注意的就是数据长度要根据实际情况进行设置,并且选中“报警组名”,如果使用描述则“变量描述”也需要选中。

报警格式设置完成后,点击“确定”返回“数据库配置”画面,在数据源处选择我们前面定义的数据源“报警”。

如图十四所示:

点击“确定”完成报警的配置。

数据库配置图十三

13

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

数据库配置图十四进入运行系统3.3

“主-“系统设置”-“设置运行系统”画面开发完成后保存画面,在工程浏览器的”按钮切View画面配置”中,将新建的画面设置为主画面。

确认后点击工程浏览器的“换到运行系统。

系统运行后会将“实时报警”画面打开,如下图十五所示:

14

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

实时报警图十五当有报警产生后,会在报警画面中显示当前的报警信息,同时也会将报警信息存储的数据库,打报警数据库.mdbD:

\报警存储与查询\到Access数据库中。

我们可以打开Alarm”表,如图十六所示:

报警信息已经存储到数据库中。

开“

Alarm表图十六3.4历史报警查询前面我们已经将报警存储到数据库中了,下面我们就介绍一下如何对存储到数据库中的报警进行查询。

我们根据日期、报警组为例进行报警的查询。

历史报警的查询主要是利用KVADODBGrid控件进行查询。

15

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

3.4.1创建KVADODBGrid控件

在工程中新建画面“报警查询”,单击工具箱中的“插入通用控件”按钮则弹出“插入控件”对话框。

在“插入控件”对话框内选择“KVADODBGridClass”控件,如图十七所示,在此画面中放入此控件。

双击此控件,为控件命名,控件名称可以根据需要确定,我们命名为“KV”。

插入通用控件图十七

选择控件,单击右键,在弹出的菜单中选择“控件属性”。

弹出控件固有属性对话框,如下图十八所示。

点击“浏览”按钮弹出“数据链接属性”如图十九所示,选择“连接”选项卡,在“指定数据源”处选择“使用数据源名称”选项,通过下拉列表选择我们前面所定义的数据源“报警”,点击“确定”,返回图十八画面,“数据源”与“数据库”连ODBC接完成,下面进行数据表的配置。

16

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

控件属性图十八KV

17

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

数据链接属性图十九

”。

选择完成后,数据表的字Alarm在“表名称”处选择我们需要查询的数据表“段会显示在“有效字段”栏,我们可以将需要的字段添加到右边,在添加过程中可以对控件的配置。

标题以及格式等进行相应的修改,如图二十所示:

点击“确定”完成对KV

18

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

KV控件配置图二十

”可以对控件的列宽进行设”+“O配置完成后,同时按下键盘的“Ctrl”+“Alt置,我们可以根据字段内容的多少设置合适的列宽以增加画面的美观程度。

设置完成后的画面如图二十一所示:

运行系统画面图二十一

3.4.2创建日历控件Dateand我们按照日期进行历史报警的查询,使用微软提供的通用控件“Microsoft

后会在通用控件中VC或者Office2000TimePickerControl”,此控件在安装VB或者找到。

插入通过控件,如图二十二所示:

选择后画到画面上,双击控件,在“常规”选项

19

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

卡中为控件命名为“ADate”,点击“确定”,保存画面。

再次双击日历控件,选择“事件”选项卡,在“事件”选项卡中点击CloseUp事件,弹出控件事件函数编辑窗口,在函数声明中为此函数命名:

CloseUp1();在编辑窗口中编写脚本程序,如图二十三所示:

在编写脚本程序之前在数据词典中定义字符串变量“选择日期”,编写脚本程序如下:

floatAyear;

floatAmonth;

floatAday;

stringtemp;

Ayear=ADate.Year;

Amonth=ADate.Month;

Aday=ADate.Day;

temp=StrFromInt(Ayear,10);

if(Amonth<10)

temp=temp+\/0+StrFromInt(Amonth,10);

else

temp=temp+\/+StrFromInt(Amonth,10);

if(Aday<10)

temp=temp+\/0+StrFromInt(Aday,10);

else

temp=temp+\/+StrFromInt(Aday,10);

\\本站点\选择日期=temp;

20

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

日历控件图二十二

21

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

控件事件函数图二十三

编辑完成后点击“确认”,完成对日历控件的设置。

3.4.3编辑其他画面如图二十四所示:

制作五个按钮,其中各个按钮的命令语言如下:

日期报警查询按钮:

按照选择的日期对所选日期的所有的报警进行查询。

stringwhe;

+';选择日期whe=AlarmDate='+\\本站点\KV.Where=whe;

KV.FetchData();

KV.FetchEnd();

压力报警查询按钮:

按照选择的日期对所选日期的压力报警进行查询。

22

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

stringwhe;

whe=AlarmDate='+\\本站点\选择日期+'andGroupName='压力报警';

KV.Where=whe;

KV.FetchData();

KV.FetchEnd();

流量报警查询:

按照选择的日期对所选日期的流量报警进行查询。

stringwhe;

whe=AlarmDate='+\\本站点\选择日期+'andGroupName='流量报警';

KV.Where=whe;

KV.FetchData();

KV.FetchEnd();

报警打印:

对查询结果进行打印输出。

KV.Print();

画面切换:

桓睯楐瑣牵?

实时报警);

23

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

报警查询图二十四

完成画面制作并保存后,切换到运行系统,显示如图十五所示的画面,通过“画面切换”按钮进行“报警查询”画面,如图二十五所示:

通过不同的按钮可以实现不同的报警的条件查询。

24

北京亚控科技发展有限公司.

“报警存储与查询”例程说明文档

历史报警查询图二十五

4.注意事项1)如果报警数据库是从光盘中拷贝的,一定要将只读属性去掉。

各个字段的长度需要根据实际情况)报警配置中的数据库配置的报警格式设置时,2进行设置。

则数据库中的报警表会自动生成,“分月保存报警数据表”,3)报警配置中如果选择Alarm”表需要手动建立。

如果不选择此项,则“控件的详细使用方式请参考组态王手册或者帮助。

KVADODBGrid4)数ODBC)报警数据库可以选择SQLServer或者其他关系数据库,其他数据库的5据源的定义请参考相关文档。

本演示工程只是报警存储到数据库以及对存储到数据库的历史报警进行条件查询)6的简单例程,更深一步的学习使用请参考组态王使用手册以及函数手册,或者参加组态王培训班。

如有问题请致电亚控公司技术部。

25

北京亚控科技发展有限公司.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1