7.附录
7.1 附录1-用Modbus RTU通讯协议控制直线滑轨
7.1.1 简要介绍
直线滑轨默认为标准Modbus RTU协议,默认波特率2Mbps,直线滑轨ID为0x01。目前支持的功能码有:0x03/0x06/0x10。
直线导轨常用的地址有:0x0100(直线滑轨使能)、0x0700(直线滑轨位置命令)、0x0303(直线滑轨运行速度)、0x0A0A(直线滑轨回零)、0x0404(直线滑轨回零速度)、0x004F(获取直线滑轨回零完成状态)。
如果需要存EEPROM,将通讯地址和0x1000进行'或'运算。
例如:写伺服运行模式到EEPROM中。通讯地址(0x0A0B)需改为0x1A0B 注:直线导轨每次上电后需要初始化一次
7.1.2 读取直线滑轨寄存器
读取保持寄存器 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | Address | |
寄存器数量 | 2 Bytes | N* | |
Modbus CRC 16 | 2 Bytes | CRC* | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
字节数 | 1 Byte | N*x2 | |
寄存器值 | N*x2 Bytes | Value | |
Modbus CRC16 | 2 Bytes | CRC* |
注:N* = 寄存器数量
Address= 寄存器起始地址(见下面列表)
CRC* = 循环冗余校验
寄存器起始地址 | 寄存器值 | ||
---|---|---|---|
获取直线滑轨状态 | 0x0000 | 2bytes | 定位结束:0x0000 运动状态:0x0001 停止状态:0x0002 急停和断使能,都属于停止状态。 |
获取直线滑轨位置 | 0x0702 | 4bytes | 位置取值范围: 0xFFFFFFFB-0x00000320 |
获取直线滑轨错误 | 0x000F | 2bytes | 有错误: 其他返回值都代表有错误(除0以外) 无错误:0x0000 |
7.1.3 写入直线滑轨寄存器
写入寄存器 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | Address | |
寄存器数量 | 2 Bytes | N* | |
字节数 | 1 Byte | N*x2 | |
寄存器 | N*x2 Bytes | Value | |
Modbus CRC 16 | 2 Bytes | CRC* | |
响应指令格式 | |||
*Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | Address | |
寄存器数量 | 2 Bytes | N* | |
Modbus CRC 16 | 2 Bytes | CRC* |
注:
N* = 寄存器数量
Address= 寄存器起始地址(见下面列表)
CRC* = 循环冗余校验
7.1.4 Modbus RTU示例
- 使能直线滑轨
使能直线滑轨 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线导轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x01,0x00 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
字节数 | 1 Byte | 0x02 | |
寄存器 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0x1D,0x00 | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x01,0x00 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0x00,0xAC |
- 设置直线滑轨位置
设置直线滑轨位置 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x07,0x00 | |
寄存器数量 | 2 Bytes | 0x00,0x02 | |
字节数 | 1 Byte | 0x04 | |
寄存器:直线导轨位置200MM | 4 Bytes | 0x00,0x1E,0x84,0x80 | |
Modbus CRC16 | 2 Bytes | 0x7B,0x62 | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x07,0x00 | |
寄存器数量 | 2 Bytes | 0x00,0x02 | |
Modbus CRC16 | 2 Bytes | 0x40,0x25 |
- 设置直线滑轨速度
设置直线滑轨速度 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x03,0x03 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
字节数 | 1 Byte | 0x02 | |
寄存器(设置速度为6000r/min) | 2 Bytes | 0x17,0x70 | |
Modbus CRC16 | 2 Bytes | 0xFD,0xFA | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x03,0x03 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0xF1,0x14 |
- 设置直线滑轨回零
设置直线滑轨回零 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x06 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x0A | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0xFD,0xFA | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x0A | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0xFD,0xFA |
- 设置直线滑轨回零速度
设置直线滑轨回零速度 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x04,0x04 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
字节数 | 1 Byte | 0x02 | |
寄存器设置速度为3000r/min | 2 Bytes | 0x0B,0xB8 | |
Modbus CRC16 | 2 Bytes | 0xFD,0xFA | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x04,0x04 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0xF1,0x14 |
- 获取直线滑轨回零是否完成
获取直线滑轨回零是否完成 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x25 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0XB5,0xDD | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
字节数 | 1 Bytes | 0x02 | |
寄存器值 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0x79,0x84 |
- 监控光电传感器与第一个Z相(离开光电传感器后遇到的第一个Z相)的距离
监控光电传感器与第一个Z相(离开光电传感器后遇到的第一个Z相)的距离 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x28 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0xE4,0x1D | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
字节数 | 1 Bytes | 0x02 | |
寄存器值 | 2 Bytes | 0x06,0xF2 | |
Modbus CRC16 | 2 Bytes | 0x3A,0x61 |
注:这个的寄存器值是要在回零完成后,才能获取。可以通过移动光电传感器改变此值。此值最大值是 4000, 建议最好大于 1000.
- 定位结束范围
设置定位结束范围 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x0B | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
字节数 | 1 Byte | 0x02 | |
寄存器设置范围为1000 | 2 Bytes | 0x03,0xE8 | |
Modbus CRC16 | 2 Bytes | 0x0C,0xC0 | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x0B | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0x73,0xD3 |
- 软急停
触发软急停 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x0E | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
字节数 | 1 Byte | 0x02 | |
寄存器 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0xCC,0xBE | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x0E | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0x63,0xD2 |
- 直线滑轨SN区域
寄存器地址从0x0B10 - 0x0B1F
获取直线滑轨SN | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | 0x0B,0x10 | |
寄存器数量 | 2 Bytes | 0x00,0x02 | |
Modbus CRC16 | 2 Bytes | 0XB5,0xDD | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
字节数 | 1 Bytes | 0x04 | |
寄存器值 | 2 Bytes | ||
Modbus CRC16 | 2 Bytes |
- 获取输入SCI状态
获取输入SCI状态 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x26 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0x86,0x17 | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
字节数 | 1 Byte | 0x02 | |
寄存器值 | 2 Bytes | ** | |
Modbus CRC16 | 2 Bytes | ** |
- 获取输出SCO状态
获取输出SCO状态 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x27 | |
寄存器数量 | 2 Bytes | 0x00,0x01 | |
Modbus CRC16 | 2 Bytes | 0xD7 0xD7 | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
字节数 | 1 Bytes | 0x02 | |
寄存器值 | 2 Bytes | ** | |
Modbus CRC16 | 2 Bytes | ** |
- 获取状态区域
起始地址 0x0A20
获取状态区域 | |||
---|---|---|---|
请求指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | 0x0A,0x20 | |
寄存器数量 | 2 Bytes | 0x00,0x08 | |
Modbus CRC16 | 2 Bytes | 0x46 0x1E | |
响应指令格式 | |||
Modbus RTU 数据 | 直线滑轨 ID | 1 Byte | 0x01 |
功能码 | 1 Byte | 0x03 | |
字节数 | 1 Bytes | 0x10 | |
寄存器值 | 16 Bytes | ** | |
Modbus CRC16 | 2 Bytes | ** |
寄存器值 - 16 Bytes: 00 00 0F A0 00 00 00 00 00 01 00 01 00 02 00 02
1-4 bytes: 00 00 0F A0 , 相对零点的当前位置(单位:脉冲个数)
5-6 bytes: 00 00, 获取直线滑轨状态(与地址0x0000相同)
7-8 bytes: 00 00, 错误码
9-10 bytes: 00 01, 使能状态
11-12 bytes: 00 01, 回零状态
12-14 bytes: 00 02, SCI状态
15-16 bytes: 00 02, SCO状态