OPC技术在溢流染色机集散式监控系统的应用研究

2012-07-13 03:06杨亦红查显梅
电子设计工程 2012年3期
关键词:染色机数据项驱动程序

杨亦红,查显梅

(1.浙江工业职业技术学院 电气工程分院,浙江 绍兴 312000;2.浙江华通控股集团有限公司 浙江 上虞312300)

一般织物的染色是在染色机的染缸内按染色工艺进行的,通常整个染色过程控制是参照一条按时间序列控制温度变化的工艺曲线完成的[1]。在该工艺曲线中,既包括多段不同速率的升温、保温、降温组成的温度控制过程,又包括进料、进水、排水等辅助工艺组成的断续控制过程。总体上来看实际生产车间中染色机台数一般较多,而且染色工艺过程控制参数繁多,仅通过传统的单片机或PLC控制系统构建的染色机控制器,要逐一完成每台机器各项参数的配置,显然其工作的效率极低;同时各染色机的工作状态也较难实时、动态、全面反映。因此,设计一种可监控车间中各染色机的工作过程参数的集散式染色机监控系统,使得可以及时调整和控制各染色机的工作过程参数,已经成为提高生产效率、产品质量并优化成本的实际需求。

1 集散式染色机系统的架构

这里提出的集散式染色机控制系统,就是要将原来的染色机控制器作为下位机通过网络连接起来,增设了PC机作为上位控制机,配置系统监控软件,构成一个集散网络控制系统,如图1所示。通过上位机集中对下位机进行监控,下位接收上机位控制指令并完成相应控制动作,在必要时向上位机发送本染色机状态信息,如温度,流量,PH值等。总体系统实现分布式控制,可实现集中监控、实时数据保存、远程动态显示设备的运行状态等功能,管理人员在监控室就能实时、动态掌控生产过程,从而提高生产和管理效率。

图1 集散式染色机监控系统结构Fig.1 Structure of distributed monitoring system of dyeing machine

2 OPC技术概述

由于染色机监控系统中的染色机台数较多,集散系统中会存在大量实时数据的通信交互,终端设备需要与不同的线程进行数据通信,且可能涉及不同通信协议之间的转换,仅使用这种常规的多线程程序设计方法(即由界面线程和若干工作线程的交互来完成软件任务),会造成程序结构过于复杂,且难以控制不同进程之间的互操作,调度,通信等,使得程序设计者不得不花大量精力于程序细节以避免顾此失彼,且有可能影响系统的稳定性,可靠性等性能,且配置完成整个系统所需的人力,财力也极为可观。而采用OPC技术则可以解决这个问题。

图2 OPC服务器应用程序Fig.2 The application of OPC sever

图3 两种程序设计方法中软件结构的对比Fig.3 Comparison of the software structure in the two programming methods

OPC(OLE for Process Control)是由OPC技术基金会管理的一个工业标准[2],是微软公司基于COM规范的OLE(对象链接和嵌入)技术在过程控制方面的应用,已被广泛用于过程控制和制造业自动化系统。OPC服务器应用程序由服务器组件、组、逻辑项组成,由服务器组件提供一整套OPC通用的接口与各种过程控制设备之间的进行通讯。OPC服务器应用程序的基本组成如图2所示。图中的逻辑项是映射到硬件设备的对应属性如:压力、温度、速度、位置等的逻辑元件,应用程序对这些逻辑项的操作实际就对应于相关硬件属性的操作。OPC服务器以成组的方式来管理各个逻辑项,各组可以有不同的刷新率,输入输出模式等特性。

与常规的多线程程序设计方法相比,利用OPC技术,客户应用程序即监控管理应用程序可以大大减轻应用程序的编程工作量[3-4],只要处理与服务器之间的标准接口即可,如图3所示,而系统的性能也会得到很好的提升,采用OPC技术设计的监控系统的基本特点在于:1)这里OPC服务器负责处理数据的缓冲与通信协议,对于客户程序来说不需要知道或处理与具体设备的通信协议;2)由于它不再需要与多个线程交互,减少了终端设备的负荷,也延长了终端设备的服务周期;3)系统的可伸缩性大大增加,扩充新的终端不会影响原来设备;4)由于OPC采用标准接口,支持 Windows和Linux,使系统在不同平台上有良好的互操作性。

3 OPC服务器数据访问接口的设计与实现

为了协调处理多个线程访问OPC服务器的情形,在服务器程序设计时,专门设置了一个客户线程调度线程,按照一定的调度规则对客户线程进行合理的安排,使其能按正确的顺序对驱动程序进行访问。按OPC DA规范[1],分别设计了同步、异步IO接口(如图4所示),其程序行为分别是:

1)同步IO接口 同步访问设备时,直接调用驱动程序提供的读写逻辑项函数ReadTags/WriteTags,驱动程序将响应数据放入响应队列,再在客户线程调度线程调度到此队列的访问时,通知同步IO接口读取;同步访问缓冲时,可直接从缓冲读取数据。

2)异步IO接口 异步访问设备时,先将访问请求放入访问请求队列,再在客户线程调度线程调度到此队列时按访问要求,分别访问缓冲或用ReadTags/WriteTags函数访问设备读写逻辑项。数据更新线程从驱动程序获知数据项变化时刷新主缓冲,客户线程调度线程观察到主缓冲数据有更新时会用OnDataChange回调函数通知异步IO接口读取数据。

图4 OPC服务器数据访问的接口Fig.4 Data access interface of the program of OPC server

按照此接口模型,客户线程通过异步或同步IO接口向驱动程序发出读逻辑项(比如压力值)或写逻辑项(比如控制阀)的指令,至于具体的向对应设备读入或向对应设备输出数据的工作就交给OPC服务器去完成了,从而使客户线程从容地进行后期的数据处理工作。

服务器程序编译后成为一个动态链接库,以供客户端程序使用。但要正确使用,需要在安装服务器程序时向操作系统注册服务器程序的类ID即CLSID,及以上描述的由服务器所提供的各种接口的ID即IID,这些ID都是48位的唯一标识,可windows自带工具中的uuidgen.exe产生,客户端程序需要以此为着力点,创建服务器对象,及其接口对象。

4 监控管理应用程序的实现

遵照OPC基金会发布的OPC规范,OPC服务器组件以COM接口的形式提供客户程序使用,客户程序以服务器的ID或枚举的方式获得OPC服务器组件对象,它提供了基本管理接口,其中IOPCBrowseServerAddressSpace用于查询服务器地址空间,客户程序可以逐级查询,直到页节点数据项,如本系统所设计的数据管理层次图5中所示各项。具体的数据项读写流程如图6所示[5]。

按此流程,基于Visual c++开发环境并使用MFC类库,作为OPC服务器的客户程序的染色机监控管理程序的相关部分主要代码简述[6]:

图5 系统的数据管理层次Fig.5 Levels of Data management in the system

图6 监控管理应用程序的数据项读写流程Fig.6 The flow of read and write for data items in Monitoring management application

1)在工程的预编译头文件stdafx.h中加入对OPC标准COM接口头文件的包含引用,它们是:opcda.h、opccomn.h、opcerrors.h、opcprops.h、opcquality.h, 并将 opcda_i.c、opccomn_i.c文件加入工程。然后在程序初始化时加入初始化COM环境的代码:每个COM服务器都有一个字符串型的ProgID,比如这里为自定义的“MyDyerOpc Sever”,用 CLSIDFromProgID( )函数可实现ProgID到CLSID的转换,并创建服务器对象实例,并查询得到IOPCServer接口指针m_IOPCServer:

2)用m_IOPCServer接口的AddGroup方法创建OPC组对象的实例如CANBUS,并取得IOPCItemMgt接口。

3)用IOPCItemMgt接口的AddItem()方法添加具有特殊属性的指定数量的数据项,比如 Pressure、Temprature、FlowRate等。

4)通过异步或同步方式进行读写,一般对于较大量的数据传输,异步方式是较好的选择,但对少量的数据传输,同步表现得更好。以异步读访问方式为例,需要先用IOPCItemMgt接口查询得到IOPCAsyncIO2指针:

程序中所有数据项均可通过类似方法进行访问;

5)当程序退出或停止服务器时,需要依次用IOPCItemMgt的RemoveItems删除数据项Item、用IOPCServer的Remove-Groups删除组Group,以此释放资源。最后用:CoUninitialize();关闭COM环境。

集散式染色机监控平台作为OPC服务器的客户端采用以上程序,通过OPC服务器对不同的组的管理,进一步实现了多个染色机的集中监控管理,主要界面如图7所示。

图7 监控管理应用程序的界面Fig.7 UI interface of the monitoring management application

5 结 论

通过描述集散式染色机系统设计中存在的数据访问频繁,通信复杂等问题,提出了采用OPC服务器来管理系统对各个设备中的特定数据项的访问,从而减轻了监控平台编程的工作量,也提高了系统的稳定性与工作性能,使得染色机系统的实际运行状态达到了令人满意的监管与控制要求。

[1]杨壮豪.新型溢流染色机控制系统[J].机电工程,2008(1):63-65.

YANG Zhuang-hao.A new control system of spill dyeing machine[J].Mechanical&Electrical Engineering Magazine,2008(1):63-65.

[2]OPC Foundation.OPC Data AccessCustom Interface Specification 2.04[S].2000.

[3]陈显枝,陈冲,林蔚,等.基于OPC技术的DCS信息集成系统[J].福州大学学报:自然科学版,2006(5):679-682.

CHEN Xian-zhi,CHEN Chong,LIN Wei,et al.OPC based information integrated system for distributed control system[J].Journal of Fuzhou University:Natural Science Edition,2006(5):679-682.

[4]胡强,赵英凯.OPC技术在DCS与工厂管理网数据通讯中的应用[J].工业仪表与自动化装置,2002,(3):25-28.

HU Qiang,ZHAO Ying-kai.The application of OPC specification to the communication between DCS and management network[J].Industrial Instrumentation&Automation,2002(3):25-28.

[5]姚晓伟,陈在平,尹迅雷.基于OPC技术的现场总线系统集成研究[J].天津理工大学学报,2005(4):12-14.

YAO Xiao-wei,CHEN Zai-ping,YIN Xun-lei.Research on integration of fieldbus system based on OPC[J].Journal of Tianjin Institute of Technology,2005(4):12-14.

[6]赵众,邹芳云,徐宁,等.OPC客户端程序开发及其在集散控制系统中的应用[J].化工自动化及仪表,2007,(3):42-46.

ZHAO Zhong,ZOU Fang-yun,XU Ning, et al.Development of OPC client program and its application in DCS[J].Control and Instruments in Chemical Industry,2007(3):42-46.

猜你喜欢
染色机数据项驱动程序
由于安装不合理而引起的换热器鼓包事故分析
全自动染色机在骨髓组织脱钙中的改造应用
一种多功能抽签选择器软件系统设计与实现
非完整数据库Skyline-join查询*
基于Python的Asterix Cat 021数据格式解析分析与实现
计算机硬件设备驱动程序分析
立信染整两款染色机荣获2013香港工商业奖
基于MPC8280的CPU单元与内部总线驱动程序设计
多数据项请求的多信道并行广播调度算法
妙用鼠标驱动