跳到主要内容

仙工

配置回调

目前仙工RDS Core支持4种回调。

  • PostAction,动作块完成时回调
  • Receiver-BlockStateChange在动作块状态变化时执行
  • StatePoster,拼合单状态变化时执行
  • Trigger-OrderStateChange,在运单状态变化时执行

seer_callback

智慧物流系统 支持了Block和Order的回调地址,用户只需在仙工RDS Core中配置对应的回调地址。

Block回调地址(废弃)

seer_block_callback

  • ip: 智慧物流系统服务ip地址
  • port: 智慧物流系统服务端口
  • Path:/api/seer/callback/block-state-change

Order回调地址

seer_order_callback

  • condition: OrderStateChanged
  • action: HttpRequest
  • schemeHostPort: 智慧物流系统服务ip地址和端口
  • path: /api/seer/callback/order-state-change
  • expectedStatusCode: 200
  • expectedResponseBody: {"msg":"success", "code":1000}

Modbus 接入

仙工机器人同时提供 Modbus 地址映射,适合通过 PLC、HSL 或第三方上位机直接读写机器人的控制量和状态量。

地址区说明

仙工文档中的四类地址与标准 Modbus 对象类型对应如下:

地址区类型访问方式说明示例
0x线圈(Coils)读写可写状态量,通常写入后机器人会自动清零抢占控制权:00010
1x离散输入(Discrete Inputs)只读只读开关量状态是否急停:00004
3x输入寄存器(Input Registers)只读只读数值状态控制权是否被外部抢占:00043
4x保持寄存器(Holding Registers)读写可写数值型命令或参数导航目标站点:00001

结合当前项目的 HSL 使用习惯,常见写法可以先按下面理解:

语义仙工地址HSL 示例说明
抢占控制权0x 00010x=5;10写入 1,机器人收到后自动回写 0
是否急停1x 00004x=2;40=未急停1=急停
控制权是否被外部抢占3x 00043x=4;430=未被外部抢占1=被外部抢占
导航去哪里4x 00001x=6;1写入目标站点 id,机器人收到后自动回写 0

如果现场驱动启用了首地址从 0 开始、地址前缀映射或自定义偏移,需要以实际驱动配置为准。

常用点位

功能地址类型值说明
抢占控制权0x 00010可写状态量1 为机器人自身抢占控制权
释放控制权0x 00011可写状态量1 为释放控制权给调度系统
是否急停1x 00004只读状态量0=未急停1=急停
机器人定位状态3x 00008只读寄存器0=定位失败1=定位正确2=正在重定位3=定位完成
机器人当前导航状态3x 00009只读寄存器0=无1=等待执行2=执行中3=暂停4=到达5=失败6=取消7=超时
控制权是否被外部抢占3x 00043只读寄存器0=自己抢占或未被抢占1=被外部抢占
导航目标站点4x 00001可写寄存器写入站点 id,大于 0

接入建议

  • 如果需要由外部系统直接控制导航,建议先关注 0x 000100x 000113x 00043 这几个控制权相关地址。
  • 如果需要让机器人导航到指定站点,通常先确认控制权,再向 4x 00001 写入目标站点 id。
  • 如果现场要做安全联锁,至少要持续读取 1x 00004 是否急停、1x 00002 是否阻挡、3x 00009 当前导航状态。
  • float32 类型寄存器会占用连续两个地址,接入 PLC 或上位机时需要注意字节序和高低位顺序。