1、监控组态软件-组态王试验指导书青岛大学自动化和电气工程学院 试验一 工艺步骤图绘制一、试验目标熟练掌握工控组态软件绘图工具二、试验内容熟悉工控组态软件绘图工具,完成反应工段工艺步骤绘制和外部设备和变量定义。三、 试验步骤3.1创建工程在工程管理器中选择菜单“文件/新建工程”,或点击工具栏“新建”按钮,依据 “新建工程向导” 对话框完成工程创建,图一所表示图一 工程管理器3.2 组态画面双击工程管理器中工程,打开工程浏览器,在工程浏览器中左侧“工程目录显示区”中选择“画面”,在右侧视图中双击“新建”,弹出新建画面对话框图一所表示。 图二 画面属性设置点击图二确定按钮后,在工具箱和图库中选中对应图
2、素进行监控画面组态,绘制工艺步骤图图三所表示。图三 反应车间监控画面3.3 定义设备依据工程中实际使用得设备进行定义,本例程使用亚控仿真PLC设备,使用“PLC亚控仿真PLC串口”驱动,定义设备名称为“PLC” 。3.3 定义变量在组态王中定义三个变量:原料油液位(IO实数类型)、成品油液位(IO实数类型)、催化剂液位(IO实数类型)。原料油液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。催化剂液位变量:最小值0,最大值100
3、,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。成品油液位变量:最小值0,最大值200,最小原始值0,最大原始值200,连接设备PLC,寄存器INCREA200,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。 四、试验汇报试验汇报包含试验目标、试验内容、设计说明、试验体会等。试验二 组态王动画功效设计一、试验目标此次试验经过多个图形显示和动画功效经典实例,来掌握组态软件图形功效。二、试验内容1填
4、充和自制棒图2缩放3旋转4移动5闪烁、隐含和复现6屏幕切换三、试验步骤(1)填充和自制棒图 选择线属性(表示式取常数0,运行时线粗细和颜色不随时间而变)、填充属性(动画连接表示式取填充0,事先定义变量,内存实数,要分段设置画刷和颜色,不妨设:0红,20黄,40绿,60青,80兰,100紫色。运行时调整游标,可得变色棒图)和填充(表示式取:填充0),用图库中游标(表示式取:填充0)控制。(2)缩放 选择线属性(表示式取0)、填充属性(表示式取0)和缩放(表示式取:缩放0),用游标控制。 (3)旋转0 选择旋转(表示式取:旋转0),用游标控制。 (4)旋转1 选择旋转(表示式取:旋转1),用开启和
5、停止按钮(它们用椭圆和文本制成组合图素)控制。开启和停止按钮弹起时命令语言分别为: 本站点旋转启停0=1;和 本站点旋转启停0=0; 画面命令语言显示时代码为: 本站点旋转1=10;/*刚进入运行时,图形初始转角为36度*/ 存在时代码为: if(本站点旋转启停0=1)本站点旋转1=本站点旋转1+1;else 本站点旋转1=本站点旋转1;if(本站点旋转1=101)本站点旋转1=0;(5)水平移动和垂直移动 能够将水平移动连接和垂直移动连接结合使用,选择水平移动(表示式取:水平移动0)和垂直移动(表示式取:垂直移动0),分别用两个游标控制。(6)自制软按钮和软灯 软灯用椭圆制作,填充属性(表示
6、式取:自制软按钮0),自制软按钮用圆角矩形和文本制成合成单元,应该注意圆角矩形在合成单元前就要动画连接。“按下时”命令语言:本站点自制软按钮0=1;/*软灯填充属性阈值为1。也可用100赋值,这时填充属性阈值为100(默认值)*/弹起时命令语言:本站点自制软按钮0=0;例2 模拟值输入连接。过程控制系统中设定温度(期望值)在线实时运行修改。模拟输入图形对象为用圆角矩形和文本制成合成单元,应该注意圆角矩形在合成单元前就要动画连接。运行时,模拟值键盘输入对话框图一所表示。 图一 模拟值键盘输入对话框(运行时)例3 滑动杆(滑杆、游标)输入连接和文本值输出简单应用。首先定义变量:水平滑动杆输入坐标X
7、设定0,垂直滑动杆输入坐标Y设定0,内存实数。用合成单元技术建立一个XY坐标系,在原点设置含有水平和垂直两种滑动杆输入连接性能圆,以此圆作为滑动杆,并设置两个接收文本,以显示XY坐标值,文本值输出取模拟值输出。例4 特殊动画连接闪烁和隐含简单应用:灯光闪烁,位图一棵树及“退出运行系统”按钮隐含。首先定义变量:闪烁0,隐含0,内存离散。图形画面仍图1所表示。1)灯光闪烁 8条光线选择闪烁连接,闪烁条件取“闪烁0=1;”,闪烁速度500ms,其中左上、右上、左下和右下4条光线在组态王开发系统中设置时只能水平放置,故还要进行旋转连接,表示式取12.5(对应45度),同时要考虑顺时针或反时针方向问题。
8、因为工具箱中按钮字体不能任意放大,故用合成单元技术将按钮和文本建立成一个“闪烁/停止”按钮,其“按下时”程序码为:/*若原来不闪烁,则按下“闪烁/停止按钮”就开始闪烁;反之,按下“闪烁/停止按钮”就停止闪烁,如此等等*/if(本站点闪烁0=0)本站点闪烁0=1;else 本站点闪烁0=0;(2)位图一棵树及“退出运行系统”按钮隐含 位图一棵树取自WINDOWS图片/自然界,可经过WORD编辑等方法获取,“退出运行系统”按钮后面要叙述。隐含条件取“隐含0=1;”。用合成单元技术建立一个“隐含/复现”按钮,其“按下时”命令语言代码为:/*若原来不隐含,则按下“隐含/复现按钮”就开始隐含;反之,按下
9、“隐含/复现按钮”就停止隐含而复现,如此等等*/if(本站点隐含0=0)本站点隐含0=1;else 本站点隐含0=0;例5 组态王图库中元素称为“图库精灵”。之所以称为“精灵”,是因为它们含有自己“生命”。图库精灵在外观上类似于组合图素,但内嵌了丰富动画连接和逻辑控制。用户能够依据自己工程需要,将部分需要反复使用复杂图形做成图库精灵,加入到图库管理器中。组态王提供两种方法供用户自制图库。一个是编制程序方法,即用户利用亚控企业提供图库开发包,自己利用VC开发工具和组态王开发系统中生成精灵描述文本制作,生成*.dll文件。相关该种方法,详见亚控企业提供图库开发包。另一个是利用组态王开发系统中建立动
10、画连接并合成图素方法直接创建图库精灵。在此将对第二种方法做具体说明。现举一个制作图库精灵例子。画面上一个按钮,代表一个开关,开关打开时按钮为绿色,开关关闭后变为红色,并用这个按钮控制一个软灯。在设计时,首先要用合成单元技术制作一个绿色按钮(开)和一个红色按钮(关),用一个变量(取为:图库精灵开关0)和它们连接,红色按钮隐含条件表示式为:“图库精灵开关0=1;”,“弹起时”命令语言代码;本站点图库精灵开关0=1;绿色按钮隐含条件表示式为:“图库精灵开关0=0;”,“弹起时”命令语言代码;本站点图库精灵开关0=0;最终把它们叠在一起,并制成合成单元,红色按钮在上面,这就是“按钮精灵”。因为两个按钮
11、大小相同,叠在一起并制成合成单元较复杂,方法为:叠在一起以后,先将底板(非原始底板)移动到别处,激活红色按钮,将其“图素后移”,按下ctrl键,激活绿色按钮,将绿色按钮“图素后移”,红色按钮又在上面,以后合成单元。松开ctrl键,打开图库,经图库管理器/编辑,创建新图库,取名“自制图库”,关闭图库管理器,激活合成按钮,经标题条图库/创建图库精灵/新图库图名称,取名“自制按钮0”,确定后,出现图库管理器,选择其中“自制图库”,将“按钮精灵”放到“自制图库”中。如此,制作“自制图库” 和“按钮精灵”全部完成。这么工程人员只要把“按钮精灵”从图库拷贝到画面上,它就含有了“打开为绿色,关闭为红色”按钮
12、功效。图库中几乎每个精灵全部有类似已经定义动画连接,所以使用图库精灵将极大地提升设计界面效率。比如使用第一个方法即用VC编制程序制作图库精灵含有自动控制图形外观和进行变量设置等向导功效。用第二种方法制作图库精灵放到画面上以后,双击之,出现“内容替换”框,能够依据用户具体需求改变变量名称,替换动画连接属性。这是第二种方法“图库精灵”使用特点。图中,软灯用4个矩形块组成,设置“填充”属性,再同大矩形块合成单元。例6运行系统中三个画面切换和运行画面全部退出。设目前画面“图形功效HMTX”和隐含画面“多功效IO卡HMIO”及画面“可编程控制器PLCHMPLC”相互之间要切换,并含有退出“组态王运行系统
13、”功效。首先用合成单元技术制作4个按钮:退出本画面、IO卡画面、PLC画面和退出运行系统按钮,它们“弹起时”命令语言代码分别为: “ClosePicture(图形功效);”,“ ShowPicture(多功效IO卡);”,“ShowPicture(可编程三菱PLC);”,“Exit(0);”。 退出运行系统画面按钮还设置了隐含属性,隐含条件表示式取“隐含0=1;”(见例4)。代码“ Exit(0);”:若改成“ Exit(1);”,表示计算机总安全关机;若改成“ Exit(2);”,表示退出运行系统,Windows重新开启。当退出运行系统按钮被隐含时,鼠标操作失效;但当用别图形遮盖时,即使合成
14、单元,鼠标操作也不失效。在进行画面安全操作性能设计时要考虑这些原因。四、试验汇报试验汇报包含试验目标、试验内容、设计说明、试验体会等。图二 组态王动画功效试验三 历史趋势实现一、试验目标掌握历史趋势作用,能够独立实现历史趋势曲线开发。二、功效概述常规需求:很多工业现场全部会要求显示采集量趋势曲线,包含实时曲线、历史曲线。组态王中趋势曲线实现方法:利用组态王“工具箱”中“实时曲线”、“历史曲线”实现。利用组态王“插入通用控件”中“历史趋势曲线”实现。第一个实现方法优点在于能够进行WEB公布,实现经过IE浏览器进行浏览。缺点为支持曲线笔比较少,很多功效实现需要经过组态王函数来实现,使用相对要麻烦。
15、第二种实现方法优点在于支持同时绘制16条曲线,功效比较完善,能够在系统运行时动态增加、删除、隐藏曲线,还能够修改曲线属性,实现无级缩放,曲线打印等等。很多功效全部不需要经过编写脚本方法实现,使用比较方便。缺点在于无法进行WEB公布。三、试验步骤1、历史趋势曲线控件特点KVHTrend曲线控件是组态王以Active X控件形式提供绘制历史曲线和ODBC数据库曲线功效性工具。该曲线含有以下特点:1)即能够连接组态王历史库,也能够经过ODBC数据源连接到其它数据库上,如Access、SQLServer等。2)连接组态王历史库时,能够定义查询数据时间间隔,如同在组态王中使用报表查询历史数据时使用查询间
16、隔一样。3)完全兼容了组态王原有历史曲线功效。最多可同时绘制16条曲线。4)能够在系统运行时动态增加、删除、隐藏曲线。还能够修改曲线属性。5)曲线图表实现无级缩放。6)可实现某条曲线在某个时间段上曲线比较。7)数值轴能够使用工程百分比标识,也可用曲线实际范围标识,二者之间自由切换。8)可直接打印图表曲线。9)能够自由选择曲线列表框中显示内容。10)能够选择移动游标时是否显示曲线数值。11)能够在曲线中显示报警区域背景色2、创建新工程2.1定义设备依据工程中实际使用得设备进行定义,本例程使用亚控仿真PLC设备,使用“PLC亚控仿真PLC串口”驱动,定义设备名称为“PLC” 。2.2定义变量在组态
17、王中定义三个变量:原料油液位(IO实数类型)、成品油液位(IO实数类型)、催化剂液位(IO实数类型)。原料油液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。催化剂液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。成品油液位变量:最小值0,最大值200,最小原始值
18、0,最大原始值200,连接设备PLC,寄存器INCREA200,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。2.3 创建趋势曲线在组态王开发系统中新建“趋势曲线”画面,在工具箱中单击“插入通用控件”或选择菜单“编辑”下“插入通用控件”命令,弹出“插入控件”对话框,在列表中选择“历史趋势曲线”,单击“确定”按钮,对话框自动消失,鼠标箭头变为小“十”字型,在画面上选择控件左上角,按下鼠标左键并拖动,画面上显示出一个虚线矩形框,该矩形框为创建后曲线外框。当达成所需大小时,松开鼠标左键,则历史曲线控件创建成功,画面上显示出该曲线,图四所
19、表示。双击趋势曲线,弹出“动画连接属性”,控件名命名为“HT”。点击确定完成对历史趋势曲线命名。图四 历史趋势曲线2.4添加曲线变量选中曲线控件点击右键,弹出菜单,选择“控件属性”,弹出历史趋势曲线控件属性对话框,在“曲线”选项卡,点击“增加”按钮,选择变量“压力”,选择“线类型”、“线颜色”,点击“确定”完成压力曲线添加。再点击“增加”按钮,选择变量“流量”,选择“线类型”、 “线颜色”,点击“确定”完成流量曲线添加。在趋势曲线控件属性“坐标系”选项卡中对坐标系进行设置,我们设置Y轴起始值为0,最大值为200,不根据百分比绘制,而是根据实际值显示。设置时间轴显示格式为显示年、月、日、时、分、
20、秒。添加完成后开发画面图五所表示: 图五 历史趋势曲线3、切换到运行系统保留画面后,在工程浏览器“系统配置”“设置运行系统”中进行“主画面配置”,将“历史曲线”画面设置为主画面。然后切换到运行系统。运行以下图六所表示: 图六 运行系统趋势曲线控件自带工具栏中提供了很多方便实用控制按钮功效供用户来使用,关键包含:调整跨度设置按钮,设置Y轴标识,曲线图表无级缩放,打印曲线,定义新曲线,更新曲线图表终止时间为目前时间,设置图表数值轴和时间轴参数,隐藏/显示变量列表。这些工具栏基础能够满足用户使用了,假如还需要深入功效能够经过控件属性、方法来实现。四、注意事项1、变量定义时必需定义为统计,假如定义为“
21、不统计”则无法看到历史曲线。2、在控件使用时需要注意Y轴坐标设置要合理。3、具体控件属性、方法使用请参考帮助或手册。五、试验汇报试验汇报包含试验目标、试验内容、设计说明、试验体会等。试验四 报警存放和查询一、试验目标掌握报警作用,能够独立实现报警存放和查询。二、试验内容常规需求:很多工业现场要求将变量报警信息进行存放,而且能够灵活进行历史报警查询、打印。组态王中实现方法:组态王支持经过ODBC 接口将数据存放到关系数据库中,而且提供KVADODBGrid 控件对存放历史报警信息进行条件查询,并能够对查询结果进行打印。关系数据库能够为Access 数据库或SQLServer 数据库。我们经过一个
22、简单例子实现对报警信息存放和历史报警信息查询。历史报警查询关键依据日期、报警组为条件进行查询。报警信息存放数据库以Access数据库为例进行。三、试验步骤1、定义设备依据工程中实际使用得设备进行定义,本例程使用亚控仿真PLC设备,使用“PLC亚控仿真PLC串口”驱动,定义设备名称为“PLC” 。2、定义变量在组态王中定义三个变量:原料油液位(IO实数类型)、成品油液位(IO实数类型)、催化剂液位(IO实数类型)。原料油液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择
23、“数据改变统计”,改变灵敏度选择“0”。催化剂液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。成品油液位变量:最小值0,最大值200,最小原始值0,最大原始值200,连接设备PLC,寄存器INCREA200,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。3、定义报警首先定义报警组,在报警组处双击进行报警组对话框,点击“增加”定义一个“液位报警”报警组,确定完成报警
24、组定义,图一所表示:图一 报警组定义报警组定义完成后,重新编辑变量定义,在变量定义“报警定义”选项中我们对三个液位变量进行报警定义。定义报警组名为“液位报警”,设置原料油和催化剂液位报警限为低、低低限,限值分别为10、5。成品油液位设置报警限为高、高高限报警,报警限值为190,200。定义报警画面图二、图三所表示:图二 原料油和催化剂液位变量报警定义图三 成品油液位变量报警定义4、实时报警信息变量报警就定义完成后,我们新建一个 “实时报警”画面,在工具箱中选择报警窗口,然后在画面上完成报警窗口制作,双击画面上报警窗口,为报警窗口命名为“报警”,依据需要能够对报警窗口进行灵活配置,具体配置能够参
25、考组态王手册或组态王帮助,不过必需注意报警窗口名字一定要填写,假如报警窗口没有名字,则此报警窗口无效。报警窗口定义完成后,假如此时进入运行系统,则当出现报警后,报警信息会在报警窗口中出现。运行画面图四所表示。图四 实时报警运行画面需要注意是,报警窗口显示信息在计算机内存中,假如组态王退出后再进入运行系统则原来报警并不存在了,也就是说历史报警信息并没有保留下来。下面我们会具体讲解一下怎样将报警信息进行保留以方便以后查询。5、报警配置组态王报警配置关键分为三个配置选项:文件配置、数据库配置、打印配置。文件配置关键是将报警信息存放到文件中,文件格式为 *.al2 ,我们能够经过记事本打开此文件对存放
26、信息进行浏览,因为此存放格式浏览不是很方便,我们现在不推荐用户使用。数据库配置是将报警信息存放到关系数据库中,如Access,SQLServer 等,此方法浏览、查询比较方便,本文就是以数据库配置作为讲解关键。打印配置为报警信息实时打印,需要注意时打印配置选择打印机必需为带字库针式打印机。下面我们关键以Access 数据库为例讲解报警存放到数据库使用配置。5.1 建立报警数据库在Access 中新建一个空数据库,比如建立路径为:F:组态王试验指导报警存放和查询报警数据库.mdb 。在此数据库中创建一个数据表:表名称为:Alarm。表字段名称以下表,字段类型为文本类型。为了方便同学使用,我们已经
27、有一个已经做好一个数据库文件,我们能够直接使用。文件名为:报警窗数据库.mdb 。我们能够直接拷贝此文件到计算机硬盘中直接使用。组态王经过ODBC 数据源将报警信息存放到数据库中,所以我们必需先建立ODBC数据源。在“控制面板”“管理工具”“ODBC 数据源” 中建立ODBC 数据源,点击“ODBC 数据源”弹出“ODBC 数据源管理器”,以下图五所表示:在“用户DSN”中点击“添加”,弹出“选择数据源驱动程序”窗口,以下图六所表示:选择“Microsoft Access Driver (*.mdb)”驱动,点击“完成”。弹出图七所表示窗口,填写ODBC 数据源名称,依据需要对数据源进行命名,
28、如“报警”,点击“选择(S)”,图八示,选择我们前面定义数据库文件“F:组态王试验指导报警存放和查询报警数据库.mdb”。点击“确定”完成ODBC 数据源定义,图九所表示。其它数据库如SQLServer ODBC定义请参考相关文档。图五 ODBC数据源管理器图六 选择数据源驱动程序图七 数据源定义图八 选择数据库图九 ODBC数据源定义 5.2 报警配置数据库和ODBC 数据源定义完成后,我们进行报警配置中数据库配置。双击组态王工程浏览器“系统配置”中“报警配置”,弹出图十“报警配置”对话框。选择“数据库配置”选项卡,图十一所表示:我们依据需要将“统计报警事件到数据库”打上勾,点击报警格式,依
29、据实际情况对报警格式进行选择配置,需要注意是默认报警格式没有选择报警日期、事件日期,所以必需进行报警格式配置。图十 报警配置图十一 数据库配置“报警格式”配置图十二所表示:需要注意是:在6.52 版本之前报警格式配置中没有“数据库选项,分月保留报警数据表,以日期时间类型保留日期时间”选项。6.52版本增加了此选项。其中“分月保留报警数据表”选项假如选中,则保留报警信息数据库中数据表每个月生成一个,而且无需建表,只需要建一个空数据库即可。采取分月保留方法优点在于:假如报警信息数据量比较大,分表存放能够提升查询速度。缺点在于:无法进行跨月查询,在编写脚本进行查询时需要考虑查询是哪那一个数据表。本试
30、验中我们还是根据报警信息存放到一个数据表方法为例进行介绍,也就是说我们不选中“分月保留报警数据表”。其它选项需要注意就是数据长度要依据实际情况进行设置,而且选中“报警组名”,假如使用描述则“变量描述”也需要选中。图十二 数据库配置报警格式设置完成后,点击“确定”返回“数据库配置”画面,在数据源处选择我们前面定义数据源“报警”。图十三所表示:点击“确定”完成报警配置。图十三 数据库配置当有报警产生后,会在报警画面中显示目前报警信息,同时也会将报警信息存放到Access 数据库中。5.2 历史报警查询前面我们已经将报警存放到数据库中了,下面我们就介绍一下怎样对存放到数据库中报警进行查询。我们依据日
31、期、报警组为例进行报警查询。历史报警查询关键是利用KVADODBGrid 控件进行查询。5.2.1 创建KVADODBGrid 控件在工程中新建画面“报警查询”,单击工具箱中“插入通用控件”按钮则弹出“插入控件”对话框。在“插入控件”对话框内选择“KVADODBGrid Class”控件,图十四所表示,在此画面中放入此控件。双击此控件,为控件命名,控件名称能够依据需要确定,我们命名为“KV”。图十四 插入通用控件选择控件,单击右键,在弹出菜单中选择“控件属性”。弹出控件固有属性对话框,以下图十五所表示。图十五 KV控件属性点击“浏览”按钮弹出“数据链接属性”图十六所表示,选择“连接”选项卡,在
32、“指定数据源”处选择“使用数据源名称”选项,经过下拉列表选择我们前面所定义ODBC 数据源“报警”,点击“确定”,返回图十五画面,“数据源”和“数据库”连接完成,下面进行数据表配置。图十六 数据链接属性在“表名称”处选择我们需要查询数据表“Alarm”。选择完成后,数据表字段会显示在“有效字段”栏,我们能够将需要字段添加到右边,在添加过程中能够对标题和格式等进行对应修改,图十七所表示:点击“确定”完成对KV 控件配置。图十七 KV控件配置配置完成后,同时按下键盘“Ctrl”“Alt”“O”能够对控件列宽进行设置,我们能够依据字段内容多少设置适宜列宽以增加画面美观程度。设置完成后画面图十八所表示
33、:图十八 运行系统画面5.2.2 创建日历控件我们根据日期进行历史报警查询,使用微软提供通用控件“Microsoft Date andTime Picker Control ”,此控件在安装VB 或VC 或Office 后会在通用控件中找到。插入经过控件,图十九所表示:选择后画到画面上,双击控件,在“常规”选项卡中为控件命名为“ADate”,点击“确定”,保留画面。再次双击日历控件,选择“事件”选项卡,在“事件”选项卡中点击CloseUp 事件,弹出控件事件函数编辑窗口,在函数申明中为此函数命名:CloseUp1();在编辑窗口中编写脚本程序,图二十所表示:在编写脚本程序之前在数据词典中定义字
34、符串变量“选择日期”。编辑完成后点击“确定”,完成对日历控件设置。图十九 日历控件图二十 控件事件函数5.2.3 报警查询制作一个日期报警查询按钮:根据选择日期对所选日期全部报警进行查询,程序以下。string whe;whe=AlarmDate=+本站点选择日期+;KV.Where=whe;KV.FetchData();KV.FetchEnd();完成画面制作并保留后,切换到运行系统,显示图十五所表示画面,经过画面切换按钮进行“报警查询”画面,图二十一所表示。图二十一 历史报警查询四、注意事项1)报警数据库属性,一定要将只读属性去掉。2)报警配置中数据库配置报警格式设置时,各个字段长度需要依
35、据实际情况进行设置。3)报警配置中假如选择“分月保留报警数据表”,则数据库中报警表会自动生成,假如不选择此项,则“Alarm”表需要手动建立。4)KVADODBGrid 控件具体使用方法请参考组态王手册或帮助。5)报警数据库能够选择SQLServer 或其它关系数据库,其它数据库ODBC 数据源定义请参考相关文档。五、试验汇报试验汇报包含试验目标、试验内容、设计说明、试验体会等。试验五 报表功效实现一、试验目标掌握报表作用,能够独立实现报表编制。二、试验内容常规需求:很多工业现场会用到报表功效,而日报是其中最基础一个报表形式。日报表通常为天天整点数据,每一个变量有24个数据。组态王中实现方法:
36、利用组态王内置报表和报表函数来实现对日数据查询生成日报表。组态王内置报表操作类似excel,操作简单、方便,而且组态王提供了大量报表函数来实现多种复杂功效。我们举一个例子来说明日报表实现方法。在此例程中我们定义三个变量,分别为“原料油液位”、“催化剂液位”、“成品油液位”,运行系统运行后统计历史数据,查询日报表数据时自动从历史数据中查询整点数据生成报表,并能够保留、打印报表。下面就以此为例来演示完成这一要求具体步骤。三、试验步骤1、定义设备依据工程中实际使用得设备进行定义,本例程使用亚控仿真PLC设备,使用“PLC亚控仿真PLC串口”驱动,定义设备名称为“PLC” 。2、定义变量在组态王中定义
37、三个变量:原料油液位(IO实数类型)、成品油液位(IO实数类型)、催化剂液位(IO实数类型)。原料油液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。催化剂液位变量:最小值0,最大值100,最小原始值0,最大原始值100,连接设备PLC,寄存器DECREA100,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。成品油液位变量:最小值0,最大值200,最小原始值0,最大
38、原始值200,连接设备PLC,寄存器INCREA200,数据类型short,读写属性为只读,采集频率1000。统计和安全区选择“数据改变统计”,改变灵敏度选择“0”。3、制作画面3.1 创建报表新建画面,画面名称“日报表”。在组态王工具箱按钮中,用鼠标左键单击“报表窗口”按钮,此时,鼠标箭头变为小“+”字形,在画面上需要加入报表位置按下鼠标左键,并拖动,画出一个矩形,松开鼠标键,报表窗口创建成功,图一所表示。图一 报表用鼠标双击报表窗口灰色部分(表格单元格区域外没有单元格部分),弹出“报表设计”对话框,图二所表示。该对话框关键设置报表名称、报表表格行列数目和选择套用表格样式。我们设置报表名称为
39、“Report0”,行数为27,列数为4。 图二 报表设计我们依据需要对报表格式进行设置,如报表表头,标题等。我们选中单元格A1到F1,点击右键弹出快捷菜单,选择“合并单元格”,单元格合并后我们填写标题,如“监控系统日报表”,点击右键在快捷菜单中选择“设置单元格格式”,设置字体、对齐方法、边框等。我们根据此方法设计日报表格式,图三所表示:图三 日报表3.2创建日历控件我们根据日期进行历史数据查询生成日报表,使用微软提供通用控件“Microsoft Date and Time Picker Control ”,此控件在安装VB或VC或Office后会在通用控件中找到。插入经过控件,图四所表示:选
40、择后画到画面上,双击控件,在“常规”选项卡中为控件命名为“ADate”,点击“确定”,保留画面。再次双击日历控件,选择“事件”选项卡,点击在“事件”选项卡中点击CloseUp事件,弹出控件事件函数编辑窗口,在函数申明中为此函数命名:CloseUp();在编辑窗口中编写脚本程序,在编写脚本程序之前在数据词典中定义字符串变量“选择日期”,图五所表示:图四 日历控件图五 控件事件函数脚本程序以下:float Ayear;float Amonth;float Aday;long x;long y;long Row;long StartTime;string temp;Ayear=ADate.Year;
41、Amonth=ADate.Month;Aday=ADate.Day;temp=StrFromInt( Ayear, 10 );if(Amonth10)temp=temp+-0+StrFromInt( Amonth, 10 );elsetemp=temp+-+StrFromInt( Amonth, 10 );if(Aday10)temp=temp+-0+StrFromInt( Aday, 10 );elsetemp=temp+-+StrFromInt( Aday, 10 );本站点选择日期=temp;ReportSetCellString2(Report0, 4, 1, 27, 6, ); /清
42、空单元格ReportSetCellString(Report0, 2, 2, temp);/填写日期StartTime=HTConvertTime(Ayear,Amonth,Aday,0,0,0);ReportSetHistData(Report0, 本站点原料油液位, StartTime, 3600, B4:B27);ReportSetHistData(Report0, 本站点催化剂液位, StartTime, 3600, C4:C27);ReportSetHistData(Report0, 本站点成品油液位, StartTime, 3600, D4:D27);x=0; while(x24)
43、 row=4+x; y=StartTime+x*3600; temp=StrFromTime( y, 2 ); ReportSetCellString(Report0, row, 1, temp); x=x+1; 编辑完成后点击“确定”,完成对日历控件设置。下面我们对报表进行保留和打印。在画面上添加两个按钮,按钮文本分别为“保留”、“打印”。双击“保留”按钮,弹出“动画连接”,点击“命令语言连接”“弹起时”,编写报表保留脚本程序。报表保留格式为“xls”文件,图六所表示:图六 保留报表脚本程序以下:string filename;filename=InfoAppDir()+本站点选择日期+.x
44、ls;ReportSaveAs(Report0,filename);双击“打印”按钮,弹出“动画连接”,点击“命令语言连接”“弹起时”,编写报表打印脚本程序。图七所表示:脚本程序以下:ReportPrintSetup(Report0);图七 打印报表完成按钮命令语言编写后,保留画面。画面以下图八所表示:图八 打印报表4、进入运行系统画面开发完成后在工程浏览器“系统设置”中“设置运行系统”中对“配置主画面”选项卡进行主画面配置,设置“日报表”画面为主画面。配置完成后点击工程浏览器“View”按钮切换到运行系统。系统运行后会将主画面打开,点击日历控件,选择我们要查询日报表日期,就能够查询出日报表数据,图九所表示: 图九 运行系统点击“保留”按钮,能够将报表保留为xls格式文件,文件名称为日期,如“-11-23.xls”,文件保留路径为工程所在路径。点击“打印”按钮,能够对报表进行打印输出,而且能够进行报表打印预览,图十所表示:图十 打印预览四、注意事项1、在此例程中所用到函数请参考相关函数使用手册。2、日历控件为微软提供,假如无法创建此控件能够考虑安装office或VB、VC软件。3、本工程只是简单介绍日报表怎样制作例程,更深一步学习使用请参考组态王使用手册、组态王帮助文档,或参与组态王培训班。