Skip to content

RM机械臂Modbus从站地址表

睿尔曼机械臂支持modbus从站功能,并且从站功能在modbus-rtu和modbus-tcp上均支持,所有的从站共享地址表和相应功能。

  • Modbus-TCP:使用有线网口或无线网口通讯,IP地址为机械臂IP地址,端口为502,设备ID为1。
  • Modbus-RTU:使用控制器485接口通讯,波特率支持9600、115200、460800三种常见的波特率,从机地址:01。

注意: 用户自定义使用寄存器地址时,优先使用3000及以后的地址,防止程序升级带来的地址占用与用户自定义功能冲突。

1.地址说明

1.1线圈

地址功能值说明
0用户数字IO1模式;0:输入;
1:输出;
1用户数字IO1;0:低;
1:高;
2用户数字IO2模式;0:输入;
1:输出;
3用户数字IO2;0:低;
1:高;
4用户数字IO3模式;0:输入;
1:输出;
5用户数字IO3;0:低;
1:高;
6用户数字IO4模式;0:输入;
1:输出;
7用户数字IO4;0:低;
1:高;
48Joint1使能状态;0-未使能;
1-使能;(暂不支持控制)
49Joint2使能状态;0-未使能;
1-使能;(暂不支持控制)
50Joint3使能状态;0-未使能;
1-使能;(暂不支持控制)
51Joint4使能状态;0-未使能;
1-使能;(暂不支持控制)
52Joint5使能状态;0-未使能;
1-使能;(暂不支持控制)
53Joint6使能状态;0-未使能;
1-使能;(暂不支持控制)
54Joint7使能状态;0-未使能;
1-使能;(暂不支持控制)

1.2离散输入

地址功能值说明
0用户数字IO1模式;0:输入;
1:输出;
1用户数字IO1;0:低;
1:高;
2用户数字IO2模式;0:输入;
1:输出;
3用户数字IO2;0:低;
1:高;
4用户数字IO3模式;0:输入;
1:输出;
5用户数字IO3;0:低;
1:高;
6用户数字IO4模式;0:输入;
1:输出;
7用户数字IO4;0:低;
1:高;

1.3保持寄存器

2000-2200的区间的地址(包含2000和2200),均可以实现自动寄存器断电保存

地址功能值说明
0VOUT输出电压。0:0V;
2:12V;
3:24V。
1指定编程程序运行编号,输入1-100之间的数据,控制器运行完成后清零,运行失败后,设为-1。输入:1-100
输出:0 成功 ;-1失败。
2指定运行速度,输入1-100的数据,寄存器1控制机械臂程序启动后,速度生效,数据即清零,1-100 表示速度
3控制编程程序,输入1-3的数据,控制器检测到后,即清零。1代表急停;
2代表暂停;
3代表继续。
1~149预留
150运动位置参数1高两字节
151运动位置参数1低两字节
152运动位置参数2高两字节
153运动位置参数2低两字节
154运动位置参数3高两字节
155运动位置参数3低两字节
156运动位置参数4高两字节
157运动位置参数4低两字节
158运动位置参数5高两字节
159运动位置参数5低两字节
160运动位置参数6高两字节
161运动位置参数6低两字节
162运动位置参数7高两字节
163运动位置参数7低两字节
164运动位置参数8高两字节
165运动位置参数8低两字节
166运动位置参数9高两字节
167运动位置参数9低两字节
168运动位置参数10高两字节
169运动位置参数10低两字节
170运动位置参数11高两字节
171运动位置参数11低两字节
172运动位置参数12高两字节
173运动位置参数12低两字节
174-179预留
180运动类型1-MoveJ;
2-MoveJP;
3-MoveL;
4-MoveC;
181运动指令:1-开始运动 2-停止运动
182速度百分比1-100 速度比例
183交融半径高两字节
184交融半径低两字节
185循环次数。
228查询和设置当前碰撞等级,通过该地址可查询当前碰撞等级,也可写入等级进行设置,只支持的等级设置,与Json协议等级一致,超出此范围会自动使用最大的8等级。0-8 表示碰撞等级

1.4输入寄存器

地址功能值说明
0末端位置 X坐标,单位mm无符号整型,负数取补码
1末端位置 Y坐标,单位mm无符号整型,负数取补码
2末端位置 Z坐标,单位mm无符号整型,负数取补码
3末端姿态 RX,单位radian无符号整型,负数取补码
4末端姿态 RY,单位radian无符号整型,负数取补码
5末端姿态 RZ,单位radian无符号整型,负数取补码
6Joint1关节角,单位deg无符号整型,负数取补码
7Joint2关节角,单位deg无符号整型,负数取补码
8Joint3关节角,单位deg无符号整型,负数取补码
9Joint4关节角,单位deg无符号整型,负数取补码
10Joint5关节角,单位deg无符号整型,负数取补码
11Joint6关节角,单位deg无符号整型,负数取补码
12Joint7关节角,单位deg无符号整型,负数取补码
13Joint1电流,单位mA无符号整型,负数取补码
14Joint2电流,单位mA无符号整型,负数取补码
15Joint3电流,单位mA无符号整型,负数取补码
16Joint4电流,单位mA无符号整型,负数取补码
17Joint5电流,单位mA无符号整型,负数取补码
18Joint6电流,单位mA无符号整型,负数取补码
19Joint7电流,单位mA无符号整型,负数取补码
20Joint1电压,单位V无符号整型,负数取补码
21Joint2电压,单位V无符号整型,负数取补码
22Joint3电压,单位V无符号整型,负数取补码
23Joint4电压,单位V无符号整型,负数取补码
24Joint5电压,单位V无符号整型,负数取补码
25Joint6电压,单位V无符号整型,负数取补码
26Joint7电压,单位V无符号整型,负数取补码
27Joint1温度,单位℃无符号整型,负数取补码
28Joint2温度,单位℃无符号整型,负数取补码
29Joint3温度,单位℃无符号整型,负数取补码
30Joint4温度,单位℃无符号整型,负数取补码
31Joint5温度,单位℃无符号整型,负数取补码
32Joint6温度,单位℃无符号整型,负数取补码
33Joint7温度,单位℃无符号整型,负数取补码
34系统错误码,查询Json协议获取详细含义
35心跳(每秒+1)
36位置 X坐标,单位mmFloat型
38位置 Y坐标,单位mmFloat型
40位置 Z坐标,单位mmFloat型
42姿态 RX,单位radianFloat型
44姿态 RY,单位radianFloat型
46姿态 RZ,单位radianFloat型
48Joint1关节角,单位degFloat型
50Joint2关节角,单位degFloat型
52Joint3关节角,单位degFloat型
54Joint4关节角,单位degFloat型
56Joint5关节角,单位degFloat型
58Joint6关节角,单位degFloat型
60Joint7关节角,单位degFloat型
99表示编程程序运行状态 0代表无运行 1代表正在运行,3代表正在暂停
100表示机械臂运行编程程序的行数
101表示当前正在运行的编程程序ID,0代表为未存储轨迹
200Joint1错误码可查询Json协议文档
201Joint2错误码可查询Json协议文档
202Joint3错误码可查询Json协议文档
203Joint4错误码可查询Json协议文档
204Joint5错误码可查询Json协议文档
205Joint6错误码可查询Json协议文档
206Joint7错误码可查询Json协议文档
300轨迹规划运动到位状态0-未到位 1-到位 2-规划失败
301轨迹规划状态0-未规划,1-正在规划

2.数据转换

下列为寄存器转浮点角度方法:

C
    float fun(quint16 H,quint16 L)
    {
        FloatTo4Bytes uValue;
        uValue.Byte[3] = (H >> 8) & 0xFF;
        uValue.Byte[2] = H & 0x00FF;
        uValue.Byte[1] = (L >> 8) & 0xFF;
        uValue.Byte[0] = L & 0x00FF;
        return uValue.a;
    }

3.运动控制示例

以MoveJ为例,保持寄存器地址与目标关节角度信息示例: alt text说明: 寄存器地址150-161存储了关节1到关节6的目标角度信息,相邻两个寄存器地址存储一个关节角度,浮点类型,高位在前。浮点类型角度信息转寄存器数值方法:

C
void fun(float value, quint16 *H, quint16 *L)
{
    quint8 buf[4] = {0};
    memcpy(buf, &value, sizeof(float));
    *H = ((quint16)buf[3]<<8)|buf[2];
    *L = ((quint16)buf[1]<<8)|buf[0];
}

MoveJ保持寄存器地址与运动控制参数示例: alt text

说明: 地址180:当前运动类型,0-None, 1-MoveJ, 2-MoveJ_P, 3-MoveL, 4-MoveC; 地址181:运动指令,1-开始运动 2-停止运动; 地址182:速度百分比例系数,0~100; 地址183:交融半径高位; 地址184:交融半径低位; 地址185:循环圈数(仅限MoveC使用);