第1章 概论 1
1.1 OPC基金会 1
1.2 经典OPC 2
1.2.1 OPC数据访问 3
1.2.2 OPC报警和事件 4
1.2.3 OPC历史数据访问 4
1.2.4 其他OPC接口标准 5
1.2.5 OPC XML-DA 5
1.3 OPC UA的动机 6
1.4 OPC UA概述 8
1.5 OPC UA规范 9
1.6 OPC UA软件层 11
1.7 进化而非革命 12
1.8 小结 13
1.8.1 关键信息 13
1.8.2 在哪里能找到更多的信息 13
1.8.3 接下来是什么 14
第2章 信息建模:概念 15
2.1 为什么要对信息建模 15
2.2 节点和引用 18
2.3 引用类型 20
2.4 对象、变量和方法 24
2.5 对象和变量类型 30
2.5.1 简单对象类型 30
2.5.2 简单变量类型 33
2.5.3 复杂对象类型 36
2.5.4 实例声明 38
2.5.5 复杂变量类型 41
2.5.6 建模规则 41
2.5.7 复杂类型的子类型化 46
2.6 数据变量和特性 50
2.7 对象、变量和方法的ModelParent 51
2.8 数据类型 53
2.8.1 数据类型节点类别 53
2.8.2 内置和简单数据类型 54
2.8.3 枚举数据类型 55
2.8.4 结构化数据类型 55
2.8.5 特定的内置数据类型 58
2.8.6 数据类型综述 61
2.9 视图 62
2.10 事件 65
2.11 历史访问 67
2.11.1 数据历史 67
2.11.2 事件历史 68
2.11.3 地址空间历史 68
2.12 地址空间模型和信息模型 71
2.13 小结 73
2.13.1 关键信息 73
2.13.2 在哪里能找到更多的信息 73
2.13.3 接下来是什么 73
第3章 信息建模:实例与最佳实践 74
3.1 概述 74
3.2 实例 74
3.2.1 应用方案 74
3.2.2 初级方案——类似于传统的OPC 75
3.2.3 高级方案——提供全部功能的OPC UA 76
3.3 最佳实践 82
3.3.1 对象结构、信息类型和视图 82
3.3.2 类型定义(对象类型和变量类型) 84
3.3.3 提供复杂的数据结构 87
3.3.4 提供用户自定义数据类型 88
3.3.5 特性 89
3.3.6 方法 89
3.3.7 建模规则 90
3.3.8 代理对象(引用上的特性) 90
3.4 小结 91
3.4.1 关键信息 91
3.4.2 在哪里能找到更多的信息 91
3.4.3 接下来是什么 91
第4章 标准信息模型 92
4.1 概述 92
4.2 处理信息模型 92
4.2.1 信息模型指出了什么 92
4.2.2 信息模型如何指定 94
4.2.3 如何支持多信息模型 95
4.3 OPC UA基本信息模型 95
4.4 能力与诊断 97
4.5 数据访问 98
4.6 历史数据的访问和结果返回 99
4.7 状态机 100
4.8 程序 101
4.9 报警和条件 102
4.10 特定领域信息模型 102
4.10.1 概述 102
4.10.2 设备信息模型 103
4.11 小结 104
4.11.1 关键信息 104
4.11.2 在哪里能找到更多的信息 105
4.11.3 接下来是什么 105
第5章 服务 106
5.1 概述 106
5.2 服务的一般概念 107
5.2.1 超时处理 107
5.2.2 请求与应答的消息头 107
5.2.3 错误处理 108
5.2.4 可扩展参数 109
5.2.5 通信上下文 109
5.2.6 本章有关服务描述的约定 110
5.3 查找服务器 111
5.3.1 查找服务器(FindServers)服务 111
5.3.2 获得终端(GetEndpoints)服务 112
5.3.3 注册服务(RegisterServer)服务 113
5.4 客户端与服务器的连接管理 113
5.4.1 安全通道的建立 113
5.4.2 创建一个应用程序会话 114
5.4.3 关闭一个应用程序会话 116
5.4.4 取消未完成的服务请求 116
5.5 在地址空间中查找信息 117
5.5.1 使用服务发现地址空间 117
5.5.2 在地址空间中查找信息的用例 122
5.6 读写数据及元数据 130
5.6.1 读取数据 131
5.6.2 写入数据 132
5.7 订阅数据变化和事件 133
5.7.1 数据变化及事件的传递 134
5.7.2 创建和管理订阅 137
5.7.3 创建和管理监视项 139
5.7.4 监视数据变化 143
5.7.5 监视事件 144
5.7.6 监视数据聚合 146
5.8 调用服务器的方法 147
5.9 访问历史数据和历史事件 148
5.9.1 历史读取(HistoryRead)服务 148
5.9.2 历史更新(HistoryUpdate)服务 153
5.10 在复杂地址空间里查找信息 155
5.11 修改地址空间 156
5.11.1 添加节点 157
5.11.2 建立节点间的引用 157
5.11.3 删除节点 157
5.11.4 删除节点间的引用 158
5.12 小结 158
5.12.1 关键信息 158
5.12.2 在哪里能找到更多的信息 159
5.12.3 接下来是什么 159
第6章 技术映射 160
6.1 概述 160
6.2 数据编码 161
6.2.1 OPC UA二进制 161
6.2.2 XML 162
6.3 安全协议 162
6.3.1 WS-SecureConversation 163
6.3.2 UA-SecureConversation 164
6.4 传输协议 165
6.4.1 UA TCP 166
6.4.2 SOAP/HTTP 166
6.5 可用映射的实现 167
6.6 小结 168
6.6.1 关键信息 168
6.6.2 在哪里能找到更多的信息 169
6.6.3 接下来是什么 169
第7章 安全 170
7.1 为什么安全问题如此重要 170
7.2 安全的组织视角 171
7.3 安全的技术视角 172
7.4 确定适当的安全级别 172
7.4.1 安全评估 172
7.4.2 OPC UA的安全评估 174
7.5 OPC UA的安全模型 175
7.5.1 安全架构 175
7.5.2 保证通信通道安全 177
7.5.3 身份认证和授权 182
7.5.4 安全策略和配置文件 185
7.6 证书 186
7.6.1 什么是证书 186
7.6.2 OPC UA证书 187
7.7 OPC UA的公匙基础设施 189
7.7.1 什么是PKI 189
7.7.2 信任模型 190
7.7.3 证书生命周期管理 192
7.7.4 可用的公钥基础设施框架 198
7.7.5 工业应用的PKI 201
7.8 小结 208
7.8.1 关键信息 208
7.8.2 在哪里能找到更多的信息 209
7.8.3 接下来是什么 209
第8章 应用程序架构 210
8.1 简介 210
8.2 架构概述 210
8.3 栈 211
8.3.1 接口 211
8.3.2 编码层 211
8.3.3 安全层 211
8.3.4 传输层 211
8.3.5 平台层 212
8.4 软件开发工具箱 212
8.4.1 UA专用功能 212
8.4.2 通用功能 213
8.4.3 接口 213
8.5 应用程序 213
8.5.1 客户端 213
8.5.2 服务器 213
8.6 OPC基金会提供的成品 214
8.6.1 栈 214
8.6.2 SDK 214
8.6.3 应用程序 215
8.7 小结 215
8.7.1 关键信息 215
8.7.2 在哪里能找到更多的信息 215
8.7.3 接下来是什么 216
第9章 系统架构 217
9.1 系统环境 217
9.2 基本架构模式 218
9.2.1 客户端—服务器 218
9.2.2 链接服务器 218
9.2.3 服务器至服务器通信 219
9.2.4 聚合服务器 219
9.3 冗余 220
9.3.1 客户端冗余 220
9.3.2 服务器冗余 220
9.4 发现 223
9.4.1 为何发现 223
9.4.2 发现实体 224
9.4.3 发现过程 224
9.5 审计 226
9.5.1 概览 226
9.5.2 审计日志 227
9.5.3 审计事件 227
9.5.4 服务审计 228
9.5.5 使用案例 228
9.6 小结 230
9.6.1 关键信息 230
9.6.2 在哪里能找到更多的信息 230
9.6.3 接下来是什么 230
第10章 从COM OPC到OPC UA的映射 231
10.1 概述 231
10.2 OPC数据访问2.05A和3.0 231
10.2.1 地址空间 232
10.2.2 访问信息 232
10.2.3 OPC XML-DA1.01 233
10.3 OPC报警和事件1.1 234
10.3.1 地址空间 234
10.3.2 访问信息 235
10.4 OPC历史数据访问 237
10.4.1 地址空间 237
10.4.2 访问信息 237
10.5 小结 239
10.5.1 关键信息 239
10.5.2 在哪里能找到更多的信息 239
10.5.3 接下来是什么 239
第11章 迁移 240
11.1 概述 240
11.2 包装器:UA客户端访问COM服务器 240
11.3 代理:COM客户端访问UA服务器 242
11.4 原生开发 243
11.5 小结 243
11.5.1 关键信息 243
11.5.2 在哪里能找到更多的信息 244
11.5.3 接下来是什么 244
第12章 协议子集 245
12.1 动机 245
12.2 协议子集、一致性单元和测试用例 245
12.3 服务器程序协议子集 246
12.4 客户端程序协议子集 247
12.5 传输协议子集 247
12.6 安全协议子集 247
12.7 认证流程 248
12.8 小结 248
12.8.1 关键信息 248
12.8.2 在哪里能找到更多的信息 249
12.8.3 接下来是什么 249
第13章 性能指标 250
13.1 综述 250
13.2 性能指标数值 250
13.3 小结 253
13.3.1 关键信息 253
13.3.2 在哪里能找到更多的信息 253
13.3.3 接下来是什么 253
第14章 总结与展望 254
14.1 OPC UA概述 254
14.2 OPC UA是否复杂 254
14.2.1 OPC UA服务是否很难被处理 255
14.2.2 信息建模是否痛苦 257
14.2.3 传输协议与加密,为什么这么多 259
14.2.4 实现问题 260
14.2.5 现有代码的迁移 261
14.2.6 小结 262
14.3 展望 262
附录 264
附录A 图形表示法 264
附录B 节点类别和属性 268
附录C 基本信息模型引用 270
附录D 保留英文形式的常用术语 272
附录E 翻译为中文的常用术语 278
参考文献 279