OPC
OPC协定包括:
- (Data Access)规范:访问数据主要采用该规范
- (Alarm and Event)规范:基于事件,提供Client端订阅,事件触发后Server端主动提交回数据的数据访问方式。
- (History data access)规范
- 规范
二、OPC UA
三、OPC逻辑对象模型
对象:
主要功能:
- 创建和管理OPC Group对象;
- 管理服务器内部的状态信息。
对象:
主要功能:
- 管理OPC Group对象的内部状态信息;
- 创建和管理Items对象;
- OPC服务器内部的实时数据存取服务(同步与异步方式)。
属性:
- name:组的名字,由客户端自己定义。
- active:组的激活状态,如果为false则组内全部Item将不再从数据源取数据,在客户端中的表现是读取不到数据,同时写数据也影响不到服务器端。
- update rate:服务器向客户端提交变化数据的更新速率(这个数值应比服务器设定的最小值大)。
- Percent Dead band:数据死区,即能引起数据变化的最小数值百分比。
对象:
主要功能:
- 用来描述实时数据,代表了与服务器数据源的连接,而不是数据源。
属性:
- name:项的名称,在服务器对应于Item ID。
- active:项的激活状态。
- value:项的数据值。
- quality:项的品质,代表数值的可信度。
- Timestamp:时间戳,代表数据的存取时间。
注:
(编写程序时使用的主要也是它)
2.Item的数据类型(VARTYPE):
:项的别名,由服务器设置,避免了项名称过长所带来的麻烦。
4.Group类型:公共组和私有组。公共组由多个客户共享,私有组只属于某一OPC客户。公共组对连接到服务器的所有客户都有效,而私有组只能对建立它的客户程序有效。(大多服务器未实现有公共组)
5.Item在服务器端定义,对应于硬件实际地址,客户端连接服务器端后创建并添加OPC Group,并创建一系列OPC Item(连接到服务器端定义的Item),将逻辑上等价的一组OPC Item添加到OPC Group中才能通过组对象来对数据进行存取操作。
四、OPC通信:
OPC客户端对OPC服务端进行读取操作时,OPC客户端必须等到OPC服务器端完成对应操作后才能返回,在此期间OPC客户端处于一直等待的状态。
OPC客户端对OPC服务器端进行读取操作时,OPC客户端发送请求后立即返回,不用等待服务器端,当OPC服务器端完成操作后再通知客户端程序。
规范,由客户端设定数据的变化限度,如果数据源的实时数据变化超过了该限度,服务器则通过回调返回数据给客户端。
五、OPC客户端开发大致步骤:
- COM组件初始化;
- 创建服务器Server对象;
- 创建组Group对象;
- 创建项Item对象;
- 添加Item到Group中;
- 添加Group到Server对象中;
- 连接服务器(这里的顺序与具体实现有关),完成相应操作;
- COM组件关闭
OPC
OPC协定包括:
- (Data Access)规范:访问数据主要采用该规范
- (Alarm and Event)规范:基于事件,提供Client端订阅,事件触发后Server端主动提交回数据的数据访问方式。
- (History data access)规范
- 规范
二、OPC UA
三、OPC逻辑对象模型
对象:
主要功能:
- 创建和管理OPC Group对象;
- 管理服务器内部的状态信息。
对象:
主要功能:
- 管理OPC Group对象的内部状态信息;
- 创建和管理Items对象;
- OPC服务器内部的实时数据存取服务(同步与异步方式)。
属性:
- name:组的名字,由客户端自己定义。
- active:组的激活状态,如果为false则组内全部Item将不再从数据源取数据,在客户端中的表现是读取不到数据,同时写数据也影响不到服务器端。
- update rate:服务器向客户端提交变化数据的更新速率(这个数值应比服务器设定的最小值大)。
- Percent Dead band:数据死区,即能引起数据变化的最小数值百分比。
对象:
主要功能:
- 用来描述实时数据,代表了与服务器数据源的连接,而不是数据源。
属性:
- name:项的名称,在服务器对应于Item ID。
- active:项的激活状态。
- value:项的数据值。
- quality:项的品质,代表数值的可信度。
- Timestamp:时间戳,代表数据的存取时间。
注:
(编写程序时使用的主要也是它)
2.Item的数据类型(VARTYPE):
:项的别名,由服务器设置,避免了项名称过长所带来的麻烦。
4.Group类型:公共组和私有组。公共组由多个客户共享,私有组只属于某一OPC客户。公共组对连接到服务器的所有客户都有效,而私有组只能对建立它的客户程序有效。(大多服务器未实现有公共组)
5.Item在服务器端定义,对应于硬件实际地址,客户端连接服务器端后创建并添加OPC Group,并创建一系列OPC Item(连接到服务器端定义的Item),将逻辑上等价的一组OPC Item添加到OPC Group中才能通过组对象来对数据进行存取操作。
四、OPC通信:
OPC客户端对OPC服务端进行读取操作时,OPC客户端必须等到OPC服务器端完成对应操作后才能返回,在此期间OPC客户端处于一直等待的状态。
OPC客户端对OPC服务器端进行读取操作时,OPC客户端发送请求后立即返回,不用等待服务器端,当OPC服务器端完成操作后再通知客户端程序。
规范,由客户端设定数据的变化限度,如果数据源的实时数据变化超过了该限度,服务器则通过回调返回数据给客户端。
五、OPC客户端开发大致步骤:
- COM组件初始化;
- 创建服务器Server对象;
- 创建组Group对象;
- 创建项Item对象;
- 添加Item到Group中;
- 添加Group到Server对象中;
- 连接服务器(这里的顺序与具体实现有关),完成相应操作;
- COM组件关闭