利用OPC实现VB应用程序对PLC程序控制

来源 :电源技术应用 | 被引量 : 0次 | 上传用户:fafa1234567
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: 本文主要介绍了OPC技术原理,DX发射机的A-B PLC与工控机进行硬件连接的方法,以及在RSlinx中设置OPC服务器配置的过程,并在此基础上列举了VB编程语言开发OPC客户端的具体实现。
  关键词: OPC RSlinx AB PLC DX中波发射机 vb
  1、引言
  随着计算机和通信技术的发展,计算机在工业自动化领域中发挥着越来越重要的作用,各种工业智能仪器、仪表在工业自动化领域中的应用也越来越广泛。近年来,我们局大力推进自动化和信息化建设,台里的发射机和天线交换系统都实现了自动化,在实现自动化的过程中中,我们都用到了AB PLC(罗克韦尔公司生产的可编程控制器)這一核心控制部件。DX 中波数字调幅发射机的合成控制单元(TCU)中使用的SLC5/04可编程控制器,支持DH+协议与上位机通讯;天线交换开关系统使用的是logix 5000系列可编程控制器,采用网络模块与上位机通讯,虽然两种PLC采用的底层协议不同,但是。 AB PLC提供了RSLinx软件包与其它计算机软件进行通讯,在RSLinx软件中, 提供了罗克韦尔公司相应的OPC服务器作为PLC与其它程序的通讯接口, 从而实现外部程序对PLC的实时数据读取和控制。下面就将我们对所维护的发射机进行自动化改造过程中, 与计算机相关的OPC技术的应用做一介绍。
  2、OPC技术的工作原理
  OPC是Object Linking and Embed-ding (OLE) for Process Control的缩写, 它是微软公司的对象链接和嵌入技术在过程控制方面的应用。OPC以OLE/COM/DCOM技术为基础, 采用客户/服务器模式为工业自动化软件面向对象的开发提供了统一的标准, 这个标准定义了应用Micro-soft操作系统在基于PC的客户机之间交换自动化实时数据的方法。
  OPC 数据存取规范规定的基本对象有三类 : 服务器 (server) 、 组 (group) 和数据项 (item) 。 服务器对象包含服务器的所有信息 , 也是组对象的容器 , 一个服务器对应于一个 OPC server , 即一种设备的驱动程序 。 组对象除了包含它自身信息外 , 还负责管理数据项 。 每一个数据项代表到数据源的一个连接,但它没有提供外部接口,客户端程序无法对数据项直接进行操作 , 应用程序必须依靠数据项的容器组对象来对它进行操作。
  OPC 服务器有两类接口 : 定制接口和自动化接口。定制接口为 C++ 程序服务,自动化接口 为VB ,Delphi等可使用自动化对象的程序服务 。如图1:
  图1自定义接口和自动化接口与opc服务器通信方式示意图
  OPC 客户端与 OPC 服务器交互包括两个方面 : 一个是客户端程序从服务器读取数据 ;一个是客户端向服务器写入数据 . 客户端程序读取数据有四种基本方法 : 同步读、异步读 、订阅和刷新 ; 客户端向服务器写数据有两种方式 : 同步写和异步写。也就是说 ,OPC 服务器与PC 客户端的交互存在4种方式 : 同步、异步、订阅和刷新。
  同步通讯时,OPC客户端向OPC服务器进行请求时,OPC 客户端必须等到OPC服务器对应的响应全部完成以后才能返回,在此期间OPC客户端一直处于等待状态 ,若进行读操作 ,那么必须等待OPC服务器响应后才返回。因此在同步通讯时,如果有大量数据进行操作或者有很多OPC客户端对OPC服务器进行读操作,必然造成OPC客户端的阻塞现象。因此同步通讯适用于OPC客户端较少,数据量较小时的场合。
  异步通讯时,OPC客户端向OPC服务器进行请求时,OPC客户端程序请求后立刻返回,不用等待OPC服务器的响应,可以进行其他操作。OPC服务器完成响应后再通知OPC客户端程序。若进行读操作, OPC 客户端程序通知OPC服务器后立刻返回,不等待 OPC服务器的读完成,而OPC服务器读完后,会自动通知OPC客户程序,把读到的结果传给OPC客户程序。因此相对于同步通讯,异步通讯的效率更高。
  订阅方式时,OPC客户端程序对服务器进行请求时OPC客户端程序操作后立刻返回 ,不用等待OPC服务器的操作,可以进行其他操作,OPC服务器的Group组在组内的有数据发生改变时,自动根据更新周期刷新相应的客户端数据。客户端向OPC服务器发送一次请求,之后不再对服务器请求。
  3、 硬件连接与系统配置
  DX 中波数字调幅发射机的PLC 系统提供了对外输出的接口
  有三个,一个RS232 口被 触摸屏占去, 还有一个编程口和一个DH+口。编程口主要用于编程使用,它通过1784-U2DHP模块也可以实现对plc的监控,但是采用RS232 DF1协议传输距离比较近,所以最终我们采用厂家提供的DH+485数据线将上位机通讯卡与A-B PLC CPU模块的DH+接口直接连接。
  DH+协议:DH+ 协议是AB公司自己开发的数据通信协议, 为两线制,类似于RS485 协议,但数据传输速率可达57.6K波特,传送距离最大可达10000英尺,最大可接94个接点, 两两相串,终端接150欧的反射电阻,作为AB PLC而言,是远程监控组网的最佳传输协议。
  3.1、通讯卡连接方式
  1、安装通讯卡并连线。
  Allen-Bradley 1784-PKTX卡是KT系列通讯卡的PCI版本, 专用于在DH+网络下32位PCI总线计算机和PLC传送数据, 也适用于在DH-485网络下SLC处理器的编程和数据采集, 可在3.3V或5V两种信号电平下工作, 可在64位插槽下工作, 但不支持64 位操作系统。将所购的1784-PKTX卡安装在要作为上位监控计算机的PCI 插槽内, 启动计算机后, 计算机会提示发现新硬件,然后插入RSlinx安装盘, 自动寻找到RSlinx对1784-PKTX卡的驱动,完成驱动的安装。   3.2、使用RSLinx连接A-B PLC的通讯网络。
  运行RSLinx Classic软件。点击菜单中“通信”选项,在下拉列表中选择“配置驱动程序”,弹出如图2所示页面。
  图2 配置驱动程序
  在下拉列表中选择1784-KT/KTX(D)/PKTX(D)/PCMK for DH+/DH485 devices后,单击“新增…”按钮,出现“新增RSLINX CLASSIC驱动程序”对话框,选择系统默认值按“确定”出现“配置 1784-PKTX/PKTXD”对话框,在“值”下拉列表中选择PKTX(D)选项,点击“确定”后,RSLinx配置完成。
  3.3、进行DDE服务的配置
  在菜单栏中打开“DDE/OPC”菜单并选择“主题组态”对话框(如图3):
  图3 主题组态
  点击新建,新建一个主题,然后在右边选中你要利用的物理设备,数据采集和高级通讯会自动选择合适的通讯协议,点击完成,这样在RSLinx软件中对A-B PLC的通信配置就完成了。
  4、利用vb开发OPC客户端
  VB作为编程语言,本身对OPC没有特别的支持,但是OPC技术规范为VB提供了自动化接口。通过自动化接口,程序员无需了解接口内部的详细机制,而能轻松使用接口实现数据的访问。用VB开发OPC应用程序和AB PLC通信,必须安装RSLinx Classic Profressional软件。在VB环境中,按“工程”的子菜单“引用…”后,弹出对话框,选择其中的“Rockwell Software OPC Automatic”项,这样就可以使用自动化接口。
  (1) 连接 OPC 服务器
  Private WithEvents MyOPCServer As RsiOPCAuto.OPCServer
  ‘ 定義服务器对象变量 MyOPCServer
  Private WithEvents MyOPCGroup As RsiOPCAuto.OPCGroup
  ‘ 定义 OPC 组对象变量 MyOPCGroup
  Set MyOPCServer = New RsiOPCAuto.OPCServer
  MyOPCServer.Connect "RSLinx OPC Server"
  ‘ 连接 RSLinx 的 OPC 服务器
  (2) 添加 OPC 组对象
  Set MyOPCGroup = MyOPCServer.OPCGroups.Add("OPCSample")
  ‘ 添加 OPC 组对象
  MyOPCGroup.IsSubscribed= True
  ‘ 设置该组数据为后台刷新
  MyOPCGroup.IsActive = True
  ‘ 设置该组为激活状态。
  只有处于活动状态的OPC才进行定期的数据更新。非活动状态的OPC组,除了在接到显然的数据读写要求外,并不收集任何数据。
  MyOPCGroup.UpdateRate=1000
  ‘ 设置数据刷新时间为 1000
  (3) 添加数据项
  Dim abItemIDs() As String
  ‘ 项标识符
  Dim abClientHandles() As Long
  ‘ 客户端句柄
  Dim abServerHandles() As Long
  ‘ 服务器端句柄
  Dim abErrors() As Long
  Dim i As Long
  ItemCount=5
  Dim oOPCItem As RsiOPCAuto.OPCItem
  For i = 1 To 5
  abItemIDs(i) = "[" & txtTopic & "]" & txtItem(i)
  ‘ 将 Topic 名和标签名赋给项标识符
  abClientHandles(i) = i
  ‘ 给客户端句柄赋值
  Next i
  MyOPCGroup.OPCItems.AddItems ItemCount, abItemIDs, abClientHandles, abServerHandles,abErrors
  ‘ 添加数据项操作
  (4) 同步数据读写
  MyOPCGroup.SyncRead nSource, ItemCount, lServerHandles, vtItemValues, lErrors
  ‘ 同步读取
  for i= 1 to ItemCount
  msgbox vtItemValues(i)’
  读取的数可以根据自己的需要,灵活使用。
  next i
  MyOPCGroup.SyncWrite 1, lHandle(), vtItemValues, lErrors
  ‘ 同步写入
  若只读取数据,可以使用 DataChange 事件,当控制器中所要访问的数据一旦发生改变时将会触发该事件,并将该数据自动读到 TxtValue 文本框。
  Private Sub MyOPCGroup_DataChange(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date)   Dim i As Long
  For i = 1 To NumItems
  txtValue(ClientHandles(i)) = ItemValues(i)
  ‘ 获取项的值
  txtTime(ClientHandles(i)) = TimeStamps(i)
  ‘ 获取项的时间戳
  txtQuantity(ClientHandles(i))=GetQualityString(Qualities(i))
  ‘ 获取项的品质
  Next i
  End Sub
  (5) 异步数据读写
  MyOPCGroup.AsyncRead ItemCount, TempServerHandles, ErrorNr, TransactionID, CancelID
  ‘ 异步读取
  读取的结果由OPC服务器通过IconnectionPointContainer接口配合IOPCDataCallback接口反调用应用程序的事务处理程序:
  Private Sub MyOPCGroup_AsyncReadComplete(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, ItemValues() As Variant, Qualities() As Long, TimeStamps() As Date, Errors() As Long)
  這里的参数ClientHandles和AddItems方法中的ClientHandles是对应的,用于判断哪一个OPC Item在被读取。TransactionID:客户端自由使用,应用程序开发商自定义;Errors():记录服务器返回的信息。
  MyOPCGroup.AsyncWrite 1,TempServerHandles,VValue, ErrorNr, TransactionID, CancelID
  ‘ 异步写入
  同样,AsyncWrite也对应一个事务处理程序:
  Private Sub MyOPCGroup_AsyncWriteComplete(ByVal TransactionID As Long, ByVal NumItems As Long, ClientHandles() As Long, Errors() As Long)
  (6) 断开 OPC 服务器
  MyOPCServer.OPCGroups.RemoveAll
  ‘ 移除所有 OPC Group
  Set MyOPCGroup = Nothing
  ‘空出资源
  MyOPCServer.Disconnect
  ‘ 断开连接
  5、结束语
  通过OPC技术,软件开发者可以无需了解硬件的实质和操作过程,只要遵循OPC规范进行客户端的开发,就能够读写OPC服务器中的数据。利用该技术,软件开发者可以充分发挥自己的特长,把更多的精力投入到程序功能的开发上, 从而大大简化了整个软件系统的开发过程, 提高了开发效率, 并且系统的可靠性、 稳定性和灵活性也得到了充分的保障。
  【参考文献】
  1 崔丽丽. 徐进学.基于OPC 技术的客户端数据采集软件包设计[J]. 沈阳工业大学学报. 2005. 27 (5):553-557.
  2 童爱红.Visual Basic 6.0程序员指南[M].清华大学出版社. 2008:35-94
  3 Allen-Bradley SLC500TM模块化硬件结构.安装使用手册.
其他文献
【摘要】:智能变电站是在数字化变电站基础上发展而来的,数字化只是智能变电站的实现手段,智能变电站面向智能电网要求。二次回路是对电力系统的一次设备进行检测、控制、调节和保护的,对确保电力系统的正常运行和安全生产起着关键的意义。本文将探讨变电站调试时二次回路的隐性故障及处理措施。  【关键词】:变电站;调试;二次回路;隐性故障  变电站二次回路具有系统庞大、接线复杂、点多面广、运行环境差等特点,造成了
期刊
摘要:在经济发展的带动下,我国社会面临着新的发展形式,也出现了许多新的问题。因此,做好政工工作,对于保持社会稳定,推动社会发展而言是十分重要的。科学发展观作为我国国家建设的重要指导思想,在政工工作中发挥着非常重要的作用。本文结合当前我国政工工作中存在的问题,对政工干部应用科学发展观开展工作的有效策略进行了分析和探讨。  关键词:政工干部 科学发展观 应用策略  前言:科学发展观,是胡锦涛同志在党的
期刊
摘要:在市场经济化条件下,电力要经过发电、输电、配电、变电等多个环节才能输送到最终用户处,发电厂与电网公司之间、电网与电网之间、电网公司内部各供电公司之间、供电公司内部各区所之间、供电所与最终用户间都要进行经济结算,而经济结算的依据就是在电网各个环节安装的电能计量装置所提供的电量信息。电能计量装置是电能贸易结算中的计量器具,它一旦发生故障将影响到电能贸易的公平性,因此对电能计量装置的故障进行分析并
期刊
摘要:论述了主变局部放电在线检测的意义、检测原理及方法,对高频脉冲电流和超声两种检测模式的特点进行了详细的阐述和分析,并通过一则现场应用案例和跟踪检修结果说明了这两种主变局放在线检测模式在现场应用的有效性,较全面的研究了当前主变局部放电在线检测的发展水平和应用情况。  关键词:局部放电 变压器 状态检修  1、引言  变压器在电网设备中处于非常重要的地位,因其功能特殊性和造价高昂一直都是电厂和电网
期刊
摘要 随着人们生活水平不断提高, 对电力供应的可靠性要求越来越高, 电力安全和高效已经是突出的问题,为确保电网安全运行,有效管控入网设备材料的质量是其中重要一环。而物资抽检能有效的杜絕不合格产品流入电网,起到很好的管控作用。本文对现行电力物资抽检管理中所存在的问题进行简要的阐述,并对高效实现电力物资抽检的管理模式展开相应的探讨,以供大家参考。  关键词:电力物资 二维码 抽检管理  一、电力物资抽
期刊
摘要:随着消费市场的日趋多元化,互联网平台的蓬勃发展,IP无疑是近几年短视频行业内最为热门的风口,优质的IP能带来巨大的经济价值。目前,IP经济模式在短视频平台的应用卓有成效。本文以抖音短视频为例,对IP经济模式展开阐述,分析借助短视频平台运用该模式的可行性。  关键词:IP;粉丝经济;4C营销理论  引言  在如今的互联网时代,信息的传播与分享更加及时,受众更加聚合,促使热门IP层出不穷。很多知
期刊
摘要:供电系统是电网运行的关键环节,如果在变电运行中出现故障,不仅会影响到电力系统的供电,同时也会给人们的生产生活带来影响。因此需要判断并及时处理变电运行的故障问题,从而确保变电安全运行。本文首先介绍导致变电运行故障的原因,然后分析常见故障,并针对故障和原因来提出判断处理的方法。  关键词:变电运行;故障;判断;处理;方法  变电设备运行过程当中难免出现故障,在出现故障时就需要及时对故障进行判断和
期刊
摘要:通过对基建工程现场作业管理存在的问题引出分层管控模式,介绍这种管理模式的内涵和主要做法,提出PDCA和5W1H管理方法,试图构建多层次跨部门联动机制和责任矩阵,最后再简单分析这种分层管控模式的价值,论证其可行性。  关键词:基建现场;管理方法;责任;管控力  前 言  广西电网公司电网基建项目投资从“十一五”期间的322.2亿元增长到“十二五”期间的617.3亿元,投资逐年增加,同时,201
期刊
摘要:今年不仅是5G商用元年,也是智能手机行业持续推陈出新的一年。AI处理器、挖孔屏、屏下摄像头等新技术的逐渐商用,给整个行业注入了新的活力。对于智能手机这样一个高度集成化的产品来说,供应链整合能力是企业成功与否的关键。本文将对华为进行研究,对华为手机主要零部件的供应链进行分析并给出提高供应链整合能力的建议。  关键词:华为;智能手机;供应链;5G;科技  引言  根据信息技术和电信行业咨询机构—
期刊
摘要:  安全生产要立足于防微杜渐,抓“大”不放“小”,避免因小失大。正所谓“细节决定成败”,一些在我们平时看来微不足道的问题,其背后往往潜藏着一些大的事故隐患,如不引起高度重视,就有可能酿成大事故,造成大损失。最近针对安徽高考作文题《不用时请将梯子横放》,引发网络热议和广泛关注。原文提供的材料是:某公司车间角落放置了一架工作使用的梯子。为了防止梯子倒下伤着人,工作人员特意在旁边写了条幅“注意安全
期刊