2023年11月30日发(作者:)
OPC通讯协议介绍
OPC通讯协议介绍
OPC(OLE for Process Control, 用于过程控制的OLE)是一个工业标准,管
理这个标准国际组织是OPC基金会,OPC基金会现有会员已超过220家。遍布全
球,包括世界上所有主要的自动化控制系统、仪器仪表及过程控制系统的公司。
基于微软的OLE(现在的Active X)、COM (部件对象模型)和DCOM (分布式
部件对象模型)技术。OPC包括一整套接口、属性和方法的标准集,用于过程控
制和制造业自动化系统。
OPC全称是OLE for Process Control,它的出现为基于Windows的应
用程序和现场过程控制应用建立了桥梁。在过去,为了存取现场设备的数据信
息,每一个应用软件开发商都需要编写专用的接口函数。由于现场设备的种类
繁多,且产品的不断升级,往往给用户和软件开发商带来了巨大的工作负担。
通常这样也不能满足工作的实际需要,系统集成商和开发商急切需要一种具有
高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情
况下,OPC标准应运而生。OPC标准以微软公司的OLE技术为基础,它的制定是
通过提供一套标准的OLE/COM接口完成的,在OPC技术中使用的是OLE 2技术,
OLE标准允许多台微机之间交换文档、图形等对象。
COM是Component Object Model的缩写,是所有OLE机制的基础。COM
是一种为了实现与编程语言无关的对象而制定的标准,该标准将Windows下的
对象定义为独立单元,可不受程序限制地访问这些单元。这种标准可以使两个
应用程序通过对象化接口通讯,而不需要知道对方是如何创建的。例如,用户
可以使用C++语言创建一个Windows对象,它支持一个接口,通过该接口,用户
可以访问该对象提供的各种功能,用户可以使用Visual Basic,C,Pascal,
Smalltalk或其它语言编写对象访问程序。在Windows NT4.0操作系统下,COM
规范扩展到可访问本机以外的其它对象,一个应用程序所使用的对象可分布在
网络上,COM的这个扩展被称为DCOM(Distributed COM)。
通过DCOM技术和OPC标准,完全可以创建一个开放的、可互操作的控
制系统软件。OPC采用客户/服务器模式,把开发访问接口的任务放在硬件生产
因而,OPC为自动化层的典型现场设备连接工业应用程序和办公室程序提供
了一个理想的方法。
OPC应用领域
1、工控解决方案用户
2、楼控解决方案用户
3、工控解决方案厂商
4、楼控解决方案厂商
5、工控解决方案集成商
6、楼控解决方案集成商
7、 All Automation Fields
OPC是为了连接数据源(OPC服务器)和数据的使用者(OPC应用程序)之
间的软件接口标准。数据源可以是PLC,DCS,条形码读取器等控制设备。随控
制系统构成的不同,作为数据源的OPC服务器即可以是和OPC应用程序在同一
台计算机上运行的本地OPC服务器,也可以是在另外的计算机上运行的远程OPC
服务器。
OPC接口既可以适用于通过网络把最下层的控制设备的原始数据提供
给作为数据的使用者(OPC应用程序)的HMI(硬件监督接口)/SCADA(监督控制与
数据采集),批处理等自动化程序,以至更上层的历史数据库等应用程序,也可
以适用于应用程序和物理设备的直接连接。所以OPC接口是适用于很多系统的
具有高厚度柔软性的接口标准。
OPC解决了什么?
OPC诞生以前,硬件的驱动器和与其连接的应用程序之间的接口并没有
统一的标准。例如,在FA(FactoryAutomation)——工厂自动化领域,连接
PLC(Programmable Logic Controller)等控制设备和SCADA/HMI软件,需要不
同的FA网络系统构成。根据某调查结果,在控制系统软件开发的所需费用中,
各种各样机器的应用程序设计占费用的7成,而开发机器设备间的连接接口则
占了3成。此外,在PA(Process Automation)——过程自动化领域,当希望把
分布式控制系统(DCS——Distributed Control System)中所有的过程数据传送
到生产管理系统时,必须按照各个供应厂商的各个机种开发特定的接口,例如,
利用C语言DLL(动态链路数据库)连接的DDE(动态数据交换)服务器或者利用
FTP(文件传送协定)的文本等设计应用程序。如由4种控制设备和与其连接的监
视、趋势图以及表报3种应用程序所构成的系统时,必须花费大量时间去开发
分别对应设备A,B,C,D的监视,趋势图以及表报应用程序的接口软件共计要
用12种驱动器。同时由于系统中共存各种各样的驱动器,也使维护运转环境的
稳定性和信赖性更加困难。
而OPC是为了不同供应厂商的设备和应用程序之间的软件接口标准化,
使其间的数据交换更加简单化的目的而提出的。作为结果,从而可以向用户提
供不依靠于特定开发语言和开发环境的可以自由组合使用的过程控制软件组件
产品。
利用OPC的系统,是由按照应用程序(客户程序)的要求提供数据采集
服务的OPC服务器,使用OPC服务器所必需的OPC接口,以及接受服务的OPC
应用程序所构成。OPC服务器是按照各个供应厂商的硬件所开发的,使之可以吸
收各个供应厂商硬件和系统的差异,从而实现不依存于硬件的系统构成。同时
利用一种叫做Variant的数据类型,可以不依存于硬件中固有数据类型,按照
应用程序的要求提供数据格式。
利用OPC使接口标准化可以不依存于各设备的内部结构及它的供应厂
商来选用监视,趋势图以及表报应用程序。
为什么开发自主OPC Server和OPC Gateway?
1、国外原厂商的高价格
2、国外原厂商面对项目的不灵活性
3、国内项目中子系统的多样性难以提供DRIVER
4、自主OPC服务器追求的是稳定、实时、迅速。
5、众多子系统的不规范性
6、总包项目在投标前后可能出现的不一致性
7、价格昂贵的原厂平台服务器软件
8、总包商集成是否投入大量的人力开发
9、平台和子系统的兼容性
10、建立了OPC平台和子系统的互通
11、解决厂商和集成商在项目集成的烦恼
12、解决厂商和集成商分散资源进行二次开发
13、解决项目中子系统厂商的困扰
14、为上下位的数据通讯提供透明的通道
1 示例系统的体系结构 图 0 本例中以OPC为例在上位机上插入CP5611
PLC为313C-2DP(6ES7313-6CE00-0AB0)二者通过PROFIBUS 总线相
连。 2 软件版本描述 需要软件 SIMATIC NET V6.0 SP4 PB SOFTNET-S7 3
组态 3.1 在PC 机上安装SIMATIC NET V6.0 PC NCM后,打开NCM 组态一个PC
STATION 图 1 插入一个PC STATION 以上为例,把站名改为OPC双击
CONFIGURATION 进入组态画面,如图2 图 2 在第一槽插入OPC SERVER在第四
槽中插入CP5611注意相应的版本号如本例中安装V6.0 SP4 插入OPC SERVER 和
CP5611时,选择SW V6.0 SP4存盘编译后,在OPTIONS菜单下选择Configure
Network单击OPC SERVER后,出来连接表,双击其中一格,建立S7-CONNECTION,
如图3 图 3 连接的站选择UNSPECIFIED.点击APPLY进入详细组态画面图4 图
4 填入S7-300C的站号如6号站,点击Address Details组态CPU的槽号。 图
5 S7-300PLC,CPU槽号为2,S7-400CPU依据组态而定,如果连接通讯模块如
CP342-5CP443-5在这里也必须填上CPU的槽号。编译存盘,准备下载。 3.2
组态虚拟PC STATION,编译存盘后,配置虚拟PC STATION.于实际配置一样在
第一行添加APPLICATION 图 6 进入虚拟PC STATION画面 图 7 第一行添加OPC
SERVER INDEX表示行数 NAME 任意。 进入配置网卡界面 图 8 图 9 选择
CP5611的模式为CONFIGURED MODE INDEX为4(行数)配置完后退出。 使能OPC
S7 协议。 图 10 图 11 进入STATION NAME 为OPC与配置一样。 图 12 图 13
在控制面板中设置PG/PCINTERFACE为S7ONLINE 指向 PCINTERNAL CP_L2_1指
向CP5611(PROFIBUS)下载PC配置信息到虚拟PC 站中 图 14 确认配置无误 图
15 3.3 测试实际连线状态,在SIMATIC NET CONFIGURATION CONSOLE 中
2
基于PLC的DCS控制系统在污水处理厂中的应用
随着国民经济建设的快速发展,各级政府对环境保护更加关注,各地陆
续新建了一大批污水处理厂。这些新建的污水处理厂根据自身特点,对控制系
统的性能和价格提出了新的要求。
重庆市奉节污水处理厂采用CASS工艺对生活污水进行处理,日处理量为3
万吨。其DCS系统以高性价比的PLC为控制单元,采用商用计算机为监控站。
整个系统在实现生产自动化的情况下,有效降低了系统成本,从2004年投产至
今运行情况良好。
1 生产工艺简介
污水处理是一种连续的生化反应过程,有氧化沟工艺、AO、SBR、CASS等众
多不同的处理工艺。奉节污水处理厂所采用的污水处理工艺为新型改良 CASS
(Cyclic Activated Sludge System,循环式活性污泥法)工艺,属于改进型
SBR工艺的一种,由格栅井、CASS 池、鼓风机房、加药间、储泥池、脱水机房、
接触消毒池组成。该工艺具有以下特点:
(1)可升降的滗水器最大限度降低了排水水流对底部沉淀污泥扰动。
(2)抗冲击力强,对难降解有机物的去除效率高,同时具有脱氮除磷功能。
(3)工艺流程短,占地面积小,建设费用低,运转费用省。
(4)管理简单,运行可靠,出水水质好,无异味。
(5)污泥产量低,污泥性质稳定,不发生污泥膨胀。
2 DCS控制系统选型及硬件配置
2.1 DCS系统的选型
重庆市奉节口前污水处理厂为三峡库区国债项目建设的第一批污水处理
厂,根据实际的工艺要求及建设特点,该项目对控制系统提出了如下要求:
(1)受控设备控制点数在800点内。控制工艺较为复杂,但是我们所需要
的算法并不复杂,基本以时间控制和位式控制为主。
(2)控制系统须成熟可靠,便于调试和维护。
(3)考虑到会有第三方产品,网络通讯及其协议须具备开放性和标准性。
(4)测量设备和受控设备均为传统设备,基本不带现场总线通讯能力,所
以输入、输出控制还是以传统的I/O点为基础。
(5)作为国债投资项目,尽可能在满足要求的前提下降低造价。
经过比较,该厂的自动化控制系统采用以PLC为基础的DCS控制系统,该
系统在满足生产要求的基础上其性能和价格上取得了很好的平衡。
2.2 基于PLC的DCS系统
传统DCS是针对流程工业的仪表控制系统发展起来的,主要功能是实现连
续物理量的监视与调节。PLC是针对传统的继电器控制系统而发展起来的,主要
功能是实现开关量的逻辑控制。
一般来说,PLC是一种局部的控制器,但随着应用规模的扩大以及工业以太
网的出现,多台PLC能够互连起来而形成的较大控制系统。与单个的PLC相比
有几点重大的改变:
(1)在网络上挂接了在线的通用计算机,其作用一是实现系统组态、编程
和下装,二是在线监视被控过程的状态。这样,一个具有现场控制层和协调控
制层的DCS雏形就出现了。
(2)在PLC中增加了模拟量I/O接口和数值计算功能,这样,PLC就不仅
可以完成逻辑控制,也可以完成模拟量监测及控制和混合控制的功能。
(3)越来越多的PLC厂家把专用的网络改成为通用的网络,这样就使PLC
有条件和其它各种计算机系统和设备实现集成,以组成大型的控制系统。
上述几点改变使得PLC组成的系统具备了DCS的形态。由于PLC产品已经
进入市场多年,其I/O接口、编程方法、网络通信都趋于标准化和适应开放系
统的要求,同时通过扩展能够增加现场总线通讯功能。加上PLC在价格上的优
势,使得PLC在分布式控制系统领域有着很重要的地位,在很多应用领域具有
相当大的竞争优势。
2.3 奉节污水处理厂DCS系统配置及构成
DCS控制系统以工业以太网这种开放式的网络结构为基础,由三个下位控制
站PLC0、PLC1、PLC2站,1个上位工程师站、1个上位操作员站组成。其拓扑
结构如图1所示。
PLC0控制站安装在中央管理中心的大屏幕马塞克模拟显示屏内,通过
以太网采集各设备的状态信号并用RS232的通讯方式与马赛克屏通讯,将生产
的整个流程以及设备状态显示出来。
PLC1安装在变配电所,负责控制格栅井、污水提升泵、沉砂池、1号CASS
池、2号CASS池、3号CASS池、鼓风机房、储泥池及流量井流量检测、接触消
毒池的部分检测控制、配电室的部分电力参数监测。
PLC2安装于加药间。用于控制加药间的电磁阀、搅拌器、隔膜泵在内的全
套加药设备。
中央管理中心的两台监控计算机采用DELL公司的OptiPlex系列台式机。
OptiPlex系列台式机定位于初级服务器应用,在高性能的前提下其专门设计的
钢丝屏蔽层结构以及散热系统保证了系统的高可靠性和稳定性。所采用的监控
软件是基于微软的Windows 2000平台的,商用机对操作系统的兼容性比工控机
略好。
该厂整个控制的系统信息交换层和控制层两层合一。采用先进的工业以太
网,具有高速可靠的特点。工业以太网是以传统以太网为基础,针对工业控制
的要求,改良后的一种信息及控制网,具有一网到底和降低网络造价的特点。
3 自控系统功能
3.1 监控软件
监控软件采用开物2000软件,开物2000为北京华富慧通开发的一款通用
监控软件,该软件对OPC通讯方式支持较好。 OPC(OLE for ProcessContro1)
是基于COM(Component Object Mode1)和 DCOM(Distributed Component Object
Mode1)技术的面向对象软件协议。OPC为现场设备、自动控制应用软件和企业
管理应用软件之间提供了开放、一致的接口规范,为来自不同供应商的软、硬
件提供“即插即用”的连接。
本系统的监控软件和DCS硬件之间的通讯协议采用OPC方式,ROCKWELL的
RSLINX软件为OPC SEVER端而监控软件作为OPC CLIENT读取数据,采用该方式
通讯避免了监控软件对DCS系统驱动程序支持不完善的情况发生。
3.2 控制方式X
为便于操作调试和事故的紧急处理,系统控制方式分为三种:
(1)就地手动方式。即通过就地控制箱或MCC上的按扭、开关操纵设备。
(2)遥控方式。通过中央管理中心的两台计算机在手动模式下控制设备。
(3)自动方式。系统根据工况自动完成设备的启停、调节控制。
遥控和就地控制方式的切换由MCC柜或就地控制箱完成;自动方式和遥控
方式的切换由两台监控计算机完成。
3.3 监控功能
两台计算机分别作为操作站和工程师站相互备用,设置于中央管理中心,
对全厂工艺设备运行状况、运行参数进行集中监控,遥控现场设备。监控计算
机通过集成的1000M网卡与PLC系统经工业以太网进行数据交换。
主要功能:
(1)工艺流程监控功能。系统能按工艺要求对污水处理的各环节参数及设
备状态进行监视,同时根据工艺要求选择自动、顺序、定时等控制方式。
(2)报警及报警记录功能。当设备发生事故时,系统将在计算机、马赛克
大屏幕、就地控制箱上进行报警指示。同时计算机将对所发生的报警内容、时
间及确认时间进行记录。在计算机上还可进行语音报警。
(3)联锁保护功能。当系统检测到局部故障后启动相应的联锁保护程序。
(4)参数设定功能。可在中央管理中心的任何一台监控计算机或现场控制
站的人机界面上进行报警上下限、调节参数、运行时间等参数的设定。
(5)数据记录存储功能。系统可对重要数据如工艺参数、工况、设备运行
时间等进行记录储存,以备调用。
(6)操作记录功能。系统自动保存重要操作记录,如改动参数,操作设备
的操作员代号、时间、内容等。
(7)实时数据曲线和历史数据曲线。对重要工艺参数可以进行实时曲线显
示,并记录历史数据曲线。
(8)多级口令保护功能。在中央管理中心的任何一台监控计算机上可设定
不同操作权限,只有相应操作权限的操作员,在输入正确的口令后才可访问该
级画面。
(9)打印功能。可进行报表打印、曲线打印、图形打印。
4 工程效果
该工程于2003年5月份开始实施,2004年4月份设备移交厂方运行,其
DCS系统运行稳定可靠无损坏情况。系统投入使用后,操作人员在中央管理中心
就能够全面了解整个工厂的运行情,DCS系统对泵及滗水器等主要设备能够根据
预先设定好的参数进行自动控制。整个系统只需中央管理中心操作人员就能够
保证系统的正常运行,大大降低了值班员的劳动强度。该系统的投运解决了以
往污水处理厂自动化程度低,所有设备均需手动操作,值班人员劳动强度大、
操作易出错,出水水质不稳定、生产过程无法集中监控的问题。该厂作为三峡
库区第一批兴建的污水处理厂,对三峡库区水质的保护起到了积极的作用。各
级政府领导多次对该厂进行视察和工作指导,对该厂的生产以及工艺水平给予
了良好的评价,取得了很好的社会效益和经济效益。
5 结语
PLC作为成熟的控制器其编程语言及系统结构具有统一性,便于控制系统的
调试及维护。虽然PLC控制算法相对单一,但是却很好的满足了污水生产工艺
的要求,在避免功能浪费的同时降低了系统造价。采用工业以太网技术,保证
了通讯网络良好的兼容性和稳定性,同时实现了通讯的高速化。以PLC为基础
采用工业以太网搭建的DCS控制系统,在污水处理厂的自动化控制中具有成熟
可靠,既满足生产工艺要求,同时也降低了工程造价,具有很好的应用前景。
在VC环境中使用定制接口开发OPC客户应用程序,下面是程序实现的关键
步骤。
4.1 包含OPC头文件
开发OPC客户应用程序,除了需要OPC接口外,还需要在程序中包含OPC标准
库文件,可以从OPC基金会网站(网址:)下载这些文件:
#include "opcda_i.c " OPC数据存取接口
#include "opcda.h " OPC数据存取2.0头文件
#include "opccomn_i.c " OPC公共接口定义
#include "opccomn.h " OPC公共头文件
4.2 初始化COM支持库
由于OPC是基于COM技术制定,所以在使用接口类之前必须首先使用
CoInitialize(NULL)函数初始化COM库,如果成功,函数返回值等于S_ OK。
4.3 连接opc服务器
OPC 客户能够连接到OPC服务器上,并建立OPC组和OPC数据项,这是OPC数
据访问的基础,如果没有这个机制,数据访问的其它机能不可能实现[4]。连接
OPC服务器,OPC客户需要事先指定计算机名(如果OPC服务器和OPC客户不在
同一台计算机上)和OPC数据访问服务器名 (32OPCTagServer)。实
现代码如下:
ConnectToServer(/*in */LPOLESTR ProgID,/*in*/ BOOL IsRemote,/*out */
IUnknown **ppUnknown)
{
CLSID OPCCLSID;
HRESULT hRet=CLSIDFromProgID(ProgID,&OPCCLSID);
//将字符串ProgID转换为唯一OPCCLSID
if(IsRemote)
//opc服务器和opc客户不在同一台计算机上
{
COSERVERINFO ServerInfo;
memset(&ServerInfo,0,sizeof(ServerInfo));
me=T2OLE( "ServerComouter ");
MULTI_QI qi[1];
memset(qi, 0, sizeof(qi));
qi[0].pIID=&IID_IUnknown;
HRESULT hRet=CoCreateInstanceEx(OPCCLSID,NULL,CLSCTX_REMOTE_SERVER,
&ServerInfo,1,qi);
*ppUnknown=qi[0].pItf;
}
else
//opc服务器和opc客户在同一台计算机上
{
hRet=CoCreateInstance(OPCCLSID,NULL,CLSCTX_LOCAL_SERVER,IID_IUnknown,
(void **)ppUnknown);
}
}
4.4 创建OPC组
IOPCServer接口的AddGroup()方法可以创建一个有指定名称和属性的OPC组。
在调用该方法之前,可以使用上一步得到的Iunknown接口指针,通过
QueryInterface()方法请求IOPCServer接口指针。代码如下:
ppUnknown-> QueryInterface(IID_IOPCServer,(void **)&pServer);
//得到IOPCServer接口指针
pServer-> AddGroup(L "
",TRUE,500,1235,&lTimeBias,&fTemp,0,&hOPCServerGroup,
&dwActualRate,IID_IOPCItemMgt,& pOPCItemMgt);
4.5 添加数据项
IOPCItemMgt接口的AddItem()方法可以添加具有特殊属性的指定数量的数据
项。
pOPCItemMgt-> AddItems(ItemNumber,ItemArray,
(OPCITEMRESULT**)&pItemResult,(HRESULT **)&pErrors);
ItemArray 为OPCITEMDEF类型结构数组,它包含数据项的详细信息,客户需要
知道要进行交换的数据在RSView32标签数据库中的名称、数据类型及作为 OPC
服务器的RSView32项目名称。添加数据项之前,要用这些数据项信息对
ItemArray结构数组进行初始化。
4.6 数据交换
成功地增加完所需要的数据项后,OPC客户(VC应用程序)和OPC服务器
(RSView32)就可以进行数据交换了。在数据量不大的情况下,可以使用
IOPCSyncIO同步接口的Write()和Read()两个方法进行数据的读写操作,从而
实现OPC客户(VC应用程序)和OPC服务器 (RSView32)之间的数据交换。代码如
下:
ppUnknown-> QueryInterface(IID_IOPCSyncIO,(void **)&pOPCSync);
//得到IOPCSyncIO接口指针
pOPCSync->
Read(OPC_DS_CACHE,ReadNumber,hServerRead,&pItemValue,&pErrors);
//读ReadNumber个数据
pOPCSync-> Write(WriteNumber,hServerWrite,WriteValue,&pErrors);
//写WriteNumber个数据
4.7 释放接口指针
在VC应用程序停止运行之前必须使用Release()方法删除已创建的OPC对象并
释放内存。
5 结束语
OPC技术规范把硬件供应商和应用软件开发者分离开来,使得双方的工作效率都
有了很大提高。软件开发商无需了解硬件的实质和操作过程,就能访问OPC数
据服务器中的数据,尤其是开发商在已使用了组态软件进行实时监控的过程控
制系统基础上,用C++等高级语言开发系统时,大大简化了过去从设备传输数据
的复杂过程。在某铝厂的自动配料系统开发中,应用OPC技术方便地实现了VC
应用程序和RSView32的数据交换,间接地实现了VC应用程序与PLC的通信,
获得了很好的结果。


发布评论