opc 同步通讯和异步通讯区别是什么?批量写入和批量读出用哪种方式好,可以共用么?
最佳答案
OPC通信方式
OPC规范规定了两种通信方式:同步通信方式和异步通信方式。异步读写数据复杂,需要与事件结合使用,与同步相比速度慢但准确性高。同步读写数据简单,直接使用OPCItem的方法即可。
1.同步通信时,OPC客户程序对OPC服务器进行读写操作时,OPC客户程序必须等到OPC服务器对应的操作全部完成以后才能返回,在此期间OPC客户程序一直处于等待状态。如果有大量数据进行操作或者有大量OPC客户程序对OPC服务器进行读写操作,必然造成OPC客户程序的阻塞现象。因此同步通信适用于OPC客户较少,数据量较小时的场合。
2.异步通信时,OPC客户程序对服务器进行读写操作时,OPC客户程序操作后立刻返回,不用等待OPC服务器的操作,可以进行其他操作。当0PC服务器完成操作后再通知OPC客户程序。因此,相对于同步通信和异步通信的效率更高,适用于多客户访问同一OPC服务器和大量数据的场合。
3.)OPC数据的读和写。对OPC服务器中的数据项数读可以通过group组的DataChange事件触发来读取。该事件有多个参数:其中:NumItems是指数据项的个数;ltemValues为数据项的数据;Qualities为数据项的品质;TimeStamps为数据项的更改时间;Cli—entHandles是数据项的标签索引,其所指的OPC标签的值在ItemValues(1)中,只有数据发生变化时才会触发该事件。也只会传输发生了变化的数据,没有变化的数据不会出现在本事件ItemValues中。使用C#事件处理机制,将DataChange注册到事件,一旦服务器端数据有变化,自动触发此过程。
OPCDA规范规定了两种通讯方式:同步通讯和异步通讯。这两种通讯方式与常见的串口同步通讯、异步通讯以及以太网的同步通讯、异步通讯的功能差不多。
同步通讯适用于OPC客户程序较少,数据量较小时的场合。
异步通讯的效率更高,适用于多客户访问同一OPC服务器和大量数据的场合。
OPC的异步通讯有四种方式:
·数据订阅,客户端通过订阅方式后,服务器端将变化的数据通过回调传送给客户程序。
·异步读,返回操作结果和数据值。
·异步写,返回操作结果,成功、失败。
·异步刷新,异步读所有Item的值。
提问者对于答案的评价:
谢谢,回答的很详细。
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc169244.html