OPC通讯技术

2024-10-24

OPC通讯技术(精选9篇)

OPC通讯技术 篇1

中控系统是石油化工生产系统中的重要关键设备之一,对生产和管理起着至关重要的作用。原有升级改造中采用停产的办法,各个环节需要繁琐的独立测试,停车时间长,极大地影响油田的生产。目前石油化工中控系统品牌不一,升级改造方法各不相同,以致改造升级完成后各种测试装置没有通用性,造成资源的严重浪费。为此,研究设计一种新的通用的中控系统升级改造测试技术,缩短传统停产升级调试方式变的尤为重要。

1 系统介绍

该DCS测试系统(图1)采用半实物仿真的思想,即将控制器(DCS系统)与在计算机上实现的控制对象的仿真模型联接在一起进行试验。试验中,控制器的动态特性、静态特性和非线性因素等都能真实地反映出来,因此它是一种更接近实际的仿真试验技术。通过自主研发的测试组件,可以测试改造后DCS系统模拟通道、数字通道、网络通道的通断性与控制参数合理性,使系统的调试更具目标性,从而优化系统参数使控制系统尽快投入运行。同时在通信连接上使用物理I/O的硬件连接和具有标准通信协议的OPC技术,使得该测试系统具有极强的通用性,适用各种品牌的DCS控制系统的测试。

1.1 被测试系统

图1中,DCS系统为升级改造后需要测试的真实DCS控制系统。被测试系统可以是各种品牌的DCS控制系统,如石油化工生产系统常见的霍尼韦尔、爱默生及ABB等系统。其中I/O连接可实现对数字通道、模拟通道的通断测试及回路测试,OPC连接用以测试网络通道的通断性与控制策略中控制参数合理性。控制策略负责根据模型模拟现场设备传来的参数和状态,不断地进行逻辑判断和运算,必要时发出动作指令,保证系统的平稳运行。

1.2 测试系统

测试系统由硬件系统和生产仿真模型组成,模型包括单元过程模型和流程过程模型,如换热器模型、分离器模型及气处理流程模型等。测试硬件实现可有多种方式,如典型信号和检测,回路测试设备。本系统选用PLC,因其具有灵活组态等优点,西门子PLC的上位软件WINCC自带的OPC服务器作为OPC Server,OPC Client部分由VB语言自行开发,并嵌入仿真模型。

1.3 数据链路

本测试系统采用PLC与仿真模型通过OPC进行数据通信(如图1中②部分),完全模拟现场设备。系统由仿真模型发出信号数据,经过调用进入OPC Client(如图1中③部分)。PLC负责将信号处理转换为各类待测信号,经由异构接口进入DCS控制器(如图1中④部分)。控制器对信号响应后发出控制信号,通过OPC接口协议送到OPC服务器(如图1中①部分),再将控制信号进行整合,或是送到相应的软件进行分析处理,或是控制操作台上相应的动作。

1.4 测试功能实现

测试软件根据测试项目的不同发出不同的测试信号,在收到OPC服务器回馈的信号之后,通过调用内部测试规范,最后系统根据测试类型生成不同的测试报告。如在HMI模拟操作、I/O模块功能及精度、网络交换机的功能、复杂和特殊控制回路等测试中,模型通过OPC传输给DCS各个仪器仪表的参数或者状态,DCS通过OPC传输给模型反馈信号或者操作指令。测试软件根据模型以及DCS接收的信号与测试规范进行对比,生成测试报告,完成测试。

2 OPC在测试系统中的应用

2.1 OPC简介

OPC技术是对象链接和嵌入式技术的组合应用,在控制方面,为控制系统提供了标准的数据访问。OPC技术采用C/S结构,数据存取服务器由3类对象组成:服务器(Server)、组(Group)和数据项(Item)。服务器对象用于指出特定的OPC服务器应用程序名;组对象组织并存储由若干Item数据项组成的Group信息;数据项对象存储具体的Item的名字、数据值、品质等信息,一个Item就代表一个具体的过程变量[1]。

OPC技术扩展了硬件设备的概念,使PLC硬件与模型软件之间实现了互联。只要遵循OPC规范,模型可随时通过OPC接口送出模拟产生的生产过程数据,OPC Server也可随时获取DCS传来的控制数据。

2.2 OPC服务器和客户端设置

OPC客户端和OPC服务器是分布式DCOM应用程序,采用C/S结构。为了建立OPC Server和OPC Client之间的正确链接,要正确修改OPC Server及OPC Client所在计算机的DCOM设置,其设置步骤在此不再赘述。需要注意的是:分布式的DCOM应用程序只能运行在相同的用户账号下。因此,首先要在OPC客户端和OPC服务器的计算机上建立名字、密码相同时具有管理员权限的账号。

2.3 OPC客户端实现

OPC规范提供了COM接口和自动化接口两套接口方案[2]。本设计客户端应用程序采用自动化接口,用Visual Basic编写。

2.3.1 OPC的连接

先在“引用”中将OPCAutomation 2.0加入,然后开始定义全局变量。首先定义了OPC组与OPC数据项。在定义所有变量后,调用方法Connect(ProgID As String,Optional Node As Variant)实现OPC连接。

2.3.2 OPC数据项的读写

对OPC的写有同步与异步之分,主要根据数据传输的数据量的大小选用不同方法。本程序采用同步读/写要进行数据传输,先要将值数据进行赋值,之后调用方法SyncRead()和SyncWrite()实现数据的读与写。

2.3.3 OPC连接断开

OPC客户端连接后要占用服务器资源,所以如果不需要使用OPC时,必须进行OPC连接断开。断开的程序调用方法Disconnect()即可释放资源。

2.4 OPC Client与WinCC OPC Server连接

WinCC OPC服务器为其它应用程序提供了WinCC项目的数据。应用程序能够在同一计算机上运行或在已联网的计算机上运行,以获取WinCC项目数据[3,4]。利用编写的OPC Client与WinCC OPC Server互连的具体步骤如下:

a. 运行西门子PLC上位组态软件WinCC,后台会自动运行WinCC OPC Server,组态模型所有需要的Item,以供和OPC Client通信(图2);

b. 打开模型软件,点击连接OPC服务器选项,在输入IP后查找到所要连接的OPC Server,进行连接(图3);

c. 连接成功后,OPC Client利用WinCC OPC Server提供的访问接口,调用符合OPC规范的相关函数就可以访问到WinCC OPC Server子层的Group和Item。通过OPC Client与模型之间的接口,将数据传递给模型,进行显示[5](图4所示的是部分模型画面)。

2.5 DCS OPC与OPC Server连接

由于OPC服务器与OPC客户端的运行机理是相同的,所以对DCS自带的OPC服务器来说,只要按照步骤进行设置,即可作为OPC Client来用。连接通信等与常规的OPC Server与OPC Client相同,在此不再赘述。

3 结束语

围绕DCS半实物仿真测试系统的设计,介绍了利用OPC技术在测试系统中实现通讯的过程。OPC技术的主要意义和作用,就是为解决软件与硬件之间的实时数据通信所提出的一种具有广泛通用性的标准方案。所以对各类过程监测系统的开发来说,OPC技术是实现系统信息集成的一个有效方法。

参考文献

[1]刘暾东,余齐齐,柳小鹏.OPC服务器软件开发及在DCS中的应用[J].化工自动化及仪表,2007,34(1):46~48.

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

[3]钱军,张骥.基于OPC的DCS与PLC系统的通讯方案[J].热力发电,2007,(9):63~65.

[4]宋超,申飞,沈春山.基于S7-300PLC与WinCC的DCS控制实验系统设计[J].自动化与仪表,2009,(4):11~14.

[5]牟会明,郑传鑫,胡陆军.基于组件技术的OPC在数据采集中的实现[J].冶金自动化,2010,34(1):62~64,68.

OPC通讯技术 篇2

关键词工业自动化;控制系统;0PC接口技术

中图分类号TP文献标识码A文章编号1673-9671-(2011)051-0121-01

在当代工业自动化控制系统中,软件产品和硬件设备都慢慢的变得比以前更加实时和集成化。0PC接口技术的出现,为工业现场设备相互之间的连接,进而达到现场设备可以对彼此进行访问,不失为一个开放和互操作性很好的实际控制方案。尤其值得提起的是,0PC接口的制造商可以只考虑单纯的0PC接口开发,而用户则只需要按照0PC接口标准来使用,他们二者都能够有更多的不同选择,却不必再担心集成连接设备之间的兼容性问题。

10PC的概念

0PC是“0LE for ProCess Contro1”的英文缩写,而0LE是“0bject Linking and Embedding”的英文缩写,0PC是目前世界上比较领先的一套成熟的工业技术规范和标准,是由自动化技术企业和软硬件生产供应商联合研发的,它的服务对象是基于Windows的工业应用程序,能够提供信息集成和具有交互功能的组件对象模型接口连接标准,提供工业自动化控制和自动化设备的管理, 以及控制设备之间的应用软件互操作功能和控制设备的互换功能。0PC的研发目的是为解决应用软件与控制设备驱动程序之间的数据通信问题,它是工业控制上的一个技术标准。利用它能够方便的把各个制造商研发的驱动/服务程序和应用程序有机集成或连接在一起(见图1)。

图10PC的结构简图

0PC技术在工业自动化控制软件中,在不同类型服务器和不同类型客户之间建立起了桥梁的关系,使得服务器和客户之间形成了“即插即用”的连接关系,不同类型的客户软件可以任意访问所需要的数据源,消除了是否匹配的兼容性问题。如图2所示。

图20PC接口连接示意图

0PC主要由下面三部分构成:

1)服务器对象。它包含所有的服务器里面的信息,一个服务器只和一种相应硬件设备的驱动程序相匹配。

2)组对象。它为客户提供了一种组织数据的方法,包含所有的本组信息,可以对组同步与异步的读写方式进行管理,另外,为了更新数据速率,可以对客户端进行必要的设置。如果服务器的缓冲区内补数据有了改变的话,那么0PC组会向客户发送信息,然后,客户通过得到的信息实施应用处理。

3)数据项。它是存储具体数据项的数据值、采样时间和质量值等信息的,数据项定义在服务器端,一个数据项只和一个硬件设备的寄存器单元相对应,客户对其不能直接进行操作,需要通过组对象来操作所有的数据项。

20PC在工业自动化中的作用

0PC技术对工业自动化控制系统产生了很大的影响,具体表现在以下几个方面:

1)0PC技术为设备驱动程序开发中的遇到的异构问题找到了解决的方法。在以前没有统一的标准的时候,开发商需要对控制系统的各个设备均编写各自适应的驱动程序,但是这些驱动程序会随着硬件设备的升级和修改而跟着发生改变。0PC的出现则建立了统一的接口技术标准,生产硬件的厂商只要提供一套符合0PC的驱动程序,而软件开发人员也只要编写相应的一个接口程序,用户更是能够方便的完成对设备选型和功能扩充的功能。整个的控制系统,不管需要连接的控制系统和设备是来自哪个厂家,所有的数据通信和交换都是利用0PC接口进行的。

2)0PC技术为现场总线中的异构网段间的数据通信和交换问题提供了解决的办法。现场总线系统有着多种总线并存的情况,这样,就会围绕异构控制网段之间的数据通信和交换产生出许多问题和困难。0PC可以作为异构网段集成的中间部件,此时,每根总线只需要提供出自己相应的OPC服务器,通过一致的0PC访问接口和任意的0PC客户端软件建立起方便的访问联系,从而很好的解决了异构总线间的数据通信和交互问题。

3)0PC可被用来访问专用的数据库信息。在实际的工业自动化控制系统中,大多的自动化控制软件都会使用专用的实时的和历史的数据库,因此,要想访问此类数据库的数据信息, 比访问通用的数据库信息要困难,此时,只能利用对应的开发商提供的API函数等方式来进行,而关键就在于API函数是随着开发商的不同而不同的,必须编写各自不同的程序代码来访问属于不同监控软件的专用数据库的数据信息。利用0PC技术的话,只需要开发商在提供自己的“专用数据库”时,再另加一个能够对此数据库进行访问的0PC服务器,用户只需要按0PC规范编写0PC客户端程序就可以进行访问,而不必了解该数据库对于接口的特殊要求。

3结束语

0PC接口技术现在已经广泛的应用在了工业自动化控制领域以及其他多种监控系统中,并且能够很好的实现控制系统的互操作性和实时性功能。它以其高效灵活的数据获取方式为软硬件开发商和用户都带来了效益。随着0PC接口技术的迅速,可以设想,0PC技术在未来将成为自动化控制系统的一项用于数据交换方面的核心技术,将给现代工业控制软件带来新鲜和强劲的发展活力,0PC接口技术有着很大的发展空间和前景。

参考文献

[1]顾键,王京春.黄德先.0PC-COM技术在工业自动化软件中的应用[J].计算机工程与应用.2002,12.

[2]王鲲,袁中凡.OPC接口技术在工业自动化系统中的应用[J].中国测试技术,2005,3l:1.

海洋平台油田群间OPC通讯应用 篇3

1.1 OPC技术基础信息

OPC全称是OLE for Process Control(OLE原意是对象连接和嵌入,OPC建立于OLE规范之上,是一个工业标准)。 OPC提供一套标准的OLE/COM(Component Object Model部件对象模型)/DCOM(分布式部件对象模型)接口技术,基于开放标准的开放式连结,允许在自动化/ 控制应用、现场设备和商业/ 办公室应用之间进行简明的、标准化的数据交换, 用于过程控制和制造业自动化系统。简单的说对于设备的种类及应用程序的多样话和传输协议的要求不同,提供一个环境,建立一套完整的“规则”。

1.2 OPC技术接口规则

OPC客户端应用程序可以使用COM兼容自定义接口(Cu- stom Interface)或者Delta V OPC数据访问服务器(OPC Data Access Server)的OLE自动接口(Automation Interface)。自定义接口支持客户端使用C++ 编写;OLE自动接口则支持更高级的商务应用程序,如Visual Basic等。OPC接口方式如图1所示。

1.3 OPC网络配置

OPC For Delta V客户端应用程序PC配置,通常DCS的OPC SERVER一般会单独配一台计算机来跟外界的系统通讯。 这台机器一般就仅仅做OPC SERVER用,而且出于安全考虑, 很多时候,点的定义会是只读的.Application Station(应用站) 相当于Delta V控制网络与其它应用软件和网络之间的网关。 Delta V OPC数据访问服务器在提供Delta V运行时访问应用程序的机器上运行,该程序既能在应用站又可在通过网络与应用站相连的机器上运行。如要在不同系统(非Delta V工作站) 中运行OPC客户端,首先应安装OPC远程应用程序。OPC网络图表如图2所示。

2 OPC实用性及应用特点

OPC实用性:OPC运用Microsoft DCOM技术,允许客户端与运行在支持TCP/IP协议的网络上的服务器相连。应用程序作为OPC接口中的客户端,硬件驱动程序作为OPC接口中的服务器端。任意两个组态为DCOM通信的机器都可作为Delta V OPC客户端或服务器运行。只要遵循这套规则,数据交互对两者来说都将畅通无阻。

每一个OPC客户端应用程序可以连接若干个OPC服务器, 每一个硬件驱动程序可以为若干个应用程序提供数据,这里的OPC客户端和服务器端可以是任何厂家的任何产品,计算机是在工作组还是在域中运行,服务器可以进行不同的设置, OPC在同一域的访问关系如图3所示。

OPC应用特点:由于OPC技术的应用,使得以更简单的系统结构、更长的寿命、更低的价格解决工业控制成为可能。 同时现场设备与系统的连接也更加简单、灵活、方便。因此OPC技术在国内的工业控制领域得到了广泛的应用,主要应用领域如下:

1)数据采集技术折叠OPC技术通常在数据采集软件中广泛应用。现在众多硬件厂商提供的产品均带有标准的OPC接口,OPC实现了应用程序和工业控制设备之间高效、灵活的数据读写,可以编制符合标准OPC接口的客户端应用软件完成数据的采集任务。

2)历史数据访问折叠OPC提供了读取存储在过程数据存档文件、数据库或远程终端设备中的历史数据以及对其操作、编辑的方法。

参考文献

[1]冯晓升.功能安全技术讲座:第四讲安全相关系统SIL设计的要求[J].仪器仪表标准化与计量,2007,(4):3-5.

OPC通讯技术 篇4

关键词:OPC技术;.Net;西门子S7-300;数据采集

中图分类号:TP274.2 文献标识码:A文章编号:1007-9599 (2011)05-0000-01

OPC Technology in Industrial Control Platform for the Realization of Data Acquisition

Chen Ying,Ye Jinling

(Jiangxi Vocational and Technical College,Nanchang330013,China)

Abstract:This article uses. NET Framework technology and SIMATIC NET OPC server technology to Siemens S7-300 data on industrial control platform for real-time acquisition, data acquisition platform for the industry to provide a theoretical basis.

Keywords:OPC technology;.Net; Siemens S7-300;Data acquisition

OPC是一个工业标准,它基于微软的Active X、部件对象模型和分布式部件对象模型技术。OPC最大的使用领域就是Windows操作系统的过程控制系统的开发和应用。以前的工业平台,如果要提取一个现场参数,基本上都要重新设计编写一个专门的接口函数,每一个应用软件的接口也是单独开发的。每家应用软件都要为自己软件的接口开发不同的接口,每次产品的升级也要重新编写不同的程序接口,给用户和软件工作人员带来了非常大的工作量。在这种情况下,OPC标准应运而生。通过西门子公司的Semitic Net软件建立OPC服务器和OPC客户端软件配合使用,是集中读取现场以以太网为传输介质的生产现场设备参数和相关数据的有效方法之一。

一、软硬件平台的配置

OPC服务器的搭建使用西门子公司提供的SIMATIC NET 2006网络通信软件和STEP 7 5.4组态软件。OPC客户端的开发使用微软公司的Visual Studio.Net 2005集成开发平台。软件的配置皆在Windows XP Professional SP3 下完成。

OPC客户端开发需要一台装有Windows XP和Visual Studio.Net 2005的计算机。由于是实时采集数据,因此OPC服务器的搭建需要一台性能较好的服务器。生产现场的S7-300平台均采用CP343-1以太网通讯模块连接到工业网中。

二、OPC服务器的搭建

(一)PC站的硬件机架的配置。双击桌面Station Configuration Editor快捷图标,打开 Station Configuration Editor 配置窗口。在Station Configuration Editor 配置窗口中点击Network Properties,进行网卡参数配置。选择本地连接属性菜单设置网卡参数,本文设置IP地址为126.81.0.115,子网掩码为255.255.255.0,基他参数不需要设置。点击“Station Name”按钮,填写 PC 站的名称,文本命名为“justtyOpcServer”,再点击“OK”按钮进行确认,这样就完成了PC 站的硬件机架的配置。

(二)控制台的配置。从开始菜单中选择Simatic>Simatic net>Configuration console(控制台配置),打开对话框,修改以太网卡的模式,将PG mode修改成Configuration mode,插槽号指向3。然后选择树型结构中的Access Points选项,重新设S7 ONLINE 指向PC internal(local),这样就完成了控制台的配置了。

(三)STEP 7 中的PC Station组态。双击SIMATIC Manager创建一个新项目,命名为“justtyOpcServer”。点击命令 Insert>Station>Simatic Pc Station 建立一个PC站。将 PC Station 默认名称“SIMATIC PC Station(1)”修改为Station Configuration Editor 中一样的名字 “justtyOpcServer”。在硬件组态中,从硬件目录窗口选择与在 Station Configuration Editor 配置相对应硬件插入到硬件机架的插槽中。双击IE General对话框,然后点击“Properties”按钮将以太网参数设置对话框打开,设置好以太网的IP地址和相应的子网掩码等信息。同时还使“New”按钮建立一个 Ethernet 网络,并完成网卡的属性设置。这样就完成了PC站组件的设置了,接下来就通过点击“Configure Network”按钮,进行 NetPro 的相关配置。先在、用鼠标选择 OPC Server 后,在连接表第一行鼠标右键插入一个新的连接或通过“Insert>New Connection”也可插入一个新连接。在弹出的连接属性对话框中,将所要连接 PLC 以太网通讯处理器CP343-1的IP 地址填入到Partner、Address对应空白框中,机架和插槽号分别设置为 0、2,确认所有配置后,已建好的S7连接就会显示在连接列表中。点击编译存盘按钮,如得到No error的编译结果,则正确组态完成。如果有警告信息(Warning)显示在编译结果对话框中,说明组态不正确,不能下载到PC Station中的。

(四)组态下载。完成PC站组态后,即可在NetPro窗口中点击下载按钮将组态下载到 PC站中。下载完成后,可以打开Station Configuration Editor窗口检查组件状态。

三、通过.NET平台编程实现OPC客户端

利用Visual Studio 2005开发OPC应用程序时,实现OPC自动化接口必须要得到OPC Automation 2.0 DLL动态链接库文件。这个动态链接库一般是由OPC服务器的供应商提供,或者可以通过OPC基金会www.opcfoundation.org网站下载获得。

从Visual Studio 2005平台中选择[文件]->[新建]->[项目],新建一个Windows应用程序,并添加对OPCAutomation.dll的引用。具体的方法为:在解决方案管理器的项目名称上点击鼠标右键,选择[添加引用],找到OPCAutomation.dll文件并将此文件添加到项目中。

四、结论

本文所述的数据采集方法实现了PC站与工业网上存在的西门子S7-300工业控制平台数据的实时采集,简单方便,传输稳定,实时性好。适用于采用以太网进行数据通迅的西门子控制系统中,解决了分散子系统间的数据共享和统一协调数据的问题,能满足工业控制过程中绝大多数数据交互的要求,并可以为架构统一的实时监控系统的开发和改造项目提供一定的参考。

参考文献:

[1]徐丸天,苏宏业.基于OPC标准的实时数据库接口技术与应用研究[J].计算机应用研究,2006,23(5):23-25

[2]路小俊,冬大龙,宋斌,唐成虹.基于OPC技术的风电厂数据采集与监控系统方案[J].电力系统自动化,2008,32(23):90-94

OPC通讯技术 篇5

1 问题提出

在熟料线建成后, 又增加了余热发电系统, 这样就形成两套DCS系统。这两套系统各有一个中控室, 在生产中, 经常需要观察两套系统的数据, 这就需要两套系统数据的共享。为了能区分系统, 将熟料线系统称为A系统和A电脑, 余热发电系统为B系统和B电脑。

2 通讯设置

2.1 组件安装

首先安装ABB Freelance 800F V9.1中的OPC-Server 800F组件, 安装完毕后, 重新启动电脑。

2.2 OPC通讯的相关设置

2.2.1 DCOM设置

首先增加DCOM端口。打开控制面板, 找到防火墙并打开, 在例外设置中添加端口, 名称为“DCOM”, 端口号为“135”, 添加以后, 勾选例外设置。最好将系统中关于OPC的相关设置都勾选上, 如果防火墙及安全设置没有特殊要求, 将防火墙关闭。DCOM设置界面见图1。

2.2.2 设置两台电脑具有相同的电脑登陆帐户

在OPC通讯中, OPC服务器端和客户端需要具有相同的权限和帐户才能正常通讯, 因此两台需要通讯的电脑必须设置相同的帐户及登陆密码。举例为, 帐户:a密码:1, 级别为计算机管理员。

2.2.3 设置相关权限

设置本地安全策略, 网络访问中, 需用户身份验证;用户权利指派, 添加用户或清除所有用户。

其他的一些相关设置, 如:启动服务设置等, 保证网上邻居能找到对方电脑, 两台电脑能共享文件。设置完毕后, 重新启动电脑。

3 ABB Freelance 800F软件组态与设置

首先, 我们确定一下OPC服务器端与OPC客户端, 在本文中, 我们只介绍单向的OPC通讯 (双方互相通讯时, 反过来再做一个OPC服务器与网关设置, 道理相同) 。

我们确定A电脑做服务器 (172.16.1.1) , B电脑做客户端 (172.16.1.2) 。

3.1 服务器端A电脑的组态

打开A系统程序, 添加OPC网关, 做相应设置, 并在硬件组态中资源指定 (见图2) 。

设定config (见图3) , 在OPC-Server 800F选项中, 添加新资源ID:27, 并配置执行OPC服务的账户及密码, 按上面设置好的帐号密码设置, 搜索帐号a并添加, 密码:1。

3.2 服务器A电脑的权限配置

运行dcomcnfg, 选择“组建服务—计算机—我的电脑—DCOM配置”。设置DCOM配置相关权限。在DCOM配置中需要设定Freelance2000 OPCAEServer027、Freelance2000 OPCServer 027以及OpcEnum的属性 (略) 。

3.3 客户端B电脑的组态

打开B系统程序, 添加OPC服务器, 做相应设置 (见图4) 。注意, OPC服务器名称必须与A电脑OPC服务器名称一致。

设定config (见图5) , 在OPC-Server 800F远程设定选项中, 添加资源ID:27, 计算机名称 (A电脑IP) 172.16.1.1。

在程序CBF中, 添加OPC服务器, 并制定服务器位置在A电脑上, 填写A电脑的IP地址:172.16.1.1。

3.4 服务器B电脑的权限配置

运行dcomcnfg, 设置DCOM配置相关权限。在DCOM配置中需要设定Freelance2000 OPCAEServer027、Freelance2000 OPCServer 027以及OpcEnum的属性 (略) 。

3.5 OPC通讯变量的设置

打开A程序中的变量列表, 选择需要通讯的变量, 点击右键, 选择站存取, 便弹出OPC变量的读写权限, 根据需要, 设置OPC的读写权限, 保存。

编译两个程序并下载, 选择联机调试状态, 会看到A电脑的网关在运行状态, B电脑的服务器也在运行状态, 表明OPC连接成功。

画面显示OPC通讯数据, 在B程序画面编辑上调用OPC变量, 编译下载, 便可在Digivis下看到A电脑的数据。

4 A电脑与B电脑的相互通讯及意义

同样设置可实现B电脑到A电脑的通讯, 目前我公司的余热发电系统与熟料线系统已实现了双向通讯, 共享系统重要参数, 方便操作监控并从一定程度上及时发现解决生产中存在的问题。

1) 通过OPC通讯, 使熟料线能看到余热发电系统的相关数据, 尤其发电量及各个锅炉进口的温度, 方便操作员监控并及时采取措施, 一定程度上提高了发电量。

2) 发电操作员能看到窑上的投料量及旁路阀门的开度, 在发电量较低的情况下能更快的分析原因, 采取措施。

3) 以前需要看两个系统的数据时, 需敷设电缆, 每个信号需要600m长电缆, 而通过OPC通讯, 大大降低了电缆成本。

5 结束语

OPC通讯技术 篇6

1 8#烧结机控制系统优化

对8#烧结机系统程序的完善主要有:大烟道卸灰阀卸灰时间的优化, 环冷卸灰小车及卸灰阀的控制程序改进, 一、二混稀油站自动停止和单辊油泵联锁启动程序完善, 设计烧结机小联锁启动程序, 铺底料系统延时排空停止程序设计, 主抽风机废气温度做声光报警, 烧结机与余热发电重要运行参数实现相互通讯监控, 环冷机1、2#水加热器控制权限实现烧结主控可以控制等。下面简要介绍几个关键的系统优化方案。

1.1 大烟道卸灰阀卸灰时间的优化

大烟道卸灰系统卸灰周期40分钟循环一次, 每两组的起动间隔约为45S。为了保证大烟道下双层卸灰阀不堵料又同时保证大烟道的负压, 而且在生产中发现前面几组卸灰阀粉尘比较多需要更长的卸灰时间, 有时候40分钟循环一次的卸灰周期过长, 不能达到很好的卸灰效果, 因此把前面几组卸灰阀起动间隔设为60S, 卸灰周期在上位机增加人工设置端口, 方便操作工根据现场情况设置合理的卸灰循环周期, 大大改善了大烟道卸灰系统的运行稳定性。

1.2 设计烧结机小联锁启动程序

烧结冷却系统包括:圆辊给料、九辊布料、烧结机、单辊破碎、环冷机、环冷鼓风机等设备, 8#烧结机每月安排计划检修一次, 如遇到需要翻空台车的情况开机时就要提前布料, 只需要圆辊给料、九辊布料、烧结机这些设备小联锁启动即可, 其他设备根据节电的需要不联锁启动, 因此对整个烧结冷却系统联锁启动程序重新设计, 增加小联锁选择按钮, PLC程序编写新的联锁逻辑。此项方案符合公司降本增效的要求。

1.3 铺底料系统延时排空停止程序设计

铺底料子系统用来给烧结机提供铺底料, 用以改善混合料在烧结过程中的透气性并能对台车炉箅起一定的保护作用。为了保持铺底料仓料位在一定范围内变化, 采用称重式料位仪测量铺底料仓料位, 当料位超出规定范围时发出报警信号, 并给电气发出联锁信号以控制矿仓的进料和停料。若铺底料仓高料位铺底料皮带将会按流程方向顺序停止, 皮带上会有大量有一定温度的铺底料烧结矿, 这样铺底料皮带容易受热老化。故设计铺地料延时排空停止程序, 延时时间为铺底料在各个皮带上输送完的时间, 排空烧结矿有利于延长皮带使用寿命。

2 烧结机与余热发电OPC通讯

8#烧结机使用的是施耐德PLC控制系统, 8#烧结机余热发电使用的是和利时DCS控制系统, 两个系统之间无法直接进行数据通讯, 因此考虑应用第三方通讯软件OPC服务器来实现两个系统互相读写相关数据。

2.1 服务器的配置

在OPC服务器所在的PC机上进行配置。Window XP的登录帐户具有管理员权限, 用户密码不要为空。

2.1.1 DCOM配置

在“开始”菜单中选择“运行”, 然后输入dcomcnfg, 点击“确定”, 在弹出的组件服务窗口中, 右键点击“我的电脑”, 并选择“属性”。

“属性”需要进行如下修改:默认属性“选中”在此计算机上启用分布式COM其他默认。

“默认协议”必须有“面向连接的TCP/IP”, 如果列表中有多项, 那么必须保证“面向连接的TCP/IP”在第一项。

“COM安全”中4个按钮都需要点击进入配置:

(1) 访问权限“编辑限制”:增加Everyone用户, 并选中所有的“允许”;“编辑默认值”:增加Everyone用户, 并选中所有的“允许”。

(2) 启动和激活权限“编辑限制”:增加Everyone用户, 并选中所有的“允许”;“编辑默认值”:增加Everyone用户, 并选中所有的“允许”。

2.1.2 OPC服务器配置

在“组件服务”窗口中, 打开“DCOM配置”。

可以看到Opc Enum和已安装的OPC服务器, 分别进行配置。这2个DCOM组件配置完全一样。

选择Opc Enum, 右键点击“属性”, 打开属性窗口, 对各个选项卡分别进行配置, 具体配置如下:

常规:“身份验证级别”选择“无”。

位置:选中“在此计算机上运行应用程序”其他不选。

安全:启动和激活权限、访问权限、配置权限:选择自定义, 然后选择“编辑”按钮, 增加Everyone用户, 并选中所有的“允许”。

终结点:必须有“面向连接的TCP/IP”, 如果列表中有多项, 那么必须保证“面向连接的TCP/IP”在第一项。

标识:选中“交互式用户”。

2.1.3 系统配置

选择:控制面板->管理工具->本地安全策略->本地策略->安全选项->“网络访问:本地帐户的共享和安全模式”

2.2 客户端配置

在OPC客户端进行配置。Windows XP的登陆帐号必须跟服务器登陆帐号名和密码一致, 该帐户可以是普通用户。配置过程同服务器, 只需要两个步骤, 分别是: (1) DCOM配置, (2) 系统设置。

2.3 注意事项

配置立即生效, 不需要重启, 如果遇到异常问题, 可以尝试重启计算机能否解决问题。查看Remote Procedure Call (RPC) , RemoteeProcedure Call (RPC) Locator, Routing and Remote Access这三个服务是否启动。

OPC通讯配置完成后, 烧结机与余热发电两个系统之间通过一根网线就可以方便地读取彼此的相关参数, 如:烧结终点温度、烧结终点位置、环冷机速度、烧结矿排料温度、余热发电循环风机运行频率和电流、一段二段取风罩烟气温度、烟气蝶阀开度等同时实现环冷机1、2#水加热器控制权限烧结主控可以控制。

3 结束语

国内钢铁行业竞争日益激烈, 只有通过不断努力改进烧结机控制技术, 优化烧结控制过程, 稳定烧结生产, 降低工人劳动强度, 才能保证烧结成品矿质量, 降低生产成本。同时OPC通讯技术的应用对稳定和提高烧结矿产量, 增加发电量提供了更好的技术支持。

摘要:文章介绍新余钢铁股份有限公司8#烧结机控制系统进行的优化改进, 对各系统的自动控制升级改造以及不同控制软件之间应用OPC进行信息通讯。希望对相关工作有所帮助。

OPC通讯技术 篇7

PLC是一种专门在工业环境下应用而设计的数字预算操作的电子装置, 它采用可以编制程序的存储器, 用来在其内部存储执行逻辑运算、顺序运算、计时、计数和算术运算等操作的指令, 并能通过数字式或模拟式的输入和输出, 控制各类型的机械或生产过程。其中, AB PLC (罗克韦尔公司生产的可编程逻辑控制器) 以其具有模块化设计、先进的指令集、丰富的输入输出系统及强大的组网能力而获得了广泛的应用。由AB PLC所提供使用的RSLinx软件为计算机访问其产品提供了全套的通讯服务, 同时, 它还提供了数种开放接口, 用于与第三方人机界面系统、数据采集/分析系统、客户应用程序软件进行通讯。

OPC (OLE for Process Control——用于过程控制的OLE) 是基于Microsoft公司的DNA (Distributed Internet Application) 构架和COM (Component Object Model) 技术的一个工业标准接口, 是根据易于扩展性而设计的。OPC主要适用于过程控制和制造自动化等应用领域。OPC是以OLE/COM机制作为应用程序的通讯标准。OLE/COM是一种客户/服务器模式, 具有语言无关性、代码重用性、易于集成性等优点。OPC规范了接口函数, 不管现场设备以何种形式存在, 客户都以统一的方式去访问, 从而保证软件对客户的透明性, 使得用户完全从低层的开发中脱离出来。

VC++6.0是由Miscrosoft公司推出的可视化的开发环境, 是Windows下最优秀的程序开发工具之一。同其他可视化集成开发环境一样, VC++6.0集程序的代码编辑、编译、连接、和调试等功能于一体, 再加上Miscrosoft公司为VC++6.0开发的功能强大的MFCMiscrosoft Foundation Class) 使VC++6.0成为开发Windows应用程序的最佳选择。VC++6.0提供了对面向对象技术的支持, 利用类将与用户界面设计有关的Windows API函数封装起来, 通过MFC类库的方式提供给开发人员, 大大提高了程序代码的可重用性。

2 VC和OPC通信的方法

KOCRDK (Knight OPC Client Rapid Development Tool kits) 是一个专门用于开发OPC数据存取客户端应用程序的快速开发工具, 它具有以下几个特点:

(1) 全面兼容

同时支持OPC基金会制定的OPC数据存取规范的标准。

(2) 完整的封装

所有功能全部封装在一个标准的动态链接库文件中。

(3) 简单易用

具备初级编程水平即可快速上手, 用户无需了解OPC的技术细节, 支持多种流行的开发包工具, 包括Visual C++、Visual Basic、Borland C++builder、Delphi等。

(4) 稳定可靠

多年工程经验和技术积累的结晶, 强大的性能和高效率适应任何应用场合的要求。

(5) 高性价比

拥有国外同类开发工具无法比拟的价格, 强大的本土化技术支持。

在VC++的编程环境中需要用到由KOCRDK提供的KOCRDK.dll动态链接库文件, KOCRDK.api头文件, KOCRDK.lib及OPCda.h文件。使用KOCRDK软件需要完成以下几个步骤:

(1) 系统的初始化

调用KOC_Init () 函数对客户端进行初始化。

(2) 链接服务器

如果不能确定所需计算机上已注册OPC服务器的信息, 则需要调用KOC_Get Server Count获得已注册在计算机上的OPC服务器的数量, 然后通过调用KOC_Get Server Name获得指定索引对应的OPC服务器的名称, 最后通过调用KOC_Connect函数来连接需要的OPC服务器。如果已经确定OPC服务器的相关信息则直接调用KOC_Connect函数进行连接。

(3) 设置回调函数

BOOL KOC_Set Data Change Proc (HANDLE hconnect, DATACHANGE PROC, Lp Callback)

返回值失败为0, 否则非0。

(4) 添加OPC组

HANDLE KOC_Add Group (HAN-DLE h Connect, LPCSTR Name, BOOL*b Active,

DWORD*PRate, LONG*PTimeBias, float*p Dead Band, DWORD*dw LCID)

其中, HANDLE h Connect为OPC服务器的连接句柄, LPCSTR Name为OPC组名称, BOOL*b Active, 表示是否激活欲添加的OPC组, DWORD*PRate表示OPC组的刷新时间, LONG*PTime Bias表示时间偏移, float*p Dead Band表示死区, DWORD*dw LCID表示语言选项。

(5) 添加OPC点

HANDLE KOC_AddItem (HANDLE hConnect, HANDLE hGroup, LPCSTR Item Name)

其中, HANDLE h Group为OPC组的句柄, LPCSTR Item Name为OPC点的名称。

(6) 读OPC点的数据

BOOL KOC_Read Item (HANDLE h Connect, HANDLE h Group, HANDLE Item,

VARIANT*PVar, FILETIME*PTim e Stamp, DWORD*PQuality)

其中, H A N D L E I t e m为O P C点的句柄, V A R I A N T*P V a为读入的数据存放指针, F I L E T I M E*P T i m e S t a m p为读入数据的时间戳指针, DWORD*PQuality为读入数据的质量指针。

(7) 写OPC的数据

BOOLKOC_Read Item (HANDLE h Connect, HANDLE h Group, HANDLE Item,

V A R I A N T*P V a r, B O O L DOAsync)

其中, VARIANT*PVar为欲写入数据指针, BOOL DOAsync为写入方式。TRUE表示异步, FALSE表示同步。

(8) 关闭OPC的客户端

HANDLE KOC_Remove Item (HANDLE h Connect, HANDLE h Group, HANDLE Item)

移除OPC点。

HANDLE KOC_Remove Group (HAN-DLE h Connect, HANDLE h Group)

移除OPC组。

VOIDKOC_Disconnect (HANDLE h Connect)

断开与服务器的连接。

VOID KOC_Uninit ()

关闭OPC的客户端。

3 仿真结果

图1为未读和写之前的状态;图2为按下READ键后的显示状态, 即从PLC中读取到的数据;图3为要写入的数据, 然后按下WRITE的按键;图4为写入数据后按下READ按键, 从PLC中再次读取到的值。从这四张图中可以看出程序代码已经完成了从PLC读取数据的功能及改写PLC数据的功能。

4 结束语

本文介绍了在VC++环境下通过OPC与AB PLC进行通讯的方法, 这种方法只需要利用第三方开发的数据包, 而不需要利用MFC中的COM库函数, 从而简化了开发程序, 减轻了开发人员的工作量, 提高了开发效率, 经实验证明该程序具有简练可靠, 稳定性高, 实时性强等特点, 从而可以更好地实现上位机对PLC的实时监控。

摘要:本文分别阐述了OPCPLC、VC++6.0的相关知识, 并详细介绍了在VC++6.0的环境中通过OPC与AB PLC进行数据交换的方法, 该方法的应用可以更好地实现上位机对PLC的实时监控

关键词:OPC,PLC,PLC

参考文献

[1]刘启东, 王文雪.在Visual C++中使用OPC客户端开发P LC控制程序[J].广播电视信息, 2011.

OPC通讯技术 篇8

近年来,随着我国工业化进程的加快,系统信息化技术也逐步和世界接轨,隧道监控系统从原来的单一的界面控制,转变向多系统相互配合、界面组态化设计、集监视数据、控制设备、报警提示、仿真动画演示和历史查询为一体的多元化发展。这对系统的实时性、稳定性和安全性提出了更高的要求。

本文提出的分布式OPC通讯,位于系统的中间层,用于组态软件和设备之间的通讯连接,其主要思想在于按照不同的功能或区域的需要来设计不同的OPCServer,分别独立开发OPCServer,这种方式能够满足不同现场工程的实时运行需求,较好地解决了设备变更和升级所带来的软件优化问题,保证了设备之间正常的数据传输。

1 系统介绍

1.1 传统架构的缺陷奔波

无论是隧道还是公路,其中的设备各不相同,内部的通讯协议也是千差万别,如何将这些不同的设备整合到一个平台上,让操作人员直观而便捷地对设备进行控制,同时这种整合还必须是可修改、增加和可删除的,现在常用的方式是采用OPC的连接模式,将上位机的组态软件和下位机的硬件设备进行连接,然而OPC只是提供了一种通用的标准接口,它只能够确保通讯的功能实现,对于优化结构和高实时的要求必须开发人员自己解决[1]

在现在的工业控制中,即使是相同功能的产品,由于生产厂家不同,现场的安装需求不同,其提供的通讯协议和规格也是千差万别。举例来说,PLC根据厂家来分就有欧姆龙、三菱、西门子、ABB等等,他们提供的协议有的是开放的,有的是不开放的,这就使得有的通讯可以自由编程,而有的必须使用厂家提供的开发包[2,3]。再举例来说,同样是实现路口情报板的实时切换显示,由于现场的传输距离远近不同,其后台接口就分为串口和网络的连接方式,其数据的发送模式分为纯文本和图片模式。不同的设备不光是接口不同,传输速率也有大有小,传输的数据量也有多有少,比如同样是串口通讯,电力系统的数据采集由于其实时性的要求,其传输速率和数据量远远高于情报板的通讯,这些差别决定了传统的OPC结构中,简单的一套OPC Server很难满足众多的硬件和系统的差异,更何况随着系统的升级换代,每次更新都必须对程序进行修改[4],而传统的OPCServer每次的修改都会影响其他设备的正常运作,让开发人员这在疲于奔波的同时也使得程序的稳定性大大下降,所以这样的打补丁方式无法满足现代工业的需要。

1.2 分布式OPC通讯的架构和传统架构的区别

本文提出了采用分布式的OPC通讯架构,将不同的设备按照其功能运用不同,参考厂商不同,用户要求不同,其对速率快慢要求不同,监控设备处于区域不同等情况,将单一的OPC Server拆分成多个每一个掌管一种或者几种设备的数据交换,Server根据现场要求可以安装在不同的数据服务器上,也可以安装在同一台数据服务器上,采用多进程的运行模式,从而保证一种设备或者是一个区域的通讯操作不会对其他设备或者其他区域的通讯产生影响,开发难度和维护难度大大降低。

在数据处理方面,传统的OPC Server由于其结构的庞大,往往是将原始数据原封不动地提供给OPCClient使用者,这样虽然保证了数据的真实性但同时也加重了OPC Client的数据分析和处理的负担,本文提出的OPCServer是采用分布式的,每个Server都是为各种设备定制的,所以完全能够胜任数据的预处理和最终处理,可以提供OPCClient需要的最直观的数据。

传统的OPC和组态软件的架构如图1所示。

本文中提出的分布式OPC通讯,其基础在于根据不同的设备,不同的硬件环境,不同的功能要求,设计不同的OPCServer。在图2中一种设备对应了一套OPCServer,在其上组态软件则使用同一种OPCClient平台来和多个OPCServer进行交叉通讯,而在图3中则是为一种设备设计多个不同的OPCServer这是为了满足不同用户对同一种设备的不同需求,这在工业控制中并不少见。

比如在和情报板进行通讯的时候,分为发送指令、发送文本字符和发送图片模式,其速率由快到慢,根据不同的需求进行不同的操作。如果是发生了事故需要进行报警提示,要求高速的情报板切换这个时候采用发送指令的方式将情报板中事先存储的报警界面提取显示;如果是日常的情报板数据滚动,不要求复杂的文本格式和界面,则采用发送纯文本的方式;如果是特殊节日,需要定制显示的界面,则采用发送图片的方式将制作好的图片发送到情报板中。因此,我们可以设计三个OPCServer分别针对这三种模式,在上位机的组态软件则根据需要访问这些OPC Server。

1.3 分布式OPC Server的注册编程

分布式OPCServer在编程中,主要根据其注册的COM对象的不同来区分,如果是不同的电脑上安装OPC Server,则不需要关心其COM对象有什么冲突,但是如果是同一台电脑上安装多个OPCServer,则需要注意在编写OPC Server注册代码的时候是有所不同的[5],这里以MicrosoftVisualC++编程为例,介绍在程序中自动注册的方法。

首先定义OPC数据服务器的名称(PROGID)和类标识(CLSID),实现COM库的初始化功能和OPC数据服务器类厂对象的接口功能。然后实现OPC对象和数据缓冲区。接下来针对具体硬件编写I/O DLL,实现数据的实时读取。这项工作是十分繁重的,要求开发人员具有良好的COM编程知识,具体过程限于篇幅不能详述,这里指出两点引起注意:

(1)全局唯一标识符(GUID)

GUID是为每个COM对象提供的十六字节标识数。COM类至少有两个GUID:类标识(CLSID)和接口标识(IID)。CLSID用于标识COM类,登记在Windows注册表中,包含指向包括COM类的DLL或EXE组件的路径。IID用于标识该类的接口,被应用程序用来查询和触发该类的方法,也登记在注册表中。由于对象类是由GUID标识的,所以必须保证它们的唯一性,才能使最终用户在使用由不同软件商开发的组件时不会发生冲突。

可以使用宏DEFINE GUID(name,long,word,word,word,byte1,…,byte8)

其中name是标识数的名字,其余参数是实际的ID码。类标识的命名惯例是,而接口ID的命名惯例是IID InterfaceName。

有两种途径来获得GUID:

(1)MicrosoftVisualC++提供了两个工具来产生GUID:UUIDGen.exe和GUIDGen.exe。前者是一个命令行程序,直接产生一个GUID;后者是一个基于对话框的应用程序,运行UUID-Gen.exe,产生一个CreateGUID对话框。它提供四种格式,选定之后,按New GUID键产生新的GUID,显示在Result栏中;按Copy键可以复制结果。

(2)利用COM库提供的API函数来产生GUID:

HRESULTCoCreateGuid(GUID*pguid)

如果创建GUID成功,则函数返回S OK,并且pguid将指向所得到的值

(2)OPC组件的注册

注册表是客户和组件程序共同访问的信息仓库,通常情况下,当组件程序被安装到计算机上之后,必须通过某种途径把它的信息注册到注册表中,然后客户程序才能根据注册表中的信息对组件程序进行操作。

根据COM规范,组件程序可分为自注册组件程序和非自注册组件程序。OPC基金会提供的组件都是自注册组件。对于非自注册组件程序,其注册过程与组件程序没有直接关系,必须单独进行注册信息的配置,比如,可以编写一个注册表文件,然后在RegEdit中引入。

对于DLL形式的进程内自注册组件,Windows系统提供了RegSvr32.exe注册工具进行组件注册和注销。组件程序本身必须包含DllRegisterServer和DllUnregisterServer两个注册表入口函数。注册和注销的格式分别为:

RegSvr32<系统路径>

RegSvr32/u<系统路径>

对于EXE形式的进程外自注册组件,COM规范规定,必须支持两个命令行参数/RegServer和/UnregServer(大小写无关,并且“/”可以用“-”代替),以便完成注册和注销操作。注册和注销的格式分别为:

<系统路径>/RegServer

<系统路径>/UnregServer

2 分布式OPC应用案例

本文提出的分布式OPC通讯架构在南京长江隧道中央监控系统中得到运用。这套系统使用OPC Server作为数据的采集和中转站,在I/O服务器上安装了多套OPC Server,客户端用IFIX组态软件通过OPCClient读取各个OPCServer的数据,通过可视化的模块将状态和数据显示在监控界面上,操作人员同样可以通过直观地操作对设备进行控制。

系统I/O服务器一共有3台,所有的OPCServer都分布在这三台上,组态监控软件通过TCP/IP协议在局域网中获取各个OPCServer的数据。

PLC的OPC Server采用第三方开发的KEP ServerEx作为OPCServer,通过简单的IP端口配置和通道配置即可以快速地和各个PLC连接,如图4和图5所示:

其他的OPCServer由于通讯协议采用的是非标协议需要额外的编程,所以采用KnightOPC DA Server提供的库函数[6],用VC 6.0++平台作为软件开发平台,通过初始化,注册,添加OPC点,更新数据,客户端写数据触发事件等方法实现了开发一个OPCServer,根据需要添加节点,响应客户端的操作指令,时时刷新节点表等功能。主要采用的方法及功能的实现如下。

(1)KOS Init初始化OPC服务器

通过这个方法的调用设定OPCServer的ID和数据刷新扫描周期

(2)KOS Register注册OPC服务器

通过这个方法的调用注册OPCServer到系统注册表中,注册后,OPCClient才能够查询到并连接到此OPCServer

(3)KOS AddItem添加OPC节点

通过这个方法的调用添加OPC点到OPC Server列表中,可以自定义OPC点的名称,类型及分类。

(4)KOS SetClientWriteProcOPCClient写数据

运行该方法时,当连接到本OPCServer的OPCClient发出写数据命令时,写操作的相关数据将作为此回调函数的参数供用户程序进行处理,一般将客户端希望的操作指令放在该函数过程中,例如向设备写数据,启动停止设备等。

(5)KOS UpdateItem节点更新数据

运行该方法时对应指针的节点的对应数据可以被修改更新,一般用于设备数据的读取解析后修改对应的节点数据供OPC Client读取。

OPCServe是连接OPC Client和设备之间的通道,因此在OPCServer中应该根据设备的通讯协议或者通讯要求添加相应的程序代码,例如设备是基于TCP/IP协议的就在OPC Serve中添加socket线程。

3 结论

本文提出的分布式OPC通讯,位于系统的中间层,用于组态软件和设备之间的通讯连接,其主要思想在于按照不同的功能需要来设计不同的OPC Server,事实证明,这种方式能够满足用户的各种要求,同时又能够方便地对设备升级和软件的更新,相信即使用户提出更多的功能要求,也可以设计出有针对性的OPC Server来满足要求。

本文提出的OPCServer的架构虽然有相当一部分工业中已经或多或少地应用,但是有的是由于不同厂商的通讯协议不同而不得已而分布出来,本文希望通过明确以功能来区分OPC Server从而能够建立一种规范并且清晰的通讯方式

参考文献

[1]杨明极,郭剑虹,沈强,等.OPC技术在工业控制领域的研究[J].哈尔滨理工大学学报,2008,13(4):29~31.

[2]姜萍,段新会,王锐.基于OPC技术的DCS监控系统设计[J].微型机与应用,2009,28(7):59~62.

[3]陈建涛,李运华.基于OPC和Web Services的监控系统[J].计算机工程,2009,35(20):249~251.

[4]Cihan Sahin Emine Dogru Bolat.Development of remote control and monitoring of web-based distributed OPC system.Computer Standards&Interfaces,2009,31(5).

[5]张义,杨建武,涂承媛,等.VC实现OPC技术在DeviceNet总线中的应用[J].微计算机信息,2009,25(4):282~284.

OPC通讯技术 篇9

医院呼叫系统是病员请求护理帮助的工具,是医院的必需设备之一。借助呼叫系统,护理人员可以随时随地了解病员的需求;对病员的呼叫信息记录、存储、统计,可帮助解决医疗纠纷;在多病员请求帮助时可选择最紧急最优先的病员予以处理;由于具备保存未处理请求的功能,不会使求助病员被遗忘,等等。这些功能大大减轻了护理人员的工作量,同时提高了救护质量。临床呼叫求助装置是传送临床信息的重要手段,关系到病员安危,因此医院呼叫系统历来受到各大医院的重视[1,2]。

随着科学技术的发展,医院智能化集成管理已成为一种趋势[3]。医院智能化集成管理系统应该包含很多子系统,包括数字化影像系统、检验信息系统、门禁系统、一卡通系统、消防报警系统、监控系统等。但是现在大量工程实例是:所谓的全面智能化就是将各个子系统进行简单的叠加,各个子系统之间相互独立,各个子系统有自己的管理软件和数据库,缺乏一个统一高效的中央集成管理系统。采用基于OPC技术的集成系统方案,有效地解决了这一问题[4,5]。OPC标准有利于医院所有设备硬件驱动和软件通信采用统一标准[6],有利于将医院信息系统一体化,便于医院信息系统的外延扩展及升级,也便于系统维护。

在OPC技术的基础上,开发一套医院呼叫系统,提供OPC标准接口,利用OPC技术实现数据传输,有助于将我们所设计的医院呼叫系统融入医院集成信息管理系统。

1 OPC介绍

OPC是开放、高效通信机制的产物,它包含一套标准的接口、属性和方法,适用于过程控制。OPC规范了接口函数,不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使多个过程控制设备之间进行通讯,而无需专门的控制软件。OPC规范基于Microsoft OLE/COM(Object Linking and Embedding/Component Objet Model),同时OLE/COM的扩展远程OLE自动化与DCOM(Distributed Component Object)技术支持多种网络协议,因此可以将OPC客户、服务器在物理上分开,分布于网络的不同节点上。

通常来说,OPC提供了对于不同厂商的设备和软件包的内部连接能力。在OPC诞生以前,企业中的应用程序与设备驱动之间的关系如下图1(a)所示,不同的应用程序和不同的厂商的硬件驱动程序之间存在着大量的连接问题,需要开发各种特定的通信驱动。OPC标准的制定,使得所有的通信连接问题变得简单,它提供一种内似总线的形式,如下图1(b)所示,这样,应用起来就变得简单、轻巧,应用程序只需要知道如何从OPC数据源获取数据(OPC Client),设备的驱动程序只需要知道如何以简单的格式提供数据(OPC Server)。

2 医院呼叫系统设计

2.1 总体设计

医院呼叫系统由一台主机和若干分机构成,如下图2所示。其中主机放置在护士站,分机分别置于病房的各个床位旁。分机完成住院病人呼叫信号采集、显示等功能;主机完成接收、处理分机呼叫请求,进行确认、应答、打开语音通话,同时可将呼叫信息显示和存储等功能;同时主机对外提供OPC硬件接口,用于采集现场数据。

本呼叫系统采用二线制,即主机和分机仅用两根线相连,这两根线构成的总线既用于主机对分机的供电,又完成双向的数据通信和语音通信功能。且这两根线接线不分极性,使得安装、维护非常方便。

本呼叫系统主机对外提供RS-232接口,利用串口和OPC DA服务器进行通信。OPC服务器通过串口采集现场数据[7]。

2.2 系统特点

本系统设计中,主机和分机均采用单片机作为控制器,利用单片机的多地址编码技术,使得分机完全通用,分机地址可以现场在线编码,即插即用,便于扩展。整个系统采用在多机通信中非常流行的串行通信方式,精心设计了一套完善的通信协议,有效地解决了二线制串行通信中的数据碰撞问题和系统中数字呼叫信号和模拟音频信号间的相互干扰问题。该系统在程序设计中采用“有限状态机模型”的思想实现了模块化编程,同时保证了系统的实时性;采用“主机查询”方式,有效地解决了多个分机同时呼叫主机引起冲突的问题。在呼叫系统的功能设计上,完成了广播、群呼、LED数码显示、全双工对讲基本功能,还可以实现多级护理级别设置、无阻碍呼叫以及系统故障自检功能,使得系统具有极大的可靠性。

2.3 主、分机通信单元电路设计

医院呼叫系统的核心功能就是要实现主机和分机之间的通信,这样一来,主机与分机之间的通信单元电路是系统设计的核心,下面将分别对主、分机通信单元电路作简单介绍。

(1)发送单元

主机发给分机的是电压形式的信号。为了使用两根线路完成主机对各分机的供电和通信任务,采用了将通信信号和供给分机的直流电相叠加的传输方式。主机对分机的数据通过单片机直接控制可调电源模块,以控制总线电压的变化,完成数据信号发送;语音信号经过放大滤波后,直接通过可调电源模块输出。

分机发送单元与主机发送单元相似,不过分机发给主机的是电流形式的信号。

(2)接收单元

主机接收单元主要完成对分机呼叫的数据信号和分机语音信号的接收。因为分机发送的是电流形式的信号,在接收分机信号的时候,需要先经过总线电流检测电路,得到分机发送的信号,再通过带通滤波来分离数据信号和语音信号,数据信号经过放大和滤波后,送入鉴频器,解调为数字信号发送到单片机;语音信号经过放大和滤波后,直接发送到主机电话机。

3 医院呼叫系统OPC DA数据服务器

基于OPC的数据访问都是通过OPC服务器与现场设备进行交互的,如图3所示,因此OPC服务器的开发是整个系统的基础和关键。

OPC服务器主要由两部分组成,OPC标准接口的实现和与硬件设备的通信。由于本医院呼叫系统对外提供RS-232接口,可直接使用此接口用来与OPC服务器通信,通过此串口实现医院呼叫系统与OPC服务器的数据传输和共享。OPC服务器的开发必须以OPC规范为基础,实现各个对象及其接口。因此OPC接口是整个系统设计的基础。

ATL(Active Template Library)是Visual C++提供的一套基于模板的C++类库,利用这些模块类,可以快速开发COM组件程序。它的内部的模板类实现了COM的一些基本特征,比如一些基本的COM接口IUnknown、IClass Factory、IDispatch等,也支持COM的一些高级特征,如双接口(dual interface)、连接点(connection point)、Active X等。

利用ATL开发的OPC DA Server接口设计:(1)OPC Server,它是一个COM接口,需要为其设计以下接口:

(2)OPC DA Group接口设计,需要为其实现以下接口:

4 系统测试

利用单片机构成的二线制呼叫系统,既解决了四线制呼叫系统安装维护困难的问题,又解决了无线呼叫系统易受外界干扰的问题。实验证明,在多个分机同时呼叫主机的情况下,主机都可以可靠、稳定地接收和应答。在本系统测试中,在极端的情况下,50个分机同时呼叫主机,主机也能够可靠、稳定地处理所有的呼叫请求,同时优先处理护理级别较高的分机请求。

打开OPC SERVER软件,在本机OPC SERVER的基础上增加如下图4所示的标签,并且设置好串口通信的参数,将医院呼叫系统连接到本地服务器,同时设置更新速率,在此我们设置为1ms,即每1ms读取一次医院呼叫系统的相关数据。

图5为医护呼叫系统OPC服务器在某段时间采集到的呼叫数据。经实验证明:该服务器能够可靠地与硬件实现数据交换。

5 结论

在研究OPC技术的基础上,开发了一套基于单片机的二线制的医院呼叫系统,该系统性能稳定、工作可靠且成本较低,可以方便、实时利用PC机采集呼叫信息:病人呼叫时间、护理人员应答时间等。通过这些数据可以分析医院的服务质量;统计病人对应铃的满意度;对病员的呼叫记录、存储、统计,可帮助解决医疗纠纷;更为重要的是,开发基于串口的医院呼叫系统OPC服务器,可以方便地兼容医院集成化管理系统,实现医院各种监控组态软件的无缝集成。

摘要:为了更好地将呼叫系统融入医院集成管理系统,在OPC接口技术的基础上,设计了一种基于单片机的两线制医院呼叫系统。该系统提供OPC接口,可以方便地利用OPC技术实现数据传输;系统采用二线制,所有分机、紧急呼叫分机和门灯皆并联其上,简化了设计,同时使得安装、维护非常方便。系统实时性强、可靠性高、成本低、安装方便,具有很强的实用价值。

关键词:医院呼叫系统,OPC技术,服务器

参考文献

[1]KANG Hao-chen,WANG Jian-guo.Design of a simpleward call system.INFORMATION OF MEDICALEQUIPMENT,2006,vol21(9),p102-102.

[2]Ma YanHao.Relization Methods of Bed Coding forMedical Calling System.China Medical Equipment,2005,P41-42.

[3]丁仁声.医院集成化信息管理系统的设计与实现[P].中国医院统计,vol 13,2006,P37-41.

[4]Pankaj Bhatt and Roger P.Baldevia,Jr.INTEGRATEIEDS WITH OPC TECHNOLOGY[J].SchweitzerEngineering Laboratories,Inc.

[5]司纪刚.OPCDA服务器与客户端程序开发指南[D].南大傲拓科技(北京)有限公司.

[6]Li Zheng,Hiroyuki Nakagawa.OPC(OLE for ProcessControl))Specification and its Developments.SICE 2002.Proceedings of the 41st SICE Annual Conference.917-920.

上一篇:平面设计中的色彩设计下一篇:散居儿童