信息建模
任何人都能暴露标签。建模才是让一个素未谋面的客户端理解服务器的关键。本课程涵盖建模规则、接口、自定义结构体、编写 NodeSet2 XML、编译它并发布它。
| 课时 | 12 |
|---|---|
| 时间 | 约 96 分钟 |
| 先修要求 | A3 |
| 成本 | 免费:文字课程开放,视频和实验需要免费账号 |
学完你将能够做到
- 你能够设计类型层级,而不是一个装满标签的文件夹。
- 你能编写并编译一份自己的 NodeSet2 文件。
- 你能够暴露一个通用客户端可以解码的自定义结构。
- 你能够导出一台在线服务器的地址空间,并离线基于它工作。
课程大纲
-
1
对类型建模,而不是对实例建模8 分钟
为什么一个带三个实例的 ObjectType 胜过三个标签文件夹,以及客户端用类型能做到而用文件夹做不到的事。
Asset 同样的三台泵用两种方式建模,并排浏览对比
-
2
应用建模规则8 分钟
Mandatory、Optional 以及占位符规则。客户端可以假定什么,以及当它假定某个可选节点存在时会怎样失败。
Asset 一个带必选和可选成员的类型,以及两个存在差异的实例
-
3
使用接口8 分钟
面向能力的多重继承。Machinery 构建块如何使用接口,以及为什么正是这一点让它们可组合。
资料 一个实现了两个接口的节点,两组成员都已浏览
-
4
定义一个自定义结构体9 分钟
DataTypeDefinition、字段顺序,以及客户端解码它所需要的编码。
资料 由服务器暴露、由通用客户端解码的一个自定义结构体,附原始 ExtensionObject
-
5
应对遗留的类型字典8 分钟
只提供二进制类型字典的服务器、只支持 DataTypeDefinition 的客户端,以及由此产生的无法解码的 ExtensionObject。
交付物 同一个结构体由两个客户端读取,其中一个解码失败
-
6
处理 union 和可选字段7 分钟
自定义结构体的解码实际会在哪里出问题,以及如何建模才不会出问题。
交付物 一个联合体和一个带可选字段的结构体,并写出各自的线路编码
-
7
编写一个 NodeSet2 文件10 分钟
每一份伴随规范都以这种 XML 形式发布。包括结构、命名空间、别名和引用。
交付物 从零开始为一个小型机器类型编写的完整、有效的 NodeSet2 文件
-
8
编译一个模型8 分钟
作为 dotnet 全局工具的 UA-ModelCompiler,它的输入和输出,以及它给出的错误。
资料 一个用 UA-ModelCompiler 编译的模型,包含一处故意的错误及其提示信息
-
9
在运行时加载模型8 分钟
把 nodeset 导入运行中的服务器,以及这样做时命名空间索引会发生什么。
资料 一个在运行时导入的 nodeset,附导入前后的 NamespaceArray
-
10
导出一个在线地址空间7 分钟
从运行中的服务器导出 NodeSet,以便离线工作并在固件版本之间做差异对比。
资料 同一台设备在固件变更后的两份导出,附差异对比
-
11
发布到 UA Cloud Library7 分钟
这个库是做什么的、它的 REST 和 Swagger 接口,以及什么时候该发布而不是留在本地。
资料 通过 UA Cloud Library API 上传并取回一个模型
-
12
面向消费者建模,而不是面向 PLC8 分钟
让模型在下游真正有用的习惯:稳定的标识符、真实的单位、诚实的量程,以及用状态机而不是整数表示状态。
Asset 把一份评审清单应用到一个真实的厂商模型上,以及它发现的八个问题
实验
最后核对日期 2026 年 9 月 7 日,对照 OPC UA 1.05.07。OPC UA Connect 是教育资源,与 OPC Foundation 无隶属关系。