8. 附录-UFACTORY私有协议控制
Modbus协议是一项应用层报文传输协议,有ASCII、RTU、TCP三种报文类型。标准Modbus协议物理层接口有RS232、RS422、RS485和以太网接口,采用master/slave方式通信。
机械爪G2使用UFACTORY私有TCP协议,与标准Modbus TCP类似但不完全相同。
私有TCP通信过程: (1)建立TCP连接 (2)准备私有TCP报文 (3)使用send命令发送报文 (4)在同一连接下等待应答 (5)使用recv命令读取报文,完成一次数据交换 (6)通信任务结束时,关闭TCP连接
参数: 默认TCP端口:502 协议标识:0x00 0x02 控制(当前只有这一个) 在本章节中,数据解析均为大端解析。
8.1 读取寄存器
读取寄存器 | |||
---|---|---|---|
请求指令格式 | |||
Modbus TCP 包头 | 事务标识 | 2 Bytes | 0x00,0x01 |
协议标识 | 2 Bytes | 0x00,0x02 | |
长度 | 2 Bytes | 0x00,0x08 | |
寄存器 | 1 Byte | 0x7C | |
参数 | 状态 | 1 Byte | 0x00 |
内部使用 | 主机 ID | 1 Byte | 0x09 |
Modbus RTU 数据 | 机械爪 ID | 1 Byte | 0x08 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | Address | |
寄存器数量 | 2 Bytes | N* | |
响应指令格式 | |||
Modbus TCP 包头 | 事务标识 | 2 Bytes | 0x00,0x01 |
协议 | 2 Bytes | 0x00,0x02 | |
长度 | 2 Bytes | 6+N*x2 | |
寄存器 | 1 Byte | 0x7C | |
状态 | 1 Byte | 0x00 | |
内部使用 | 主机 ID | 1 Byte | 0x09 |
Modbus RTU 数据 | 机械爪 ID | 1 Byte | 0x08 |
功能码 | 1 Byte | 0x03 | |
字节数 | 1 Byte | N*x2 | |
寄存器值 | Nx2 Bytes | Value |
注: N* = 寄存器数量
8.2 写入寄存器
写入寄存器 | |||
---|---|---|---|
请求指令格式 | |||
Modbus TCP 包头 | 事务标识 | 2 Bytes | 0x00,0x01 |
协议 | 2 Bytes | 0x00,0x02 | |
长度 | 2 Bytes | 9+Nx2 | |
寄存器 | 1 Byte | 0x7C | |
内部使用 | 主机 ID | 1 Byte | 0x09 |
Modbus RTU 数据 | 机械爪 ID | 1 Byte | 0x08 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | Address | |
寄存器数量 | 2 Bytes | N* | |
字节数 | 1 Byte | N*x2 | |
寄存器 | N*x2 Bytes | Value | |
响应指令格式 | |||
Modbus TCP 包头 | 事务标识 | 2 Bytes | 0x00,0x01 |
协议 | 2 Bytes | 0x00,0x02 | |
长度 | 2 Bytes | 0x00,0x09 | |
寄存器 | 1 Byte | 0x7C | |
参数 | 状态 | 1 Byte | 0x00 |
内部使用 | 主机 ID | 1 Byte | 0x09 |
Modbus RTU 数据 | 机械爪 ID | 1 Byte | 0x08 |
功能码 | 1 Byte | 0x10 | |
寄存器起始地址 | 2 Bytes | Address | |
寄存器数量 | 2 Bytes | N* |
8.3 私有TCP协议示例
- 写机械爪使能。地址(0x0100)
发:00 01 00 02 00 0B 7C 09 08 10 01 00 00 01 02 00 01
收:00 01 00 02 00 09 7C 00 09 08 10 01 00 00 01
- 写机械爪位置为400。地址(0x0700)
发:00 01 00 02 00 0D 7C 09 08 10 07 00 00 02 04 00 00 01 90
收:00 01 00 02 00 09 7C 00 09 08 10 07 00 00 02
- 读取报警代码。地址(0x000F)
发:00 01 00 02 00 08 7C 09 08 03 00 0F 00 01
收:00 01 00 02 00 08 7C 30 09 08 03 02 00 00
- 写机械爪使能,位置(850),速度(3000),力(50)。地址(0x0Cxx)
发:00 01 00 02 00 11 7C 09 08 10 0C 00 00 05 0A 00 01 0B B8 00 32 03 52
收:00 01 00 02 00 09 7C 30 09 08 10 0C 00 00 05