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