Skip to content

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 Bytes0x00,0x01
协议标识2 Bytes0x00,0x02
长度2 Bytes0x00,0x08
寄存器1 Byte0x7C
参数状态1 Byte0x00
内部使用主机 ID1 Byte0x09
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x03
寄存器起始地址2 BytesAddress
寄存器数量2 BytesN*
响应指令格式
Modbus TCP 包头事务标识2 Bytes0x00,0x01
协议2 Bytes0x00,0x02
长度2 Bytes6+N*x2
寄存器1 Byte0x7C
状态1 Byte0x00
内部使用主机 ID1 Byte0x09
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x03
字节数1 ByteN*x2
寄存器值Nx2 BytesValue

注: N* = 寄存器数量

8.2 写入寄存器

写入寄存器
请求指令格式
Modbus TCP 包头事务标识2 Bytes0x00,0x01
协议2 Bytes0x00,0x02
长度2 Bytes9+Nx2
寄存器1 Byte0x7C
内部使用主机 ID1 Byte0x09
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x10
寄存器起始地址2 BytesAddress
寄存器数量2 BytesN*
字节数1 ByteN*x2
寄存器N*x2 BytesValue
响应指令格式
Modbus TCP 包头事务标识2 Bytes0x00,0x01
协议2 Bytes0x00,0x02
长度2 Bytes0x00,0x09
寄存器1 Byte0x7C
参数状态1 Byte0x00
内部使用主机 ID1 Byte0x09
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x10
寄存器起始地址2 BytesAddress
寄存器数量2 BytesN*

8.3 私有TCP协议示例

  1. 写机械爪使能。地址(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
  1. 写机械爪位置为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
  1. 读取报警代码。地址(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
  1. 写机械爪使能,位置(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