一种新型轻型机械臂示教软件架构的设计.docVIP

一种新型轻型机械臂示教软件架构的设计.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种新型轻型机械臂示教软件架构的设计

一种新型轻型机械臂示教软件架构的设计   摘 要:传统轻型六轴机械臂控制软件构架一般包括控制器、示教器、canopen通讯等部分。传统控制器是一个程序,机械臂动作?⑹?设定时,一个动作信号需要一组控制器?⑹?,大量的数据收发常常引发主线程与其它线程争夺资源而出现死锁,导致主线程不能继续往下执行,出现卡死。对此,使用Qt软件及C++语言,开发了一款新型六轴机械臂控制软件。采用TCP/IP通讯实现程序间通讯,多线程提高单个程序效率,以QTcpSocket类进行网络编程。通过控制轻型六轴机械臂运动实验,证明此控制软件有效、稳定,能解决界面卡死问题,具有良好的可扩展性与可移植性,界面友好,运行流畅。   关键词:TCP/IP通讯;图形界面卡死;QTcpSocket   DOIDOI:10.11907/rjdk.172360   中图分类号:TP319   文献标识码:A 文章编号:1672-7800(2018)002-0124-04   0 引言   图1是六轴轻型机械臂控制系统。控制软件安装在控制器里,示教器是控制器外的触屏。控制器和示教器连在一起是低配的平板电脑,运算和储存要求不高。PCAN又叫做PCAN-USB,是一个CAN转USB接口,通过它可以将CAN网络上的报文通过USB接口传输到PC上,通过相关软件查看CAN报文。PCAN的另一端连接控制器CAN卡,CAN卡与六轴机械臂相连。使用Qt编写程序,语言为C++。   1 界面卡死原因   “界面卡死”是计算机系统由于过量的进程资源消耗,使图形界面进程受到影响的现象。控制程序较为复杂的指令有发送和接收报文、进行运动轨迹规划等。用户通过示教器的图形界面发出指令,在进行稍微复杂的处理时就会有延迟,使得界面(GUI)卡死。对此进行改进,将控制器的程序拆分为两个,如图2所示。一个程序是用户界面程序(GUI),称为RH-LBR,负责收集用户指令,另一个程序Communication_APP专门负责收集下位机发来的报文,以及通过GUI指令向下位机发送指令。这样耗时的处理都由Communication_APP来处理,用户交互界面RH-LBR不会被卡死。两个程序之间的通讯模式为TCP/IP。   2 建立TCP通讯   下面分别介绍RH_LBR和Communication_APP这两个程序里负责通讯的类。CIRT_LBR_GUI类定义RH_LBR程序的GUI,有信号与槽函数和ControllerSocket类互通消息。ControllerSocket类定义TCP里的用户端类。Communication_APP程序里有TcpTransaction类,主要定义TCP里的服务器端,见图3。   在RH_LBR程序的ControllerSocket类中,重要函数如下:①void ControllerSocket::connectToController()建立TCP连接;②void ControllerSocket::readMessage()接收Communication_APP这个程序发来的信息,会有对应的sendMessage函数在Communication_APP程序里;③void ControllerSocket::writeBytes(const QString Message)传输信息,使Communication_APP可以接收到信息。   在Communication_APP程序的TcpTransaction类中,重要函数有:①void TcpTransaction::sessionOpened()。TCP通信的网络配置槽函数;②void TcpTransaction::readMessage()。获取用户程序发送的全部报文,并解析后通过信号发送给子线程:HS_Interface;③void TcpTransaction::sendMessage(const QString Message)。通过本函数将需要发送ControllerSocket类的信息发送出去。   2.1 RH_LBR用户界面程序?筛鲋饕?类   RH_LBR程序里有两个主要类:CIRT_LBR_GUI和ControllerSocket类。   在CIRT_LBR_GUI类中用信号与槽函数调用ControllerSocket类中的startTCPConnection()函数,建立TCP连接。   void CIRT_LBR_GUI::initTCPConnection()   {   开始新建socket的线程和socket的对象   TCPConnectionThread=new QThread;   controllerSocket=new ControllerS

文档评论(0)

189****7685 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档