⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 d168.bmp.txt

📁 Visual C++通信编程实例
💻 TXT
字号:
    序,终端用户能够定义数据项目,其他客户应用程序通过连接此公共组访问其中的信
    息。由于只有一个客户能够创建并配置数据项目的属性,因而保持了同一数据定义
    的同步。
    (3) OPC项对象接口
    IOPCItemDisp接口是项对象的惟一接口,此接口提供了项目对象的属性和方法。接口
中的读方法从数据源读取项目的有关属性和数值;接口中的写方法将数值写到设备中。
    除了以上COM扩展接口外,OPC规范还提供了许多对程序员很有帮助的内容。比如软
件安装事宜、数据类型、参数和结构、出错代码等。所有这些与OPC对象接口一起形成了
完整的OPC数据访问标准。
5.1.3  0PC数据访问机制
    首先,OPC客户连接到OPC服务器上,并建立OPC Group和OPC Item,这是OPC数据
访问的基础,如果没有这个机制,数据访问的其他机能不可能实现;其次,客户通过对其建立
的Group和Item进行访问实现对过程数据的访问;然后,当服务器响应客户的过程数据访问
请求并处理完毕时通知客户。以上三方面的机制是OPC数据访问服务器必须要实现的。
    客户的过程数据访问包括过程数据的读取、更新、订阅、写入等,过程数据的读/写还
分同步读/写和异步读/写。建立OPC迮接后,客户应用程序一般可以通过三种方式从OPC
服务器读取数据。
    (1)使用IOPCSyncl0接口同步读写
    该方式简单有效,当客户数目较少而且同服务器交互的数据量也比较少时,可以采用这
种方式。这种方式下,当执行读写命令时,程序不能继续执行下面的操作,直到读写操作结
束后,程序才能继续往下执行,过程如图5-7所示。
    (2)使用IOPCASyncl02接口异步读写
    该方式实现较为复杂,需要在客户程序中实现服务器回调函数,然而当有大量客户和大
量数据交互时,异步方式效率更高,能够避免客户数据请求的阻塞,并可以最大限度地节省
CPU和网络资源。这种方式下,只要读或写的任务送达就马上申请读写,同时程序继续执行
后面的操作,并由OPC服务器返回回调函数的执行结果,过程如图5-8所示。
Clien
┏━━━━━━┓
┃    Se1     ┃
┃图  ㈨  一  ┃
┣━━━━━━┫
┃            ┃
┣━━━━━━┫
┃萝  脚时    ┃
┗━━━━━━┛
图5-7  同步方式通信模式
Clien
┏━━┳━━━━━━━━┓
┃    ┃    ser         ┃
┃蓬  ┃    Call    一  ┃
┣━━╋━━━━━━━━┫
┃鋈  ┃  一I  —Reply  ┃
┣━━┻━━━━━━━━┫
┃  一斟一              ┃
┗━━━━━━━━━━━┛
图5-8异步方式通信模式
(3)使用IOPCCallback接口订阅
使用该接口的“订阅”功能OnChange,每当数据有变化时,服务器自动通知客户。这
168

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -