通信协议
注意:使用通信协议直接控制机器,需使用串口助手进行通讯
1 USB通信设置
请确保您的通信设置如下
- 总线接口: USB Type-C连接
- 波特率: 115200
- 数据位: 8
- 奇偶校验:无
- 停止位: 1
2 命令帧说明及单一指令解析
PC向机械臂发送数据,从机械臂接收到数据后进行解析,如包含返回值的指令,会在20ms内返回给PC
3 命令帧发送与接收格式
所有命令为字符串格式,发送时必须在指令末尾加\r
,指令遵守Gcode命名规则
- 1 命令头: G / M
- 2 命令序号 00 ~ 120
- 现已开发了多种命令
- 可为空
- 3 命令内容: 若干
- 可为空
- 4 命令结束: \r
- 固定
- 必含
4 指令解析
PC向机械臂发送数据,机械臂接收到数据后进行解析,如包含返回值的指令,会在20ms内返回给主机。
类型 | 数据描述 | 数据长度 | 说明 |
---|---|---|---|
命令帧 | 命令头 | 1 | G / M |
命令ID | 1-3 | 00 ~ 120 | |
数据帧 | 命令内容 | 0 ~ | 命令附带数据,视不同命令而定 |
结束帧 | 命令结束 | 1 | \r |
5 单一指令解析
坐标控制
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] | Data[5] | Data[6] | Data[7] | Data[8] | Data[9] | Data[10] |
---|---|---|---|---|---|---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 结束帧 |
数据 | G | 0 | X | X.Value | Y | Y.Value | Z | Z.Value | F | F.Value | \r |
使机械臂以100的速度移动到坐标位置[200,0,0]
串口发送示例:G0 X200 Y0 Z0 F100\r
X.Value取值范围:-260~300 mm
Y.Value取值范围:-300~300 mm
Z.Value取值范围:-130~135 mm
F.Value取值范围:0-200 mm/s
等待(秒)
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] |
---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 结束帧 |
数据 | G | 4 | S | S.Value | \r |
使机械臂等待1秒
串口发送示例:G4 S1\r
使机械臂回到零点
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | G | 28 | \r |
串口发送示例:G28\r
串口返回:DATA: [ok]
设置绝对笛卡尔模式
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | G | 90 | \r |
串口发送示例:G90\r
设置相对笛卡尔模式
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | G | 91 | \r |
使机械臂回到零点
串口发送示例:G91\r
设置当前位置
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] | Data[5] | Data[6] | Data[7] | Data[8] |
---|---|---|---|---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 结束帧 |
数据 | G | 92 | X | X.Value | Y | Y.Value | Z | Z.Value | \r |
把当前位置设置为[0,0,0]
串口发送示例:G92 X0 Y0 Z0\r
把当前位置设置为[100,50,10]
串口发送示例:G92 X100 Y50 Z10\r
X.Value取值范围:-260~300 mm
Y.Value取值范围:-300~300 mm
Z.Value取值范围:-130~135 mm
打开激光
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 3 | \r |
打开激光雕刻笔
串口发送示例:M3\r
关闭激光
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 5 | \r |
关闭激光雕刻笔
串口发送示例:M5\r
设置激光频率
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] |
---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 结束帧 |
数据 | M | 21 | P | P.Value | \r |
设置激光笔频率为200
串口发送示例:M21 P200\r
P.Value取值范围:0~255 数值越大,激光频率越强
关闭吸泵
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 22 | \r |
关闭吸泵
串口发送示例:M22\r
打开吸泵
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 23 | \r |
打开吸泵
串口发送示例:M23\r
将夹爪当前位置设置为零位
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 24 | \r |
夹爪移动到指定位置,将当前位置设置为夹爪零位
串口发送示例:M24\r
提示:夹爪零位出厂前已设置好,请勿任意更改夹爪零位导致夹爪损坏
设置夹爪张开角度
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] | Data[5] | Data[6] |
---|---|---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 结束帧 |
数据 | M | 25 | A | A.Value | F | F.Value | \r |
使夹爪以200的速度移动到50%的位置
串口发送示例:M25 A50 F200\r
A.Value取值范围:0~100 0-全关 100-全开
F.Value取值范围:0~1500 RPM/s
放松夹爪
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 26 | \r |
放松夹爪
串口发送示例:M26\r
打开风扇
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 27 | \r |
打开风扇
串口发送示例:M27\r
提示:机械臂内的风扇默认开启
关闭风扇
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 28 | \r |
关闭风扇
串口发送示例:M28\r
提示:关闭风扇会导致机械臂内部散热效果下降,为避免使用体验,请勿随意关闭风扇
单关节角度控制
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] | Data[5] | Data[6] | Data[7] | Data[8] |
---|---|---|---|---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 结束帧 |
数据 | M | 10 | J | J.Value | A | A.Value | F | F.Value | \r |
使关节1以100的速度移动到90°位置
串口发送示例:M10 J1 A90 F100\r
J.Value取值范围:1/2/3
A.Value取值范围: J1:-150°~170° J2:-20°~90° J3:-5°~60°
F.Value取值范围:0~200 mm/s
所有关节角度控制
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] | Data[5] | Data[6] | Data[7] | Data[8] | Data[9] | Data[10] |
---|---|---|---|---|---|---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 结束帧 |
数据 | M | 11 | X | X.Value | Y | Y.Value | Z | Z.Value | F | F.Value | \r |
使机械臂以100的速度移动到[90,30,30]位置
串口发送示例:M11 X90 Y30 Z30 F100\r
X.Value取值范围:-150°~170°
Y.Value取值范围:-20°~90°
Z.Value取值范围:-5°~60°
F.Value取值范围:0~200 mm/s
获取当前关节角度
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 12 | \r |
串口发送示例:M12\r
串口返回示例:DATA: ANGLES[0.00 ,0.00 ,90.00 ,0.00]
jog-关节方向运动
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] | Data[5] | Data[6] | Data[7] | Data[8] |
---|---|---|---|---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 结束帧 |
数据 | M | 13 | J | J.Value | D | D.Value | F | F.Value | \r |
使关节1以10的速度向正方向持续运动
串口发送示例:M13 J1 D0 F10\r
J.Value取值范围:1/2/3
D.Value取值范围:0-正向 1-负向
F.Value取值范围:0~200 mm/s
jog-坐标方向运动
数据域 | Data[0] | Data[1] | Data[2] | Data[3] | Data[4] | Data[5] | Data[6] | Data[7] | Data[8] |
---|---|---|---|---|---|---|---|---|---|
说明 | 识别帧 | 识别帧 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 参数帧 | 参数取值 | 结束帧 |
数据 | M | 14 | J | J.Value | D | D.Value | F | F.Value | \r |
使机械臂以10的速度向X轴正方向持续运动
串口发送示例:M14 J1 D0 F10\r
J.Value取值范围:1/2/3 1-X轴 2-Y轴 3-Z轴
D.Value取值范围:0-正向 1-负向
F.Value取值范围:0~200 mm/s
jog-停止
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 15 | \r |
使机械臂停止方向运动
串口发送示例:M15\r
放松所有关节
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 17 | \r |
放松机械臂所有关节
串口发送示例:M17\r
所有关节上电
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 18 | \r |
使机械臂所有关节上电
串口发送示例:M18\r
获取当前笛卡尔坐标信息
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 114 | \r |
获取机械臂当前坐标位置
串口发送示例:M114\r
串口返回示例:DATA : COORDS[204.00,0.00,120.00,0.00]
获取当前所有回零开关状态
数据域 | Data[0] | Data[1] | Data[2] |
---|---|---|---|
说明 | 识别帧 | 识别帧 | 结束帧 |
数据 | M | 119 | \r |
获取机械臂所有回零开关状态
串口发送示例:M119\r
串口返回示例:DATA : ENDSTOP[1 ,1 ,1]