发表于:2011/8/31 9:02:47
#0楼
OPC(OLE for Processing Control)是工控行业的软件接口标准,主要用来解决控制
系之间或控系统与设备之间数据交换的标准化问题。OPC 规范包括数据访问服务器(DA)、
历史数据访问服务器(HDA)、事件与报警服务器(A/E)、XML 数据访问服务器(XML DA)、等一系列标准规范。OPC规范由OPC基金会负责制定并对OPC产品进行认证。
OPC规范具有如下的优点:
(1) 统一的接口标准简化了软件的开发和减低了系统维护的费用
(2) 充分的开放性和标准化特性,保证高度柔韧性系统的实现
(3) 持续的版本升级,保证了规范的先进性
(4) 支持DCOM、.Net架构
本文档介绍OPC数据访问服务器开发软件包(以下简称软件包)的特点和如何利用开发
软件包进行OPC 数据访问服务器(以下简称DA)的开发。
本文共分为四个部分:
介绍了OPC的基本概念;
DA服务器的开发流程;
详细描述了工具包的接口描述;
附录部分介绍了一些与DA开发相关的OPC规范和其他内容。
国内著名下载网站绿盟提供下载:
http://www.xdowns.com/soft/38/110/2011/Soft_72907.html
1.1.OPC软件包简介
OPC工具包产品以标准动态连接库(DLL)形式提供二次开发接口,与Win98、WinNT、
WIN2000、WIN2003系统完全兼容。OPC开发软件包由服务器软件包、客户端开发软件包组成,完全封装了OPC技术和COM技术实现细节,使二次开发的程序员无需OPC规范和COM技术底层细节,降低服务器和客户端程序开发的复杂程度和减少了熟悉OPC技术的时间,只需专注于自己熟悉的数据采集和过程控制,其他的一切都交给软件开发包来完成。由于软件开发包以标准的WINDOWS API方式提供,故可以在目前主流的所有开发语言和开发工具中得到支持。
1.2.软件包的特点
数据访问服务器工具包于2004年6月开始研发,吸取了各大OPC开发包的优点,经过多次升级,实现了对OPC数据访问服务器规范(以下简称DA规范)的全面支持(支持规范版本1.0、2.0、3.0)。软件包具有以下特点:
完全符合DA标准,通过OPC基金会兼容性产品测试
完全的封装使二次开发人员不需要了解COM技术和OPC规范接口细节
工具包支持多种开发语言,如VC、BC、VB、Delphi、C#等
逻辑清晰、功能明确的二次开发函数保证用户进行二次开发简单容易
支持同步、异步数据通讯方式
支持自定义属性读写
支持树型地址空间
支持动态创建标签
支持分布式体系结构
高效(20ms/5000标签)
良好的兼容性(支持所有组态软件、DCS系统、Scada系统)
优良的稳定性,软件运行CPU占用率(2% 10000个节点)
完备的产品升级和完善的技术支持,提供现场技术服务和远程技术指导
4.1. OPC DA规范中关于标签数据质量的描述
在OPC中每个标签都必须有数据质量这个属性,OPC的数据质量的数据类型为VT_I2,
服务器通过该标签属性向客户发布标签的数据质量。OPC基金会对标签数据质量的各个位做
了一些定义,高八位由厂商自行定义,低八位的定义如下:
低字描述为QQSSSSLL
Q:主状态
S:子状态
L:限定状态
低八位的高两位定义:
表2(低八位的高两位定义)
中间四位的定义:
1、状态为0:
SSSS 位值 定义 描述
0 000000LL 未定的的错误 数据是无效的,无效的原因没有定义
1 000001LL 服务器配置错误 由于服务器的配置错误造成数据的无效
2 000010LL 没有连接 由于没有连接数据源,数据不能被正确的提供
3 000011LL 设备错误 发现一个设备错误,造成数据无效
4 000100LL 传感器错误 发现一个传感器错误,限定状态的位域有
时能提供进一步的诊断信息
5 000101LL 最后一次有效值 由于通信失败,提供的数据是最后一次保
存的有效值
6 000110LL 通信失败 通信失败并且没有最后保存的有效值可
以提供
7 000111LL 不在服务范围之内 标签定义为不活动的
8-15 OPC未定义 未定义
表3
2.主状态为1:
SSSS 位值 定义 描述
0 010000LL 未定义的错误 不能确定数据的有效性,其原因未定义
1 010001LL 最后可用的值 该值返回的是最后可用的值
2-3 OPC未定义 未定义
4 010100LL 传感器精度不够 该值被固定在传感的上下限上
5 010101LL 超出上下限 返回的值超出上下限
6 010110LL 数据来自多个数据源 数据需要来自多个可用的设备
7-15 OPC未定义 未定义
表4
3.主状态为3:
SSSS 位值 定义 描述
0 110000LL 未定义的错误 数据有效,原因未定义
1-5 OPC未定义 未定义
6 110110LL 本地设定值 设备不能连接,该值是本地设定值
7-15 OPC未定义 未定义
表5
低两位的定义:
LL 位值 定义 描述
0 QQSSSS00 没有边界 这个值没有上下限
1 QQSSSS01 下限 该值被固定在下限值
2 QQSSSS10 上限 该值被固定在上限值
3 QQSSSS11 常量 该值被固定在某个常数上
表6
4.3.如何发布服务器
以下程序应随服务器一同发布,可运行Install.bat批处理文件进行一下dll的注册和拷贝
1.Opcproxy.dll,安装路径%windir%\system32
2.Opccomn_ps.dll,安装路径%windir%\system32
3.OPCEnum.exe,安装路径%windir%
4.服务器软件和二次开发工具包
系之间或控系统与设备之间数据交换的标准化问题。OPC 规范包括数据访问服务器(DA)、
历史数据访问服务器(HDA)、事件与报警服务器(A/E)、XML 数据访问服务器(XML DA)、等一系列标准规范。OPC规范由OPC基金会负责制定并对OPC产品进行认证。
OPC规范具有如下的优点:
(1) 统一的接口标准简化了软件的开发和减低了系统维护的费用
(2) 充分的开放性和标准化特性,保证高度柔韧性系统的实现
(3) 持续的版本升级,保证了规范的先进性
(4) 支持DCOM、.Net架构
本文档介绍OPC数据访问服务器开发软件包(以下简称软件包)的特点和如何利用开发
软件包进行OPC 数据访问服务器(以下简称DA)的开发。
本文共分为四个部分:
介绍了OPC的基本概念;
DA服务器的开发流程;
详细描述了工具包的接口描述;
附录部分介绍了一些与DA开发相关的OPC规范和其他内容。
国内著名下载网站绿盟提供下载:
http://www.xdowns.com/soft/38/110/2011/Soft_72907.html
1.1.OPC软件包简介
OPC工具包产品以标准动态连接库(DLL)形式提供二次开发接口,与Win98、WinNT、
WIN2000、WIN2003系统完全兼容。OPC开发软件包由服务器软件包、客户端开发软件包组成,完全封装了OPC技术和COM技术实现细节,使二次开发的程序员无需OPC规范和COM技术底层细节,降低服务器和客户端程序开发的复杂程度和减少了熟悉OPC技术的时间,只需专注于自己熟悉的数据采集和过程控制,其他的一切都交给软件开发包来完成。由于软件开发包以标准的WINDOWS API方式提供,故可以在目前主流的所有开发语言和开发工具中得到支持。
1.2.软件包的特点
数据访问服务器工具包于2004年6月开始研发,吸取了各大OPC开发包的优点,经过多次升级,实现了对OPC数据访问服务器规范(以下简称DA规范)的全面支持(支持规范版本1.0、2.0、3.0)。软件包具有以下特点:
完全符合DA标准,通过OPC基金会兼容性产品测试
完全的封装使二次开发人员不需要了解COM技术和OPC规范接口细节
工具包支持多种开发语言,如VC、BC、VB、Delphi、C#等
逻辑清晰、功能明确的二次开发函数保证用户进行二次开发简单容易
支持同步、异步数据通讯方式
支持自定义属性读写
支持树型地址空间
支持动态创建标签
支持分布式体系结构
高效(20ms/5000标签)
良好的兼容性(支持所有组态软件、DCS系统、Scada系统)
优良的稳定性,软件运行CPU占用率(2% 10000个节点)
完备的产品升级和完善的技术支持,提供现场技术服务和远程技术指导
4.1. OPC DA规范中关于标签数据质量的描述
在OPC中每个标签都必须有数据质量这个属性,OPC的数据质量的数据类型为VT_I2,
服务器通过该标签属性向客户发布标签的数据质量。OPC基金会对标签数据质量的各个位做
了一些定义,高八位由厂商自行定义,低八位的定义如下:
低字描述为QQSSSSLL
Q:主状态
S:子状态
L:限定状态
低八位的高两位定义:
表2(低八位的高两位定义)
中间四位的定义:
1、状态为0:
SSSS 位值 定义 描述
0 000000LL 未定的的错误 数据是无效的,无效的原因没有定义
1 000001LL 服务器配置错误 由于服务器的配置错误造成数据的无效
2 000010LL 没有连接 由于没有连接数据源,数据不能被正确的提供
3 000011LL 设备错误 发现一个设备错误,造成数据无效
4 000100LL 传感器错误 发现一个传感器错误,限定状态的位域有
时能提供进一步的诊断信息
5 000101LL 最后一次有效值 由于通信失败,提供的数据是最后一次保
存的有效值
6 000110LL 通信失败 通信失败并且没有最后保存的有效值可
以提供
7 000111LL 不在服务范围之内 标签定义为不活动的
8-15 OPC未定义 未定义
表3
2.主状态为1:
SSSS 位值 定义 描述
0 010000LL 未定义的错误 不能确定数据的有效性,其原因未定义
1 010001LL 最后可用的值 该值返回的是最后可用的值
2-3 OPC未定义 未定义
4 010100LL 传感器精度不够 该值被固定在传感的上下限上
5 010101LL 超出上下限 返回的值超出上下限
6 010110LL 数据来自多个数据源 数据需要来自多个可用的设备
7-15 OPC未定义 未定义
表4
3.主状态为3:
SSSS 位值 定义 描述
0 110000LL 未定义的错误 数据有效,原因未定义
1-5 OPC未定义 未定义
6 110110LL 本地设定值 设备不能连接,该值是本地设定值
7-15 OPC未定义 未定义
表5
低两位的定义:
LL 位值 定义 描述
0 QQSSSS00 没有边界 这个值没有上下限
1 QQSSSS01 下限 该值被固定在下限值
2 QQSSSS10 上限 该值被固定在上限值
3 QQSSSS11 常量 该值被固定在某个常数上
表6
4.3.如何发布服务器
以下程序应随服务器一同发布,可运行Install.bat批处理文件进行一下dll的注册和拷贝
1.Opcproxy.dll,安装路径%windir%\system32
2.Opccomn_ps.dll,安装路径%windir%\system32
3.OPCEnum.exe,安装路径%windir%
4.服务器软件和二次开发工具包