OPC接口程序的设计实现

OPC接口程序的设计实现

 

0引言   可视化界面软件是在生产过程自动化中解决可视化和控制任务的人机接口软件[1]。它具有高度的实用性和组态灵活性,可开发生成友好的交互式图形界面。但是它的数据运算能力较弱,不易实现复杂的数据处理和控制算法。比如DCS系统中的组态软件,虚拟仪器软件LabVIEW[2]等。而在数据处理和复杂控制算法的实现方面有突出优势计算机编程语言如MAT-LAB,C,C++等,由于其编程方便、使用灵活、易于移植、便于模块化处理的特性,成为工程技术人员开发实现复杂算法不可或缺的实现工具。尤其是MATLAB语言,针对不同的工程应用领域,系统有相应的工具箱,这不仅能够方便地进行算法的设计与实现,而且能极大地缩短开发周期。但是这些开发语言不能与工业现场设备直接进行数据交换,而且在界面设计方面也明显逊色于组态软件。如何在可视化界面系统中,综合采用先进智能算法,使整个系统满足生产过程的目标要求,从而提高界面监控系统数据处理性能,是界面监控系统亟待改善和提高的课题。OPC通讯技术的出现为解决该问题开辟了一条有效的途径[3]。   1开放性的OPC接口协议   OPC(ObjectLinkingandEmbeddingforProcessControl)技术即过程控制中的对象连接和嵌入技术[4],它为基于Win-dows的应用软件和现场过程控制架起了桥梁[5]。作为工业标准的OPC技术,不仅解决了不同软件和硬件之间的通讯障碍,而且也很好地解决了不同软件之间由于数据格式不一致而带来的通讯问题[6]。OPC采用典型的客户机/服务器模式:一个OPC客户程序可以连接一个或多个不同的OPC服务器程序,同时多个不同的OPC客户程序也可以连接到同一个OPC服务器程序上,结构模型如图1所示。OPC数据存取服务器主要包括服务器对象、组对象和项对象。OPC服务器对象负责维护相关服务器的信息,并作为OPC组对象的包容器,可以动态地创建或释放组对象;组对象除了维护自身相关的信息外,要提供包容和组织OPC项对象的机制;OPC项对象则需维护OPC服务器中与数据有关的信息,但它并不是实际数据源,仅是指向数据源的连接。服务器对象、组对象和项对象之间的组织关系如图2所示。基于OPC通讯的标准协议,是由世界上领先的自动化软、硬件厂商连同微软公司通力开发的,它使工业控制无论是在硬件还是软件方面都有了统一的依据标准[7]。在软件方面,目前几乎国内外所有流行的组态软件都支持OPC数据交换标准。而且主流的计算机编程语言,都支持OPC通讯协议。值得提出的是当今最优秀的科技应用软件之一MATLAB在其7.0以上版本中还专门集成了OPC工具箱。硬件方面,当前几乎所有的PLC及其他工业现场设备都支持OPC数据通讯协议[8]。   2系统构架   当前,在工业DCS系统中,对现场生产过程的控制,多数是由在监控室中的工程技术人员根据现场监测数据并结合工程经验来完成的。这种控制方式对操作员的经验有过高的依赖性。尽管在某些先进的DCS系统中对一些参数的控制采用了诸如PLC等硬件来实现,这也从一定程度上提高了控制效果,但是过于复杂的控制算法就难以实现了。基于OPC通讯技术,设计了DCS系统的复杂控制算法的实现方法。该DCS监控系统充分利用了算法软件的运算优势,实现对工业过程的复杂、智能控制,同时也不需对原DCS系统进行大的改变,控制效果也远优于传统方式。系统结构框图如图3所示。系统运行后,DCS实时数据库系统按照一定的采样频率从生产现场采集的实时数据。这些数据一方面通过组态软件显示在系统的监控界面上;另一方面,被存储到DCS系统的历史数据库中,以备以后的查阅使用。而后台的控制算法应用程序一旦被DCS监控系统唤醒,后台控制程序将按照事先设定的周期通过OPC数据交换通道读取实时采集而来的数据,然后结合数据信息并调用相应后台算法,计算出控制器当前和接下来一段时间内应采取的控制量,并将该控制量及时地通过OPC数据交互通道传递到DCS实时数据平台,并由该平台向工业现场控制器发出相应的控制指令。从而完成一次控制动作。后台控制算法按照一定的周期,反复如此,直到接收到DCS实时数据平台发出停止指令为止。   3系统仿真实验设计   为检验以上系统构架的可行性和控制的实时性,选择广泛应用于矿山、码头、冶金和化工等行业的传送带配料系统为被控实验对象。控制器通过接收来自上位机的设定流量数据作为给定量,与实际检测到的流量进行比较,得出偏差,然后根据偏差来决定控制系统的输出,即电流控制信号,进而控制电机的转速,使物料流量稳定在期望值上。基于以上的被控对象,采用力控组态软件开发DCS仿真系统并用MATLAB设计相应的控制算法,利用远程网络上的另一台计算机上运行的simulink仿真框图来模拟现场工业过程。   3.1DCS监控界面的构建   根据系统构架,原有DCS系统不需要做大的改变和调整,只需要在后台DCS实时数据库中增加对相关对象的控制量即可,为验证系统构架的可实现性,设计了如图4所示的DCS仿真界面。   3.2OPC接口程序的设计实现   系统的后台控制算法由MATALB编写实现,并通过OPC接口程序与DCS交换实时数据。MATLAB为OPC提供了专门的接口函数,以方便创建和配置OPC对象,并读写和记录数据。下面给出了MATLAB与三维力控组态进行数据通信的部分程序。3.2.1MATLAB获取实时数据da=opcda('localhost','PCAuto.OPCServer');connect(da);%与OPC本地服务端相连grp=addgroup(da);%添加组itm=additem(grp,'flag.PV');%把变量元素添加到组中;itm1=additem(grp,'def.PV');itm2=additem(grp,'out.PV');itm3=additem(grp,'u.PV');while(flag==1)r=read(itm1);%读取设定输入值rin=r.Value;y=read(itm2);图5后台模型simulink框图yout=y.Value;上述程序实现了MATLAB应用程序对DCS系统的实时数据的读取操作。后台程序可以利用这些数据进行计算推导,得到下一控制周期应该施加的控制量。3.2.2MATLAB运算结果写入力控实时数据库grp=addgroup(da);%创建项目组Itm3=additem(grp,'u.PV');%把变量添加到组中…%计算控制量u的值write(itm3,u);%向力控实时数据库写数据通过上述程序的执行,MATLAB的运算结果u将被写入到力控的实时数据库,并由组态软件将控制作用发送到工业现场执行机构。#p#分页标题#e#   3.3后台控制算法   针对该系统,利用增量式PID控制算法实现对传动带系统的流量控制。数字PID算法的表示形式如式(1)所示。u(k)=Kpe(k)+Ki∑kj=1e(j)T+Kde(k)-e(k-1)T(1)考虑到程序设计的方便,采用增量式PID算法。增量式PID算法的表示形式如式(2)和(3)。Δu(k)=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)](2)u(k)=u(k-1)+Δu(k)(3)PID控制器的各个参数,使用实验整定好的值。   3.4MATLAB应用程序编译生成可执行性文件   由于MATLAB的开放性,由其编写的程序都可以通过自身的编译系统,将源程序编译成可执行文件。这不仅提高了程序的可移植性,还增加了与其他应用程序的兼容性。针对实验模型,将后台PID控制算法,编译生成exe的文件。并将exe文件及其相应的系统文件按要求归置到相应的路径下,在设计完成的DCS系统中做相应的调用设置,就可以脱离MATLAB环境,实现对后台控制算法的调用。MATLAB独立应用程序的编译步骤如下:(1)在MATLAB的command窗口中输入mcc-Bsglpid.m(pid.m为后台算法的源程序);(2)将生成的exe文件及其相关系统文件连带MCRin-staller.exe放到同一文件夹下并拷到待运行的机器;(3)在机器上先运行MCRinstaller.exe,然后选择解压目录,安装相应组件。此外,也可以使用MATLAB中的编译系统生成COM组件,来完成独立应用程序的。   3.5DCS工业现场的模拟设计   后台控制算法应用程序的设计是依赖于实际工业过程来设计的,比如控制变量的命名和选择等都必须依赖于原有DCS系统,并与DCS数据库中的变量建立起对应的一一映射关系才能够完成对特定对象的控制。皮带配料系统的数学模型如式(4)。仿真模型由MATLAB中的simulink模块搭建而成,仿真框图与组态软件之间,也采用OPC通讯技术来完成动态数据的交换,框图如图5所示。框图的OPCRead和OPCWrite工具框,操作的变量必须与DCS系统中数据库中的变量一一对应。而且这两个工具箱读写数据的方式可设置为同步或者异步方式。根据系统需要,将数据的读入设置为同步方式,数据的写入采用采样周期为1sec的异步方式。值得注意的是,在设计控制后台算法和设计仿真模型时,通过OPC通讯技术而进行的数据交换都是OPC服务器中所包含的变量。模型框图中读取的是OPC服务器中控制信号即电机电流采样值,即控制量;向OPC服务器写入的值,是系统的输出即流量输出的实际值,二者都是OPC数据库变量。   4实验与结果分析   各部分设计完成后,首先是将生成的后台控制应用程序放置在指定路径下,并在组态环境中设置调用该应用程序的命令语句和其他相关参数。组态中的各项参数设置完成后,保存打包成一个工程文件。将打包好的工程文件连带后台算法应用程序,解压安装在目标计算机上。首先启动DCS系统并运行控制应用程序,此时打开模拟现场对象的另一台计算机,运行组建好的模型的simulink框图,这样整个实验系统移动完成。   在系统界面中,如图6所示,流量设定值为系统的给定量,即期望的流量设定值,由操作人员根据需要来输入确定值;已传送总量和当前库存总量是根据流量等数值进行相应运算,由后台对象仿真模型得到;流量的测量值是后台对象仿真模型的输出值。后台控制算法的计算结果,即控制量u,则可以通过在实时曲线图中读取。仿真开始后,在流量设定值输入窗口输入流量期望值100kg/min并记录下当前的时刻为09:38:37,观察实时曲线窗口随时间的推移,流量测定值和控制量的变化曲线,如图6(a)所示。待输出曲线值稳定后,改变设定流量为50kg/min并记录当前时刻为09:40:04得到如图6(b)所示的结果。   从以上仿真图形表明,基于OPC通讯技术的后台控制应用程序能够实现与DCS系统实时数据库的数据交换,并能完成对现场模型的有效控制。在图6(a)的实时曲线框图可以看出中,在09:38:38时刻,控制量u开始发生变化,在09:38:39时刻,流量的测量值也跟着相应地发生变化,而设定值的输入时刻为09:38:37。同样对于图6(b)的实时曲线,在09:40:04时刻改变流量设定值,在时刻09:40:05控制量u开始发生了变化,在09:40:06时刻,流量的测量值也跟着相应地变化。从以上的仿真曲线和时刻对应关系中可以发现,在DCS系统采样周期为1sec的情况下,设定值输入后,在下一个采样周期内,后台控制算法就根据给定值的变化对控制量作出相应的调整。由于对象的纯滞后性,对象的输出相对应于输入有一定的延迟。以上的这些数据充分说明后台控制算法满足对工业过程实时性的控制要求。