跳到主要内容

对象与设备

对象就是把设备抽象成可调用的功能块。它封装了底层协议、寄存器地址和通信细节,向 HMI 画面和流程提供语义化接口。

理解对象

传统 PLC 编程中,你要写寄存器地址 D100M200

// 传统方式:操作员要在画面上知道地址
MOV K1 D100 // 启动命令写到 D100

对象方式下,你调用设备的方法:

// 对象方式:操作员看到的是语义动作
控制器.启动()
轴.回零()

对象内部负责把"启动"翻译成正确的寄存器写入。画面上不需要出现任何地址。

对象树

对象树在编辑器左侧资源区的最上方。它以树形结构组织设备层级。

典型的现场设备层级:

产线
├── 工位1
│ ├── PulsarController(控制器)
│ │ ├── Z轴(PulsarAxis)
│ │ ├── 翻转轴(PulsarAxis)
│ │ └── IO板(PulsarIoBank)
│ └── 扫码枪(自定义对象)
├── 工位2
│ └── ...
└── RecipeManager(配方管理,整个 app 一个)

基本操作

操作方式
添加根级设备右键对象树空白处 → 选择设备类型
添加子设备右键父对象(如控制器)→ 添加轴或 IO 板
查看设备详情单击选中,右侧属性面板显示参数
调整层级拖拽到目标位置
删除对象右键菜单
拖到流程图从对象树把设备拖到 Graph 画布,自动生成节点

截图占位:对象树层次结构示例

缺失类型

如果对象树中出现红色标记,说明该设备类型在当前环境中不存在(例如缺少插件或自定义代码编译失败)。补齐后重新加载即可。

设备属性

选中对象后,右侧属性面板显示可配置参数。以 Pulsar 控制器为例:

参数类别内容
连接参数IP 地址、端口号、从站 ID
总线配置通信周期、超时时间、重试次数
拓扑信息挂载的轴和 IO 模块列表
绑定 Graph设备启动/停止时自动执行的流程

轴的属性:

参数类别内容
轴号与绑定轴 ID、绑定的控制器
运动参数最大速度、加速度、减速度、JOG 速度
限位软限位正负值、硬限位信号映射
回零参数回零方式、回零速度、偏移量
错误处理跟随误差阈值、急停减速度

截图占位:轴属性面板

修改属性后保存。部分参数(如通信参数)需要重启应用生效。

内置设备类型

启心自动化平台 标准库提供以下常用设备类型。

运动控制(Pulsar)

对象类型功能
PulsarControllerPulsar 总线控制器,管理通信和拓扑
PulsarAxis伺服/步进轴:回零、绝对/相对定位、速度模式、停止
PulsarIoBank数字量 IO(DI/DO)和模拟量 IO(AI/AO)

使用前提:app 的 manifest.jsonmodules.pulsar 设为 true

通信协议

对象类型适用设备
OmronHostLink欧姆龙 PLC(Host Link 协议)
ModbusTcpModbus TCP 设备(PLC、仪表、变频器)
ModbusRTUModbus RTU 设备(串口)
S7_200_Smart西门子 S7-200 Smart PLC

数据处理

对象类型功能
RecipeManager配方管理:产品型号 → 工艺参数集。每个 app 最多一个实例。
RecordStore数据表:字段可配置,支持文件持久化或内存临时表。适合 IO 点位配置表、工艺参数表、批次记录。
Logger运行日志记录

通用

对象类型功能
GenericNode通用树节点,用于组织层级(如按产线→工位→设备分组)

运动控制配置示例

下面以一套典型的跌落试验机为例,走一遍完整配置流程。

第一步:创建控制器

  1. 右键对象树 → PulsarController
  2. 属性面板填控制器 IP 和端口。
  3. 保存。

第二步:添加 Z 轴

  1. 右键 PulsarController → PulsarAxis
  2. 重命名为"Z轴"。
  3. 配置运动参数:
    • 最大速度:50 mm/s
    • 回零速度:10 mm/s
    • 软限位:+200 / -5
  4. 打开 Axis Config 面板配置更多细节(回零方式、电子齿轮比等)。
  5. 保存。

第三步:添加翻转轴

同样的方式添加翻转轴。

第四步:添加 IO 板

  1. 右键 PulsarController → PulsarIoBank
  2. 配置 DI 信号映射:光幕、急停、插销前限/后限、摆臂就位。
  3. 配置 DO 信号映射:电磁阀、指示灯、蜂鸣器。
  4. 保存。

第五步:在画面和流程中使用

配置完成后,这些对象的方法出现在可用设备列表中:

  • Z轴.回零()
  • Z轴.绝对定位(100)
  • 翻转轴.相对定位(90)
  • IO板.DO[0].置位()
  • IO板.DI[0].读取()

在画面的按钮动作中调用,或在 Graph 流程图中编排。

截图占位:Pulsar 三层对象(控制器→轴+IO×3→方法列表)

数据表(RecordStore)配置示例

以工位 IO 点位配置表为例:

  1. 添加 RecordStore 对象。
  2. 属性面板定义字段:点位名称(文本)、地址(文本)、类型(下拉)、初始值(数值)、备注(文本)。
  3. storageMode 设为 "file",数据保存到 data/record-stores/
  4. 在页面添加 Table 控件,绑定该 RecordStore。
  5. 操作员可在运行页增删改查点位配置。

自定义设备(Script)

当内置设备类型不满足需要(如特殊的扫码枪协议、非标仪表、客户自有设备),可通过自定义代码扩展。

自定义代码编写后需要编译构建,编译成功后新设备类型出现在对象树的可添加列表中,与内置设备使用方法完全一致。

详见构建流程

设备引用关系

对象之间有两种关系:

关系含义例子
父子(Children)拥有关系控制器拥有多个轴
引用(ObjectRef)使用关系工位对象引用它所使用的控制器

在属性面板中,ObjectRef 显示为对象选择器下拉框。

现场注意事项

  • 修改通信参数后需要重启应用。
  • 删除设备前确认没有画面或流程仍在引用它。
  • 对象动作依赖底层设备就绪:确认急停释放、通讯正常、驱动器无报警。
  • 不要绕过对象直接在画面或流程中写寄存器地址。
  • 未知设备类型导致 app 加载失败时,检查自定义代码编译或插件是否缺失。