激光加工机器人通信协议设计

发布者:cangart最新更新时间:2014-01-02 来源: eccn关键字:激光加工  机器人  通信协议 手机看文章 扫描二维码
随时随地手机看文章

机器人目前应用十分广泛,在工业、科研、医学等领域发挥了重要作用。我们知道,机器人的指令需要我们来提供。目前,工业机器人的指令一般都是通过示教盒输入的。示教盒提供了简单的人机界面,可以帮助完成简单的示教任务。但在许多应用中,仅通过示教输入是无法满足要求的。在激光加工机器人系统中,要给机器人的指令多达几万条,而且指令的参数不能示教得到,是由其他测量系统提供的。在这种情况下,需要通过上位机给机器人控制器发送指令。这就需要实现机器人控制器和上位机的实时通信。机器人指令有固定格式,机器人通信有其特殊性。为了保证通信的可靠性,提高通信效率,可根据机器人通信特点,制定了相应的通信协议,并制作了专用的、更适合于工业应用的上位机通信控件。

1 机器人主控计算机

机器人控制器中最重要的是主控计算机。在激光加工机器人中,主控计算机采用基于PC总线S 104/486DX工业控制级嵌入式单板计算机,其核心是AMD 80486 DX微处理器。主控计算机提供串行接口,可以和它进行串口通信。主控计算机内部的信息处理由机器人控制器操作系统来实现。整个系统采用了实时多任务操作系统VRTXsa来实现,它具有很好的实时性和可靠性,同时具有完善的任务管理机制。

2 激光加工机器人通信系统结构

机器人的运动指令来自通信系统。在我们的通信系统中,主要包括上位机应用程序、串口控件、串口和机器人主控计算机(下称下位机)。上位机应用程序产生指令,通过控件访问串行端口,将指令传给下位机。下位机收到指令后,对指令进行分析处理。对于下位机来说,这些指令分两种:一种是解释执行指令,需要进入命令队列,排队执行,占用缓存;另一种是立即执行指令,不需要进入队列,不占用缓存。对于解释执行指令,下位机收到后,把指令放入队列后马上返回应答。对于立即执行指令,先执行该指令,然后才返回应答。查询指令属于立即执行指令,下位机除了返回命令在命令字外,还同时返回相应的数值。上位机根据返回的应答判断通信的状态,并进行相应的处理。

3 通信协议

我们的激光加工机器人通信系统具有以下特点:

1)机器人只会按指令进行工作,如果指令有问题,将会带来不可预测的后果。所以对于我们的通信系统来说,可靠性、安全性是首要的。

2)机器人工作环境比较恶劣,各种干扰比较大。通信的抗干扰能力、错误处理的能力非常重要。

3)为了提高加工效率,希望机器人能以较快的速度进行工作。

为避免机器人出现“空指令”,通信速度要跟得上。基于机器人通信系统自身的特点,上位机和它进行通信,必须满足其特定的要求。我们采用如下的通信方式:

(1)主从方式。上位机为主机,下位机为从机。一般情况下,下位机不能主动给上位机发送信息。只有上位机给下位机发出指令后,下位机才能作出应答。这样通过上位机,我们就可以很好地控制整个通信过程。

(2)数据帧方式。采用数据帧的方式,有利于保证数据包的完整性,便于进行数据接收和处理。在我们的通信系统中,上位机和下位机均采用相同的协议对通信数据进行打包、解包。我们自己定义帧头为eb 90 82,帧尾为9082,帧标志为f0。另外规定,有效数据中若出现90,则双写90,用以区别帧尾中的900数据帧格式如下所示:

{帧头一帧标志一通信数据一帧尾一校验字}

另外,在我们的通信过程中,要处理各种不同类型的数据,包括char’ , short型、float型、byte型等,在有效数据前加入标识符来识别它们。如f0 06表示6个浮点数,f3 05表示5个字符。

(3)校验和。这是一种简单而实用的校验方式。在上位机发送指令前,自动计算数据的和,并将它附在数据帧的末端,一起发送给下位机。下位机在接收到数据帧后,先解包,然后再计算一次数据和,用它与数据帧末端的校验和进行比较。反之亦然。使用这种方式可以检验数据在传输的过程中是否发生了变异。

(4)自动重发机制。下位机在接收到错误的数据帧时,将会把该数据帧遗弃掉,同时向上位机返回错误码报错。这时候,该帧数据需要重新发送。如果把重发任务交给应用程序,程序将变得比较复杂。我们把这个任务交给控件,可以很轻松的实现重发功能。在控件内部,当新的数据发送之前,都将数据做一个备份,直到确认接收正确了,才将其消除。如果发现有错误,将其再次发出去。

(5)应答方式。在通信过程,下位机对上位机每一帧数据都必须做出的应答。上位机根据返回的应答判断通信状态,然后进行下一步动作。为了安全起见,规定只有在确认前一包指令正确应答之后,才可以发下一包指令。对于非查询指令(包括全部解释执行指令和部分立即执行指令),下位机收到后,返回该指令的命令字;对于查询指令,除了返回命令字之外,同时还返回查询数据,如机器人的位置、各轴转角等。如果下位机检测到数据帧有问题,如无帧头、校验和错等,则返回相应的错误码。上位机在发送指令的时候,同时记录下了该指令的命令字。在接收到下位机返回的应答后,将其中的命令字与保留的命令字比较,如果一样,则说明发送正确,可以发送下一条指令;反之,则说明指令发送有问题,根据错误码进行错误处理,并重发当前指令包。指令的发送和应答的接收过程如图1所示。[page]



(6)成组指令发送方式。由于机器人的运行速度很快,为了能保证指令发送速度能跟上运行速度,因此在一个数据报里同时发送了多条指令,而下位机只需应答第一条指令。这样就减少了应答时间,提高了指令的发送速度。实际应用中,我们采用7条指令一个数据报,结果显示,速度快了大约37。为了安全和处理方便,控件只允许解释执行指令成组发送,对于立即指令,只能发送单指令数据报。

4 通信的实现

4.1 下位机通信任务的实现

在实时多任务系统中,一项工作的完成往往需要通过多个任务(中断)共同完成的。这需要各任务及中断协调动作,相互配合,甚至进行通信。VRTXsa提供了邮箱(mailbox),队列(queue)、事件标志(event flag)、信号量(semaphore)互斥体(mutexes) 5种通信机制。在下位机通信系统中,通信工作由串口2中断、时钟中断、监控任务、显示任务、执行任务等共同协调完成的。如图2所示。



机器人收到上位机的指令后,串口2中断发生,它的中断服务程序启动。它将设置中断同步标志,触发串口2任务程序。串口2任务将处理接收到的上位机数据,将解释指令放入命令队列中,并设置相关标志。在一个时钟周期内(16ms),所有任务执行一遍,它们根据相关标志,完成相应的工作,如读取命令队列,执行命令,给上位机返回应答。

串口2任务程序如下:

void far com2_ task(void)

{刀初始化

刀装载串口2中断

sys_ load vrtx_ isr(Ox34,com- isr);

刀允许串口2中断

n8259_ inerrupt enable(4);

while(true)

刀等待串口2中断

ev_group=sc_ fpend(group_ id,0,4,0,&erro);

刀中断到来,清中断同步标志

ev_group=sc_ fclear(gruop_ id,4,&err);

read_ CommData();//处理并读取数据

刀处理各种指令,并设置各相关标志

process_ Comm (BYTE *Buff,BYTE *cPtr);

4.2 上位机通信控件的实现

为了便于用户使用,把上位机的通信功能封装到ActiveX控件中。选择VC++6进行通信控件的开发,串口操作使用API函数来实现。控件中采用了多线程技术。为监控串口任务创建了一个工作线程,以免它堵塞主线程,提高了系统的响应性。通信控件采用了异步v0方式,以提高发送、接收和处理数据的效率。异步v0操作建立后会立即返回,即使操作还未完成。这样把费时的v0操作放在后台进行,线程就可以干别的事情,极大地提高了程序的运行效率。在串口通信中,有

几种读取串口数据的方式,其中事件驱动是最有效率的方式。在监视串口的辅助线程中,当有数据到达时串口是,串口事件触发,控件开始读取串口输入缓冲区的数据。如果没有数据到达,那么使用WaitForMultipleObjects 0’数堵塞监测线程,把资源让给其它线程。在使用线程堵塞技术之后,监视串口线程占用的系统资源大大减少,同时提高了指令的发送效率。串口读写和监控是通信的最主要部分,采用了异步v0操作,使得程序复杂化。异步v0操作分两部分:一是创建该v0操作,然后返回;二是探测操作的完成。下面是读串口的部分程序清单:[page]

void CCommCtrl::ReadChar(COMSTAT comstat)

{

while (comstat.cbInQue>0)f

C1earCommERROR(mJWomm,&dwError,&comstat);

if(!ReadFile(hcomm,&RXBuf,l,&dwRead,&m_ ov))

f //ReadFile返回FALSE,判断是出错还是没完成

if(GetLastError()==ERROR IO_PENDING) f

//没完成,需要等待

if(!GetOverlappedResult(hComm,&m- ov,

&dwRead,TRUE)) //等待读操作完成

{…}刀完成读操作,但出错

else //正确完成读操作

{…}//处理接收的字符

else(…}/赎操作出错

else //读操作在函数返回前已经完成

{…}刀处理接收的字符

}

return; //没有字符了,返回

}

写串口程序和读串口类似。监视线程的部分代码如下:

DINT CommWatch(LPVOID pParam)

{刀清缓存

PurgeComm(hcom,PURGE_ RXCLEAR I PURGE一XCLEAR I

PURGE_ RXABORTIPURGE一XABORT);

for(;;) f

bResult2=WaitCommEvent(hcom,&dwEvtMask,&m一 ov);

刀等待串口事件的发生

if(!bResult2)[//事件WaitCommEvent返回假

switch (dw=GetLastError(川

case ERROR-10-PENDING://异步I/O操作(WaitCommEvent)/

/进行中,正常情况

{break;}

default:[ // I/O操作出现错误

ProcESSErrorMessage("WaitCommEvent()");

break;}}}

else{//事件WaitCommEven岖回真,操作完成

bResult2=C1earCommError(hcom,&dw, &commstat);

if (commstat.cbInQue==0)

continue;}

刀堵塞线程,等待事件组发生。事件组包括:关闭线程事件、

刀读事件、写事件

Event=WaitForMultipleObjects(3, m- hEventArray, FALSE,

INFINITE);

switch (Event){//判断是哪个事件发生

case 0:f//关闭事件

mJbThreadAlive= FALSE;

AfxEndThread(100);//关闭线程

break;)

case 1:f//字符到达,读字符

bRead=TRUE;

bResult=TRUE;

GetCommMask(hcom, &CommEvent);

if(CommEvent&EV_ RXCHAR)(

刀通知控件句柄读取字符

::SendMessage(CommWnd,WM_ COMM_ READ,0,0);)

break;)

case 2:{//写事件

//通知控件句柄写串口

::SendMessage(CommWnd,WM_ COMM_ WRITE,0,0);)}}

刀主循环结束

return 0;}

5 结束语

我们根据激光加工机器人通信的特点,制定了相应的通信协议,同时采用了多种有效的编程方法,以达到安全、高效、实用的目的。经过大量的测试以及I年多工业运用表明,该通信协议及通信系统取得了很好的效果,完全达到了工业机器人通信的要求。

关键字:激光加工  机器人  通信协议 引用地址:激光加工机器人通信协议设计

上一篇:于LK冗余方案的纪庄子污水处理厂自控系统升级改造
下一篇:交流变频调速的原理及其应用

推荐阅读最新更新时间:2024-05-02 22:54

【维科杯】库柏特机器人参评“维科杯·OFweek 2023中国机器人行业年度创新产品奖”
维科杯· OFweek 2023中国 机器人 行业年度评选(简称OFweek Robot Awards 2023),是由中国高科技行业门户OFweek维科网及旗下权威的机器人专业媒体-OFweek维科网·机器人共同举办。该评选是中国机器人行业内的一大品牌盛会,亦是高科技行业具有专业性、影响力的评选之一。 此次活动旨在为机器人行业的产品、技术和企业搭建品牌传播展示平台,并借助OFweek平台资源及影响力,向行业用户和市场推介创新产品与方案,鼓励更多企业投入技术创新;同时为行业输送更多创新产品、前沿技术,一同畅想机器人行业的未来。 维科杯· OFweek 2023中国机器人行业年度评选“OFweek Robot Awards 2023
[机器人]
工业机器人产业该如何从量变发展到质变
(文章来源:中科罗伯特机器人学院) 中国机器人行业在火热发展的同时,依然存在着低端终端厂家的竞争与投入过热等问题,这不利于机器人产业竞争力的提升。随着劳动力成本的增加,人们开始使用机器人来代替人类进行工作。在我国一些关键性的核心部件已经开始国产化,尤其是低端机器人已经实现了核心部件的部分国产化,加上新技术的不断涌现,这都会促进机器人技术的进一步发展。 据了解,汽车生产中的许多工艺都需要工业机器人的参与。在汽车车身生产中压铸、、检测等应用,目前都是由工业机器人参与完成,像是焊接线,它的自动化的程度就很高。在汽车内饰件生产中,从表皮弱化机器人、发泡机器人到最后产品的切割机器人,汽车车身的喷涂,通常都使用工业机器人来代替。
[机器人]
从马航事件和韩国沉船看水下机器人发展的迫切性
  水下机器人也称无人遥控潜水器,是一种工作于水下的极限作业机器人。水下环境恶劣危险,人的潜水深度有限,所以水下机器人已成为开发海洋的重要工具。最近世界范围内接连发生了马来西亚航空公司的波音777飞机失事坠毁事件和韩国客轮沉没事件等灾难性事件,造成了巨大的财产损失和人员伤亡。由于事发地是海上,海中水文情况复杂,人员救援困难,以致错过最佳救援时间,在这种情况下,水下机器人的发展就显得极为迫切。   水下搜救   马航客机失事事件虽然已经过去一个多月,但其黑匣子依然没有找到,美国海军虽然已经派遣了水下机器人前往客机失事海域,实施黑匣子搜索行动,但能否找到或者何时能找到依然是个谜,毕竟已经错过寻找黑匣子的最佳时机。虽然如此,但是水
[机器人]
机器人激光切割机,提高生产效率降低成本
(文章来源:广州特域机电) 多层料库平板自动上下料切割产线,是东莞某工业激光加工企业向特域工业冷水机介绍的一条先进的自动化激光加工生产线:多层料库,节省占地面积,机器人自动上下料,提高生产效率,降低人工成本。 因为是自动化作业,所以选择了支持modbus通讯协议的特域双温冷水机作为冷却系统。客户选配的特域CWFL-2000机器人激光切割机冷水机,专门为高端自动化激光生产线而设计。它可实现激光系统与多台冷水机进行通信:冷水机工作状态及修改双温冷水机参数。当冷水机工作环境及工作要求改变时,用户可以通过控制程序修改冷水机参数,以适应工作环境及要求。 当然,还因为特域机器人激光切割机冷水机具备双循环制冷系统:两个独立
[机器人]
科沃斯踩在全球科技风口上,扫地机器人这市场有多大
科沃斯 选择了 机器人 这条路径,这踩在了全球科技潮流的节点上,也意味着一个更加雄心勃勃、挑战不断的未来。日前,证监会官网披露科沃斯机器人上市IPO招股说明书,公司拟在上交所上市。而这,是这家机器人公司的另一个小目标。 另一个科沃斯可以看见的可能性是,借助人工智能生态,此前多年碎片化的智能家庭概念开始清晰,科沃斯的家庭服务机器人能否成为智能家庭的一个入口,确实存在机会。 科沃斯所在的家庭服务机器人市场,是一个典型的蓝海市场。近年来随着国内服务机器人市场规模迅猛增长,尤其是互联网上的用户群体不断扩大,科沃斯扫地机器人开始通过淘宝、天猫等线上渠道进入更多家庭。2016年双11,科沃斯线上成交额达4.11亿元,刷新各项记录。 家庭服务机
[嵌入式]
充电不排队,这款机器人来帮你啦!
说起汽车,近些年中国的新能源汽车可谓是百花齐放,百家争鸣,国内新能源汽车的成交量蹭蹭上涨。据公安部数据显示,2022年一年内新登记535万辆,保有量达到1310万辆。如此大量的新能源车同时带来了充电难的问题,尽管全国各地充电桩逐渐普及,但仍存在很多诸如充电排队等问题。而如今,一款 机器人 正在尝试解决排队充电的难题。 位于浙江安吉的一家电动汽车充电服务商—能链智电(NaaS),是中国规模最大且增长最快的电动汽车充电服务商之一,NaaS是第一家在纳斯达克(NAAS)上市的中国电动汽车充电服务提供商,作为截至2022年12月底,已部署超过515,000个EV充电器。 最近能链智电推出了一款可以自动驾驶的电动汽车充电机器人,它可以找到您
[机器人]
曾扬言毁灭人类的机器人 如今怎么样了
近年来社会的进步简直就是跨越性的飞跃。科技的发展也是让很多人都感受到了机器智能化的便利。生活上最普遍的就是手机了,但人类会单单满足手机上带给我们的便利吗?不会的,人类科技随时都在进步,也不会总是停留在当下。这次是人类该有的一种挑战性,永远都向着前面冲。对于机器人的研究也是有很大的突破,那大家还记得当初说要毁灭人类的机器人吗? 这个机器人她的名字叫“索菲亚”,这个机器人出自香港的一个科技公司,现在看来机器人都是比较普遍,但偏偏这位“索菲亚”就是比较特殊,作为仿真人类机器人,而且她还可以与人类进行正常的交流,还有心态表情都是很到位,但在众多机器人并不罕见。 因为索菲亚还会说想跟人类一样生活,想跟交朋友,还想组建一个家
[机器人]
机器人正在重塑劳动力?
随着全球人口老龄化和青壮年劳动力减少,各国正面临严重的劳动力短缺问题。与此同时,人们也越来越拒绝从事重复枯燥的体力劳动。而 机器人 和人工智能的应用为缓解这一矛盾提供了重要手段。 根据国际机器人联合会(IFR)数据,我们正处于一个10年大变革期,部分原因是地缘政治事件正从根本上改变我们制造和交付产品的方式。 这种变革是在全球人口结构变化、电子商务需求增长以及可持续性和供应链弹性需求增强的背景下出现的。而这都会持续推动制造业和物流业对更智能、更高效的机器人和自动化的需求。 一场劳动力革命正在酝酿 根据数据,全球正面临劳动力萎缩的大趋势。 以人口老龄化最为严重的日本为例,预计到2040年将面临超过1100万劳动力短缺。美国类似预测
[机器人]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved