实验二 报警及报表功能实现
一、实验目的
1、掌握报警作用,能够独立实现实时报警和历史报警窗口的开发;
2、掌握报表作用,能够独立实现报表编制及保存特定格式。
二、实验内容
1、报警画面绘制
2、实时报警画面实现
3、历史报警画面实现、报警画面自动弹出设计
4、报表编制
5、报表调试与应用(自定义函数建立、DDE等等)
三、实验步骤
1、报警功能
(1) 在数据词典中定义报警功能及DDE功能
(2) 建立报警组
(3) 绘制报警画面及自动弹出设计(含系统变量“$新报警”等的使用)
(4) 编制实时报警
(5) 建立历史报警控制与保存、读取
2、报表功能
(1) 建立报表新画面
(2) 绘制并组态报表
(3) 为报表建立应用按钮、命令语言、自定义函数使用、DDE(EXCEL交换)
以下为部分参考画面:
历史报警画面:
报警自动弹出命令语言设计:
“alert”为报警画面名称。
报表画面之一:
上述画面应用了系统变量:$年、$月、$日、$时、$分、$秒及相关函数。
报表画面之二:
注意画面中的“保存到EXCEL”按钮是将其保存为EXCEL格式,如果保存顺利,则“保存成功!”提示及“重新保存”出现,按“重新保存”后其按钮本身和提示均应自动消失(用隐含动画连接功能实现)。
“保存到EXCEL”多按钮的命令语言:
报表路径=RePortname(报表); //报表为内存字符串
报表保存成功否=ReportSaveas("Report0",报表路径); //报表路径为内存字符串,Report0为报表控件名称
保存报表用到的自定义函数:
保存的EXCEL表截图:
XY点位图画面:
写数据到EXCEL画面:
系统画面总览:
用户变量总览:
四、实验报告
实验报告包括实验目的、实验内容、步骤、设计说明、实验体会等。
附:各实验具体操作步骤可详见多媒体课件及老师演示!!
第二篇:实验报告
组态王实验报告
——液体混合模块
学院名称: 电气信息工程学院
班 级: 09电气1W
姓 名: 董勇
学 号: 09312107
日 期: 2012.6.2
基于组态王的液体混合实验
1.组态王的介绍
组态王软件是一种通用的工业监控软件,它融过程控制设计、现场操作以及工厂资源管理于一体,将一个企业内部的各种生产系统和应用以及信息交流汇集在一起,实现最优化管理。它基于Microsoft Windows XP/NT/2000 操作系统,用户可以在企业网络的所有层次的各个位置上都可以及时获得系统的实时信息。采用组态王软件开发工业监控工程,可以极大地增强用户生产控制能力、提高工厂的生产力和效率、提高产品的质量、减少成本及原材料的消耗。它适用于从单一设备的生产运营管理和故障诊断,到网络结构分布式大型集中监控管理系统的
开发。
1.1组态王软件的结构
组态王软件结构由工程管理器、工程浏览器及运行系统三部分构成。工程管理器:工程管理器用于新工程的创建和已有工程的管理,对已有工程进行搜索、添加、备份、恢复以及实现数据词典的导入和导出等功能。工程浏览器:工程浏览器是一个工程开发设计工具,用于创建监控画面、监控的设备及相关变量、动画链接、命令语言以及设定运行系统配置等的系统组态工具。运行系统:工程运行界面,从采集设备中获得通讯数据,并依据工程浏览器的动画设计显示动态画面,实现人与控制设备的交互操作。
1.2组态王与I/O 设备
组态王软件作为一个开放型的通用工业监控软件,支持与国内外常见的PLC、智能模块、智能仪表、变频器、数据采集板卡等(如:西门子PLC、莫迪康PLC、欧姆龙PLC、三菱PLC、研华模块等等)通过常规通讯接口(如串口方式、USB 接口方式、以太网、总线、GPRS 等)进行数据通讯。组态王软件与IO 设备进行通讯一般是通过调用*.dll 动态库来实现的,不同的设备、协议对应不同的动态库。工程开发人员无须关心复杂的动态库代码及设备通讯协议,只须使用
1.3组态王的开放性
组态王支持通过OPC、DDE 等标准传输机制和其他监控软件(如:Intouch、Ifix、Wincc等)或其他应用程序(如:VB、VC 等)进行本机或者网络上的数据交互。
2.实验仪器及设备
1、计算机
2、三菱PLC可编程逻辑器
3、液体混合模块
4、组态王应用软件
5、导线若干
3.实验要求
根据题目要求连接好液体混合模块的电路,要求启动时液体A开始加料,手动控制L1,当L1亮时开始加热液体A,加热3秒后将液体A倒出,手动控制L1灭,L1灭后延迟3秒液体完全倒出,进行下一个周期。
4.实验步骤
4.1新建工程
打开组态王软件出现如下窗口:
点击【新建】—>点击【下一步】—>输入工程路径之后,点击【下一步】—>输入工程名称,例如:液体混合,点击【完成】
在工程管理器中就出现了组态实验的新工程。
4.2定义IO设备
组台王把那些需要与之交换数据的设备或程序都作为外部设备。外部设备包括:下位机(PLC、仪表、模块、板卡、变频器等),他们一般通过串行口和上位机交换数据。
只有在定义了外部设备之后,组台王才能通过I/O变量和它们交换数据。组态王设计了“设备配置向导”引导用户一步一步完成设备的连接。
本次实验使用三菱系列的PLC进行通讯。PLC连接在计算机的COM4口。
选择工程浏览器左侧大纲项“设备/COM4”,在工程浏览器右侧用鼠标左键双击“新建”图标,运行“设备配置向导”,如下图所示。
选择“三菱”的“FX2”的“编程口”项,单机“下一步”,弹出“设备配置向导”为外部设备取一个名称,输入PLC,单机“下一步”,弹出“设备配置向导”,为设备选择串口,这里为COM4,单机“下一步”,弹出“设备配置向导”,如下图所示。
填写设备地址,这里默认为0,点击“下一步”,弹出“设备配置向导”,设置通讯故障恢复参数(这里使用系统默认值),单机“下一步”,弹出“设备配置向导”,如下图所示。
检查各项设置是否正确,确定无误后,点击“完成”。
设备定义完成后,可以在工程浏览器的右侧看到新建的外部设备“PLC”。在定义数据库变量时,只要把IO变量连接到这台设备上,它就可以和组态王交换数据了。
4.3创建组态画面
进入组态王开发系统后,就可以为每个工程建立数目不限的画面,在每个画面上生成互相关联的静态或动态图形对象。这些画面都是由“组态王”提供的类型丰富的图形对象组成的。系统为用户提供了矩形、直线、椭圆、扇形、点位图多边形、文本等基本图形对象,以及按钮、趋势曲线窗口、报警窗口、报表等复杂的图形对象。提供了对图形对象在窗口内任意移动、缩放、改变形状、复制、删除、对齐等编辑操作,全面支持鼠标、键盘绘图,并提供了对图形对象的颜色、线型、填充属性进行改变的操作工具。
进入新建的组态王工程,选择工程浏览器左侧大纲项“文件\画面”,在工程浏览器右侧用鼠标左键双击“新建”图标,弹出对话框如下图所示。
在“画面名称”处输入画面名称,如:液体混合,其它属性目前不用更改。点击“确定”按钮进入内嵌的组态王画面开发系统。如下图所示。
4.4构造数据库
数据库是“组态王”的软件的核心部分,工业现场的生产状况要以动画的形式反映在屏幕上,操作者在计算机前发布的指令也要迅速的送达生产现场,所有这一切都是以实时数据库位中介环节,所以说数据库是联系上位机和下位机的桥梁。数据库中变量的集合形象的称为“数据词典”,数据词典记录了所有用户可使用的数据变量的详细信息。
选择工程浏览器左侧大纲项“数据库/数据词典”,在工程浏览器右侧用鼠标左键双击“新建”图标,弹出“变量属性”对话框,如下图所示。
此对话框可以对数据变量完成定义、修改等操作,以及数据库的管理工作。在“变量名”出输入变量名,如:启动,在“变量类型”处选择变量类型,如I/O整数;在“连接设备”中选择先前定义好的IO设备:PLC;在“寄存器”中定义为:X0;在“数据类型”中定义为:bit;在“读写”属性中定义为:读写;单机确定即一个IO变量便定义完毕。
该实验所定义的变量:
4.5建立动画连接
定义动画连接是指在画面的图形对象与数据库的数据变量之间建立一种关系,当变量的值改变时,在画面上以图形对象的的动画效果表现出来;或者由软件使用者通过图形对象改变数据变量的值。
双击图形对象,如:矩形;弹出“动画连接”对话框,通过此对话框设置来完成动画连接,如下图所示。
双击工程浏览器左侧大纲项“命令语言/应用程序命令语言”,弹出命令语言窗口,通过编程可以实现动画效果。
5.编写事件命令语言(附录)
6.实验记录及原始数据
6.1画面:
.
6.2工作时:
6.3报警系统:
6.4实时趋势曲线:
6.5历史趋势曲线:
7.数据处理及结论
该动画实现了将液体A加入容器,然后加热、倒出的自动控制,通过手动控制L1的关断,实现液体A的循环加热倒出。当液体倒出的次数高于3次时,实现报警,并用实时趋势曲线和历史趋势曲线记录液体倒出次数的变化。
8.实验心得与体会
通过这学期的组态王实验,让我对组态王软件有了一个新的认识和了解,总的来说收获还是很多的,虽然在此期间碰到了很多困难,但是通过自己的反复推敲,最终使问题得以解决。除此以外,实验课程给了我一个独立思考、用于创新和尝试的机会,所有的程序编写以及每个画面所实现的功能,都是我自己独立完成的,虽然程序并不完美,但是却可以实现题目要求的大体功能。总之,这门课使我收获颇多。
附录:
\\本站点\启动==1发生时
\\本站点\y0=1;
\\本站点\停止==1发生时
\\本站点\L3=0;
\\本站点\y0=0;
\\本站点\y3=0;
\\本站点\y5=0;
\\本站点\L3==1发生时
\\本站点\y0=0;
\\本站点\y3=1;
\\本站点\L3==0存在时
\\本站点\数秒=\\本站点\数秒+1;
if(\\本站点\数秒==3)
{\\本站点\y5=0;
\\本站点\数秒=0;}
\\本站点\y3==1存在时
\\本站点\数秒=\\本站点\数秒+1;
if(\\本站点\数秒==3)
{\\本站点\y3=0;
\\本站点\y5=1;
\\本站点\数秒=0;}
\\本站点\y5==1存在时
\\本站点\次数=\\本站点\次数+1;
if(\\本站点\次数==10)
{\\本站点\次数=0;}
\\本站点\y5==0发生时
\\本站点\y0=1;