课程设计(论文)-工业过程监控系统的设计.doc_第1页
课程设计(论文)-工业过程监控系统的设计.doc_第2页
免费预览已结束,剩余16页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

工业过程监控系统的设计摘要:本文介绍了一种基于组态软件组态王的锅炉液位监控系统,该系统能对液位进行巡回检测、显示、报警, 同时采用增量式pid 控制算法对液位进行控制。该文主要从软硬件两方面分析,着重介绍通过组态王构造清晰、准确的画面来描述工业生产现场,设计复杂的动画来显示现场的操作状态、数据和记录所有报警信息,显示实时曲线和历史曲线,方便的查询历史数据,打印报表。以上海新奥托控制对象为目标,完成工业控制系统中常见的液位的数据采集、处理和转换,从而实现了一个成本低,性能好的锅炉监控系统。关键词: 组态王;监控系统; pid控制industrial process supervisory system designstudent majoring inautomation li binbintutor shi xuewenabstract: this topic introduces the boiler fluid level supervision system base on domestic configuration software kingview. this supervision system can not only measure and display the values of fluid level, alarm when the fluid level is not in given level, but also intelligently control it by increment pid. this article analyzes from the hardware and the software two aspects, mainly tells us how to take clear accurate pictures to describe the industrial control scene, shows operation state, data and temperature, records all warning message, convenient inquiry on historical data, types report form. it takes the shanghai new auto controlled member as the goal , completes usual data such as the fluid position gathering , processing and the transformation in industry control system . thus a low cost and good performance boiler supervision system is obtained, and used it in practical. key words: kingview;supervisorysystem;pid control1引言 液位是许多工业生产中的重要参数之一, 在化工、冶金、医药、航空等领域里, 对液位的测量和控制效果直接影响到产品的质量。本设计讨论了一种以kingview和上海新奥托控制系统为核心的液位控制系统, 该系统不仅能对液位进行巡回检测、显示和报警, 同时也能对液位进行pid控制。目前,监控系统的开发和实现主要有两种途径:一种是利用vb、vc+等面向对象的可视化编程工具从低层开发,该方法需要开发者具有一定的专业知识,软件的编程量大,开发成本高,周期长,维护量大;另一种是利用工控组态软件进行二次开发。由于组态软件具有良好的开放性、丰富的功能模块、强大的数据库功能,从而缩短了升发周期,减少了开发费用,提高系统的可靠性。“组态王”就是国内较为优秀的工控组态软件之一。随着工业自动化技术的发展, 人们对自动化检测、监控系统的要求越来越高。一方面希望可靠性、实时性强, 界面友好、操作简单, 另一方面又要求开发周期短, 系统便于升级改造。因此最好的办法就是在系统中利用各种控制软件包, 即组态软件, 并以此为平台进行二次开发。组态软件实际上是一个专为工控开发的工具软件。它为用户提供了多种通用工具模块, 用户不需要掌握太多的编程语言技术, 就能很好地完成一个复杂工程所要求的多种功能,另外用组态软件开发的系统具有与windows一致的图形化操作界面, 非常便于生产的组织和管理。2.方案论证随着全球工业自动化技术的迅速发展以及计算机在工业测控领域的广泛应用,人们对工业自动化的要求越来越高。传统的工业控制软件已无法满足用户的各种需求,如果采用vb、vc+等语言编制,就要求工程开发人员必须有较高的计算机水平,并且花费大量的开发时间,从而使得系统的开发效率和可维护性都不同程度受到限制;如果采用单片机控制,虽然价格低廉,节约成本,但存在界面制作困难,编程繁琐等问题。随着工业自动化先进技术的推广应用,采用组态软件,可以将一些繁重而又重复的图形编辑工作交给组态软件去完成,而开发人员的工作则主要集中在数据流的分析和参数配置上。“组态王”是在流行的pc机上建立工业控制对象人机接口的一种智能软件包,它以windows系列中文操作系统作为操作平台,充分利用了windows图形功能完备,界面一致性好,易学易用的特点。它是采用pc机开发的系统工程比以往使用专机开发的工业控制系统更有通用性,大大减少了工控软件开发者的重复性工作,并可运用pc机丰富的软件资源进行而次开发,因此深受工程开发人员的青睐,同时组态王也有一定的缺点,就是难以实现复杂的控制算法,所以经过比较,北京亚控自动化软件科技有限公司的组态软件 kingview6.5以其强大的功能和易用性被定为本课题的软件开发平台。3. 锅炉液位监控系统的组成3.1 组态王软件简介组态王工控组态软件是基于windows98&nt的大型应用软件, 包括开发系统和运行系统两部分。纯中文界面、编程风格简单、实时性能好,且与其他应用程序交换方便,易调试,支持数百种国内流行的外部设备。 它集控制技术、数据库技术、人机界面技术、网络技术、图形技术于一身, 包含动态显示、报警、控件、趋势、及网络通信等组件, 提供一个友好的用户界面, 使用户在不需要编程序代码的情况下便可生成自己需要的应用软件。采用了多线程、 com组件等新技术, 实现了实时多任务完成, 软件运行稳定可靠。画面的开发和运行是由工程浏览器调用画面制作touchmak画面运行系统来完的 。touchvew从工业控制对象中采集数据, 并记录touchvew在实时数据库中。它还负责将数据变化用动画方式形象地表示出来, 同时完成变量报警、操作记录、趋势曲线等监视功能, 并生成历史数据文件。组态王软件具有如下特点:具有丰富的图库功能,可方便地构建各种监控界面。提供了丰富的动画连接功能,用于将plc中传送来的锅炉现场数据进行各种效果显示。提供了大量的设备驱动程序,在安装完新设备后,只需要进行简单的设置,设备就可正常工作,无须再单独安装设备驱动程序。完善的命令语言功能,支持顺序执行!条件分支和循环结构,可用来开发较复杂的应用程序。组态王分布式报警管理,提供多种报警管理功能,还可纪录应用程序事件和操作员操作信息。内嵌式报表系统提供丰富的报表函数,能够进行报表组态。支持windows标准的active x控件,包括microsoft提供的标准active x控件和用户自制的active x控件。支持opc标准,组态王既可以作为opc服务器,也可作为opc客户端。支持远程拨号,利用远程拨号能实现显示现场设备运行状况。支持网络dde功能。组态王软件是真正的客户服务器模式,支持分布式历史数据库和分布式报警系统,其网络结构是一种柔性结构,可将整个应用程序分配给多个服务器,如指定报警服务器和历史数据记录服务器,这样可以提高项目的整体容量结构并改善系统性能。3.2 上海新奥托控制系统3.2.1系统画面上海新奥托过程控制系统由锅炉、抽水泵、流量计、水箱、调节阀以及相应的阀门和管道组成,设计画面时,可以利用组态王提供的图库和画面工具,搭积木式地搭建出一幅画面,利用数据链接把画面上的对象与其对应的数据变量联系起来,采用一定的命令语言,让画面动起来。 图1 上海新奥托控制系统3.2.2 系统概述上海新奥托过程控制系统是一套能完成工业过程控制系统中常见的温度、压力、液位等数据的采集、处理、转换的实验装置。它利用工业生产中实际使用的传感器、执行机构等工业元件,在一个微型锅炉系统上实现过程控制。该装置是一个微型的锅炉加热、给排水系统,模拟了工业现场的小型工厂,具有真实性、可靠性和直观性,可以利用各种控制方式在装置上进行30套以上调节系统的自由组合,从而完成各种复杂调节系统的实验及其研究。3.2.3 系统原理系统的工作原理是:首先通过传感器对被控量进行数据采集,再通过差压变送器转化为标准模拟信号(420ma),送入kh9250(a/d)驱动板卡,组态王从中读取数据后,需要经过pc6327(d/a)板卡将其还原为液位信号返回原系统。其原理如图1:图2 系统原理图4. 系统硬件设计4.1 数据采集部分系统控制对象为上海新奥托过程控制对象,被控参数为液位,被控器件为变频器、电动调节阀、移相调功模块等。电磁流量计选用了上海光华仪表厂生产的电磁流量计(ldg-s型电磁流量传感器与ldz-4b或ldz-5型电磁流量转换器配套组成电磁流量计),该流量计检测精度高,工作稳定,功耗小,抗干扰性好,安装调试标定方便。该流量计是将流量信号输入转换器,经处理,输出与流量成正比的010ma dc或420ma dc信号。可与单元组合仪表配套,对流量进行显示、记录、积算、调节等。安装时要避免高温与振动的影响,安装位置要便于观察和维修。 差压变送器差压变送器用于测量液体、气体或蒸汽的压力、差压、流量、液位等过程参量,并将其转换为标准统一信号dc 420ma电流输出,以便实现自动检测或自动控制。差压变送器结构简单、使用方便、寿命长、适应性广。安装时应注意验证标牌上所标型号是否和使用现场压力范围吻合。 电动调节阀选用了上海奇胜仪表有限公司的zdsp型直行程电子式电动单座调节阀,该调节阀与普通电动调节阀相比具有精度高、技术先进、体积小、重量轻、推力大、功能强、伺服放大器与电动执行器一体化。它适用于阀门的控制,并且可与计算机配套使用,组成最佳调节回路。它是以电源为动力,接受010ma/420ma dc或15v dc信号,改变阀门的开度,从而达到对压力、温度、流量、液位等工艺参数的调节。安装时电动调节阀最好是正立垂直安装在水平管道上,应使介质的流通方向于阀体标定箭头方向一致。 移相调功模块移相调功模块的工作原理是用触发脉冲控制触发角,调节波形的占空比,以此来调节波形控制电压,从而达到控制功率的目的。 变频器选用德国西门子系列的变频器micromaster4。该变频器具有模块化设计,通过插入所需的模块,可以集成众多选项,满足设计的要求。其工作原理是把电压和频率固定不变的工频交流电变换为电压或频率可变的交流电。4.2系统控制输出中泰pc6403 板卡di 32ch(8bit4),其中8ch可选中断工作方式;do 32ch(8bit4),隔离电压500v,双端输入输出方式。它适用于工业现场的开关触点状态检测、电平监测以及计算机与数字仪器的接口。它采用了光电隔离技术,能够使计算机与现场信号之间全部隔离,提高了抗干扰能力。本卡的安装十分简便,只要在关电情况下将主机机壳打开,将本卡插入主机的任何一个空余扩展槽中,再将档板固定螺丝压紧即可。禁止带电插拔本接口卡。 kh9250板卡 a/d 12bit,单端32ch,010v、5v、10v输入,程控增益 116倍,a/d转换速率100khz;三总线光电隔离,隔离电压500v;带有1k字fifo存储器适合windows编程。自带隔离电源dc/dc。本卡适用于具有isa 总线的pc系列微机,具有很好的兼容性,带有1k12 bit的fifo存储器电路用来缓冲从ad 转换器件传来的数据块,以减少程序读写等待的时间。中泰pc6327板卡d/a 12 bit,8ch独立d/a,电压输出 010v、5v、05v、15v,电流输出 010ma、420ma,隔离电压500v,本卡自带隔离电源(dc/dc)。本卡分为ab两种型号,a型为4路输出,b型为8路输出。本卡上自带dc/dc电源模块,用户无须外加电源。本卡采用高速光电耦合器作为隔离器件,从而达到高速实时的操作。4.3驱动器件的配置在工程浏览器的目录显示区,用鼠标左键单击大纲项设备下的成员板卡,然后双击“新建”图标,弹出“设备配置向导”对话框:选中金科航板卡,找到kh9250,点击下一步,逻辑名称填kh9250,点击下一步,设备地址为250,即可定义完成。同理,可定义pc6327,其设备地址为300;pc6403,其设备地址为150。如下图:图3 设备名称图4 逻辑名称 图5 板卡地址 图6 板卡配置图4.4数据变量的定义数据库是组态王的核心部分。工业现场的状况和计算机发布的指令都是以实时数据为中介环节,数据库是联系上位机和下位机的桥梁 。在数据库中存放的是变量的当前值,变量的集合被称为“数据词典”。变量有内存变量和i/o变量。不需要和其他应用程序交换的变量设置成内存变量,如计算过程中的中间变量。相反则是i/o变量,如液位。驱动器件配置好,就能定义i/o变量,其具体步骤是:定义一个a/d变量:变量名:ad01,变量类型:i/o整数,最大值:4095,最大原始值:4095,连接设备:kh9250,寄存器:ad01.f1l5.g1,数据类型:int。参考图5:同样可以定义一个d/o变量和一个d/a变量。图7 数据词典图5.控制算法的选取与设计5.1控制算法的选取按偏差的比例、积分和微分进行控制的算法称为pid算法, pid算法是将描述连续过程的微分方程转化为差分方程 ,然后 ,根据差分方程编制计算程序来进行控制计算的.另外在 pid控制中 ,由于 pid算式选择的不同 ,最终所得到的控制效果是不同的。此算法参数易于调整,在长期应用中已积累了丰富的经验。特别在工业过程中,由于控制对象的精确数学模型难以建立,系统的参数又经常发生变化,运用现代控制理论分析综合要耗费很大代价进行模型辨识,但往往不能得到预期的结果,所以我们采用增量式pid控制算法。在位置式 pid控制算法中 ,每次的输出与控制偏差(e)过去整个变化过程相关 ,这样由于偏差的累加作用很容易产生较大的累积偏差 ,使控制系统出现不良的超调现象. 下面来研究增量式pid的控制算法. 根据递增原理可得式中: 为第k 时刻所得偏差信号,是给定值; 是实际输出值; 为比例增益; 为积分系数; 为微分系数。则增量式pid控制算法为根据以上推导, 得到增量式pid 控制算法的程序流程图如图所示。5.2 控制算法的设计 在自定义函数命令语言中编程为: float pid(float p, float i, float d, float pidset, float pidreturn, float m1,float m2)long pidout; long delta;delta=pidset-pidreturn;pidout=p*(m-m1)+i*m+d*(m-2*m1+m2);m2=m1;m1=m;return pidout;/pid 自定义函数 /pidout:pid输出值 /pidset:pid设定值/ pidreturn: pid反馈值 /m: pid偏差值=pid设定值-pid反馈值(中间变量) 在应用程序命令语言中编程,程序为:本站点液位控制输出=本站点液位控制输出+pid(液位p,液位i,液位d,液位设定,液位,液位前值,液位后值);6.监控系统的实现上位机以“组态王”软件为设计平台,其开发过程大致有以下几个步骤:建立工程,设计制作画面;进行设备和网络的配置,建立通信连接;构造数据库,定义数据变量;建立动画连接;最后运行和调试。6.1画面的制作6.1.1锅炉液位监控界面锅炉液位控制系统通过开启相应的阀门实现液位控制和扰动,可直观、动态地显示出各部位重要参数的变化。图8 锅炉液位监控界面水流方向的设计:四个液柱为一组,例如在下位水箱右侧的四个液柱,其动画连接为:液柱1:按下时命令语言为(a=0)&(v7=1)&(do1=1)&(v2=1);液柱2:按下时命令语言为(a=1)&(v7=1)&(do1=1)&(v2=1),液柱3:按下时命令语言为(a=2)&(v7=1)&(do1=1)&(v2=1),液柱4:按下时命令语言为(a=3)&(v7=1)&(do1=1)&(v2=1)在应用程序命令语言中编程为:if(a=3)a=a+1; else a=0;设置命令执行周期为800ms,在程序运行以后,每隔800ms执行1次上述语句,使a值在0,1,2,3之间循环,从而使四个液柱能够循环显示,把水流流向形象的表示出来。阀门的设计:从图库中找到的阀门没有动画连接对话框,因此,可以把阀门做成点位图。具体方法:在画面上画一个阀门,按下键盘上的prtscsysrq按钮,将其粘贴在画图板上,再选定该阀门在组态王开发系统中粘贴点位图即可。仪表动画连接:例如锅炉出水流量表的动画连接,在仪表向导对话框中填写:变量名:出水流量百分比,最小刻度:0,最大刻度:100。电动阀动画连接:例如出水电动阀,在对话框中填写变量名:ad01,最小值:0,最大值:100,当变量在0100之间填充色为绿色,当超过100变为红色。其他:下位水箱液位和抽水电机的动画连接为模拟值输出,电机运行状态为离散值输出。6.1.2pid控制画面 图9 pid控制图在游标的动画连接对话框中:变量名1:锅炉液位设定,变量名2:锅炉液位,标签文本1:sv,标签文本2:pv,再选变量的填充颜色。在文本输出#中的动画连接对话框中:模拟值输出和模拟值输入连接都是液位调节p、液位调节i、液位调节d。在按钮向导中:按下时,连接的变量分别是液位调节p、液位调节i、液位调节d。6.1.3趋势曲线 实时趋势曲线和历史趋势曲线在监控系统中, 实时趋势曲线和历史趋势曲线能够用来反映信号的变化情况, 实时趋势曲线和历史趋势曲线包括画面坐标的定义、曲线绘制等。对不同控制点其实时趋势曲线和历史趋势曲线是类似的。实时趋势曲线用于实时显示数据的变化情况, 在画面运行时实时趋势曲线对象由系统自动更新。数据将从趋势的右边进入,同时趋势将从右向左移动。在组态王开发系统中制作画面时, 单击工具箱中的“ 画实时趋势曲线”按钮完成实时曲线任务。历史趋势曲线可用于查询以前的系统工作状况, 组态王图库里备有完整的历史趋势曲线图片, 可对其进行移动、缩放, 并通过定义属性、填充属性, 调整跨度、卷动百分比来界定曲线的具体形式, 曲线定义的数据变量必须是在数据库中已经定义的, 此功能实现了历史状况的趋势再现。实时趋势曲线画面实时趋势用于实时显示数据的变化情况,在画面运行时实时趋势曲线对象由系统自动更新。数据将从趋势的右边进入,同时趋势将从右向左移动。在组态王开发系统中制作画面时,选择菜单“工具/实时趋势曲线”项或单击工具箱中的“画实时趋势曲线”按钮,在画面中用鼠标画出一个矩形,实时趋势曲线就在这个矩形中绘出,双击趋势曲线后,可弹出“实时趋势曲线”对话框。单击对话框上方的“曲线定义”按钮,可进行曲线定义。图10 实时趋势曲线图实时趋势曲线:连接变量:曲线1:锅炉液位,曲线2:下位水箱液位曲线3:锅炉液位控制输出;显示液位曲线按钮:弹起时:htsetpenname(trend,1,“锅炉液位” );htsetpenname(trend,1,“下位水箱液位” );htsetpenname(trend,1,“锅炉液位控制输出”); 历史趋势曲线画面历史趋势曲线中绘制了数据变量的历史变化情况,操作人员可以通过界面上的各种查询操作按钮,得到所选择的变量的趋势曲线。历史趋势曲线不能自动卷动,它一般与功能按钮组合查看一段时间内的最大值、最小值、平均值和所选择时间点的当前值。图11 历史趋势曲线图 历史趋势曲线向导:连接变量:曲线1:锅炉液位设定,曲线2:锅炉液位,曲线3:锅炉液位控制输出液位最小值:模拟值输出表达式:htgetvalueatzone(历史趋势曲线,3,“minvalue”); 液位最大值:模拟值输出表达式:htgetvalueatzone(历史趋势曲线,3,“maxvalue”) 液位平均值:模拟值输出表达式:htgetvalueatzone(历史趋势曲线,3,“averagevalue”)6.1.4 报警设计运行报警和事件记录是控制软件必不可少的功能。组态王能够自动对“ 变量定义”对话框中的“ 报警定义”有效的数据变量进行监视, 如果发生报警事件, 就将这些事件存于内存中的报警事件缓冲器中, 报警窗口的报警和报警事件都是取自报警缓冲器。定义报警变量时, 可以定义报警条件( 如锅炉液位的高、低限,高高、低低限) 、所在报警组、优先级, 以描述报警的分类信息和严重程度。在画面中, 单击“ 工具箱”中的报警设计非常简单“ 报警窗口”按钮, 然后用鼠标在画面上拉出一个矩形, 再双击它, 则出现“ 报警窗口配置属性”窗口, 对其进行设置就可完成报警窗口的设计。报警窗口记录着系统运行中的各种报警事件、报警时的状态值、及报警处理,这些均在数据变量的报警属性中进行设定。“组态王”软件主要用于开发系统监控系统,“组态王”可以为每个数据定义它的报警信息,模拟量还可以定义高低、高高、低低报警值,并且可以通过条件脚本或数据值改变脚本和用户编制的快速脚本处理各种报警信息,如弹出报警窗口或声音提示。例如要监控锅炉液位过高的情况,就可以定义一个libinbin.high的脚本文件,并在ontrue脚本框中写上:show picture(“libinbin.high-alarm”)(弹出报警窗口);playsound(“d:sound液位高报警.wav”,1)。图12 报警画面图13 报警数据建立报警组:在数据库大纲下点击“报警组”,双击新建图标,建立报警组为:根节点下是“监控”节点,此节点下有阀门、液位等两个并行节点。 在画面属性中编写程序为: if(alamack=0)历史报警窗.group=阀门;if(alamack=1)历史报警窗.group=液位;if(alamack=2)历史报警窗.group=监控;reportsetcellstring(“报警报表”,2,2,报警变量名)reportsetcellstring(“报警报表”,3,2,报警事件类型)reportsetcellstring(“报警报表”,4,2,报警时间)reportsetcellstring(“报警报表”,5,2,报警变量日期戳)reportsetcellstring(“报警报表”,6,2,报警变量时间戳)变量报警属性的定义:出水阀:在开关量报警处选中:离散,关断,扩展域1填“出水阀开关”,扩展域2填“关” 。液位:在报警限处选择低低、低、高、高高界限值文本输出动画连接:小偏差:模拟值输出:液位.minordevpct,模拟值输入:液位.minordevpct。同理,大偏差为majordevpct,高限为hilimit,高高限为hihilimit,低限为lolimit,低低限为lololimit.在自定义函数命令语言中编程:void $system_real alarm(realtag rtag, long time, long event, long naction)本站点报警变量名=rtag.name;if(event=0)本站点报警事件类型=“报警产生”;if(event=1)本站点报警事件类型=“报警恢复”;if(event=2)本站点报警事件类型=“报警确认”;本站点报警时间=strfromtime(time,3);本站点报警变量日期戳=rtag.timedatestring;本站点报警变量时间戳=rtag.timetimestring;void $system_long alarm(longtag ltag, long time, long event, long naction)本站点报警变量名=ltag.name;if(event=0)本站点报警事件类型=“报警产生”;if(event=1)本站点报警事件类型=“报警恢复”;if(event=2)本站点报警事件类型=“报警确认”;本站点报警时间=strfromtime(time,3);本站点报警变量日期戳=ltag.timedatestring;本站点报警变量时间戳=ltag.timetimestring;6.1.5监控站数据库本数据库采用sql。它是为了实现组态王和odbc数据库之间的数据传输。sql包括sql访问管理器和sql函数。sql访问管理器是用来建立数据库列和变量的联系。sql函数可以在组态王的任意一种命令语言中调用。图14 监控站数据库图先在access中建立一个库名为“sql数据库”的数据库,并在sql数据库中建立一个表名为“液位监控表”的表,保存该表。然后在打开控制面板中的“32bit odbc”中增加一个microsoft access driver数据源,其源名为“sql数据库”。在工程浏览器中建立一个名为bind的记录体,把组态王中的变量和数据库“监控表”中对应字段名称增加到记录体中。在画面属性中编程为:sqlconnect(deviceid,“dsn=sql数据源” );6.1.6 报表设计数据报表反映生产过程中的数据、状态等,是对数据进行记录的一种重要形式,也是生产过程必不可少的一个部分。它既能反应系统实时的生产情况,也能对长期的生产过程进行统计分析,使管理人员能够实时掌握和分析生产情况。 组态王提供内嵌式报表系统,还提供了丰富的报表函数,实现各种运算、数据转换、统计分析和报表打印等。如设计一个实时数据报表,在组态王工具箱按钮中,用鼠标左键单击“报表窗口”按钮,在画面上需要加入报表的位置画出一个矩形,这个矩形就是创建后的报表窗口。用鼠标双击报表窗口的灰色部分弹出“报表设计”对话框,该对话框主要设置报表的名称、报表表格的行列数目以及选择套用表格的样式,然后在相应的单元格中添加变量,使用函数reportprint2(“系统实时数据报表”)。在画面中设计一个按钮或菜单,用于打印报表。我们应用“组态王”的命令语言设计了“系统总貌” 、“液位监控界面” 、“ pid控制画面” 、“数据词典” 、“实时趋势曲线” 、“历史趋势曲线” 、“报警画面” 、“报表”等等。图15 报表图16 报表图在画面属性中的画面命令语言中编写程序为:reportsetcellvalue(“系统实时报表”,1,1,液位)if(出水阀=0)w=“关”;elsew=“开”;reportsetcellstring(“系统实时报表”,1,2,w);if(进水阀=0)w=“关”;elsew=“开”;reportsetcellstring(“系统实时报表”,1,3,w);reportsetcellstring(“系统实时报表”,1,4,液位设定);6.2 数据处理6.2.1建立与数据库的连接 数据库是监控系统软件的核心部分,是联系上位机和下位机的桥梁。下位机采集到数据和上位机的控制数据都存储在数据库定义的变量中,对数据的访问、查询、运算、以及动画连接、数据交换、网络通讯等功能也是建立在数据库的基础上.如下图系统软件功能配置图所示。 通过组态王sql访问管理器,把组态王的内部变量与通用数据库中的变量对应起来,并利用sql内部函数,实现与通用数据库的连接。在本系统中,我们选择微软公司开发的access作为系统的数据库软件,并建立名为mydb.mdb的数据库和相关数据表(如报警和事件数据表等);在控制面板中建立一个名为mine的32位odbc数据源,连接对象为预先创建的access数据库mydb.mdb;利用sql访问管理器创建名为bind 1的记录体,输入字段名称和变量名称,建立数据库mydb的数据表中的列和组态王的变量之间的对应连接:在“应用程序命令语言”对话框的“启动”,选项下添加:sqlconnect(deviceid,“dsn=mine;uid=;pwd=m”)语句,实现组态王与数据库的连接;利用sqllnsert(deviceld,“事件数据报表”,“ bindl”)语句,在数据库的相应表格中插入新的记录:利用sqlselect()函数获得满足条件的记录;另外,通过使用kvdbgrid 控件和 grid.fetchdata()函数,实现对数据库的有/无条件查询6.2.2 数据存储在锅炉模拟监控系统中, 对液位参数的记录和保存是非常重要的, 可用于事后数据的查询和分析。组态王的数据保存是在变量定义时设定的。虽然数据采集频率可以设定为毫秒级, 但组态王提供的最快的数据保存频率是1个/秒。也就是说, 对每个变量而言, 1秒只能有保存一个有效益数据。当现场实际要求 1秒钟保存多个数据时, 简单、直接的使用组态王是不能实现的,这里利用组态王提供的 sql访问功能, 结合ms access, 可以实现微机监控系统或数据采集系统中的毫秒级数据保存功能。组态王虽然可定义数据文件在硬盘中的保存日期(超过该日期自动从硬盘中删除),但如果要保存的时间较长,保存的数据量将非常庞大,不仅造成硬盘的浪费,而且由于组态王的数据文件结构形式复杂,年终时报表处理也需要花费大量的处理时间。因此,在本系统中使用sql技术,将数据隔一定的时间(如1小时)保存到access2000中。 6.2.3 数据检索考虑到组态王提供的报表格式有限,不能满足工程的需要,而使用excel可以方便地进行表格式数据综合管理和分析等二次处理的功能,系统添加了excel对access数据库进行查询的功能。excel提供了“宏”的概念来进行功能扩展,宏是存储在visual basic模块中的一系列命令和函数,当需要执行该项任务时.可随时运行宏其开发环境称之为vba(visualbasic for application),vba提供了一套基于vb的面向对象的系统开发工具,很多语法继承于vb语言可以像编写vb程序那样来编写vba程序,实现特定的功能。支持vba二次开发的应用程序都内建许多对象,这些对象都具有方法和属性。vba通过改变这些对象的属性,调用相应的方法访问这些对象,实现编程目的。excel中的vba,主要在vb中增加了关于excel工作簿、工作表、区域、数据透视表等对象的属性、事件和方法。 要使用vba进行数据库查询必须先添加xlodbc.xla加载宏,该宏中封装对数据库访问、搜索、查询的功能,该宏在office安装盘中可以找到,添加方式为“excel-工具-宏-visualbasic编辑器-工具-引用”。在使用vba编程时,首光要注意在excel中工作簿定义为“workbook”工作表为“worksheet”区域为“range”单元为“cell”。在编程时对单元格进行操作,必须指明单元格所在的工作表以及所在的区域。以下语句示例将sheetl上a1单元格的值设置为8.8。worksheets(“sheetl”).range(“a1”).value=8.8。 下面介绍几个重要的数据库检索函数: chan=sqlopen(“dsn=server)建立与数据源的连接,其中server为数据源名。 sqlexecquery(connection.text) 函数在该数据源上执行查询。connection指定要查询的数据源的唯一连接标识:text要在数据源上执行的查询内容。 set output=worksheets(“液位”).range(“a1” )将查询结果显示在表“液位”的a1单元格中。通过在vba中编程,实现了在excel中对access数据库的查询,查询的结果可以利用excel强大的数据处理、统计分析功能进行数据的二次处理。6.2.4数据库访问数据库是系统管理不可缺少的工具,也是工作报表的数据来源,本系统即采用sql server。“组态王”支持sql语言,并且能通过odbc连接口方便地和不同的数据库进行连接。要实现此功能,首先打开windows控制面板的32位odbc数据源管理器。单击添加,选择sql server,定义一个数据源名,如:refeng-binbin在“组态王”的访问管理器记录体中,为自己在数据库中定义的表(如binbin)定义一个绑定的列(如libinbin),表与绑定列的格式和数据类型应完全一致。然后使用以下指令建立和refeng-binbin的数据库的连接:sqlconnect(deviceid,“dsn=refeng-binbin;database=pubs;uid=super;pwd=abcd”);(建立和数据库的连接)sqlinsert(deviceid,“binbin”,“binbinlist”);(在表格中插入记录)用sqlsetstatement()和sqlappendstatement()两个函数,为数据库建立动态查询。resultcode=sqlsetstatement(connectionid,“selectlibinbin from binbin”) resultcode=sqlappendstatement(connectionid,“where libinbin=?”)。6.3 网络连接6.3.1通讯的实现组态王支持串口通讯、数据采集板、dde通讯、人机界面卡、网络模块五种通讯方式。只需按照设备安装向导的提示即可完成设备的配置工作。串口通信方式使用计算机的串行口, 设备i/o通过 rs232 (rs485) 串行通信电缆连接到“ 组态王计算机”的串口, 本系统中用于液位控制的智能仪表 即采用这种方式。利用设备配置向导可以完成串行通信方式的设备安装, 主要包括i/o设备选择、设备名称、选择串口号、设备地址和通信参数。因为系统中的计算机要通过以太网传递数据,所以在组态王中必须进行相应的网络配置。为此,将主计算机设置为登录服务器、i/o服务器、报警服务器、校时服务器和历史记录服务器,同时在辅计算机上将主计算机作为远程点,而将辅计算机设置为客户。然后把主计算机上的画面导入,分别打开各个画面,将所有对象重新进行动画连接,并把每个变量都改成远程站点下的变量。这样,当主计算机上运行了组态王以后,在辅计算机上就可以动态显示各个画面。6.3.2网络连接过程运行系统 启动运行系统 开始记录历史数据运行系统 网络模式运行666运行系统 初始化tcp/ip网络运行系统 尝试与远程节点建立网络连接远程站点数据采集站运行系统 与远程节点连接成功远程站名数据采集站运行系统 初始化远程站点,远程站名数据采集站,变量数=1,包号=1运行系统 初始化远程站点成功,远程站名数据采集站,包号=1运行系统 初始化远程站点结束,远程站名数据采集站 6.4 系统安全设置 系统安全是软件设计中必须考虑的问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论