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通讯协议

网上搜到的:

pc从西门子plc读取数据的方法有两类:

1是通过wincc这类组态软件

2是自己用高级语言(vb、vc等等),方法主要有:

opc(西门子simaticnet opc、第三方kepware opc)

prodave(西门子的一个软件包,提高vb和c的通讯函数库)

simticnet软件提供了几个通讯dll(此法是一般的第三方scada所采用)

可以用其他组态软件,比如组态王。也可以用vb编写一程序然后从plc读取数据再写入数据库。如果不需要监控画面,我觉得vb好些。

使用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和modbus怎么理解全部的内容,包括:OPC和modbus怎么理解、有谁用过KEPWareEX OPC服务器读写SQL数据库的、如何通过OPC自定义接口来实现客户端数据的读取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/sjk/9627495.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存