微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于TCP/IP协议实现上位机对UR机器人的远程控制

基于TCP/IP协议实现上位机对UR机器人的远程控制

时间:12-19 来源:互联网 点击:
1、引言

2010年,德国学术界和产业界提出“工业4.0”的概念,即是以智能制造为主导的第四次工业革命,或革命性的生产方法。该战略旨在通过充分利用信息通讯技术和网络空间虚拟系统—信息物理系统相结合的手段,将制造业向智能化转型。所以,近些年许多工业自动化厂商将自己的产品研发所考虑的一个重要方向定在是否能被远程控制。另一方面,随着国内人工成本的不断上升以及工厂人员流动的不确定性,机器人产业是近几年,相信也是未来几年的朝阳产业。所以对于工业机器人在工厂生产中的远程控制,是一个机器人集成方面比较不错的课题。我们知道,在工业机器人的队伍中,UR机器人是第一家在工业环境下工作的人机协作机器人,它以轻便、简单、安全著称。下面我们就来了解一下如何实现上位机对UR机器人的远程控制。

2、UR机器人提供的基于TCP/IP协议的接口

TCP/IP协议源于1969年,是针对Internet开发的一种体系结构和协议标准,目的在于解决异种计算机网络的通信问题。使得网络在互联时能为用户提供一种通用、一致的通信服务。是Internet采用的协议标准。基于TCP/IP的通讯具有成本低、可靠性高、实用性强、性能高等特点,所以现在许多工业自动化产品都具有基于TCP/IP协议通讯的接口,从而实现设备与设备之间,设备与网络之间的通讯。UR机器人在TCP/IP协议的基础上,提供了丰富的接口用于与外部设备的交互,如表1所述。

端口接口描述

机器人作为服务器

502ModbusTCP协议,机器人作为服务器

22SSH/SFTP(安全文件传输协议)

29999Dashboard功能

30001第一客户端端口,自动返回机器人状态与补充消息

30002第二客户端端口,自动返回机器人状态与消息

30003实时反馈端口,自动返回机器人状态与消息,125Hz实时反馈接口

机器人作为客户端

自定义由UR脚本函数定义

502ModbusTCP协议,机器人作为客户端

表1UR机器人TCP/IP接口表

有了这些接口,上位机就可以远程控制机器人。如图1,简单描述了上位机对UR机器人远程监控的系统图。

图1远程控制系统图

下面我们就来介绍UR机器人所提供的相关通讯接口,从而远程控制机器人。

3、ModbusTCP端口

MODBUS是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。自从1979年出现工业串行链路的事实标准以来,MODBUS使成千上万的自动化设备能够通信。目前,继续增加对简单而雅观的MODBUS结构支持。互联网组织能够使TCP/IP栈上的保留系统端口502访问MODBUS。MODBUS是一个请求/应答协议,并且提供功能码规定的服务。MODBUS功能码是MODBUS请求/应答PDU的元素。

UR机器人既可以作为ModbusTCP服务器,也可以作为ModbusTCP客户端,两者的主要区别在于消息请求方的不同。在此,我们仅讨论UR机器人作为ModbusTCP服务器的情况,如图2所示。

图2ModbusTCP服务器

既然UR机器人作为ModbusTCP服务器,它必定有一系列Modbus地址供上位机来访问。

地址类型描述

0-33Register可以访问机器人的所有IO

128-255Register可配置寄存器

256-265Register机器人状态

270-315Register关节位置、速度、电流、温度、模式等信息

400-425RegisterTCP位置、速度、偏移等信息

768-770Register工具端状态

0-159Bit可以访问机器人的所有IO

260-265Bit机器人状态

表2Modbus地址简表

通过UR机器人的相关Modbus地址,我们可以访问机器人的很多信息,进而可以把这些信息放到上位机上。下图就是通过访问Modbus地址,模仿Polyscope(UR机器人原版软件),制作出来一个界面,当然我们可以通过这个界面监控并控制机器人的所用IO。

图3IO控制

4、Dashboard端口

上位机可以通过29999端口直接发送一些简单的指令给机器人,这些指令是UR自己定义的,这种功能被称为Dashboard。下表就是Dashboard的指令列表。

指令描述

load.urp>加载被保存在控制器中的程序

getloadedprogram返回当前机器人执行的程序

play启动当前加载的程序

stop停止机器人当前执行的程序

pause暂停机器人当前执行的程序

isProgramSaved当前机器人正在执行的程序是否被保存,返回“True”或“False”

programState当前程序的运行状态,返回“PLAYING”或“STOPPED”或“PAUSED”

shutdown关闭机器人系统

running机器人的运行状态,返回“True”或“False”

robotmode访问机器人模式

popupPolyscope跳出对话框

closepopup关闭对话框

addToLog将消息添加到logfile中

setUserRole,whereisclass设置用户权限

polyscopeVersion返回当前

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top