亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? robot_cut.txt

?? 機(jī)器人通訊協(xié)議
?? TXT
字號:
激光加工機(jī)器人通信協(xié)議及其實(shí)現(xiàn)
覃衛(wèi),徐方等     (第30卷第5期 計(jì)算機(jī)工程 2004年3月)
 
 
 
摘要:介紹激光加工機(jī)器人系統(tǒng)的通信協(xié)議以及實(shí)現(xiàn)方法,其中涉及到實(shí)時多任務(wù)系統(tǒng)VRTXsa.串口通信控件編制。該通信協(xié)議和通信系統(tǒng)在應(yīng)用中取得了滿意的效果。

[Abstract] This paper introduces the communication protocol for the laser machining robot system and its implementation. It discusses something aboutVRTXsa and the implementation of serial communication ActiveX control. This communication protocol and the communication system run well in the
application
[Key words] Communication protocol; Robot; VRTXsa; Serial communication
 
  
 
   
 
   機(jī)器人目前應(yīng)用十分廣泛,在工業(yè)、科研、醫(yī)學(xué)等領(lǐng)域發(fā)揮了重要作用。我們知道,機(jī)器人的指令需要我們來提供。目前,工業(yè)機(jī)器人的指令一般都是通過示教盒輸入的。示教盒提供了簡單的人機(jī)界面,可以幫助完成簡單的示教任務(wù)。但在許多應(yīng)用中,僅通過示教輸入是無法滿足要求的。在激光加工機(jī)器人系統(tǒng)中,要給機(jī)器人的指令多達(dá)幾萬條,而且指令的參數(shù)不能示教得到,是由其他測量系統(tǒng)提供的。在這種情況下,需要通過上位機(jī)給機(jī)器人控制器發(fā)送指令。這就需要實(shí)現(xiàn)機(jī)器人控制器和上位機(jī)的實(shí)時通信。機(jī)器人指令有固定格式,機(jī)器人通信有其特殊性。為了保證通信的可靠性,提高通信效率,可根據(jù)機(jī)器人通信特點(diǎn),制定了相應(yīng)的通信協(xié)議,并制作了專用的、更適合于工業(yè)應(yīng)用的上位機(jī)通信控件。


1機(jī)器人主控計(jì)算機(jī)
機(jī)器人控制器中最重要的是主控計(jì)算機(jī)。在激光加工機(jī)器人中,主控計(jì)算機(jī)采用基于PC總線S 104/486DX工業(yè)控制級嵌入式單板計(jì)算機(jī),其核心是AMD 80486 DX微處理器。主控計(jì)算機(jī)提供串行接口,可以和它進(jìn)行串口通信。
主控計(jì)算機(jī)內(nèi)部的信息處理由機(jī)器人控制器操作系統(tǒng)來實(shí)現(xiàn)。整個系統(tǒng)采用了實(shí)時多任務(wù)操作系統(tǒng)VRTXsa來實(shí)現(xiàn),它具有很好的實(shí)時性和可靠性,同時具有完善的任務(wù)管理機(jī)制。


2激光加工機(jī)器人通信系統(tǒng)結(jié)構(gòu)

機(jī)器人的運(yùn)動指令來自通信系統(tǒng)。在我們的通信系統(tǒng)中,主要包括上位機(jī)應(yīng)用程序、串口控件、串口和機(jī)器人主控計(jì)算機(jī)(下稱下位機(jī))。上位機(jī)應(yīng)用程序產(chǎn)生指令,通過控件訪問串行端口,將指令傳給下位機(jī)。下位機(jī)收到指令后,對指令進(jìn)行分析處理。對于下位機(jī)來說,這些指令分兩種:一種是解釋執(zhí)行指令,需要進(jìn)入命令隊(duì)列,排隊(duì)執(zhí)行,占用緩存;另一種是立即執(zhí)行指令,不需要進(jìn)入隊(duì)列,不占用緩存。對于解釋執(zhí)行指令,下位機(jī)收到后,把指令放入隊(duì)列后馬上返回應(yīng)答。對于立即執(zhí)行指令,先執(zhí)行該指令,然后才返回應(yīng)答。查詢指令屬于立即執(zhí)行指令,下位機(jī)除了返回命令在命令字外,還
同時返回相應(yīng)的數(shù)值。上位機(jī)根據(jù)返回的應(yīng)答判斷通信的狀態(tài),并進(jìn)行相應(yīng)的處理。


3通信協(xié)議

我們的激光加工機(jī)器人通信系統(tǒng)具有以下特點(diǎn):
1)機(jī)器人只會按指令進(jìn)行工作,如果指令有問題,將會帶來不可預(yù)測的后果。所以對于我們的通信系統(tǒng)來說,可靠性、安全性是首要的。
2)機(jī)器人工作環(huán)境比較惡劣,各種干擾比較大。通信的抗干擾能力、錯誤處理的能力非常重要。
3)為了提高加工效率,希望機(jī)器人能以較快的速度進(jìn)行工作。
    為避免機(jī)器人出現(xiàn)“空指令”,通信速度要跟得上。基于機(jī)器人通信系統(tǒng)自身的特點(diǎn),上位機(jī)和它進(jìn)行通信,必須滿足其特定的要求。我們采用如下的通信方式:
(1)主從方式。上位機(jī)為主機(jī),下位機(jī)為從機(jī)。一般情
況下,下位機(jī)不能主動給上位機(jī)發(fā)送信息。只有上位機(jī)給下
位機(jī)發(fā)出指令后,下位機(jī)才能作出應(yīng)答。這樣通過上位機(jī),
我們就可以很好地控制整個通信過程。
(2)數(shù)據(jù)幀方式。采用數(shù)據(jù)幀的方式,有利于保證數(shù)據(jù)
包的完整性,便于進(jìn)行數(shù)據(jù)接收和處理。在我們的通信系統(tǒng)
中,上位機(jī)和下位機(jī)均采用相同的協(xié)議對通信數(shù)據(jù)進(jìn)行打
包、解包。我們自己定義幀頭為eb 90 82,幀尾為9082,幀
標(biāo)志為f0。另外規(guī)定,有效數(shù)據(jù)中若出現(xiàn)90,則雙寫90,用
以區(qū)別幀尾中的900數(shù)據(jù)幀格式如下所示:


{幀頭一幀標(biāo)志一通信數(shù)據(jù)一幀尾一校驗(yàn)字}


另外,在我們的通信過程中,要處理各種不同類型的數(shù)
據(jù),包括char' , short型、float型、byte型等,在有效數(shù)據(jù)前
加入標(biāo)識符來識別它們。如f0 06表示6個浮點(diǎn)數(shù),f3 05表示
5個字符。
(3)校驗(yàn)和。這是一種簡單而實(shí)用的校驗(yàn)方式。在上位
機(jī)發(fā)送指令前,自動計(jì)算數(shù)據(jù)的和,并將它附在數(shù)據(jù)幀的末
端,一起發(fā)送給下位機(jī)。下位機(jī)在接收到數(shù)據(jù)幀后,先解
包,然后再計(jì)算一次數(shù)據(jù)和,用它與數(shù)據(jù)幀末端的校驗(yàn)和進(jìn)
行比較。反之亦然。使用這種方式可以檢驗(yàn)數(shù)據(jù)在傳輸?shù)倪^
程中是否發(fā)生了變異。
(4)自動重發(fā)機(jī)制。下位機(jī)在接收到錯誤的數(shù)據(jù)幀時,
將會把該數(shù)據(jù)幀遺棄掉,同時向上位機(jī)返回錯誤碼報錯。這
時候,該幀數(shù)據(jù)需要重新發(fā)送。如果把重發(fā)任務(wù)交給應(yīng)用程
序,程序?qū)⒆兊帽容^復(fù)雜。我們把這個任務(wù)交給控件,可以
很輕松的實(shí)現(xiàn)重發(fā)功能。在控件內(nèi)部,當(dāng)新的數(shù)據(jù)發(fā)送之
前,都將數(shù)據(jù)做一個備份,直到確認(rèn)接收正確了,才將其消
除。如果發(fā)現(xiàn)有錯誤,將其再次發(fā)出去。
(5)應(yīng)答方式。在通信過程,下位機(jī)對上位機(jī)每一幀數(shù)
據(jù)都必須做出的應(yīng)答。上位機(jī)根據(jù)返回的應(yīng)答判斷通信狀
態(tài),然后進(jìn)行下一步動作。為了安全起見,規(guī)定只有在確認(rèn)
前一包指令正確應(yīng)答之后,才可以發(fā)下一包指令。
對于非查詢指令(包括全部解釋執(zhí)行指令和部分立即執(zhí)
行指令),下位機(jī)收到后,返回該指令的命令字;對于查詢
指令,除了返回命令字之外,同時還返回查詢數(shù)據(jù),如機(jī)器
人的位置、各軸轉(zhuǎn)角等。如果下位機(jī)檢測到數(shù)據(jù)幀有問題,
如無幀頭、校驗(yàn)和錯等,則返回相應(yīng)的錯誤碼。
上位機(jī)在發(fā)送指令的時候,同時記錄下了該指令的命令
字。在接收到下位機(jī)返回的應(yīng)答后,將其中的命令字與保留
的命令字比較,如果一樣,則說明發(fā)送正確,可以發(fā)送下一
條指令;反之,則說明指令發(fā)送有問題,根據(jù)錯誤碼進(jìn)行錯
誤處理,并重發(fā)當(dāng)前指令包。指令的發(fā)送和應(yīng)答的接收過程
如圖1所示。

圖1 指令的發(fā)送和應(yīng)答的接收過程(點(diǎn)擊可看圖)

(6)成組指令發(fā)送方式。由于機(jī)器人的運(yùn)行速度很快,
為了能保證指令發(fā)送速度能跟上運(yùn)行速度,因此在一個數(shù)據(jù)
報里同時發(fā)送了多條指令,而下位機(jī)只需應(yīng)答第一條指令。
這樣就減少了應(yīng)答時間,提高了指令的發(fā)送速度。實(shí)際應(yīng)用
中,我們采用7條指令一個數(shù)據(jù)報,結(jié)果顯示,速度快了大
約37。為了安全和處理方便,控件只允許解釋執(zhí)行指令成
組發(fā)送,對于立即指令,只能發(fā)送單指令數(shù)據(jù)報。


4通信的實(shí)現(xiàn)

4.1下位機(jī)通信任務(wù)的實(shí)現(xiàn)


在實(shí)時多任務(wù)系統(tǒng)中,一項(xiàng)工作的完成往往需要通過多
個任務(wù)(中斷)共同完成的。這需要各任務(wù)及中斷協(xié)調(diào)動作,
相互配合,甚至進(jìn)行通信。VRTXsa提供了郵箱(mailbox),
隊(duì)列(queue)、事件標(biāo)志(event flag)、信號量(semaphore)互斥
體(mutexes) 5種通信機(jī)制。
在下位機(jī)通信系統(tǒng)中,通信工作由串口2中斷、時鐘中
斷、監(jiān)控任務(wù)、顯示任務(wù)、執(zhí)行任務(wù)等共同協(xié)調(diào)完成的。如
圖2所示。


圖2控制器任務(wù)間數(shù)據(jù)流圖(點(diǎn)擊可看圖)


機(jī)器人收到上位機(jī)的指令后,串口2中斷發(fā)生,它的中
斷服務(wù)程序啟動。它將設(shè)置中斷同步標(biāo)志,觸發(fā)串口2任務(wù)
程序。串口2任務(wù)將處理接收到的上位機(jī)數(shù)據(jù),將解釋指令
放入命令隊(duì)列中,并設(shè)置相關(guān)標(biāo)志。在一個時鐘周期內(nèi)
(16ms),所有任務(wù)執(zhí)行一遍,它們根據(jù)相關(guān)標(biāo)志,完成相應(yīng)
的工作,如讀取命令隊(duì)列,執(zhí)行命令,給上位機(jī)返回應(yīng)答。
串口2任務(wù)程序如下:
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);
刀中斷到來,清中斷同步標(biāo)志
ev_group=sc_ fclear(gruop_ id,4,&err);
read_ CommData();//處理并讀取數(shù)據(jù)
刀處理各種指令,并設(shè)置各相關(guān)標(biāo)志
process_ Comm (BYTE *Buff,BYTE *cPtr);
}


4.2上位機(jī)通信控件的實(shí)現(xiàn)


為了便于用戶使用,把上位機(jī)的通信功能封裝到
ActiveX控件中。選擇VC++6進(jìn)行通信控件的開發(fā),串口操
作使用API函數(shù)來實(shí)現(xiàn)。
控件中采用了多線程技術(shù)。為監(jiān)控串口任務(wù)創(chuàng)建了一個
工作線程,以免它堵塞主線程,提高了系統(tǒng)的響應(yīng)性。
通信控件采用了異步v0方式,以提高發(fā)送、接收和處
理數(shù)據(jù)的效率。異步v0操作建立后會立即返回,即使操作
還未完成。這樣把費(fèi)時的v0操作放在后臺進(jìn)行,線程就可
以干別的事情,極大地提高了程序的運(yùn)行效率。
在串口通信中,有幾種讀取串口數(shù)據(jù)的方式,其中事件
驅(qū)動是最有效率的方式。在監(jiān)視串口的輔助線程中,當(dāng)有數(shù)
據(jù)到達(dá)時串口是,串口事件觸發(fā),控件開始讀取串口輸入緩
沖區(qū)的數(shù)據(jù)。如果沒有數(shù)據(jù)到達(dá),那么使用
WaitForMultipleObjects 0'數(shù)堵塞監(jiān)測線程,把資源讓給其它
線程。在使用線程堵塞技術(shù)之后,監(jiān)視串口線程占用的系統(tǒng)
資源大大減少,同時提高了指令的發(fā)送效率。
串口讀寫和監(jiān)控是通信的最主要部分,采用了異步v0
操作,使得程序復(fù)雜化。異步v0操作分兩部分:一是創(chuàng)建
該v0操作,然后返回;二是探測操作的完成。下面是讀串
口的部分程序清單:
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 //讀操作在函數(shù)返回前已經(jīng)完成
{…}刀處理接收的字符
}
return; //沒有字符了,返回
}
寫串口程序和讀串口類似。監(jiān)視線程的部分代碼如下:
DINT CommWatch(LPVOID pParam)
{刀清緩存
PurgeComm(hcom,PURGE_ RXCLEAR I PURGE一XCLEAR I
PURGE_ RXABORTIPURGE一XABORT);
for(;;) f
bResult2=WaitCommEvent(hcom,&dwEvtMask,&m一 ov);
刀等待串口事件的發(fā)生
if(!bResult2)[//事件WaitCommEvent返回假
switch (dw=GetLastError(川
case ERROR-10-PENDING://異步I/O操作(WaitCommEvent)/
/進(jìn)行中,正常情況
{break;}
default:[ // I/O操作出現(xiàn)錯誤
ProcessErrorMessage("WaitCommEvent()");
break;}}}
else{//事件WaitCommEven嶇回真,操作完成
bResult2=C1earCommError(hcom,&dw, &commstat);
if (commstat.cbInQue==0)
continue;}
刀堵塞線程,等待事件組發(fā)生。事件組包括:關(guān)閉線程事件、
刀讀事件、寫事件
Event=WaitForMultipleObjects(3, m- hEventArray, FALSE,
INFINITE);
switch (Event){//判斷是哪個事件發(fā)生
case 0:f//關(guān)閉事件
mJbThreadAlive= FALSE;
AfxEndThread(100);//關(guān)閉線程
break;)
case 1:f//字符到達(dá),讀字符
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);)}}
刀主循環(huán)結(jié)束
return 0;}
 
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久精品tv| 亚洲精品视频免费看| 成人自拍视频在线观看| 亚洲成年人网站在线观看| 国产精品久久久久aaaa樱花 | 日韩三级电影网址| 欧美日韩一级二级| 91精品福利视频| 色先锋资源久久综合| 色综合久久中文综合久久牛| 337p日本欧洲亚洲大胆色噜噜| 91精品欧美一区二区三区综合在| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩国产综合草草| 欧美精品在线观看播放| 日韩精品在线网站| 国产午夜精品理论片a级大结局| 国产三级精品在线| 国产精品国产三级国产普通话三级| 麻豆国产一区二区| 国产精品综合视频| 不卡高清视频专区| 91福利小视频| 亚洲精品欧美二区三区中文字幕| 成人美女视频在线看| 久久久av毛片精品| 国产精品综合视频| 久久在线观看免费| 国产一区二区三区免费看| 99精品久久免费看蜜臀剧情介绍| 欧美三级日韩三级| 香蕉影视欧美成人| 欧美一区永久视频免费观看| 国产精品二区一区二区aⅴ污介绍| 韩国精品主播一区二区在线观看| www.激情成人| 日韩欧美一区二区久久婷婷| 日韩制服丝袜av| 成人av动漫在线| 国产精品美女久久福利网站| 国产精品国产三级国产aⅴ中文 | 天天综合网 天天综合色| 精品一区二区三区香蕉蜜桃 | 国产91精品精华液一区二区三区 | 欧美激情综合五月色丁香| 国产在线精品免费av| 亚洲一二三区视频在线观看| 在线欧美一区二区| 亚洲国产一区视频| 国产精品国产三级国产普通话99| 精品乱人伦小说| 成人妖精视频yjsp地址| 蜜臀久久99精品久久久画质超高清 | 五月天激情小说综合| 亚洲欧洲www| 欧美性一级生活| av不卡一区二区三区| 国产一区二区三区久久久| 秋霞成人午夜伦在线观看| 久久久精品日韩欧美| 欧美成人a∨高清免费观看| 欧美少妇性性性| 91久久精品一区二区三| 99久久精品免费看| 粉嫩13p一区二区三区| 国产在线视频一区二区| 美女脱光内衣内裤视频久久网站 | 久久久精品影视| 精品久久久久久久久久久久久久久 | 中文字幕中文字幕在线一区| 久久久久99精品国产片| 精品国产乱码久久久久久夜甘婷婷| 丁香天五香天堂综合| 国产在线观看免费一区| 国产精品资源站在线| 国内偷窥港台综合视频在线播放| 蜜桃精品视频在线| 久久激五月天综合精品| 亚洲免费观看视频| 欧美成人免费网站| 精品久久久久一区| 亚洲精品在线一区二区| 久久色在线观看| 久久久99精品免费观看| 日本一区二区高清| 国产精品对白交换视频| 亚洲欧美国产77777| 亚洲在线一区二区三区| 国产精品美女久久久久久久久久久 | 丝袜美腿高跟呻吟高潮一区| 日本不卡视频在线观看| 捆绑紧缚一区二区三区视频| 狠狠久久亚洲欧美| 成熟亚洲日本毛茸茸凸凹| 丁香六月久久综合狠狠色| av动漫一区二区| 在线观看一区二区视频| 69p69国产精品| 精品福利一二区| 中文字幕一区二区三区四区 | 99精品黄色片免费大全| 欧美日韩在线电影| 欧美大片在线观看一区二区| 国产亚洲美州欧州综合国| 亚洲欧美成人一区二区三区| 日本aⅴ精品一区二区三区| 九色综合狠狠综合久久| 91亚洲精华国产精华精华液| 九九久久精品视频| 国产91富婆露脸刺激对白| 91视频免费播放| 91麻豆精品国产| 国产亚洲精品aa午夜观看| 亚洲综合在线第一页| 蜜桃精品视频在线| av在线不卡观看免费观看| 91精品欧美一区二区三区综合在| 久久久久国产精品厨房| 亚洲电影一区二区| 国产精品一区在线观看你懂的| 97se狠狠狠综合亚洲狠狠| 91精品久久久久久久99蜜桃| 亚洲国产精华液网站w | 日韩毛片在线免费观看| 亚洲欧洲精品一区二区三区| 亚洲国产欧美日韩另类综合 | 日韩精品最新网址| 一区二区三区国产豹纹内裤在线| 亚洲精品菠萝久久久久久久| 久久精品72免费观看| 欧美午夜电影网| 国产精品情趣视频| 精品一区二区三区不卡| 日本高清不卡aⅴ免费网站| 久久精品一区二区三区不卡| 亚洲一区二区在线视频| 粉嫩绯色av一区二区在线观看| 欧美精品久久一区二区三区| 专区另类欧美日韩| 国产精品99久久久久久似苏梦涵| 欧美三级一区二区| 亚洲男同性恋视频| 成人精品亚洲人成在线| 欧美电影免费提供在线观看| 亚洲一级片在线观看| jlzzjlzz亚洲女人18| 久久免费国产精品| 人妖欧美一区二区| 欧美美女一区二区| 亚洲综合在线电影| 粉嫩一区二区三区在线看| 欧美r级在线观看| 免费看欧美美女黄的网站| 欧美精品国产精品| 亚洲国产精品久久艾草纯爱| 色激情天天射综合网| 最好看的中文字幕久久| av不卡在线观看| 国产精品久久久久久久岛一牛影视 | 欧美精品久久久久久久多人混战| 一区二区三区成人| 在线视频一区二区三| 亚洲综合在线免费观看| 在线精品视频免费播放| 一区二区欧美视频| 在线观看亚洲a| 一区二区三区在线视频播放| 色综合天天综合网国产成人综合天 | 99久久精品情趣| 亚洲视频你懂的| 色天使色偷偷av一区二区| 专区另类欧美日韩| 色综合亚洲欧洲| 亚洲狠狠爱一区二区三区| 欧美日韩一区视频| 日韩成人免费看| 99久久国产综合精品麻豆| ...中文天堂在线一区| 91香蕉视频污在线| 一区二区免费在线播放| 欧美军同video69gay| 久久 天天综合| 国产亚洲欧洲997久久综合| thepron国产精品| 一区二区欧美视频| 日韩一本二本av| 国产99精品国产| 亚洲欧美欧美一区二区三区| 欧美午夜精品一区二区三区| 日本不卡免费在线视频| 国产亚洲综合性久久久影院| 成人性生交大片免费看中文| 一区二区三区中文字幕电影| 在线播放/欧美激情| 国产一区二区三区在线观看免费视频| 中文字幕的久久| 日本电影亚洲天堂一区| 免费一区二区视频| 中文字幕免费不卡在线| 欧美日韩日日夜夜|