Skip to content

3.控制方式

3.1UFACTORY Studio控制

  1. 设置xArm真空吸头

进入设置-运动参数-TCP设置

安装真空吸头后,设置Tcp负载和偏移,选择xarm真空吸头,并保存.当真空吸头吸取物体后,其重量发生变化,则需要设置新的TCP负载

  1. 控制xArm真空吸头
  • 在实时控制界面控制xArm真空吸头

控制方法:

在实时控制界面选择真空吸头,首先选择连接方式,然后通过点击打开/关闭按钮,来控制真空吸头的打开和关闭。

  • 通过Blockly编程来控制xArm真空吸头

在blockly模块中找到示例文件1008_xArm_Vacuum_Gripper

这段程序的作用:执行此程序,可控制真空吸头在指定位置吸取目标物,然后将目标物放到特定的位置。

注意:

1)当真空吸头安装到机械臂上时,在Blockly程序中应当设置TCP负载,当真空吸头吸取物体后,其重量发生变化,则需要设置新的TCP负载。

3.2Python-SDK 控制

真空吸头的使用接口:

arm.set_vacuum_gripper(True, wait=False)    #开启真空吸头 

arm.set_vacuum_gripper(False, wait=False)   #关闭真空吸头

Python-SDK下载地址: https://github.com/xArm-Developer/xArm-Python-SDK

3.3. ROS-SDK 控制

请参照ROS包中附带的ReadMe文件中的第5.7.8节来控制真空吸头的打开和关闭。

ROS-SDK下载地址: https://github.com/xArm-Developer/xarm_ros

3.4 UFACTORY私有TCP协议控制

本节主要阐述了如何通过调用xArm控制器的Modbus-TCP协议来控制xArm真空吸头。

3.4.1 私有TCP通信协议

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

私有TCP通信过程:

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

参数: 默认TCP端口:502

协议标识:0x00 0x02 控制(当前只有这一个)

关于用户使用通信协议组织数据的大小端问题:

在本章节中,数据解析均为大端解析

3.4.2 私有TCP示例

  • 打开/关闭真空吸头

可以通过发送下面的指令来控制真空吸头的打开和关闭。

打开真空吸头00 01 00 02 00 08 7F 09 0A 15 00 80 80 4300 01 00 02 00 08 7F 09 0A 15 00 00 00 44
关闭真空吸头00 01 00 02 00 08 7F 09 0A 15 00 00 80 4300 01 00 02 00 08 7F 09 0A 15 00 80 00 44

具体参数请参照下面的表格。

设置末端数字量输出
寄存器:127 (0x7F)
请求指令格式
Modbus TCP 包头事务标识2 Bytesu160x00,0x01
协议2 Bytesu160x00,0x02
长度2 Bytesu160x00,0x08
寄存器1 Byteu80x7F
参数主机ID1 Byteu80x09
寄存器起始地址2 Bytesu160x0A,0x15
参数1(打开0)数据256.0:关闭0;257.0:打开0;512.0:关闭1;514:打开14 Bytesfp320x00,0x80,0x80,0x43
响应指令格式
Modbus TCP 包头事务标识2 Bytesu160x00,0x01
协议2 Bytesu160x00,0x02
长度2 Bytesu160x00,0x02
寄存器1 Byteu80x7F
参数状态1 Byteu80x00
  • 获取真空吸头的状态

获取真空吸头状态的步骤见下表:

可以通过发送下面的请求指令来获取真空吸头的状态。

获取状态(请求指令)00 01 00 02 00 04 80 09 0A 14
获取状态(响应指令) (真空吸头已吸取物体)00 01 00 02 00 06 80 00 00 00 00 01
获取状态(响应指令) (真空吸头未吸取物体)00 01 00 02 00 06 80 00 00 00 00 00

具体参数请参照下面的表格。

获取末端数字量输入
寄存器:128 (0x80)
请求指令格式
Modbus TCP 包头事务标识2 Bytesu160x00,0x01
协议2 Bytesu160x00,0x02
长度2 Bytesu160x00,0x04
寄存器1 Byteu80x80
参数主机ID1 Byteu80x09
寄存器起始地址2 Bytesu160x0A,0x14
响应指令格式
Modbus TCP 包头事务标识2 Bytesu160x00,0x01
协议2 Bytesu160x00,0x02
长度2 Bytesu160x00,0x06
寄存器1 Byteu80x80
参数状态1 Byteu80x00
参数1(0)最末端字节,表示输入状态。第0位对应输入0,第1位对应输入1。4 Bytesu8*40x00,0x00,0x00,0x00