西门子6ES7222-1HD22-0XA0规格说明1 引言现代工业控制系统通常以PC机为上位机,通过与现场工控设备如PLC的数据交换与处理,实现对生产过程的自动控制。对于小型控制系统,采用专门的组态软件成本太高,用VB设计监控系统则可以降低成本,但首先要解决上位机与PLC之间通信问题。以往使用较多的进程间通信方式是DDE(动态数据交换)方式,随着OPC技术的发展和普及,它已成为工业过程控制的通信标准。OPC服务器有两类接口,其中自动化接口主要用于VB、Delphi等开发工具。本文利用罗克韦尔公司提供的OPC接口,用VB编写了客户端应用程序,实现了上位机与AB可编程控制器之间的数据交换。2 OPC技术简介OPC(OLE for Process Control—用于过程控制的对象连接与嵌入)是一套以微软对象连接与嵌入OLE、组件对象模型COM、分布式组件对象模型DCOM(Distributed COM)技术为基础,基于bbbbbbs操作平台,为工业应用程序之间提供高效的信息集成和交互功能的组件对象模型接口标准。OPC实际上是提供了一种机制,通过这种机制,系统能够以服务器/客户端标准方式从服务器获取数据并将其传递给任何客户应用程序。这样,只要生产商开发一套遵循OPC规范的服务器与数据进行通信,其他任何客户应用程序便能通过服务器访问设备。OPC服务器有两类接口:定制接口和自动化接口。定制接口为C++程序服务,自动化接口为VB这一类可使用自动化对象的程序服务。定制接口是服务商必须提供的,而自动化接口则是可选的,不过OPC基金会提供了一个叫做“自动化包装器”的动态连接库,用于在两者间转换。OPC数据存取规范规定的基本对象有三类:服务器(server)、组(group)和数据项(item)。服务器对象包含服务器的所有信息,也是组对象的容器,一个服务器对应于一个OPC server,即一种设备的驱动程序。组对象除了包含它自身信息外,还负责管理数据项。每一个数据项代表到数据源的一个连接,但它没有提供外部接口,客户端程序无法对数据项直接进行操作,应用程序必须依靠数据项的容器组对象来对它进行操作。3 通信实现3.1 RSLinx的配置RSLinx是AB可编程控制器在bbbbbbs环境下建立工厂所用通信方案的工具,它不仅提供了多种网络驱动程序,而且提供了快速的OPC、DDE和Custom C/C++接口。本设计中上位机与Logix5550控制器采用RS-232串口方式连接,在RSLinx中要对DF1网络驱动程序组态,设置串口特性:COM1、波特率19200bps、一个停止位、无奇偶校验、全双工、BCC校验码。此外要使用RSLinx的OPC接口作为服务器,还要在RSLinx中对OPC进行配置。3.2 安装OPC自动化接口服务若要用VB开发OPC应用程序,必须安装OPC自动化接口服务,保证计算机系统目录下有OPCDAAuto.dll。OPC基金会提供了一个叫做“自动化包装器”的动态连接库,从OPC基金会的网站(www.opcfoundation.org)可下载。在VB环境中,按“工程”的子菜单“引用…”后,弹出对话框,选择其中的“RSLinx OPC Automation 2.0”项,这样才能使用自动化接口。3.3 程序设计用VB编写了OPC客户端应用程序,实现了上位机与Logix5550控制器之间的通信。主要程序代码如下:(1) 连接OPC服务器Dim WithEvents MyOPCServer As OPCServer ‘定义服务器对象变量MyOPCServerDim WithEvents MyOPCGroup As OPCGroup ‘定义OPC组对象变量MyOPCGroupSet MyOPCServer = New OPCServerMyOPCServer.Connect "RSLinx OPC Server" ‘连接RSLinx 的OPC服务器(2) 添加OPC组对象Set MyOPCGroup=MyOPCServer.OPCGroups.Add("Group1") ‘添加OPC组对象MyOPCGroup.IsSubscribed= True [NextPage]‘设置该组数据为后台刷新MyOPCGroup.IsActive = True ‘设置该组为激活状态MyOPCGroup.UpdateRate=1000 ‘设置数据刷新时间为1000(3) 添加数据项Dim abItemIDs() As bbbbbb ‘项标识符Dim abClientHandles() As Long ‘客户端句柄Dim abServerHandles() As Long‘服务器端句柄Dim abErrors() As Long Dim I As LongItemCount=5Dim oOPCItem As RSLinxOPCAutomation.OPCItemFor I = 1 To 5abItemIDs(i) = "[" & txtTopic & "]" & txtItem(i) ‘将Topic名和标签名赋给项标识符abClientHandles(i) = i ‘给客户端句柄赋值Next iMyOPCGroup.OPCItems.AddItems ItemCount, abItemIDs, abClientHandles, abServerHandles, abErrors‘添加数据项操作(4) 同步数据读写OPC数据存取有同步方式和异步方式两种。异步读写数据复杂,需要与事件结合使用,与同步相比速度慢但准确性高。同步读写数据简单,直接使用OPCItem的方法即可。Dim One As OPCItemDim Index As Long ‘Index为标签顺序号Dim oneRead As bbbbbbDim Xie As bbbbbb Set One = MyOPCGroup.OPCItems(Index)One.Read OPCCacheoneRead = One.Value [NextPage]‘读数据One.Write (Xie) ‘写数据若只读取数据,可以使用DataChange事件,当控制器中所要访问的数据一旦发生改变时将会触发该事件,并将该数据自动读到TxtValue文本框。Private Sub MyOPCGroup_DataChange(ByVal TransbbbbbbID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, () As Long, TimeStamps() As Date)‘自动刷新数据Dim I As LongFor I = 1 To NumItemstxtValue(ClientHandles(i)) = ItemValues(i) ‘获取项的值txtTime(ClientHandles(i)) = TimeStamps(i) ‘获取项的时间戳txt(ClientHandles(i))=Get((i)) ‘获取项的品质Next iEnd Sub(5) 断开OPC服务器MyOPCServer.OPCGroups.RemoveAll ‘移除所有OPC Group,空出资源Set MyOPCGroup = Nothing MyOPCServer.Disconnect ‘断开连接4 结束语利用本文介绍的方法,在实验室实现了上位机和PLC之间的通信,图1是OPC客户端设置界面。此外我们还设计了城市供水监控系统,鉴于篇幅,监控界面不再一一列出。图1 OPC客户端设置界面1 引言 炉外精炼是在一次熔炼炉(转炉、电炉等)外进行的冶炼过程,进行温度调整、脱气、去除夹杂物及有害杂质、调整成分等。RH真空处理是炉外精炼中的一种重要流程和设备,它是由德国鲁尔(Ruhrstahl)公司和海罗尔斯(Heraeus)公司共同设计的,故名RH法。如图1所示,下部设有两根环流管的脱气室,脱气处理时,将环流管插入钢水,靠脱气室抽真空的压差使钢水由管子进入脱气室。同时从两根管子之一(上升管)吹入驱动气体(通常为氩气),利用气泡泵原理抽引钢水通过脱气室和下降管产生循环运动,并在脱气室内脱除气体。由于RH法的特点及优越性,其技术不断扩展,伸展而为RH-KTB(KTB意为川崎钢铁公司顶吹氧)、RH-OB(带升温的循环真空脱气处理)、RH-PB(循环真空脱气-喷粉处理)等。图1 RH-OB设备示意图 太原钢铁公司是国内以生产不锈钢、硅钢为主的特殊钢企业,它从德国曼内斯曼德马克-麦索公司引进8Ot-RH真空处理装置,投产后,巳精炼出[C]