云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > dde与opc技术

dde与opc技术

  • 62 次阅读
  • 3 次下载
  • 2025/5/31 1:57:07

目名”的填写也应遵从rslinx中item name的定义形式,例如对rslogixplccpu中全局变量controller tags地址的访问即为plc变量地址的tag name,而对cpu中程序变量program tags地址的访问则为program:.的形式。

当采用siemens公司的wincc作为opc client与opc服务器进行opc方式连接时,首先需要在wincc资源管理器中添加opc通讯驱动程序opc.chn,然后在出现的opc通道单元的“连接属性”和所建变量的“变量地址属性”对话框中分别填写“opc服务器名称”和“变量地址名称”,这样便可建立该变量到opc服务器的连接。需要说明的是,不同的opc服务器,其opc服务器名称和地址格式是不尽相同的,例如siemenssimatic net opc服务器的名称和地址访问格式(以按s7协议对s7系列plc数据访问为例)分别是“opc.simaticnet”和“s7:[<连接名称>]”,而rockwellrslinxopc服务器的名称和对rslogix系列plc数据访问的地址格式分别是“rsllinxopc server”和“[]”。

同样,其它scada软件与相关dde、opc服务器软件通讯的实现方法与此类似,不再赘述。

此外,由于dde、opc都是标准规范,所以也可以根据需要来实现dde、opc之间的接口转换来满足实际需求,例如wonderware公司的opclink便是实现opc、dde接口转换的专用软件。

4 利用vb开发dde与opc客户端

如上所述,目前许多scada软件都采用了dde、opc技术规范作为其软件接口,而scada监控软件在实际工程应用中则扮演了dde、opc客户端的角色。另外,wonderware公司的wwclient,siemens公司的simatic net opc scout和rockwell-ab公司的opc test client等测试软件也都是dde、opc客户端软件的实例。

dde、opc客户端软件可采用visual c++、visual basic、delphi等编程软件实现,这里主要对如何用visual basic 6.0编写dde、opc客户端实现和dde、opc服务器通讯的方法分别予以介绍。

4.1 利用vb开发dde客户端

作为microsoft公司软件产品的重要一员,visual basic理所当然的对windows操作系统的下的dde技术给予支持。visual basic为一些控件提供了用于dde动态数据交换的linktopic、linkitem、linktimeout、linkmode等属性,以及linkrequest、linkpoke、linkexecute、linksend等方法。其中,linktopic、linkitem两项属性分别对应于dde通讯架构中的主题名和数据项名,linktimeout、linkmode分别表示dde客户端与dde服务器的尝试连接时间和连接模式(数据交换方式),linkmode有manual、notify、automatic三种方式,而automatic方式最为常用,它主要用于和dde server建立“热连接(hot link)”,即在dde服务器数据

发生变化时主动发送数据给客户端。linkrequest、linkpoke分别用于dde客户端对dde服务器数据的读写操作。

根据应用程序与服务器程序dde方式通讯机制,可以在visual basic编程环境下开发适合实际需要的dde客户端应用程序。例如,visual basic访问intouch程序变量“intouchtag”时,其代码为

label1.linktopic= \ label1.linkitem= \ label1.linkmode=1 label1.linkrequest

其中,代码中的“view”和“tagname”分别表示intouchwindowviewer的应用程序名和主题名,“linkmode”值为1表示该应用程序与windowviewer的连接方式为automatic(即“热连接”)方式。这样,当该应用代码被执行时,label1的值便随intouch windowviewer“intouchtag”变量的变化而变化。

同样可以在visual basic中添加label2、label3,并建立和dassidirect、rsllinx的dde通讯连接,使其分别随所连接s7-300 plc数据db5.dbw20、controllogix 1756-l55 plc全局变量“linxlogixtag”数值的变化而变化,其代码分别如下:

label2.linktopic = \ label2.linkitem = \ label2.linkmode = 1 label2.linkrequest

label3.linktopic = \ label3.linkitem= \ label3.linkmode = 1 label3.linkrequest

其中,“dassidirect”和“dasvrtopic”、“rslinx”和“rslinxtopic”分别为dassidirect和rslinx的应用程序名以及在dassidirect和rslinxdde服务器中建立的主题名。而“db5.w20”和“linxlogixtag”则分别对应于s7-300 plc数据db5.dbw20和controllogix 1756-l55 plc全局变量linxlogixtag,这样,该段代码被执行时,label2和label3的数值将随plc中数据db5.dbw20与linxlogixtag变量值的变化而变化。

netdde是dde的网络扩展形式,主要为网络上不同计算机之间的动态数据交换提供方便。在visual basic编程环境下,也可以开发基于netdde的客户端应用程序。与开发dde客户端不同的是,网络上作为dde服务器和客户端的计算机都要启动netdde.exe服务,并在作为dde服务器的计算机上同时启动ddeshare.exe程序,对新建的dde共享进行必要的设置。如下代码的功能为计算机pc02读取pc01计算机上rslinxdde服务器所采集的

\变量的值。

label4.linktopic= \ label4.linkitem= \ label4.linkmode=1 label4.linkrequest

由于netdde的访问采用了“<计算机名>|<共享名>!<变量名>”的形式,所以,上述代码中的“pc01”、“pc01shrnm”分别为dde服务器的计算机名和ddeshare.exe程序中的新建共享名,而dde访问所需要的应用程序名rslinx和主题名rslinxtopic则在新建共享“pc01shrnm”的属性对话框中进行了设置。

此外,由于excel也支持dde技术,所以pc01计算机上rslinxdde服务器plc变量linxlogixtag的变化也可以在pc02计算机excel表格中得到体现,只需要在需要显示该值的单元格中填写如下代码=?pc01ndde$?|pc01shrnm!linxlogixtag

4.2 利用vb开发opc客户端

利用visual basic所开发的opc客户端应用程序主要采用自动化通信接口和opc服务器程序实施通信。而opc基金会提供的opc自动化接口 opcdaauto.dll动态链接库集成了所有用于对opc服务器进行访问的对象、属性和方法,为利用visual basic开发opc客户端应用程序提供了极大方便。程序设计时,opc客户程序应当首先生成opc服务器支持的opc对象,然后再使用opc对象支持的属性和方法,实现对opc服务器的操作和访问。

opc数据访问对象主要包括opc服务器(opcserver)、opc组集合(opcgroups)、opc组(opcgroup)、opc标签集合(opcitems)、opc标签(opcitem)、opc浏览器(opcbrowser)等几个部分。程序设计时,要首先在visual basic环境下选择对opc automation 2.0接口的引用,此时,opc对象会被自动添加到正在开发的工程项目中,然后,再根据需要建立这些对象的实例并利用其属性和方法来实现对opc服务器的访问。对opc服务器的访问主要包括声明opc对象实例、连接opc server、添加标签变量、读写opc服务器(同步/异步)、断开连接等几个步骤。

opc对象实例的声明主要包括对opc服务器、opc组集合、opc组、opc标签集合、opc服务器句柄的声明及程序所需要的其它实例的声明。opc客户端和opc server的连接主要靠调用opc服务器对象实例的connect方法函数来完成,例如,连接本地计算机dassidirect和rslinxopc server 的代码分别为connect(\)和connect(\server\)

连接网络远程计算机(ip地址为10.144.45.45)上dassidirect和rslinxopc server 的代

码分别为connect(\)和connect(\\)

需要说明的是当进行远程opc连接时,必须在远程计算机上运行dcomcnfg程序,并启动该计算机opc服务器的dcom服务。

标签变量的添加主要由opc标签集合的additems方法函数实现,该函数定义了添加的标签数量、标签变量名(数组)、应用程序句柄(数组)、opc服务器句柄(数组)、错误代码(数组)等方面的信息。例如,为dassidirect和rslinxopc服务器添加标签变量的代码为tagnms(1)=”portcps7.jsbf.db2,x48.0”或者tagnms(1)

=”linxlogixtag”my_items.additemsitmnum, tagnms, clienthdls, svrhandles, err

其中,my_items为opc标签集合的一个实例。标签变量添加完成后,可通过syncread、syncwrite和asyncread、asyncwrite四个函数实现对opc服务器中相应数据的读写操作。在读写操作完成后,程序将会自动执行syncreadcomplete、syncwritecomplete和asyncread-complete、asyncwritecomple-te等过程,opc客户端应用程序的数据显示、故障诊断等功能可在该段程序代码中实现。

此外,在对opc服务器完成读写后,可以调用opc服务器的disconnect方法来断开与相应opc服务器的连接。不过,为了节省系统开支,增加程序稳定性,通常要在断开和opc服务器连接前先移除opc服务器中的opc标签和opc组,并将opc集合对象都置为nothing,然后再执行disconnect操作并将opc server对象实例置为nothing。 5 结束语

dde、opc技术的出现与发展已经在包括工业自动控制在内的诸多领域得到了广泛的应用。dde作为一种较成熟的数据交换方式已拥有最全面的支持,而opc技术也越来越受众多自动化软硬件企业的支持与青睐,所以,在将来很长的一段时间里,dde与opc将继续在各自的应用领域发挥重要作用,dde、opc技术的出现和发展为我们提供了一个方便的数据访问接口,从而使控制系统进一步走向开放,用户系统因此受益。

搜索更多关于: dde与opc技术 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

目名”的填写也应遵从rslinx中item name的定义形式,例如对rslogixplccpu中全局变量controller tags地址的访问即为plc变量地址的tag name,而对cpu中程序变量program tags地址的访问则为program:.的形式。 当采用siemens公司的wincc作为opc client与opc服务器进行opc方式连接时,首先需要在wincc资源管理器中添加opc通讯驱动程序opc.chn,然后在出现的opc通道单元的“连接属性”和所建变量的“变量地址属性”对话框中分别填写“opc服务器名称”和“变量地址名称”,这样便可建立该变量到opc服务器的连接。需要说明的是,不同的opc服务器,其opc服务器名称和地址格式是不尽相同的,例如siemenssimati

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com