opc通讯协议.docx
《opc通讯协议.docx》由会员分享,可在线阅读,更多相关《opc通讯协议.docx(5页珍藏版)》请在冰点文库上搜索。
opc通讯协议
竭诚为您提供优质文档/双击可除
opc通讯协议
篇一:
0pcseRVeR通讯的三步----西门子opc通讯
0pcseRVeR通讯的三步
需要软件:
其实很多厂家的通讯协议都是不公开的。
一个典型的组态软件要跟一个协议不公开的plc进行通讯。
通常最好的选择就是购买该plc厂家出的opcserver类的软件。
在西门子就叫simaticnet,ab就叫Rslinx,三菱的就叫melsecopc。
诸如此类等等。
组态软件作opcclient,通讯还是很简单的。
不过不同的厂家有不同的政策,
比如施耐德派系,通讯协议以modbus为主,因为modbus是全开放协议。
所以每一个组态软件厂家都能支持modbus,(winccV6例外)
不同的厂家对不同的组态软件厂家的政策也不一样。
比如citect和intouch花钱购买了西门子的s7以太网协议,
然后写出符合自己要求的s7以太网驱动,
好处时你买了citect和intouch,就直接可以用以太网跟s7连了,
不用每台机器再卖一套simaticnet了,坏处是,这种驱动仅使用于citect和intouch。
plc不需要编程,但需要配置opcserver,三个过程:
1、配置pcstation(opc+iegeneral)并与plc组态连接;
2、用opcscount查找到连接,新建标签变量;
3、开发的opcclient软件读写这些标签变量。
特别:
可以不用授权。
setp7里面的s7授权可以用。
。
。
不过可能有提示。
。
但不影响使用。
西门子s7-300与上位机通讯距离超过200米,该如何做此通讯?
如果用以太网又该加哪些东西?
上位机与plc通讯用以太网或dp网络都可以,用以太网上位机直接使用普通以太网卡、s7-300选带以太网接口的cpu或cp343以太网模块就可以了,如果用dp网络上位机需要加cp5611卡。
通信距离,普通以太网最大100米,所以需要加交换机。
建议采用dp网,而dp在1.5mbit/s的速率下通信距是200米;在187.5k波特率,保守的讲通信距离为1000m,要获得更长的通信距离,需要增加Rs-485中继器;在一个总线型网络上最多加10个中继器,dp口到中继器最多1000米(对应187.5k波
特),因此总的通信距离不能超过11000m(1000+1000*9+1000)。
降低波特率距离可以更长。
篇二:
opc-dx通讯的快速入门
1、opc概要
过去,为了存取现场设备的数据信息,每个软件开发商都需要编写专用的接口函数。
但现场设备的种类繁多且产品的不断升级,给用户和软件开发商带来了巨大的工作负担。
系统集成商和开发商急需一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。
在这种情况下,opc标准应运而生。
opc(oleforprocesscontrol)是过程控制业中的新兴标准,它以ole/com/dcom机制为通信标准,采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以opc服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和互操作性。
opc服务器通常支持两种访问接口:
自动化接口和自定义接口,它们分别为不同的编程语言环境提供访问机制如图1。
自动化接口是为基于脚本编程语言而定义的标准接口,可使用Vb、delphi、powerb(opc通讯协议)uilder等语言开发opc服务器的客户应用。
而自定义接口是专门为c++等高级语言而制定的标准接口。
opc接口既适用于通过网络把最下层的原始数据提供给自动化程序,以至更上层的历史数据库等应用程序,也适用于应用程序和物理设备的直接连接。
所以opc接口是具有高厚度柔软性的接口标准。
opc已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。
2、opcdadataaccess数据访问规范
opcda简化了不同总线标准间的数据访问机制,为不同总线标准提供了通过标准接口访问现场数据的基本方法。
opcda服务器屏蔽了不同总线通信协议之间的差异,为上层应用程序提供统
一的访问接口,可以很容易的在应用程序层实现对不同总线协议的设备进行互操作。
在现场控制网络中,opcda规范实现了现场数据在控制网络中的纵向传输[3]。
opc服务器作为现场总线体系结构的中间层,提供了到现场数据源的一个“窗口”。
它通过硬件驱动程序访问网络适配器(位于监控计算机中,负责与现场设备进行数据交换。
)并将这些数据用opcda接口形式进行组织,上层应用程序则通过opc接口与opc服务器进行数据交互,间接获取现场信息访问现场总线设备中的数据信息。
因此,上层应用程序只需开发一个opcda访问接口程序,就可以访问任何一种总线所提供的opcda服务器。
当硬件升级或修改时只需改动服务器程序中硬件接口部分即可,不会影响上层应用程序。
这种方式也支持网络分布式应用程序之间的通信,这样就可以将监控计算机通过以太网与其他计算机连接,分布在其他计算机中的客户程序可以与监控计算机opc服务器进行通信,实现现场信息的共享。
3、opcdx(dataexchange)数据交换规范
opcdx规范于20xx年3月17日发布,它是第一种实现了opc跨平台跨语言交互目标的规范。
opcdx是opcda的扩展,opcda主要提供自动化系统中垂直的(管理层、监控层到设备层)数据集成和互操作性,而opcdx既提供了垂直的网关,也提供对等的网关,允许使用不同应用层协议的以太网控制站和设备之间的对等(peer-to-peer)通信。
opcda客户应用既能访问opcda服务器也能访问新的opcdx服务器。
opcdx通过隐藏底层的技术细节,为不同以太网技术之间提供标准的数据交换接口。
设备和软件只要提供opcdx兼容服务器,就能够与其他opcdx兼容设备交换信息。
利用opcdx,整个工厂的自动化系统和应用程序可以通过一致的方式访问工厂底层的实时信息,实现了多制造商设备的互操作性和即插即用特性。
用户可以选择来自不同厂家的opcdx兼容产品进行方便的系统集成,降低了集成成本和风险。
4、simaticnet中opc-dx的服务器的配置
本例以下图的配置为示例
从上图我们可以看出,opcdx服务器不仅坚决在西门子的不同硬件网络之见可以进行数据交换的问题,也可以和第三方的opc服务器进行数据的交换。
而前从上面可以看出,数据的交换可以水平进行,也就是在服务器与服务器之间交换,不需要opc客户的中转数据。
在opcdx服务器里即包括了opcda的服务器又包含有opcda的客户端如下图所示:
通过上面的方式即可实现opc服务器间的数据通讯,其中在opcdx服务器中的opcdx接口用来实现opc服务器之间通讯连接配置的接口,一个opcdx的服务器同时也是一个opcda的服务器。
opcdx服务器之间可以实现双向数据通讯,opcdx服务器与opcda服务器
之间只能实现单向的数据通讯,从opcdx服务器读数据到opcda服务器,如下图:
下面介绍我们如何实现第三方的opc服务器与的opc服务器之间进行数据交换,第三方的服务器我们这里用kepware的服务器,在里为了测试方便用s7的模拟器来模拟变量,opcdx配置客户端用网站上已经编写好的一个客户端,此客户端是由西门子的技术支持工程师编写,下载的网址:
当然也可以根据需求,按照opcdx的规范自己开发一个opcdx配置客户端。
配置方法如下:
一、先安装kepware服务器,在安装时注意要勾选“opcdx”选项如下图:
二、安装完毕后,打开kepware软件,选择“options”菜单,在弹出的窗口里勾选“enableopcdataexchange”选项,如下图:
三、在kepware中配置一个opc的内部变量如下图所示:
篇三:
opc简介与开发总结
背景简介
opc(oleforprocesscontrol,用于过程控制的ole)是为过程控制专门设计的ole技术,由一些世界上技术占领先地位的自动化系统和硬件、软件公司与微软公司(microsoft)合作而建立的,并且成立了专门的opc基金会来管理,opc基金会负责opc规范的制定和发布。
opc提出了一套统一的标准,采用典型的c/s模式。
厂商可以开发一个高度优化的、可重用的opcserver访问底层的硬件,并将数据以opc接口方式提供给任何支持opc规范的客户端软件,客户就可以按照统一的数据访问标准访问不同厂商的硬件产品。
(iec61850/modbus/dnp)。
opc技术本质是采用了microsoft的com/dcom(组件对象模型/分布式组件对象模型)技术,com主要是为了实现软件复用和互操作,并且为基于windows的程序提供了统一的、可扩充的、面向对象的通讯协议,dcom是com技术在分布式计算领域的扩展,使com可以支持在局域网、广域网甚至internet上不同计算机上的对象之间的通讯。
opc规范简介
opc规范作为一个工业标准,是开发opc服务器与opc客户软件之间数据传输的规范,并已形成一个体系。
根据开发软件功能的不同,opc制定了以下领域单独规范:
数据访问规范:
定义了opc服务器中一组com对象及其接口,并规定了客户对服务器程序进行数据存取时需要遵循的标准。
借助microsoft的dcom技术,opc实现了高性能的远程数据访问能力。
报警和事件处理规范:
该规范提供了一种通知机制,在指定事件或报警条件发生时,opc服务器能够主动通知客户程序。
历史数据访问规范:
该规范提供一种通用历史数据引擎,可以向感兴趣的用户和客户程序提供数据汇总和数据分析等额外的信息。
安全性规范:
该规范提供了一种专门的机制来保护opc服务器中的现场数据,防止未授权的操作误修改这些参数。
批量过程规范:
该规范基于opc数据存取规范和isa88系列批量控制标准,提供了一种存取实时批量数据和设备信息的方法。
xml规范
opcda205规范(opcdataaccesscustominterfacespecification2.05)是20xx年5月opc基金会发布的opcda自定义接口规范。
该规范制定了opc服务器和opc客户程序的com接口标准,通过制定标准的接口来实现多个厂家的opc服务器和opc客户程序开发。
opc客户程序和opc服务器
一个opc客户可以连接一个或多个opc服务器,而多个opc客户也可以同时连接同一个
opc服务器。
opc服务器的对象组成
一个opc服务器由三个对象组成:
服务器(server),组(group),项(item)。
opc服务器对象用来提供关于服务器对象自身的相关信息,并且作为opc组对象的容器。
opc组对象用来提供关于组对象自身的相关信息,并提供组织和管理项的机制。
opc组对象提供了opc客户程序用来组织数据的一种方法。
例如一个组对象代表了一个plc(可编程控制器)中的需要读写的寄存器组。
一个客户程序可以设置组对象的死区,刷新频率,需要组织的项等。
opc规范定义了2种组对象:
公共组和私有组。
公共组由多个客户共享,局部组只隶属于一个opc客户。
全局组对所有连接在服务器的应用程序都有效,而私有组只能对建立它的client有效。
在一个seRVeR中,可以有若干个组。
opc项代表了opc服务器到数据源的一个物理连接。
数据项是读写数据的最小逻辑单位。
一个opc项不能被opc客户程序直接访问,因此在opc规范中没有对应于项的com接口,所有与项的访问需要通过包含项的opc组对象来实现。
简单的讲,对于一个项而言,一个项可以是plc中的一个寄存器,也可以是plc中的一个寄存器的某一位。
在一个组对象中,客户可以加入多个opc数据项。
每个数据项包括3个变量:
值(Value)、品质(quality)和时间戳(timestamp)。
数据值是以VaRiant形式表示的。
图1server/group/item关系
这里最需要注意的是项并不是数据源,项代表了到数据源的连接。
项应该被认为是到一个地址的数据,不同的组对象里可以拥有相同的项。
opc接口体系
opc服务器与客户交换数据采用两套接口:
opc定制接口(custominterface)与opc自动化接口(automationinterface)。
opc客户程序通过接口与opc服务器通信,间接地对现场数据进行存取。
opc服务器必须实现定制接口,也可以有选择地实现自动化接口。
一般来说,自动化接口能为Vb等高级语言客户程序提供极大地便利,但是,该接口数据传输效率较低;为了达到数据传送的最高性能,opc服务器使用c++开发,并只提供定制接口。
图2opc接口
opc服务器对象提供一些方法去读取或连接一些数据源。
opc客户程序连接到opc服务器对象,并通过标准接口与opc服务器联系。
opc服务器对象提供接口(addgroup)供opc客户程序创建组对象并将需要操作的项添加到组对象中,并且组对象可以被激活,也可以被赋予未激活状态。
对于opc客户程序而言,所有opc服务器和opc组对象可见的仅仅是com接口。
opc服务器对象
图1标准opc服务器对象及接口
iunknown接口是所有com对象必须实现的最基本接口。
其它接口都派生于iunknown接口。
iopccommon接口被应用于各种类型的服务器(例如:
opc报警与事件服务器),它们共享这个接口设计。
它提供设置和查询localeid(本地语言标识)的功能,对特定的客户/服务器交互有效,也就是说,一个客户的行为不会影响其它客户。
iopcserver接口是opc服务器对象的主要接口,它可完成组对象的动态创建、删除、枚举和获得当前状态等操作并对其进行管理。
服务器对象必须提供此接口。
iconnectionpointcontainer接口主要提供了iopcshutdown的出接口连接点访问支持。
iopcshutdown出接口用于服务器主动与客户程序断开连接时对客户程序进行通知。
opc服务器必须支持此接口。
它的实现与一般连接点对象的实现相同。
iopcserverpublicgroups、ipersistFile和iopcbrowseserveraddressspace为可选接口,opc服务器提供商可根据需要选择是否需要实现。
其中iopcserverpublicgroups接口用于公共组进行管理。
ipersistFile接口允许用户装载和保存服务器的设置,这些设置包括服务器通信的波特率、现场设备的地址和名称等。
这样用户就可以知道服务器启动和配置的改变而不需要启动其它的程序。
iopcbrowseserveraddressspace允许用户浏览服务器中有用组(项)的数据,为用户提供opc服务器各个组的定义列表。
opc组对象
图2标准opc组对象及接口
iopcitemmgt接口及其成员函数的功能是允许opc客户程序添加和删除项对象并可控制项对象的行为。
iopcgroupstatemgt接口及其成员函数允许客户程序管理组对象的所有状态。
最基本的是改变组对象的更新率和活动状态。
iopcpublicgroupstatemgt为可选接口,用于将私有组对象转换成公共组对象,因为当客户创建一个组对象时,被初始化为私有组对象。
,这个接口一般不用,在很多商业的opc服务器中,此接口都没有开发。
iopcsyncio接口允许客户对服务器执行同步读写操作。
操作将一直运行到完成才返回。
iopcasyncio2接口允许客户对服务器执行异步读写操作,操作被“排队等候”,函数立即返回。
每项操作被看作一个“事务”,并被分配一个事务id,当操作完成时,客户iopcdatacallback接口的回调将执行。
回调中的信息指出了事务id和操作结果。
这两个是数据访问规范进行数据访问的最重要接口。
iconnectionpointcontainer接口:
组对象必须实现此接口,与服务器对象的此接口的唯一区别是管理的出接口不一样,组对象管理的出接口是iopcdatacallback接口,可使客户与服务器连接并进行最有效的数据传送。
iopcasyncio(old)接口是数据存取规范1.0必须实现的接口之一,按照程序兼容规则,符合规范2.02的服务器也应该实现规范1.0的必选接口。
iopcasyncio接口允许客户对服务器执行异步读写操作,其行为与iopcasynci02类似,可参考iopcasynci02,只是操作完成后结果是由iadvisesink的回调返回给客户。
idataobject(old)接口是opc规范1.0需要服务器实现的接口,这允许使用opc数据流格式创建客户与组对象之间的advise连接,用于进行高效的数据交换。