OPC的数据访问方法分别有同步访问、异步访问和订阅式数据采集方式三种。
1、同步数据访问方式
OPC服务器把按照OPC应用程序的要求得到的数据访问结果作为方法的参数返回给OPC应用程序,OPC应用程序在结果被返回之前必须处于等待状态。
同步访问特点为:读取指定OPC标签对应的过程数据时,应用程序一直要等到读取完为止;写入指定OPC标签对应的过程数据时,应用程序一直等待写入完成为止。当客户数据较少而且同服务器交互的数据量比较少的时候可以采用这种方式,然而当网络堵塞或大量客户访问时,会造成系统的性能效率下降。
2、异步数据访问方式
OPC服务器接到OPC应用程序的要求后,几乎立即将方法返回。OPC应用程序随后可以进行其他处理。当OPC服务器完成数据访问时,OPC服务器转换角色充当成客户程序,而原来的客户程序此时可以看成是服务器。OPC服务器主动触发OPC应用程序的异步访问完成事件,将数据访问结果传送给OPC应用程序。OPC应用程序在其事件处理程序中接收从OPC服务器传来的数据。
其特点为:读取指定OPC标签对应的过程数据,应用程序发出读取要求后立即返回,读取完成时发生读取完成事件,OPC应用程序被调用;写入指定OPC标签对应的过程数据,应用程序发出写入要求后立即返回,写入完成时发出写入完成事件,OPC应用程序被调用。因此异步方式的效率更高,能够避免多客户大数据请求的阻塞,并可以最大限度地节省CPU和网络资源。
3、订阅式数据访问方式
并不需要OPC客户应用程序向OPC服务器提出要求,而是服务器周期性地扫描缓冲区的数据,如果发现数据变化超过一定的幅度时,则更新数据缓冲器,并自动通知OPC应用程序。这样OPC客户应用程序就可以自动接到OPC服务器送来的变化通知的订阅方式数据采集(Subscription)。订阅式数据采集方式实际上也属于异步读取方式的一种。采用订阅式数据采集方式的服务器按一定的更新周期(UpdateRate)更新数据缓冲器的数值时,如果发现数据有变化时,就会以数据变化事件(DataChange)通知OPC应用程序。OPC服务器支持不敏感带(DeadBand),而且OPC标签的数据类型是模拟量的情况,只有当前值与前次值的差的绝对值超过一定的限度时,才更新缓冲器数据并通知OPC应用程序。由此可以无视模拟值的微小变化,从而减轻OPC服务器和OPC应用程序的负荷。其特点为:服务器用一定的周期检查过程数据,发现数字数据变化或者模拟数据的变化范围超过不敏感区后,立刻通知客户程序,传递相应信息。订阅式技术基于“客户-服务器-硬件设备”模型,在服务器中的内部建立预定数据的动态缓存,并且当数据变化时对动态缓存给予刷新,并向订阅了这些数据的客户端发送。这使得网络上的请求包数大大减少,并有效降低了对服务器的重复访问次数。在数据点很多的情况下,这种通信方式的优势更能凸现出来。