Skip to content

5. IO

API 列表

IO

xArm系列机械臂的IO分为两部分:控制盒IO机械臂IO

API函数描述
set_cgpio_digital()设置控制盒数字IO输出
get_cgpio_digital()获取控制盒数字IO输入
set_cgpio_analog()设置控制盒模拟IO输出
get_cgpio_analog()获取控制盒模拟IO输入
set_cgpio_digital_input_function()设置控制盒数字输入的功能
set_cgpio_digital_output_function()设置控制盒数字输出的功能
set_tgpio_digital()设置机械臂末端数字IO输出
get_tgpio_output_digital()获取机械臂末端数字IO输出
get_tgpio_digital()获取机械臂末端数字IO输入
get_tgpio_analog()获取机械臂末端模拟输入

控制盒IO

控制盒IO位于控制盒上,通常用于与外部设备(如PLC、传感器等)进行信号交互。

设置控制盒数字输出 (Digital Output)

使用 set_cgpio_digital(io_num, value) 方法可以设置控制盒数字IO的输出电平。

  • io_num: IO端口号,范围是 0-15(Lite 6 是0-7)。
  • value: IO口的电平值,0代表低电平,1代表高电平。

示例: 设置控制器IO 7为高电平。

python
arm.set_cgpio_digital(7, 1)

获取控制盒数字输入 (Digital Input)

使用 get_cgpio_digital() 方法可以获取所有控制盒数字IO的输入电平。返回值是一个包含错误码和IO值的元组。

示例: 获取并打印所有控制盒数字输入的状态。

python
code, digitals = arm.get_cgpio_digital()
if code == 0:
    print("控制盒数字输入状态:", digitals)

设置控制盒模拟输出 (Analog Output)

使用 set_cgpio_analog(io_num, value) 方法可以设置控制盒模拟IO的输出值。

  • io_num: 模拟IO端口号,通常是 0 或 1。
  • value: 要设置的模拟量值,范围是 0-10.0 (单位V)。

示例: 设置控制盒模拟输出AO0的电压为 5.0V。

python
arm.set_cgpio_analog(0, 5.0)

获取控制盒模拟输入 (Analog Input)

使用 get_cgpio_analog() 方法可以获取控制盒模拟IO的输入值。

  • io_num: 模拟IO端口号, 0 或 1。

示例: 获取控制盒模拟输入CI0的值。

python
code, analog_val = arm.get_cgpio_analog(0)
if code == 0:
    print("控制盒模拟输入0的值:", analog_val)

机械臂IO

机械臂IO(工具端IO)的功能与API与控制盒IO类似,具体如下:

IO类型API函数描述
数字输出 (DO)set_tgpio_digital()设置工具端数字输出端口的电平
数字输入 (DI)get_tgpio_digital()获取工具端数字输入端口的电平
模拟输入 (AI)get_tgpio_analog()获取工具端模拟输入端口的值

设置控制盒数字输入功能

使用 set_cgpio_digital_input_function(ionum, fun) 方法可以配置控制盒数字输入端口的功能。

  • ionum: IO端口号,范围0-15
  • fun: 功能模式,具体如下:
    • 0: 通用输入 (General Input)
    • 1: 停止运动 (Stop Motion)
    • 2: 保护复位 (Protection Reset)
    • 11: 离线任务 (Offline Task)
    • 12: 手动模式 (Manual Mode)
    • 13: 缩减模式 (Reduced Mode)
    • 14: 使能机械臂 (Enable Robot)

示例: 将数字输入端口 CI0 配置为停止运动。当 CI0 接收到信号时,机械臂将立即停止运动并清空缓存指令,与set_state(4)等效,不回切断机械臂电源。

python
# 将CI0 (ionum=0) 配置为外部紧急停止 (fun=1)
arm.set_cgpio_digital_input_function(0, 1)

# 如需恢复配置IO功能为通用输入
arm.set_cgpio_digital_input_function(0, 0)

设置控制盒数字输出功能

使用 set_cgpio_digital_output_function(ionum, fun) 方法可以配置控制盒数字输出端口的功能。

  • ionum: IO端口号,范围是 0~7 (对应CO0~CO7) 和 8~15 (对应DO0~DO7)。
  • fun: 功能模式,具体如下:
    • 0: 通用输出 (General Output)
    • 1: 运动停止 (Motion Stop)
    • 2: 运动中 (Moving)
    • 11: 有错误 (Has Error)
    • 12: 有警告 (Has Warn)
    • 13: 发生碰撞 (Collision)
    • 14: 示教中 (In Manual Mode)
    • 15: 离线任务中 (In Offline Task)
    • 16: 缩减模式中 (In Reduced Mode)
    • 17: 已使能 (Robot Is Enabled)
    • 18: 紧急停止已按下 (Emergency Stop is Pressed)

示例: 将数字输出端口 CO0 配置为机械臂错误状态指示。当机械臂出现错误时,CO0 会输出高电平。

python
# 将CO0 (ionum=0) 配置为错误状态指示 (fun=11)
arm.set_cgpio_digital_output_function(0, 11)

# 如需恢复配置IO功能为通用输出
arm.set_cgpio_digital_output_function(0, 0)