OPC和modbus怎么理解

OPC和modbus怎么理解,第1张

OPC是dcom技术,opc通信是软件与软件通信,本机通信较为简单,网络OPC通信有很多麻烦的系统设置。

modbus是物理硬件技术,是设备与设备通信,两个设备之间物理能通就可以通信,有串口和TCP。

扩展资料

开发OPC的最终目标是在工业控制领域建立一套数据传输规范,现有的OPC规范涉及以下五个领域。

①在线数据监测。OPC实现了应用程序和工业控制设备之间高效、灵活的数据读写。

②报警和事件处理。OPC提供了OPC服务器发生异常时以及OPC服务器设定事件到来时,向OPC客户发送通知的一种机制。

③历史数据访问。OPC实现了对历史数据库的读取、 *** 作和编辑。

④远程数据访问。借助Microsoft的DCOM(Distributed Component Object Model)技术,OPC实现了高性能的远程数据访问能力。

⑤OPC实现的功能还包括安全性、批处理和历史报警事件数据访问等。

Modbus是在1970年末为可编程逻辑控制器通信开发的,这些有限的数据类型在那个时代是可以被PLC理解的,大型二进制对象数据是不支持的。

对节点而言,没有一个标准的方法找到数据对象的描述信息,举个例子,确定一个寄存器数据是否表示一个介于30-175度之间的温度。

由于Modbus是一个主/从协议,没有办法要求设备“报告异常”(构建在以太网的TCP/IP协议之上,被称为open-mbus除外)- 主节点必须循环的询问每个节点设备,并查找数据中的变化。

在带宽可能比较宝贵的应用中,这种方式在应用中消耗带宽和网络时间,例如在低速率的无线链路上。

Modbus在一个数据链路上只能处理247个地址,这种情况限制了可以连接到主控站点的设备数量(再一次指出以太网TCP/IP除外)。

Modbus传输在远端通讯设备之间缓冲数据的方式进行,有对通信一定是连续的限制,避免了传输中的缓冲区漏洞的问题。

Modbus协议自身提供针对未经授权的命令或截取数据没有安全性。

参考资料来源:百度百科-OPC

百度百科-Modbus通讯协议

服务器的话要看,如果是client-server结构的DCS,服务器位于上位和控制器之间,他将你的指令和现场数据通过服务器来经过交换,服务器一般是冗余配置,如果是并行结构来说没有所谓服务器的概念,只有个工程师站,程序的下装通过工程师站,但是数据的获取和指令的下达通过 *** 作员站就行,这个好处就是当工程师站坏了的话 *** 作员站可以正常工作
OPC服务器的作用是通过OPC协议将DCS的数据取出,并开放,一般一个OPC服务器下面连接一个或多个客户端,客户端通过安装相应的软件(也支持OPC协议),来取得DCS的协议
乐拾芗逸盆然朵邢浏晔链特磊枫待谨璀楷塘丞彰

个人理解:
举个简单的例子吧。比如我公司用的ABB DCS,有专门的上位机软件Digivis,可以实现现场数据读和写;同时,这个DCS也提供了OPC访问接口,我们自己也做了一个OPC Client也实现了对现场数据的读和写。
1、如果没有ABB DCS的底层驱动(原生组态软件),是无法实现PC与现场硬件的通讯的,那就不会有OPCServer了。
2、先有了ABB DCS的原生软件,将现场数据采集过来,然后在将这些数据通过OPC Server发布出去。
又比如Siemens S7 200的PLC,你能直接连接其OPC么?不能。因为它根本没这个接口。你得需要先使用Wincc与PLC建立连接,然后通过Wincc的OPCServer将数据发布出来,你才能使用OPC Client与该PLC通讯。OPC的出现就是为了解决我们用户访问各类控制器而提供的一个标准接口,它避免了用户去编写各类复杂甚至加密了的底层驱动。 其实组态王什么的工控软件,它就是编写了各类底层通讯驱动,所以,只有OPC Client是不行的。

使用OPC
DA进行Client的读写 *** 作时,我们使用Custom接口,出此之外还有Automation接口。以下是Custome接口开发时涉及到的三个关键对象:OpcServer、OpcGroup、OpcItem,下图是他们之间的逻辑关系:
在客户端开发时,要使用OpcServer对象来实现客户端与Opc服务器之间的连接。一个OpcServer对象下有多个OpcGroup,一个
OpcGroup下有多个OpcItem,在自定义接口下的Client开发,是以Group为单位的 *** 作,数据读写都是通过OpcGroup进行的。
•搭建程序运行环境
程序运行需要的软硬件环境:
1Net Framework 40
2Simatic Net 2008(Or Other) HF1
3西门子300(Or Other) PLC
我们可以通过本机的配置来实现OPC的远程连接,我没有采用这种方式,一是这种配置比较麻烦,而是这种方式不稳定。所以我采用本机安装一个OPCServer来实现与PLC的交互。
对于OPCServer软件,我选择的是SimaticNet 2008 HF1(安装WinCC的时候会有选择安装SimaticNet的选项),没有特别的原因,就是比较熟悉了而已,而且PLC选用的是西门子的。
我们可以不写OPC Client程序来测试,如何通过OPCServer与PLC之间的交互。首先当我们安装完毕SimaticNet之后,需要对Station Configuration Editor进行配置,如下图:
首先我们要指定Station的名称,上图叫PCStation,点击下方的StationName可以进行更改。下一步在1号栈上选择一个OPCServer,3号栈上选择一个通信网卡。
接下来我们需要在Step 7中建立Station Configuration
Editor与PLC之间的连接,我们暂且叫组态。组态的过程中要建立与Station Configuration Editor中对应的Opc
Server和IE General(所在栈号相同),Station Configuration Edition起到桥接的作用
用,主要让PLC与Opc Server之间建立一条S7连接。暂时没有拿到组态图,以后补上。
当我们组态完毕时,如何判断组态是否正确呢?在SimaticNet的目录上有个叫Opc Scout(Opc Scout V10)的软件,打开如下图:
上图列出来了本机所有的Server,我们能使用名为OPCSimaticNET的Server。双击这个Server添加一个组,多次双击这个Server可以添加多个组,验证了上图的Server与Group的关系了。
我们双击新建的Group,进入如下图的界面:
上图列出了所有的连接。上文说到的组态中建立的S7连接可以在S7节点中看到,展开这个节点可以看到我们建立的S7连接,如下图:
上图列出了名为S7 connection_1的S7连接,展开Object对象,列出PLC的结构。我们选择一种来新建我们的Item,由于我这里没有PLC模块,所以无法截图给大家看。
至此我们的OPC Client的运行环境搭建完毕。
•编写OPC Client端程序。
我们需要使用OPC Foundation提供的自定义接口来进行开发,在Visual Studio引用名为:OpcRcwComndll和OpcRcwDadll这两个DLL。
我们定义一个名为OpcDaCustomAsync的类,让这个类继承自:IOPCDataCallback,IDisposable

opc服务器需要配置内存:x58,4G内存插满。

内存的选择,服务器的内存都是带ECC的,内存奇偶校验,频率比不上家用机,但是,数据不易出错和堵塞,当 大量 数据交换时,效果最为明显。

硬盘的选择,同样,希捷 和 西部数据 都有专业的服务器硬盘。包括主板电源甚至机箱都不是普通的东西。

全是当当的货。当然,价格也不菲。只是个人弄着玩,哪些高端的专业的就没有必要,但是不建议你用笔记本,因为笔记本里面的配件好多都是阉割版的,长时间使用的话,容易引起 “火灾”。

工作原理:

OPC以OLE/COM机制作为应用程序的通信标准,而OLE/COM是一种客户端/服务器模式,具有语言无关性、代码重用性、易于集成性等优点。OPC服务器中的代码确定了服务器所存取的设备和数据、数据项的命名规则和服务器存取数据的细节。

不管现场设备以何种形式存在,客户都以统一的方式去访问,从而保证软件对客户的透明性,使得用户完全从低层的开发中脱离出来。客户应用程序仅须使用标准接口和服务器通信,而并不需要知道底层的实现细节。

通过OPC服务器,OPC客户既可以直接读写物理VO设备的数据,也可 *** 作SCADA,DCS等系统的端口变量(只要该系统提供OPC服务)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/13422610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-02
下一篇 2023-08-02

发表评论

登录后才能评论

评论列表(0条)

保存