做的比较唯美的网站,网络建设规范和网络维护管理规范属于选择题,万网做网站,org域名做网站文章目录 一、概述二、UR机器人通信2.1UR通信协议2.2 UR通信端口 三、UR机器人通信端口类型3.1 Modbus TCP端口#xff08;502端口#xff09;3.2 Dashboard端口#xff08;29999端口#xff09;3.3 上位机编程端口#xff08;30001/30002/30003端口#xff09;3.3.1 URS… 文章目录 一、概述二、UR机器人通信2.1UR通信协议2.2 UR通信端口 三、UR机器人通信端口类型3.1 Modbus TCP端口502端口3.2 Dashboard端口29999端口3.3 上位机编程端口30001/30002/30003端口3.3.1 URScript简介3.3.2 机器人的控制3.3.3 机器人状态读取 四、一个概念——TCP五、UR机器人返回信息格式解析5.1 概述5.2UR返回信息协议解析5.2.1返回数据包频率和长度5.2.2返回数据包格式 5.3 解析实例5.4 相关代码 六、基于TCP/IP协议实现上位机对UR机器人的远程控制6.1引言6.2 UR机器人提供的基于TCP/IP协议的接口6.3 ModbusTCP端口6.4Dashboard端口6.5上位机编程端口6.6实时反馈端口6.7结束语 一、概述
UR机器人作为目前使用广泛的协作机器人其开放了基于TCP/IP的远程控制功能提供了多个多类型的端口用于工业总线控制或者用户自行编程控制以下记录整理此方面的信息。 参考链接
http://t.csdn.cn/ikiMG二、UR机器人通信
2.1UR通信协议
UR机器人可通过TCP/IP通信向机器人发送控制命令以及从机器人获取状态信息。
2.2 UR通信端口
UR机器人通信时提供了以下接口我们可以根据自己需要使用其中的一种或多种。 表1 机器人作为服务器的通信端口 表2 机器人作为客户端的通信端口
三、UR机器人通信端口类型
3.1 Modbus TCP端口502端口
Modbus是OS模型第7层上的应用层报文传输协议它在连接至不同类型总线或网络的设备之间提供客户端/服务器通信互联网组织保留系统端口502访问ModbusModbus是一个请求/应答协议并且提供功能码规定的服务。 UR机器人既可以作为Modbus TCP服务器也可以作为Modbus TCP客户端两者的主要区别在于消息请求方的不同。 通过UR机器人的相关Modbus地址我们可以访问机器人的很多信息进而可以在上位机上解析这些信息并显示。 下表为Modbus地址 示例本人利用502端口实现了TCP/IP协议的UR控制和状态读取其中简单介绍了Modbus命令的构造并使用260、270、400三个地址读取UR状态和位置信息。
3.2 Dashboard端口29999端口
上位机可以通过29999端口直接发送一些简单的指令给机器人这些指令是UR自己定义的这种功能被称为Dashboard。我们可以通过一些Dashboard指令远程切换、加载程序同时可以启动、暂停、停止程序实现上位机对UR的远程控制。
3.3 上位机编程端口30001/30002/30003端口
UR机器人提供了这三个端口用于远程控制编程。其功能如下表所示 Primary Secondary 30001 30002 接口 Primary Secondary 接口由机器人控制进程维护和执行的端口。开机后机器人 一直从这两个端口以 10Hz 频率对外发送机器人的状态信息机器人位置 IO 运行状 态等除此之外 Primary 端口还会发送一些全局变量更新等信息。因此如果需要编写 上位机在线编程以及运行监视例如编写一个类似示教器界面的上位机程序时可以使 用 Primary 端口当然对于加载程序运行程序等操作需要使用 Dashboard 29999 接口。 Primary Secondary 接口在接收到上位机发送的脚本指令 字符 串后会 立即中断当前执行程序如果机器人正在运行然后运行接收到的脚本指令 。 值得提醒的是一些具有返回值的脚本指令其返回值并不会通过这两个端口返回因 为脚本的执行是在机器人控制进程中其返回值只传递给该进程中的变量。 如果想一次性发送一段程序给机器人需要将发送的程序按照如下格式发送 如果向 Secondary 接口发送 def 类型的一段脚本给机器人机器人当前执行的程 序会被中断 如果需要当前执行的程序不被中断例如设置 IO 可以向 Secondary 程 序发送 sec 类型的一段脚本当然这段脚本中不能够包含运动指令 因为同一时间机器 人只能从一处获取运动指令否则无法预期运行后果。 def functionName(): 脚本指令 脚本指令 脚本指令 对于函数或者 while 等结构语句 需注意同层次具有相同缩进 脚本指令 …… end 1. Primary Secondary 2. Secondary 实际发送字符串 ( 缩进用空格换行用 \n): “def functionName():\n 脚本指令 \n 脚本指令 \n ……\nend\n “ “sec functionName():\n 脚本指令 \n 脚本指令 \n ……\nend\n “ sec functionName(): 非运动 脚本指令 非运动 脚本指令 非运动 脚本指令 对于函数或者 while 等结构语句 需注意同层次具有相同缩进 非运动 脚本指令 …… end
参考链接https://blog.csdn.net/weixin_52531852/article/details/1242273973.3.1 URScript简介
UR机器人有3种编程方式Polyscope编程、脚本编程以及C-API编程
Polyscope编程指的是程序在示教器上被编辑机器人然后执行这是UI层的编程方式C-API编程是在研发层上的编程方式脚本编程URScript是UR公司在Python语言基础上自己研发的语言是在脚本层上控制机器人的编程语言我们使用的主要是这种脚本编程。
3.3.2 机器人的控制
上位机作为客户端通过30001/30002/30003其中一个特定的编程端口与机器人控制器建立TCP/IP连接就可以在上位机上按照URScript语言格式编写脚本程序直接发送给机器人控制器机器人就可以执行相应动作了。 示例本人利用30003端口实现了TCP/IP协议的UR控制其中介绍了三个常用URScript指令即MOVEL、MOVEP、STOPL并利用其实现了UR的运动控制。
3.3.3 机器人状态读取
30001~30003这三个端口共同特点是一旦客户端打开端口就会按照一定的频率收到来自机器人的信息30003端口是实时反馈端口客户端每8ms125Hz就收到一次来自机器人的信息。而其它两个端口只能每200ms5Hz收到一次来自机器人的信息。 客户端通过这三个端口收到的机器人信息稍有不同通过30003端口收到的信息是最丰富的包含了通过30001和30002收到的大部分信息。 因此通过实时反馈端口30003客户端收到机器人的信息频率是最高的内容也是最全的。 按照参考文献说法通过30003每次收到的数据包是1044个字节以标准格式排列极少数情况下客户端会收到小于1044个字节。 经个人实际测试30003端口每次会收到1108字节与上述描述稍有不同本人试图解析了这些信息限于篇幅下一篇文章“UR机器人返回信息格式解析“详细介绍30003端口返回信息的解析。
https://blog.csdn.net/hangl_ciom/article/details/97612246四、一个概念——TCP
另外需要说明一点的是在UR控制里出现了两个TCP概念要注意区分刚接触UR时看示教器和说明书很迷糊了一阵子所以这里说明一下有同样疑惑的可以参考
网络协议的TCP网络协议中TCP/IP的含义是Transmission Control Protocol / InternetProtocolUR的TCP含义是Tool Center Point指的是机器人工具的中心点TCP位置指的是机器人工具中心点位置同理TCP坐标系指的是固连在机器人工具终端的坐标系。
五、UR机器人返回信息格式解析
5.1 概述
UR机器人提供了多种端口用于控制和读取机器人信息本人整理了相关信息见文章《UR机器人通信端口和协议》。 本人使用了30003端口来向机器人发送URScript脚本控制命令并通过该端口接收实时返回数据。
5.2UR返回信息协议解析
5.2.1返回数据包频率和长度
由于30003端口返回的信息是最全的包含了30001、30002端口的返回信息因此这里以30003端口信息解析。 30003端口返回数据频率一般是125Hz即每8ms即返回一个数据包最高频率能达到500Hz。 个人实测返回数据包的字节长度一般是1108字节按照文献1数据包是1044字节文献2数据包是1108字节分析可能UR后来扩充了UR返回数据信息。 实际上这个字节规定是多少并不影响使用因为在返回的数据包的前四个字节即给出了数据包中包含信息的字节数。
5.2.2返回数据包格式
下表为30003实时反馈端口机器人信息1044字节数据格式来自参考文献1。 下图为1108字节返回数据具体的各字节包含数据格式来自参考文献2。
5.3 解析实例
编写了TCP/IP程序控制UR机器人并解析其在30003端口返回的数据包实测结果 每个数据包收到1108字节数据。 数据解析时要注意收到数据包的每个数据的字节顺序是Big-Endian即高位在前而计算机中的字节顺序是Little-Endian即低位在前要注意进行字节顺序转换。 下图为接收到的数据包的一部分 以几个主要的数据解析为例
第1-4字节上图中偏移地址0x0)00 00 04 54整数型数据即0x4541108这就是接收数据的字节长度。第13字节上图中偏移地址0x0c开始连续6个Double型数据即关节目标位置qtarget数据为2.466446,-0.586911,1.581819,-2.725837,4.662427,-0.580726第445字节上图中偏移地址0x1bc开始连续6个Double型数据即当前TCP位置矢量Tool VectorActual数据为0.405443,-0.164387,0.030460,2.077079,-2.308484,0.256067。收到数据与UR示教器上显示数据比对一致。
5.4 相关代码
链接
https://blog.csdn.net/hangl_ciom/article/details/104439042六、基于TCP/IP协议实现上位机对UR机器人的远程控制
6.1引言
2010年德国学术界和产业界提出“工业4.0”的概念即是以智能制造为主导的第四次工业革命或革命性的生产方法。该战略旨在通过充分利用信息通讯技术和网络空间虚拟系统—信息物理系统相结合的手段将制造业向智能化转型。所以近些年许多工业自动化厂商将自己的产品研发所考虑的一个重要方向定在是否能被远程控制。另一方面随着国内人工成本的不断上升以及工厂人员流动的不确定性机器人产业是近几年相信也是未来几年的朝阳产业。所以对于工业机器人在工厂生产中的远程控制是一个机器人集成方面比较不错的课题。我们知道在工业机器人的队伍中UR机器人是第一家在工业环境下工作的人机协作机器人它以轻便、简单、安全著称。下面我们就来了解一下如何实现上位机对UR机器人的远程控制。
6.2 UR机器人提供的基于TCP/IP协议的接口
TCP/IP协议源于1969年是针对Internet开发的一种体系结构和协议标准目的在于解决异种计算机网络的通信问题。使得网络在互联时能为用户提供一种通用、一致的通信服务。是Internet采用的协议标准。基于TCP/IP的通讯具有成本低、可靠性高、实用性强、性能高等特点所以现在许多工业自动化产品都具有基于TCP/IP协议通讯的接口从而实现设备与设备之间设备与网络之间的通讯。UR机器人在TCP/IP协议的基础上提供了丰富的接口用于与外部设备的交互如表1所述。 有了这些接口上位机就可以远程控制机器人。如图1简单描述了上位机对UR机器人远程监控的系统图。 图1 远程控制系统图 下面我们就来介绍UR机器人所提供的相关通讯接口从而远程控制机器人。
6.3 ModbusTCP端口
MODBUS是OSI模型第7层上的应用层报文传输协议它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。自从1979年出现工业串行链路的事实标准以来MODBUS使成千上万的自动化设备能够通信。目前继续增加对简单而雅观的MODBUS结构支持。互联网组织能够使TCP/IP栈上的保留系统端口502访问MODBUS。MODBUS是一个请求/应答协议并且提供功能码规定的服务。MODBUS功能码是MODBUS请求/应答PDU的元素。
UR机器人既可以作为ModbusTCP服务器也可以作为ModbusTCP客户端两者的主要区别在于消息请求方的不同。在此我们仅讨论UR机器人作为ModbusTCP服务器的情况如图2所示。 图2 Modbus TCP服务器 既然UR机器人作为Modbus TCP服务器它必定有一系列Modbus地址供上位机来访问。如表2所示。 通过UR机器人的相关Modbus地址我们可以访问机器人的很多信息进而可以把这些信息放到上位机上。下图就是通过访问Modbus地址模仿Polyscope(UR机器人原版软件制作出来一个界面当然我们可以通过这个界面监控并控制机器人的所用IO。
6.4Dashboard端口
上位机可以通过29999端口直接发送一些简单的指令给机器人这些指令是UR自己定义的这种功能被称为Dashboard。下表就是Dashboard的指令列表。 显而易见我们可以通过一些Dashboard指令远程切换、加载程序同时可以启动、暂停、停止程序这样上位机就可以远程控制程序了。
6.5上位机编程端口
UR机器人有3种编程方式Polyscope编程、脚本编程以及C-API编程。Polyscope编程指的是程序在示教器上被编辑机器人然后执行这是UI层的编程方式。C-API编程是在研发层上的编程方式。我们重点介绍的是脚本编程方式脚本编程的语言是UR公司在python语言基础上自己研发的URScript语言。URScript是在脚本层上控制机器人的编程语言就像其他编程语言一样它有变量类型语法结构、方法等。另外它有一系列的专用方法来控制机器人运动以及IO状态。
UR机器人的控制器是运行在Mini-ITXPC上的一旦PC启动机器人控制器就像启动服务一样Polyscope软件就通过PC本地的TCP/IP端口与机器人控制器建立连接了。同样当上位机作为客户端通过30001或30002或30003特定的编程端口与机器人控制器建立TCP/IP连接这样我们就可以在上位机上按照URScript语言的格式编写脚本程序直接发送给机器人控制器机器人就可以直接执行程序了。
按照上面所述的机器人脚本编程原理我就可以在上位机上制作如下界面实现对UR机器人的远程编程。
6.6实时反馈端口
30001、30002、30003除了用于远程编程外还有其他功能如表4所述。
这三个端口另一个共同的特点就是一旦客户端打开端口就会按照一定的频率收到来自机器人的信息。需要注意的是30003端口是实时反馈端口客户端每8ms能收到一次来自机器人的信息。另外通过测试客户端通过30001和30002只能每200ms左右收到来自机器人的信息。
其实客户端通过这三个端口收到的机器人信息也稍有不同。通过30003端口收到信息是最丰富的包含了通过30002收到的信息以及通过30001收到的大部分信息。
所以说通过实时反馈端口客户端收到机器人信息效率是最高的内容也是最全的。通过实时反馈端口每次收到的数据包有1044个字节这些字节以标准的格式排列。注意在极少情况下客户端会收到小于1044个字节但是字节排列的格式不变。表5是1044字节排列的顺序表。
有了这些数据上位机的数据表现就会十分丰富。下面有2张上位机界面图“点动图”获取了关节位置、TCP位置“初始化图”获取了关节模式、关节实际电流、关节电压以及其他数据。
6.7结束语
综上所述机器人作为ModbusTCP服务器上位机通过502端口可以控制机器人的所有IO;上位机可以通过30001或30002或30003端口远程下载程序到机器人上位机通过29999端口可以远程控制程序运行状态上位机通过30003端口可以实时得到机器人的状态信息。也就是说利用UR机器人开放的基于TCP/IP协议的端口可以制作自己的Polyscope软件实现上位机的远程控制。(end) 文章转载自: http://www.morning.splkk.cn.gov.cn.splkk.cn http://www.morning.yrcxg.cn.gov.cn.yrcxg.cn http://www.morning.beeice.com.gov.cn.beeice.com http://www.morning.wqwbj.cn.gov.cn.wqwbj.cn http://www.morning.dmcqy.cn.gov.cn.dmcqy.cn http://www.morning.ktfbl.cn.gov.cn.ktfbl.cn http://www.morning.yydeq.cn.gov.cn.yydeq.cn http://www.morning.wmsgt.cn.gov.cn.wmsgt.cn http://www.morning.gqjqf.cn.gov.cn.gqjqf.cn http://www.morning.rqknq.cn.gov.cn.rqknq.cn http://www.morning.nzkkh.cn.gov.cn.nzkkh.cn http://www.morning.tdscl.cn.gov.cn.tdscl.cn http://www.morning.nrwr.cn.gov.cn.nrwr.cn http://www.morning.yuanshenglan.com.gov.cn.yuanshenglan.com http://www.morning.gyjld.cn.gov.cn.gyjld.cn http://www.morning.sskhm.cn.gov.cn.sskhm.cn http://www.morning.wknjy.cn.gov.cn.wknjy.cn http://www.morning.hjlsll.com.gov.cn.hjlsll.com http://www.morning.lflsq.cn.gov.cn.lflsq.cn http://www.morning.rgwz.cn.gov.cn.rgwz.cn http://www.morning.lsnhs.cn.gov.cn.lsnhs.cn http://www.morning.qnywy.cn.gov.cn.qnywy.cn http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn http://www.morning.qlck.cn.gov.cn.qlck.cn http://www.morning.gmrxh.cn.gov.cn.gmrxh.cn http://www.morning.kgrwh.cn.gov.cn.kgrwh.cn http://www.morning.jtwck.cn.gov.cn.jtwck.cn http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn http://www.morning.cffwm.cn.gov.cn.cffwm.cn http://www.morning.syznh.cn.gov.cn.syznh.cn http://www.morning.dmthy.cn.gov.cn.dmthy.cn http://www.morning.hclplus.com.gov.cn.hclplus.com http://www.morning.bcnsl.cn.gov.cn.bcnsl.cn http://www.morning.skdrp.cn.gov.cn.skdrp.cn http://www.morning.rwzmz.cn.gov.cn.rwzmz.cn http://www.morning.zmlbq.cn.gov.cn.zmlbq.cn http://www.morning.pmdzd.cn.gov.cn.pmdzd.cn http://www.morning.gqryh.cn.gov.cn.gqryh.cn http://www.morning.kpypy.cn.gov.cn.kpypy.cn http://www.morning.tkrwm.cn.gov.cn.tkrwm.cn http://www.morning.bhznl.cn.gov.cn.bhznl.cn http://www.morning.pbtrx.cn.gov.cn.pbtrx.cn http://www.morning.gwsfq.cn.gov.cn.gwsfq.cn http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn http://www.morning.rkxk.cn.gov.cn.rkxk.cn http://www.morning.xqffq.cn.gov.cn.xqffq.cn http://www.morning.lngyd.cn.gov.cn.lngyd.cn http://www.morning.ktyww.cn.gov.cn.ktyww.cn http://www.morning.xpmhs.cn.gov.cn.xpmhs.cn http://www.morning.wbxrl.cn.gov.cn.wbxrl.cn http://www.morning.hcrxn.cn.gov.cn.hcrxn.cn http://www.morning.mmclj.cn.gov.cn.mmclj.cn http://www.morning.xscpq.cn.gov.cn.xscpq.cn http://www.morning.sgbss.cn.gov.cn.sgbss.cn http://www.morning.tmrjb.cn.gov.cn.tmrjb.cn http://www.morning.tfwg.cn.gov.cn.tfwg.cn http://www.morning.sknbb.cn.gov.cn.sknbb.cn http://www.morning.cbmqq.cn.gov.cn.cbmqq.cn http://www.morning.pqhgn.cn.gov.cn.pqhgn.cn http://www.morning.nynpf.cn.gov.cn.nynpf.cn http://www.morning.fhxrb.cn.gov.cn.fhxrb.cn http://www.morning.qbdqc.cn.gov.cn.qbdqc.cn http://www.morning.qypjk.cn.gov.cn.qypjk.cn http://www.morning.drswd.cn.gov.cn.drswd.cn http://www.morning.yjfmj.cn.gov.cn.yjfmj.cn http://www.morning.xjtnp.cn.gov.cn.xjtnp.cn http://www.morning.pkfpl.cn.gov.cn.pkfpl.cn http://www.morning.jqrhz.cn.gov.cn.jqrhz.cn http://www.morning.crsnb.cn.gov.cn.crsnb.cn http://www.morning.jbtwq.cn.gov.cn.jbtwq.cn http://www.morning.lgznf.cn.gov.cn.lgznf.cn http://www.morning.lnfkd.cn.gov.cn.lnfkd.cn http://www.morning.rhqr.cn.gov.cn.rhqr.cn http://www.morning.fpngg.cn.gov.cn.fpngg.cn http://www.morning.kfrhh.cn.gov.cn.kfrhh.cn http://www.morning.ckhpg.cn.gov.cn.ckhpg.cn http://www.morning.pwghp.cn.gov.cn.pwghp.cn http://www.morning.zhmgcreativeeducation.cn.gov.cn.zhmgcreativeeducation.cn http://www.morning.clhyj.cn.gov.cn.clhyj.cn http://www.morning.dkbgg.cn.gov.cn.dkbgg.cn