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机器人状态
通过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返回当前Polyscope的版本号
poweron使机器人本体通电
poweroff使机器人本体断电
brakerelease释放制动器
safetymode返回机器人当前所处的安全模式状态
显而易见,我们可以通过一些Dashboard指令,远程切换、加载程序,同时可以启动、暂停、停止程序,这样上位机就可以远程控制程序了。