OPC服务器的研究及其在CAN总线系统中的实现-国际工业自动化网-控制,工控,网络,仪器仪表,产品,采购选型,推荐,问答,资料,下载
 IIA首页    新闻      案例      工业经理人
      产品         技术      专题      工程师社区
      学院         下载      视频      在线研讨会
现场层       传感器    现场仪表   工业安全
现场总线  工业以太网   工业无线  工业连接
机器视觉    测试测量   执行机构   电子元件
机器控制/过程控制     PLC    DCS
 控制系统  控制软件   HMI   运动控制
 嵌入式系统   工业机器人
优化/集成/管理
MES    PLM    工业数据中心
能效管理    设备管理与维护
可持续发展技术专题 2011汉诺威工业博览会回顾
 

新闻

News

   首页  >  新闻  >  正文

OPC服务器的研究及其在CAN总线系统中的实现


http://www.iianews.com OPC服务器 研究 CAN总线系统 实现 2008年08月22日
摘 要:在简要介绍OPC 技术的基础上,描述了OPC服务器的结构及开发步骤,详细讲述了OPC技术在CAN总线系统中的实现。

关键词:OPC OPC服务器 COM 现场总线

1 OPC技术简介

  1.1 什么是OPC

  OPC(OLE for Process Control),即用于过程控制的对象链接与嵌入技术,是一种规范,是在工业控制和生产自动化领域中使用的硬件和软件的接口标准。OPC以组件对象模型和分布式组件对象模型(COM/DCOM)技术为基础,采用客户/服务器(Client/Server)的模式,定义了一组COM对象及其接口标准。

  OPC规范是由世界范围内自动化领域中处于领导地位的硬件和软件开发商,在微软的协作下制定的,并且已经得到越来越多的客户和硬件制造商的认可。

  1.2 OPC的意义

  在传统的控制系统中,针对同一个硬件设备,每个应用软件都要根据自己的需求开发一套硬件驱动程序。这不仅加大了开发和维护费用,而且带来了访问冲突问题。

  OPC技术将各个硬件设备驱动程序和通讯程序封装成独立的OPC服务器,上层应用软件(作为OPC客户端)可以不关心硬件的性能特点,而通过标准的OPC接口访问OPC服务器。

  这样不仅解决了上述问题,而且实现了软件的“即插即用”。OPC相当于一块软件“主板”,它能够直接与现场的PLC、工业网络、数据采集和Windows CE设备连接,快速有效地获取现场实时数据。PC机内的各种监视、控制和管理等应用软件则像是插在OPC主板上的软件“芯片”,芯片可以通过OPC获得现场实时数据,芯片之间也可以按照OPC协议进行通讯,从而实现软件的“即插即用”。

  1.3 OPC对象与接口

  OPC的核心是COM/DCOM技术。在COM模型中,软件的功能被分解为一些组件,这些组件通过COM协议在一定条件下连接起来,实现相应的功能。COM对象分为客户端和服务器两类,客户端通过COM接口访问服务器[2>。

  OPC数据访问规范描述了OPC服务器需要实现的COM对象及其接口,它定义了定制接口(custom interface)和自动化接口(automation interface)[1>。OPC客户程序通过接口与服务器通讯,间接读取数据。OPC服务器必须实现定制接口,也可以有选择地实现自动化接口。一般来说,自动化接口能为VB等高级语言客户程序提供极大的便利,但数据传输效率较低;而定制接口则为用C/C++语言编写的程序带来灵活高效的调用手段。

  OPC客户程序访问服务器时,创建一个服务器对象(这里指的是逻辑对象,目的是利用这个逻辑对象建立与实际服务器的连接),调用这个服务器对象的接口,服务器对象创建组对象并返回组对象的指针,客户程序获得组对象的指针后调用其接口。

  注意,OPC项并不是OPC客户直接操作的对象,因为OPC项没有定义外部接口,对象的所有操作都是通过包容该项的组对象进行的。

2 OPC数据访问服务器的结构及设计步骤

  2.1 OPC数据访问服务器的结构


图 1 OPC数据访问服务器的结构

  本文实现的OPC数据访问服务器具有数据采集的功能,提供符合OPC规范的定制接口。主要由OPC 服务器对象、OPC 组对象、OPC 项对象和针对CAN(Controller Area Network控制器局域网)通讯卡编写的I/O 动态链接库(DLL)组成,采用如图1所示的结构。

  OPC 服务器对象是客户端与服务器交互的首要对象。客户端通过访问服务器对象的接口函数与之进行交互。一个服务器对象里可以设置一个以上的组对象。OPC 服务器对象的主要功能是:①创建和管理OPC 组对象;②管理服务器内部的状态信息;③将服务器的错误代码翻译成描述性语句;④浏览服务器内部的数据组织结构。

  OPC 组对象用于组织管理服务器内部的实时数据信息,它是OPC 项对象的集合。正因为有了组对象,OPC应用程序就可以成批地对所需要的数据进行访问,也可以以组为单位启动或停止数据访问。其主要功能是:①管理组对象内部的状态信息;②创建和管理项对象;③OPC服务器内部的实时数据存取服务(同步或异步方式)。

  OPC 服务器对象和组对象支持的接口由OPC规范定义,但并未规定具体如何实现,需要开发人员自己完成。

  OPC项则与现场设备中的模块相对应,它包含数据项的值(value)、品质(quality)和时间戳(time stamp)。

  I/O DLL是针对具体硬件设备开发的驱动程序,实现从现场设备读取数据的功能。

  2.2 实现OPC数据访问服务器的主要步骤:

  2.2.1 获得并注册OPC标准组件

  根据COM规范,COM服务器可分为进程内服务器、本地服务器和远程服务器。后两种服务器与客户程序运行在不同的进程空间,属于进程外服务器。为了实现进程间通讯,需要用到代理/存根模块。代理/存根模块由接口描述语言(IDL)直接生成。OPC基金会为每种OPC服务器提供了相应的代理/存根动态链接库,这些文件可以在OPC基金会的网站(www.opcfoundation.org)上免费下载。

  注意,设计OPC服务器时可以在OPC对象上增加接口以满足特定的要求,但不能修改标准的OPC IDL文件或相应的 proxy/stub DLL。新增的接口描述应定义在独立的IDL文件中,并由该文件生成独立的代理/存根模块来完成接口的调用工作。

  组件的注册将在后面介绍。

  2.2.2 编写OPC服务器代码

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

  ⑴全局唯一标识符(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码。类标识的命名惯例是CLSID_ClassName ,而接口ID的命名惯例是IID_InterfaceName。

  有两种途径来获得GUID:

  ①Microsoft Visual C++提供了两个工具来产生GUID:UUIDGen.exe和GUIDGen.exe(大小写没有影响)。前者是一个命令行程序,直接产生一个GUID;后者是一个基于对话框的应用程序,运行UUIDGen.exe,产生一个Create GUID对话框。它提供四种格式,选定之后,按New GUID键产生新的GUID,显示在Result栏中;按Copy键可以复制产生的结果。

  ②利用COM库提供的API函数来产生GUID:

  HRESULT CoCreateGuid (GUID *pguid )

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

  ⑵OPC组件的注册

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

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

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

  RegSvr32 <系统路径>

  RegSvr32 /u <系统路径>

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

  <系统路径> /RegServer

  <系统路径> /UnregServer

  2.2.3 测试OPC服务器

  OPC服务器经过调试之后,还需要利用OPC客户程序对它的主要功能进行测试。

3 OPC技术在CAN现场总线系统中的应用

  本文开发的OPC服务器是针对华控公司的CAN通讯卡编写的,用于从华控的CAN通讯卡和RSM智能模块组成的现场通讯网络中读取信息。

  3.1 系统组成

  系统主要由上位机, CAN通讯卡,OPC 客户端,OPC服务器,RSM智能模块,通讯媒体等组成。如图2所示。


图2 系统构成

  ①上位机的软、硬件配置: Microsoft Windows 98/2000 或Windows NT操作系统;32M以上内存、1G以上可用硬盘空间、SVGA显示卡。

  ②CAN通讯卡选用华控公司的HK-CAN30B,它是一种将CAN通讯协议与PC机PCI总线标准相连接的非智能CAN插卡,通过该卡可对工业现场具有CAN通讯接口的仪表和控制设备进行监控。

  ③CAN现场设备选用华控的RSM智能模块,每个模块都是在一个嵌入式实时多任务的内核管理下周期性工作,按组态要求定时地向上发送和取得数据。

  ④通讯媒体可以选用双绞线、带屏蔽双绞线等。

  ⑤客户端选用力控公司的力控2.6监控组态软件。力控2.6支持OPC技术。它作为OPC客户端,充分利用了OPC服务器的强大性能,为工程人员提供了方便高效的数据访问能力。在力控中可以同时挂接任意多个OPC服务器,每个OPC服务器都可以当作一个外部设备进行定义、增加或删除。

  3.2 OPC 服务器与客户端的连接

  3.2.1 定义OPC设备

  首先在力控导航器窗口中选择“实时数据库”中的 “I/O设备驱动”并展开,出现“OPC”设备。双击“OPC(Client)”,出现I/O设备定义对话框。在“设备名称”中定义逻辑设备的名称(由用户随意定义),不妨定义为“OPC”,在“数据更新周期”中指定采集周期,填写故障后恢复查询的周期和最长时间,然后单击“下一步”,出现OPC设备定义对话框。

  力控会自动搜索计算机系统中已经安装的所有OPC服务器。如果OPC服务器编写无误并且注册正确,则点击下拉框“OPC 服务器”时会列出已经安装的所有OPC服务器的名称,选择要使用的OPC服务器,这里选择本文设计的服务器“OPC.Server.1”。

  选择“Server类型”,是“当地(local)”还是“远程(remote)”。在“数据访问方式”中选择“缓冲区”或“外设”方式,对于“缓冲区”方式,OPC客户程序将通过OPC服务器的缓冲区读取数据;对于“外设”方式,OPC客户程序将通过OPC服务器直接从设备读取数据。从设备直接读取数据速度会慢一些,一般只有在故障诊断或极特殊的情况下才会使用。在“死区百分比”中输入一个百分值,表示过程数据值的变化不超出这个比例将不对其进行数据更新。单击“确定”就完成了OPC设备的定义。

  3.2.2 对OPC数据项进行数据连接

  启动力控的数据库组态程序DBMan。首先在点组态中创建所要用的变量,不妨设为gg1。展开“数据连接”项,已经建立的OPC设备就排列在其中。双击我们刚才建立的OPC设备 “OPC”,则出现“数据连接”对话框。选择要连接的点参数gg1后,单击“增加”按钮,出现“数据项组态”对话框。

  如果OPC服务器支持“浏览”功能,双击右上侧列表框中的“Root”,列表框会自动列出它提供的数据区;如果OPC服务器不支持“浏览”功能,其数据项的描述需要用户根据OPC服务器的资料说明,在“数据项”输入框内手工填写。选择“数据类型”和“读写权限”,在“访问路径”中输入数据的访问路径(这一项不是必需的,需要填写的,可以参考所使用的OPC服务器的手册),这里不用填写。

  最后单击“确定”按钮,就生成了一个数据项的数据连接,如图3所示,从而实现了与现场实际信息的连接。


图3 力控数据连接结果

  在系统运行时,力控和服务器建立连接,自动完成和OPC服务器之间的数据交换。

4 结束语

  本文设计的OPC数据访问服务器符合OPC规范,实现了对数据的实时读写,具有实用价值。总之,有了OPC规范,控制系统软件可以高效、稳定地对硬件设备进行数据存取, 系统应用软件之间也可以灵活地进行信息交互,极大地提高了控制系统的互操作性和适应性。

 
相关链接
倍福TwinCAT自动化软件现在开始兼容OPC UA [ 2008-09-09]
看Moxa网络冗余 拿丰厚大奖Eee PC [ 2008-09-05]
无线通讯在供水系统中的实现 [ 2008-09-04]
中新创科NTP服务器电信计费网应用方案 [ 2008-09-04]
染整烘房湿度检测的研究 [ 2008-08-27]
基于DSP的智能刹车控制系统研究 [ 2008-08-25]
主动前轮转向与ABS集成控制研究 [ 2008-08-25]
艾默生实现中国全新超超临界电站的数字自动化 [ 2008-08-22]
35kV农村电网优化方案的研究 [ 2008-08-21]
降低千伏级电机噪声的研究 [ 2008-08-18]
PCBN刀片的研究制造现状及发展 [ 2008-08-18]
邗江数控机床制造基地实现快速发展 [ 2008-08-13]
1~5月我国机械工业实现利润2千亿元人民币 [ 2008-08-13]
车载低端图像数据采集压缩存储及传输系统的实现 [ 2008-08-13]
电子压力控制器PID算法的研究 [ 2008-08-13]
  相关群组   
  相关话题   
  只用一个无线网卡实现整个局域网共享上网的办法
  频率域研究法
  802.11n:无线视频的实现技术
  RTWT工具箱相关问题及对电液伺服系统研究
  国际B3G研究工作进展
  中国IMT-Advanced的研究工作
  标准化组织对于B3G的技术研究情况
  FDT技术实现对智能设备的开放访问
  日本政府积极推动4G研究工作
  移动IT论坛(mITF)的研究活动
  相关问答   
对实现抽汽止回阀控制
你好!我看武汉耐特阀门厂采用的是费斯托电磁阀msfw--230--50/60来控制气缸,都配哪些附件。
  相关产品

施耐德电气Harmony 指纹开关

西门子雷达物位计SITRANS LR560

基恩士LR-Z系列传感器

FMU30超声波液位计
  推荐企业
菲尼克斯电气 魏德米勒电联接
Endress+Hauser 恩德斯豪斯 科尔摩根(Kollmorgen)
西门子自动化与驱动集团  
  最新反馈  
  关于 " OPC服务器的研究及其在CAN总线系统中的实现 " ,填写反馈

验证码:    看不清

用户名:          密 码:         
还不是 IIAnews 注册会员? 立即免费注册 节省更多时间!
  直通车 :   ( 无须注册,轻松沟通 )
*姓名:     *单位名称:
*电话:     *电子邮件:
 
    
 

行业导航

电力    冶金    石化    医疗    建材
交通    电子    机械    节能    汽车    OEM
2012工业通讯技术应用峰会
产品点通
交换机  串口服务器  控制器  工控机  平板电脑  人机界面
传感器  视觉系统  伺服电机  PAC   I/O模块   MES  触摸屏
PLC  继电器  变送器  步进电机
主编直播间
在线提问  主编观点
•  2011年自动化市场回顾
•  MES提供从控制到管理的协同制造
•  定制创新服务模式—SFAE助力中山市松德包装机械股份有限公司...
•  风电变桨控制系统调查
•  投票你觉得性价比最好的人机界面
最新话题
在线研讨会
 • 1st Web-Seminar for PCS 7 Specialists: Customer Be
 • 2011研拓自动化全方位运动控制产品与系統解決方案
 • 2011科尔摩根 (Kollmorgen) KBM无框架直驱电机产品介绍
 • 美国福禄克(FLUKE)电能质量与设备使用的关系
 • 科尔摩根运动控制产品及其印刷行业应用方案
最新视频
西门子全集成自动化视频8- 国际化的设备
全面进军国际市场需要面对众多挑战。您必须将软件、文档、说明手册翻译成多
•   西门子全集成自动化视频7- 轻松集成
•   施耐德电气案例展播之建筑楼宇
•   施耐德电气案例展播之数据中心
•   菲尼克斯电气标识系统产品视频
•   西门子全集成自动化视频6- 生产透明度
编辑推荐
•  霍尼韦尔将2012年的年度用户大会(HUG)大学生挑战赛活动扩展至亚太地区
•  倍加福邀您共襄沈阳制博会盛事
•  SICK 传感器公司中文名称变更通告
•  堡盟南京办事处正式成立
•  艾默生通过并购扩展其安全业务
•  西门子进入与中国全面合作的新时代
•  霍尼韦尔推出第六代二维影像扫描引擎N5600
•  ABB低压产品获多项国内行业大奖
•  IdesAB与国家电网供应商格蒂电力公司签署合作协议
•   铁道部:中国完全掌握高速动车关键技术
市场调研

搜企
首页 | 国际金属加工网 | 造车网 | 会员 | 主题信息 | 自动化问答 | 网站地图 | 免责声明 | 关于我们 | 主编信箱
北京市朝阳区东四环中路58号远洋国际中心C座2402室 电话: 010-65307950 传真: 010-65307859
Copyright ©1997-2012 IIA News.com & SooQ. All rights reserved.