Skip to content

核心概念

编程模型

控制器二次开发采用事件驱动模型:

  1. 启动 → NRC_StartController 启动控制器
  2. 初始化 → 轮询 NRC_GetControlInitComplete 等待就绪
  3. 配置 → 设置操作模式、伺服状态、坐标系等
  4. 主循环 → 执行作业文件或队列运动,处理回调
  5. 清理 → 停止并释放资源

操作模式

模式常量说明
示教0人工操作单个机器人,安全优先
远程1上位机接管控制权
运行2自动执行作业文件,支持多机并行

运动方式

方式说明适用场景
作业文件预编程序列,支持循环和逻辑固定任务
队列模式(无文件)直接下发目标点上位机实时控制
追加模式边运动边追加新指令视觉引导

坐标系

坐标类型coord 参数
关节坐标0
直角坐标1
工具坐标2
用户坐标3

伺服状态

  • 停止(0) — 未使能
  • 就绪(1) — 等待上电
  • 报警(2) — 错误状态,需要清错
  • 运行(3) — 已上电,可运动

系统启动流程

控制器启动后按以下流程完成初始化:

  1. 启动 → NRC_StartController 启动控制器核心
  2. 等待就绪 → 轮询 NRC_GetControlInitComplete 直到返回初始化完成
  3. 系统配置 → 设置操作模式(示教/远程/运行)、伺服状态、坐标系
  4. 工艺配置 → 选择工艺号(craftID 1-9)、设置工艺参数
  5. 运行 → 执行作业文件或队列运动,进入主循环
  6. 停止 → 停止运动、下电、释放资源

初始化未完成前不应下发运动指令,否则可能返回错误或导致不可预期行为。

指令系统

指令类型说明示例
运动指令控制机器人运动MoveJ、MoveL、MoveC、样条曲线、直线横摆、FLYBY
逻辑指令程序流程控制IF、WHILE、UNTIL、JUMP、LABEL
输入输出指令控制 IO 信号IO_OUT、延时 TIMER
运算指令数据计算与变量操作数学运算、字符串、位置变量

位置控制方式

方式说明
点到点控制(PTP)关节空间快速定位,路径不固定(MoveJ)
连续轨迹控制(CP)笛卡尔空间直线/圆弧/样条,路径精确(MoveL/MoveC)

坐标系与构型算法

坐标系统说明
关节坐标系各关节电机的角度位置
机器人坐标系末端相对机器人底座的位置(直角坐标)
工具坐标系末端安装工具后的 TCP 位置
用户坐标系工作台上自定义的局部坐标系

控制器内置 20 余种构型算法(6 轴串联、SCARA、并联、直角坐标、连杆结构等),每种构型对应独立的 DH 参数与正逆解算法。

多机模式

模式说明
单机模式默认模式,控制 1 号机器人
并行模式多台机器人同步运行,通过 set_robots_parallel 开启
双机协作两台机器人启停完全同步,用于协同作业场景

事件回调

控制器二次开发采用事件驱动模型,通过回调函数响应异步事件:

回调触发时机
指令完成回调一条 move 指令执行完成
消息回调收到控制器推送的消息
错误/警告回调控制器上报错误或警告信息
周期回调周期性调用,用于实时数据处理

回调函数内不应执行阻塞或耗时操作,耗时任务应放入独立线程。