首页 > 其他分享 >OPC-DX 快速入门

OPC-DX 快速入门

时间:2023-07-25 21:15:15浏览次数:36  
标签:入门 接口 DA 访问 DX OPC 服务器

OPC-DX 快速入门

新手必读: 推荐新手阅读!
  • 文档
  •  
  • 涉及产品
   

1、OPC概要

过去,为了存取现场设备的数据信息,每个软件开发商都需要编写专用的接口函数。但现场设备的种类繁多且产品的不断升级,给用户和软件开发商带来了巨大的工作负担。系统集成商和开发商急需一种具有高效性、可靠性、开放性、可互操作性的即插即用的设备驱动程序。在这种情况下,OPC标准应运而生。
OPC(OLE for Process Control)是过程控制业中的新兴标准,它以OLE/COM/DCOM机制为通信标准,采用客户/服务器模式,把开发访问接口的任务放在硬件生产厂家或第三方厂家,以OPC服务器的形式提供给用户,解决了软、硬件厂商的矛盾,完成了系统的集成,提高了系统的开放性和互操作性。
OPC服务器通常支持两种访问接口:自动化接口和自定义接口,它们分别为不同的编程语言环境提供访问机制如图1。自动化接口是为基于脚本编程语言而定义的标准接口,可使用VB、Delphi、PowerBuilder等语言开发OPC服务器的客户应用。而自定义接口是专门为C++等高级语言而制定的标准接口。

OPC接口既适用于通过网络把最下层的原始数据提供给自动化程序,以至更上层的历史数据库等应用程序,也适用于应用程序和物理设备的直接连接。所以OPC接口是具有高厚度柔软性的接口标准。OPC已成为工业界系统互联的缺省方案,为工业监控编程带来了便利,用户不用为通讯协议的难题而苦恼。

2、OPC DA Data Access 数据访问规范
OPC DA简化了不同总线标准间的数据访问机制,为不同总线标准提供了通过标准接口访问现场数据的基本方法。OPC DA服务器屏蔽了不同总线通信协议之间的差异,为上层应用程序提供统一的访问接口,可以很容易的在应用程序层实现对不同总线协议的设备进行互操作。
在现场控制网络中,OPC DA规范实现了现场数据在控制网络中的纵向传输[3]。OPC服务器作为现场总线体系结构的中间层,提供了到现场数据源的一个“窗口”。它通过硬件驱动程序访问网络适配器(位于监控计算机中,负责与现场设备进行数据交换。)并将这些数据用OPC DA 接口形式进行组织,上层应用程序则通过OPC接口与OPC服务器进行数据交互,间接获取现场信息访问现场总线设备中的数据信息。因此,上层应用程序只需开发一个OPC DA访问接口程序,就可以访问任何一种总线所提供的OPC DA服务器。当硬件升级或修改时只需改动服务器程序中硬件接口部分即可,不会影响上层应用程序。
这种方式也支持网络分布式应用程序之间的通信,这样就可以将监控计算机通过以太网与其他计算机连接,分布在其他计算机中的客户程序可以与监控计算机OPC服务器进行通信,实现现场信息的共享。

3、OPC DX( Data Exchange)数据交换规范
 OPC DX规范于2003年3月17日发布,它是第一种实现了OPC跨平台跨语言交互目标的规范。OPC DX是OPC DA的扩展,OPC DA主要提供自动化系统中垂直的(管理层、监控层到设备层)数据集成和互操作性,而OPC DX既提供了垂直的网关,也提供对等的网关,允许使用不同应用层协议的以太网控制站和设备之间的对等(Peer-to-Peer)通信。OPC DA客户应用既能访问OPC DA服务器也能访问新的OPC DX服务器。
OPC DX通过隐藏底层的技术细节,为不同以太网技术之间提供标准的数据交换接口。设备和软件只要提供OPC DX兼容服务器,就能够与其他OPC DX兼容设备交换信息。利用OPC DX,整个工厂的自动化系统和应用程序可以通过一致的方式访问工厂底层的实时信息,实现了多制造商设备的互操作性和即插即用特性。用户可以选择来自不同厂家的OPC DX兼容产品进行方便的系统集成,降低了集成成本和风险。  
  
4、SimaticNET 中OPC-DX的服务器的配置

 本例以下图的配置为示例

从上图我们可以看出,OPC DX 服务器不仅坚决在西门子的不同硬件网络之见可以进行数据交换的问题,也可以和第三方的OPC服务器进行数据的交换。而前从上面可以看出,数据的交换可以水平进行,也就是在服务器与服务器之间交换,不需要OPC客户的中转数据。
在OPC DX服务器里即包括了OPC DA的服务器又包含有OPC DA的客户端如下图所示:

  通过上面的方式即可实现OPC 服务器间的数据通讯,其中在OPC DX服务器中的OPC DX接口用来实现OPC服务器之间通讯连接配置的接口,一个OPC DX的服务器同时也是一个OPC DA的服务器。OPC DX服务器之间可以实现双向数据通讯,OPC DX服务器与OPC DA服务器
之间只能实现单向的数据通讯,从OPC DX服务器读数据到OPC DA服务器,如下图:

下面介绍我们如何实现第三方的OPC服务器与Simatic.NET的OPC服务器之间进行数据交换,第三方的服务器我们这里用Kepware的服务器,在Simatic.Net里为了测试方便用S7的模拟器来模拟变量,OPC DX配置客户端用网站上已经编写好的一个客户端,此客户端是由西门子的技术支持工程师编写,下载的网址:
当然也可以根据需求,按照OPC DX的规范自己开发一个OPC DX配置客户端。配置方法如下:

一、 先安装Kepware服务器,在安装时注意要勾选“OPC DX”选项如下图:

二、 安装完毕后,打开Kepware软件,选择“options”菜单,在弹出的窗口里勾选“Enable OPC data Exchange”选项,如下图:

三、 在Kepware中配置一个OPC的内部变量如下图所示:

四、 配置Simatic.NET的OPC变量,先启动S7的OPC变量模拟器,如下图:

然后,打开OPC SCOUNT 连接“OPC.SimaticNET”的OPC服务器,在S7的连接下创建OPC的项如下图:

五、 配置OPC服务器的连接,打开OPC DX配置客户端如下图:

配置后的连接如下图:

六、 测试连接:

 

通过上面的步骤完成了服务器对服务器的数据交换,

关键词
OPC DX SimaticNET OPC客户端 OPC 服务器 

标签:入门,接口,DA,访问,DX,OPC,服务器
From: https://www.cnblogs.com/ioriwellings/p/17581016.html

相关文章

  • chatgpt从入门到精通深入学习路线?
    chatgpt从入门到精通深入学习路线?如果您想深入学习和掌握ChatGPT,以下是一个学习路线的建议:1.了解自然语言处理(NLP)基础知识:开始之前,建议您对NLP的基本概念和技术有所了解,包括语言模型、分词、词向量、文本分类等。2.学习深度学习和神经网络:ChatGPT是基于深度学习技术的,因此了......
  • JDK11~19 从入门到精通进阶学习路线?
    JDK11~19从入门到精通进阶学习路线?学习JDK的进阶路线可以按照以下步骤进行:1.理解基础概念和语法:首先,你需要对Java语言的基本概念和语法有一定的了解。学习Java的入门资料、教程或者参加培训课程都是一个好的方式。2.学习面向对象编程(OOP):Java是一种面向对象的编程语言,掌握面......
  • AntDB快速入门——环境注意项之关闭numa的步骤
    grubby--update-kernel=ALL--args="numa=offtransparent_hugepage=never"grub2-mkconfigsystemctlstoptunedsystemctldisabletuned#重启后,验证grub的cmdline:#在输出的行里面有这个内容:numa=offtransparent_hugepage=never即为正确cat/proc/cmdline#检查......
  • python教程 入门学习笔记 第1天
    初识python一、python语言简介:1、起源:1989年由荷兰的前谷歌程序员吉多.范罗苏姆(龟叔)创造,python的命名来源于英国电视喜剧MontyPython’sFlyingCircus飞行马戏团2、优势:python、Java、c这几种是世界最流行语言;用途广泛,被称为万能语言;语法简洁,上手简单;例如:print("hellowor......
  • 【Java入门】小白快速入门 Java(一)
    ......
  • python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了
    python入门教程(非常详细),从零基础入门到精通,看完这一篇就够了 本文罗列了了python零基础入门到精通的详细教程,内容均以知识目录的形式展开。 01.python由来与发展介绍 02.项目开发流程   第一章markdown编辑器 01.markdown基本语法 02.Typora简介与安装......
  • Python入门 - 字符文件读写
    常用操作字符文件本质上还是用二进制方式写出,只是他多了一步查找字符的二进制值的过程。比如:9用二进制写出就是0b1001,utf-8的'9‘写出就是要先在utf-8码表中找'9'对应的二进制0b111001,然后再写出。  写ifnotos.path.exists("NewFolder"):os.mkdir("NewFolder")......
  • springcloudalibaba 从入门到精通进阶学习路线?深入细化讲解
    springcloudalibaba从入门到精通进阶学习路线?深入细化讲解下面是深入细化的SpringCloudAlibaba学习路线:1.学习SpringBoot和SpringCloud基础知识:在开始学习SpringCloudAlibaba之前,你需要先掌握SpringBoot和SpringCloud的基础知识。学习SpringBoot的核心概念、注解、配......
  • redis数据库框架 从入门到精通进阶学习路线?深入细化讲解
    redis数据库框架从入门到精通进阶学习路线?深入细化讲解Redis是一个高性能的开源键值对数据库,具备丰富的功能和灵活的应用场景。以下是一个更加深入细化讲解的Redis学习路线,从入门到精通的进阶学习:1.入门篇:-学习Redis的基本概念和特点,了解其与传统关系型数据库的区别-安装和......
  • Rxjs 入门
    RxJS(ReactiveExtensionsforJavaScript)是一个用于处理异步数据流和事件流的库。它是基于观察者模式和迭代器模式的一种实现,可以帮助开发者更方便地处理复杂的异步操作。RxJS的核心概念是Observable(可观察对象)。Observable代表一个可观察的数据源,它可以发出多个值,并在完成或出错......