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-15fun
: 功能模式,具体如下: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)