
工程案例七0C技术在如热炉集数控制系统中的应用 一、概述 从计算机技术介入到工业(控切应用领域开始,件生的“信息孤岛”问题纸一直困抚 着业界。“信息孤岛”严重限制了信息交换,衡而制的了其应用领城的拓展。人们迫切需要 一种标准途径从数据源提取数据并且传到应用程序(客户得)的机制。随着计算机技术的发 展,基于Microsoft C0W.D0OW和Ac2 tiveX技术的0gC技术应运而生.OPC@.EForProcess Cont rol)是一个工业标准,它是许多世界领先的自动化软,徒件公可与微软公可合作的结 品,由一系列用于过程控制和制造业白动化领域的标准接口、属性和方法组成。所以,当今大 部分自动化产品如SEE5S7一200的CP243以太网核块,0C软件包,浙大中控的JX 一300N系统等都提供了0℃接口。下面以0℃技术为核心,结合杭钢热带厂加热炉远程监 控系统的开发过程,论述0C技术在工业控制领域的重要作用。 二,0(技术介绍 1,OPC技术果构及作用 C标准的关键,在于它提供了一种高效的通信机制,它所关心的是现场数据的存取方 式而不是实际的数据类型,它给工控软件提供了一种一政的存取现场设备数据的方法。℃ 的软件系统结构为客户(C1ient)/服务器(Server)模式(如图1)。在工控界0C有“软 件总线”之称,它与过去的DE技术以及应用程序中嵌入Driver技术相比.更具有以下优 势: 1》高速的数据传输性能: 2》基于分布式的C可W安全性管理机制: 3》开发成本的降低: )实现高度柔初性的系统: 5)实现高可靠性的系统, 图1OC软件系统结构 2.数据存取规范的对象和接口 在0P存取提范中。一个0C的数据存取服务晷中包括类对象0 PC Server),组0P℃
工程案例七 OPC 技术在加热炉集散控制系统中的应用 一、概述 从计算机技术介入到工业(控制) 应用领域开始,伴生的“信息孤岛”问题就一直困扰 着业界。“信息孤岛”严重限制了信息交换,继而制约了其应用领域的拓展。人们迫切需要 一种标准途径从数据源提取数据并且传到应用程序(客户端) 的机制。随着计算机技术的发 展,基于 Microsoft COM、DCOM 和 Ac2tive X 技术的 OPC 技术应运而生。OPC(OL E ForProcess Cont rol) 是一个工业标准,它是许多世界领先的自动化软、硬件公司与微软公司合作的结 晶,由一系列用于过程控制和制造业自动化领域的标准接口、属性和方法组成。所以,当今大 部分自动化产品如 SEMENS S7 - 200 的 CP243 以太网模块、WINCC 软件包、浙大中控的 J X - 300X 系统等都提供了 OPC 接口。下面以 OPC 技术为核心,结合杭钢热带厂加热炉远程监 控系统的开发过程,论述 OPC 技术在工业控制领域的重要作用。 二、OPC 技术介绍 1.OPC 技术架构及作用 OPC 标准的关键,在于它提供了一种高效的通信机制,它所关心的是现场数据的存取方 式而不是实际的数据类型,它给工控软件提供了一种一致的存取现场设备数据的方法。OPC 的软件系统结构为客户(Client) / 服务器(Server) 模式(如图 1) 。在工控界 OPC 有“软 件总线”之称,它与过去的 DDE 技术以及应用程序中嵌入 Driver 技术相比,更具有以下优 势: 1) 高速的数据传输性能; 2) 基于分布式的 COM 安全性管理机制; 3) 开发成本的降低; 4) 实现高度柔韧性的系统; 5) 实现高可靠性的系统。 图 1 OPC 软件系统结构 2.数据存取规范的对象和接口 在 OPC 存取规范中,一个 OPC 的数据存取服务器中包括类对象(OPC Server) 、组(OPC

Group》,项(OPC Iter(参见图),0F(服务器对象维护有关服务器的信息并作为OPC组 对象的容器,而0℃组对象维护有关其自身的信息,提供包容 代项的机制,并管理OC项: OPC Server OPCGroup OPCGroup OPCGroup 图20℃数暴存取服务图 0代服务器主要实现Iunknown和10PCServ2er接口,0℃客户瑞通过0℃服务器的接 口与OC对象进行通信。IOPCServer接口为OC客户提供了方便有效的C组的方法. 0℃组提供了客户程序组凯数据的手段,每一个组中都可以定义一个或多个℃项。组有两 种类重:公共组(Pb1ic)和局部组o心al),公共组可以被多个客户共享,而局部组只能被 一个客户使用。 C组有以下几个属性: 1》Nae一——组的名字: 2》Act1e一一组的激活状老标志: 3劲Update Rate OPC一一服务器向客户端提供 数据变化的时新率: 4)Percent Deadband一一一数据死区,即引起数 据变化的最小数据百分比。 C项代表了与服务器的数据连接,它并不是数据源,而仅仅是与数据题的连接,每一项 都有以下属性: 1》Active一一藏话状态: 2Vale一一项的数据,类型为YARIANT: 3剧uality一—一项的品质,代表数值的可信度, 类型号为SHT: 4)TiSa甲一一一时间戳代表数据的存取时 何. 三、如热炉递程监控系统的设计 1.0P℃凰务露安装及配置
Group) 、项(OPC Item) (参见图 2) 。OPC 服务器对象维护有关服务器的信息并作为 OPC 组 对象的容器,而 OPC 组对象维护有关其自身的信息, 提供包容 OPC 项的机制,并管理 OPC 项。 图 2 OPC 数据存取服务器 OPC 服务器主要实现 Iunknown 和 IOPCServ2er 接口,OPC 客户端通过 OPC 服务器的接 口与 OPC 对象进行通信。IOPCServer 接口为 OPC 客户提供了方便有效的 OPC 组的方法。 OPC 组提供了客户程序组织数据的手段,每一个组中都可以定义一个或多个 OPC 项。组有两 种类型:公共组(Public) 和局部组(Local) ,公共组可以被多个客户共享,而局部组只能被 一个客户使用。 OPC 组有以下几个属性: 1) Name ———组的名字; 2)Active ———组的激活状态标志; 3) Update Rate OPC ———服务器向客户端提供 数据变化的刷新率; 4) Percent Deadband ———数据死区,即引起数 据变化的最小数据百分比。 OPC 项代表了与服务器的数据连接,它并不是数据源,而仅仅是与数据源的连接。每一项 都有以下属性: 1)Active ———激活状态; 2) Value ———项的数据,类型为 VARIANT ; 3) Quality ———项的品质,代表数值的可信度, 类型号为 SHORT ; 4) Time Stamp ———时间戳,代表数据的存取时 间。 三、加热炉远程监控系统的设计 1.OPC 服务器安装及配置

在W1dkms2000 Profess10a】运行环境和装有JX-300项工程师站软件的基础上, 按默认选项安装JX-3 00X OPC Server服务器,选择相应的组态文件井运行℃Server, 运行dc0g,e程序,对服务器端DCW进行配置,将默认身份验证级别设为无,安全级 别设为Everyone允许访问,身份标识采用交互式用户。系统软件结构如图3。 用户控讲营病 图3监控系统数件结构图 2.0P℃客户端程序设计 该客户端程序通过以太料按以下步露完成对℃服务器的连接,读取服务器缓冲区中 的数据并在界面上进行显示(参见图4)。此程序在1nows2000 Professional,VB需环境 下通过编译, Option Explicit Option Base 1 Dim WithEvent s myserver As OPCServer Dim WithEvent s mygroups As OPCGroups Dim WithEvent s mygroup As OPCGroup Dim myiteas As OPCItems Dim myitem As OPCItem Dim IteaNun As Long Dim ItenError 0 As Long Dim ClientHandle (53)As Loeg Dim ServerHandle As Long Din ItenName (53)As St ring Dim nqlj As St ring Dim Itemvalue (52)As Variant Private Sub Cooandl-ClickO Dim x As Integer y8r0Ups.ReTe4l山 myserver.Disconneet
在 Windows 2000 Professional 运行环境和装有 J X - 300X 工程师站软件的基础上, 按默认选项安装 J X - 300X OPC Server 服务器,选择相应的组态文件并运行 OPC Server , 运行 dcomcnfg. exe 程序,对服务器端 DCOM 进行配置,将默认身份验证级别设为无,安全级 别设为 Everyone 允许访问,身份标识采用交互式用户。系统软件结构如图 3 。 图 3 监控系统软件结构图 2.OPC 客户端程序设计 该客户端程序通过以太网按以下步骤完成对 OPC 服务器的连接,读取服务器缓冲区中 的数据并在界面上进行显示(参见图 4) 。此程序在 Windows2000 Professional 、VB6 环境 下通过编译。 Option Explicit Option Base 1 Dim WithEvent s myserver As OPCServer Dim WithEvent s mygroups As OPCGroups Dim WithEvent s mygroup As OPCGroup Dim myitems As OPCItems Dim myitem As OPCItem Dim ItemNum As Long Dim ItemError () As Long Dim ClientHandle (53) As Long Dim ServerHandle () As Long Dim ItemName (53) As St ring Dim mqlj As St ring Dim Itemvalue (52) As Variant Private Sub Command1-Click() Dim x As Integer mygroups. RemoveAll myserver. Disconnect

End End Sub Private Sub Foru-Load() Dim i As Long Din aa As Variant Dim serversnane As St ring 图4监控系统界面显示 Dim serversnode As St ring Dim servers As Variant IteaNun 53 serversnane ="SUPOON.J XServer.1" serversnode"”1Es130" Set myserver New OPCServer myserver.Connect serversname.serversnode Set mygroups myserver.OPCGroups mygroups.Default GroupDeadband 0 Set mygroup mygroups.Add ( DataGroupl”) nygroup.UpdateRate 1000 mygroup.IsActive True mygroup.IsSubscribed True Set ryiteas mygroup.OPCItems For i "0 To 51 C1 ientHandle(行+l)=i Next i
End End Sub Private Sub Form-Load() Dim i As Long Dim aa As Variant Dim serversname As St ring 图 4 监控系统界面显示 Dim serversnode As St ring Dim servers As Variant ItemNum = 53 serversname = ”SUPCON. J XServer. 1” serversnode = ”\ ES130” Set myserver = New OPCServer myserver. Connect serversname , serversnode Set mygroups = myserver. OPCGroups mygroups. Default GroupDeadband = 0 Set mygroup = mygroups. Add ( ” DataGroup1”) mygroup. UpdateRate = 1000 mygroup. IsActive = True mygroup. IsSubscribed = True Set myitems = mygroup. OPCItems For i = 0 To 51 ClientHandle (i + 1) = i Next i

ItesName (1)PIAS5103" IteaName (2)="PIAS4001"-- 1tNae(53)=”F0110L.5刻”·煤气累计 myitens.Default IsActive True myitems.AddItems ItemNun.ItemName, ClientHandle Serverflandle ItemError For i 1 To 52 If ServerHlandle (i)"0 Then sgox(”No”+Str(i)+”Add Error”) End If Next i Tinerl.Enabled True End Sub Private Sub Tinerl-Timer ( Textl.Text mygroup.OPCItems. GetOPCItem(ServerHandle (1)) Text2.Text mygroup.OPCItems. Cet0r℃Itea(5 erverHandle(2))- Text51.Text mygroup.OPCItems. GetOPCItea(ServerHandle (51)) Text52.Text mygroup.OPCItems. GetOPCItem(ServerHandle (52)) oqlj mygroup.OPCIteas,GetOPCItem (ServerHandle (53)) Text53.Text=Left (mglj,1 nSt r (nqlj,”.”) +1D End Sub 四、结语 使用该软件后,系统实现了进程监控加热炉运行状态的功能.与原先通过Driver和 0DC技术实现运程监控相比,数据的刚新率由原米的0s提高到500阳s,可靠性和安全性都 上了一个台阶,该系统具有良好的灵活性和开放性,在此基础上还相继开发了电耗、。气耗自 动采集系统进一步优化了能耗数据,提高了企业综合自动化水平
ItemName (1) = ”PIAS5103” ItemName (2) = ”PIAS4001”⋯⋯ ItemName (53) = ”FRQ1101. SM”’煤气累计 myitems. Default IsActive = True myitems. AddItems ItemNum , ItemName , ClientHandle , ServerHandle , ItemError For i = 1 To 52 If ServerHandle (i) = 0 Then MsgBox (”No”+ St r (i) + ”Add Error”) End If Next i Timer1. Enabled = True End Sub Private Sub Timer1- Timer () Text1. Text = mygroup. OPCItems. GetOPCItem(ServerHandle (1) ) Text2. Text = mygroup. OPCItems. GetOPCItem(ServerHandle (2) )⋯⋯ Text51. Text = mygroup. OPCItems. GetOPCItem(ServerHandle (51) ) Text52. Text = mygroup. OPCItems. GetOPCItem(ServerHandle (52) ) mqlj = mygroup. OPCItems. GetOPCItem (ServerHandle (53) ) Text53. Text = Left (mqlj , InSt r (mqlj , ”. ”) + 1) End Sub 四、结语 使用该软件后,系统实现了远程监控加热炉运行状态的功能,与原先通过 Driver 和 ODBC 技术实现远程监控相比,数据的刷新率由原来的60s 提高到500ms ,可靠性和安全性都 上了一个台阶。该系统具有良好的灵活性和开放性,在此基础上还相继开发了电耗、气耗自 动采集系统,进一步优化了能耗数据,提高了企业综合自动化水平
