Skip to content

8.附录-UFACTORY私有TCP协议控制 ​

本附录关于如何使用UFACTORY私有TCP协议控制BIO机械爪G2

8.1 私有TCP通讯协议 ​

8.1.1 寄存器地址说明 ​

参考寄存器地址说明

Modbus协议是一项应用层报文传输协议,有ASCII、RTU、TCP三种报文类型。标准Modbus协议物理层接口有RS232、RS422、RS485和以太网接口,采用master/slave方式通信。
BIO机械爪G2支持私有TCP协议,与标准Modbus TCP类似但不完全相同。

私有TCP通信过程:
(1)建立TCP连接
(2)准备私有TCP报文
(3)使用send命令发送报文
(4)在同一连接下等待应答
(5)使用recv命令读取报文,完成一次数据交换
(6)通信任务结束时,关闭TCP连接

参数:
默认TCP端口:502
协议标识:0x00 0x02 控制(当前只有这一个)
在本章节中,数据解析均为大端解析。

8.1.2 读取保持寄存器 ​

读取保持寄存器
请求指令格式
私有TCP 包头事务标识2 Bytes0x00,0x01
协议标识2 Bytes0x00,0x02
长度2 Bytes0x00,0x08
寄存器1 Byte0x7C
主机 ID(内部使用)1 Byte0x09
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x03
寄存器起始地址2 BytesAddress
寄存器数量2 BytesN*
响应指令格式
私有TCP 包头事务标识2 Bytes0x00,0x01
协议2 Bytes0x00,0x02
长度2 Bytes*6+N*x2
寄存器1 Byte0x7C
状态1 Byte0x00
主机 ID(内部使用)1 Byte0x09
Modbus RTU 数据机械爪 ID1 Byte0x08
功能码1 Byte0x03
字节数1 ByteN*x2
寄存器值N*x2 BytesValue

注:
N* = 寄存器数量
Address = 寄存器起始地址(见下面列表)

寄存器:

寄存器起始地址寄存器值
获取机械爪状态0x00002 Bytes未使能状态: 0x0000使能中状态: 0x0004使能完成状态: 0x0008 停止状态: 0x0008 运动状态: 0x0009夹取状态: 0x000A 报错状态: 0x000B
获取机械爪错误0x000F2 Bytes有错误: 其他返回值都代表有错误(除0以外) 无错误: 0x0000

8.1.3 写入寄存器 ​

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

注: N* = 寄存器数量
Address= 寄存器起始地址(见下面列表)

寄存器:

寄存器起始地址寄存器值
使能/关闭机械爪0x01002 Bytes使能: 0x0001 停用: 0x0000
设置机械爪位置0x07004 Bytes打开机械爪: 0x0000 0x0082 闭合机械爪: 0x0000 0x0032
设置机械爪速度0x03032 Bytes0x0000-0x0BB8
清除机械爪错误0x000F2 Bytes0x0000

8.1.4 私有TCP示例 ​

使用私有TCP控制BIO机械爪G2开合,模式0。

  1. 设置机械爪模式0。地址:0x010A,断电后仍生效。
发:00 01 00 02 00 08 7C 09 08 06 11 0A 00 00
收:00 01 00 02 00 09 7C 50 09 08 06 11 0A 00 00
  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 50 09 08 10 01 00 00 01
  1. 打开机械爪。
模式0没有位置控制,发送位置>90,则打开机械爪。 (OCT)130=(HEX)0082
发:00 01 00 02 00 0d 7C 09 08 10 07 00 00 02 04 00 00 00 82
收:00 01 00 02 00 09 7C 50 09 08 10 07 00 00 02
  1. 关闭机械爪。
模式0没有位置控制,发送位置≤90,则关闭机械爪。 (OCT)50=(HEX)0032
发:00 01 00 02 00 0d 7C 09 08 10 07 00 00 02 04 00 00 00 32
收:00 01 00 02 00 09 7C 50 09 08 10 07 00 00 02