1. ThingWorx 平台连接与建模初体验
为什么先建 Shape,再建 Template,最后建 Thing
ThingWorx 的对象模型是三层递进关系:ThingShape 定义“能力”(属性、服务、事件、订阅的抽象集合),ThingTemplate 定义“一类设备的完整规格”(可继承多个 Shape,并补充模板级属性),Thing 是“具体实例”(继承 Template 后拥有独立属性值)。本例要建模一个虚拟温度传感器,正确顺序是先定义 TemperatureSensorShape,再基于它创建 VirtualTempSensorTemplate,最后实例化 Sensor_01 并绑定属性。
在 Composer 中完成建模的关键操作
登录 ThingWorx Composer 后,按以下顺序操作。每一步都对应上面 SVG 中的层级关系。
第一步:创建 ThingShape
- 导航到
Modeling → ThingShapes,点击+新建。 - Name 填写
TemperatureSensorShape,Project 选择默认或新建Training。 - 在
Properties标签页添加两个属性:temperature:Base Type 选NUMBER,Data Change Type 选VALUE,Read Only 勾选。unit:Base Type 选STRING,Default Value 填°C。
- 点击
Save保存 Shape。
第二步:创建 ThingTemplate
- 导航到
Modeling → ThingTemplates,点击+新建。 - Name 填写
VirtualTempSensorTemplate。 - 在
Implemented Shapes区域点击+,搜索并添加TemperatureSensorShape。 - 在
Properties标签页添加模板级属性sampleInterval:Base Type 选INTEGER,Default Value 填5。 - 点击
Save保存 Template。
第三步:创建 Thing 并绑定属性
- 导航到
Modeling → Things,点击+新建。 - Name 填写
Sensor_01,Thing Template 选择VirtualTempSensorTemplate。 - 保存后进入
Properties标签页,可以看到继承来的temperature、unit和sampleInterval。 - 将
temperature的当前值手动设为23.5,点击Save。
命名规范建议:Shape 用
XxxShape,Template 用 XxxTemplate,Thing 用 Xxx_编号。这样在 Composer 搜索时能快速区分对象类型,也便于后续批量实例化。
验证对象模型是否生效
建模完成后,通过以下三种方式验证三层关系是否正确建立:
| 验证项 | 操作路径 | 预期结果 |
|---|---|---|
| Shape 被 Template 实现 | 打开 VirtualTempSensorTemplate → Implemented Shapes |
列表中显示 TemperatureSensorShape |
| Thing 继承 Template 属性 | 打开 Sensor_01 → Properties |
可见 temperature、unit、sampleInterval 三个属性 |
| 属性值可读取 | 在 Sensor_01 的 Properties 面板查看 temperature |
显示 23.5,类型为 NUMBER |
如果 temperature 属性在 Thing 中不可见,检查 Template 的 Implemented Shapes 是否保存成功;如果属性值无法修改,检查 Shape 中是否误勾了 Read Only(本例中 temperature 设为只读是合理的,因为真实传感器数据由设备写入,但手动验证时可临时取消勾选)。
核心结论:ThingWorx 的对象模型通过 Shape → Template → Thing 的继承链实现复用。Shape 定义能力契约,Template 组合能力并补充规格,Thing 承载具体数据。本例中
Sensor_01 的 temperature 属性最终来源于 TemperatureSensorShape,而 sampleInterval 来源于 VirtualTempSensorTemplate,两者在 Thing 层合并可见。