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 Bytes | 0x00,0x01 |
协议标识 | 2 Bytes | 0x00,0x02 | |
长度 | 2 Bytes | 0x00,0x08 | |
寄存器 | 1 Byte | 0x7C | |
主机 ID(内部使用) | 1 Byte | 0x09 | |
Modbus RTU 数据 | 机械爪 ID | 1 Byte | 0x08 |
功能码 | 1 Byte | 0x03 | |
寄存器起始地址 | 2 Bytes | Address | |
寄存器数量 | 2 Bytes | N* | |
响应指令格式 | |||
私有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 | |
寄存器值 | N*x2 Bytes | Value |
注:
N* = 寄存器数量
Address = 寄存器起始地址(见下面列表)
寄存器:
寄存器起始地址 | 寄存器值 | ||
---|---|---|---|
获取机械爪状态 | 0x0000 | 2 Bytes | 未使能状态: 0x0000使能中状态: 0x0004使能完成状态: 0x0008 停止状态: 0x0008 运动状态: 0x0009夹取状态: 0x000A 报错状态: 0x000B |
获取机械爪错误 | 0x000F | 2 Bytes | 有错误: 其他返回值都代表有错误(除0以外) 无错误: 0x0000 |
8.1.3 写入寄存器
写入寄存器 | |||
---|---|---|---|
请求指令格式 | |||
私有TCP 包头 | 事务标识 | 2 Bytes | 0x00,0x01 |
协议 | 2 Bytes | 0x00,0x02 | |
长度 | 2 Bytes | 9+N*x2 | |
寄存器 | 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 | |
响应指令格式 | |||
私有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* |
注: N* = 寄存器数量
Address= 寄存器起始地址(见下面列表)
寄存器:
寄存器起始地址 | 寄存器值 | ||
---|---|---|---|
使能/关闭机械爪 | 0x0100 | 2 Bytes | 使能: 0x0001 停用: 0x0000 |
设置机械爪位置 | 0x0700 | 4 Bytes | 打开机械爪: 0x0000 0x0082 闭合机械爪: 0x0000 0x0032 |
设置机械爪速度 | 0x0303 | 2 Bytes | 0x0000-0x0BB8 |
清除机械爪错误 | 0x000F | 2 Bytes | 0x0000 |
8.1.4 私有TCP示例
使用私有TCP控制BIO机械爪G2开合,模式0。
- 设置机械爪模式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
- 使能机械爪。地址: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
- 打开机械爪。
模式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
- 关闭机械爪。
模式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