工業(yè)機(jī)器人技術(shù)基礎(chǔ)及應(yīng)用 第4章 工業(yè)機(jī)器人硬件及通信基礎(chǔ)_第1頁
工業(yè)機(jī)器人技術(shù)基礎(chǔ)及應(yīng)用 第4章 工業(yè)機(jī)器人硬件及通信基礎(chǔ)_第2頁
工業(yè)機(jī)器人技術(shù)基礎(chǔ)及應(yīng)用 第4章 工業(yè)機(jī)器人硬件及通信基礎(chǔ)_第3頁
工業(yè)機(jī)器人技術(shù)基礎(chǔ)及應(yīng)用 第4章 工業(yè)機(jī)器人硬件及通信基礎(chǔ)_第4頁
工業(yè)機(jī)器人技術(shù)基礎(chǔ)及應(yīng)用 第4章 工業(yè)機(jī)器人硬件及通信基礎(chǔ)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

IndustrialRobotField

Programming工業(yè)機(jī)器人技術(shù)基礎(chǔ)及應(yīng)用演示者2020-12-05

15:14:10--------------------------------------------本PPT模板部分元素使用了幻燈片母版制作。如果需要修改,點(diǎn)擊-視圖-幻燈片母版-修改;完成后關(guān)閉編輯母版即可。課程概覽工業(yè)機(jī)器人I/O通信與硬件講解工業(yè)機(jī)器人系統(tǒng)功能與信號(hào)關(guān)聯(lián)工業(yè)機(jī)器人socket通信與實(shí)例分析項(xiàng)目四 工業(yè)機(jī)器人硬件及通信基礎(chǔ)第一部分:I/O設(shè)備硬件講解I/O設(shè)備硬件講解型號(hào)說明總線DSQC651分布式I/O模塊

di8/do8/

ao2DeviceNetDSQC652分布式I/O模塊

di16/do16DSQC653分布式I/O模塊

di8/do8帶繼電器DSQC355A分布式I/O模塊

ai4/ao4DSQC377B輸送鏈跟蹤單元DSQC103016個(gè)數(shù)字輸入端,16個(gè)數(shù)字輸出端以太網(wǎng)/IP通信協(xié)議ABB工業(yè)機(jī)器人常用的ABB標(biāo)準(zhǔn)板類型有以下幾種:A:LED信號(hào)指示燈X1:數(shù)字量輸出端口X3:數(shù)字量輸入端口X5:DeviceNet連接端口X6:模擬量輸出接口I/O設(shè)備硬件講解①DSQC651信號(hào)板具備8個(gè)數(shù)字量輸入端口;在端口中,額定的觸發(fā)電壓為直流24V;②輸入電壓范圍:當(dāng)電壓在15-35V時(shí),信號(hào)板的高電平觸發(fā),狀態(tài)為1;當(dāng)電壓在-35-5V時(shí),信號(hào)版的高電平無法觸發(fā),狀態(tài)為0;③信號(hào)觸發(fā)延遲:平均延遲:5ms;最大延遲:6ms;最小延遲:4ms;I/O設(shè)備硬件講解①DSQC651信號(hào)版具備8個(gè)數(shù)字量輸出端口;在端口中,額定的輸出電壓為直流24V;②輸出端口帶線路保護(hù),可防止線路誤接,保護(hù)范圍為+35V-(-35V)③信號(hào)觸發(fā)延遲:平均延遲:5ms;PLC或其他信號(hào)控制時(shí)應(yīng)考慮延遲因素;I/O設(shè)備硬件講解①DSQC651信號(hào)板具備2個(gè)模擬量輸出端口;在端口中,額定的輸出電壓為直流0-10V;②DSQC651信號(hào)板中模擬信號(hào)的分辨率為12位(bits)所以能夠反映該模擬量變化的最小單位則為1/4096;I/O設(shè)備硬件講解DSQC651信號(hào)板卡中輸入端口占用一個(gè)字節(jié)所以輸入端口的地址即有8位,對(duì)應(yīng)的地址號(hào)則為0-7共計(jì)8位;DSQC651信號(hào)板卡中兩個(gè)模擬量輸出端口AO1、AO2中每個(gè)端口占用2個(gè)字節(jié),即每個(gè)模擬量輸出端口占用16位,所以AO1對(duì)應(yīng)的地址號(hào)為0-15,AO2對(duì)應(yīng)的地址為16-31;DSQC651信號(hào)板卡中輸出端口占用一個(gè)字節(jié)所以輸出端口的地址即有8位,但因?yàn)閮蓚€(gè)模擬量輸出端口占用了四個(gè)字節(jié)即32位的地址線,所以輸出端口的八位地址線的起始地址則為32,地址范圍為:32-39共計(jì)8位;I/O設(shè)備硬件講解I/O設(shè)備硬件講解DSQC1030數(shù)字基本件第二部分:工業(yè)機(jī)器人I/O通信設(shè)置工業(yè)機(jī)器人I/O通信設(shè)置ABB標(biāo)準(zhǔn)I/O板(例如:DSQC651、DSQC652等)是下掛在主計(jì)算機(jī)DeviceNet總線下的,DSQC1030系列的I/O板卡則是下掛載以太網(wǎng)/IP通信協(xié)議總線下的,這里我們以最為常見的DSQC651為例來進(jìn)行講解。DSQC651DeviceNet協(xié)議總線網(wǎng)絡(luò)主計(jì)算機(jī)(MainComputer)DSQC652DSQC377BDSQC1030以太網(wǎng)/IP通信協(xié)議總線工業(yè)機(jī)器人I/O通信設(shè)置要使主計(jì)算機(jī)識(shí)別各總線下掛載的板卡,用戶則需要給各板卡分配其對(duì)應(yīng)的地址以DSQC651板卡為例Device

Net

接口:X5端子X5端子編號(hào)使用定義10V

黑色2CAN信號(hào)線low

藍(lán)色3屏蔽線4CAN信號(hào)線hight白色524V

紅色6GND地址選擇公共端7模塊ID

bit0(LSB)8模塊ID

bit1(LSB)9模塊ID

bit2(LSB)10模塊ID

bit3(LSB)11模塊ID

bit4(LSB)12模塊ID

bit5(LSB)工業(yè)機(jī)器人I/O通信設(shè)置如:將X5端子編號(hào)中第8腳和第10腳的跳線減掉,2+8=10就可以獲得10的地址,以此類推可以得到不同地址。注意:板卡的地址范圍是10-63。因?yàn)?-9的地址已經(jīng)被機(jī)器人系統(tǒng)占用

感謝您的觀看!演示者2020-12-05

15:14:18--------------------------------------------本PPT模板部分元素使用了幻燈片母版制作。如果需要修改,點(diǎn)擊-視圖-幻燈片母版-修改;完成后關(guān)閉編輯母版即可。IndustrialRobotField

Programming工業(yè)機(jī)器人技術(shù)基礎(chǔ)及應(yīng)用演示者2020-12-05

15:15:46--------------------------------------------本PPT模板部分元素使用了幻燈片母版制作。如果需要修改,點(diǎn)擊-視圖-幻燈片母版-修改;完成后關(guān)閉編輯母版即可。課程概覽工業(yè)機(jī)器人I/O通信與硬件講解工業(yè)機(jī)器人I/O信號(hào)的建立與系統(tǒng)功能的關(guān)聯(lián)工業(yè)機(jī)器人socket通信與實(shí)例分析項(xiàng)目四 工業(yè)機(jī)器人硬件及通信基礎(chǔ)第一部分:I/O信號(hào)的建立I/O板卡的建立問題:上節(jié)課我們學(xué)習(xí)了ABB機(jī)器人DeviceNet總線下的一些硬件板卡。那么如何將對(duì)應(yīng)的板卡添加至機(jī)器人的系統(tǒng)當(dāng)中呢?以及如何讓機(jī)器人識(shí)別出對(duì)應(yīng)的板卡?在這里,我們就需要回顧一下上節(jié)課所學(xué)習(xí)的知識(shí),硬件板卡的地址:DeviceNet總線I/O板卡的建立1234I/O板卡的建立5678I/O板卡的建立9101112I/O信號(hào)的建立信號(hào)類型說明應(yīng)用方向Digital

Input數(shù)字量輸入信號(hào)用于物料的檢測或接收上位機(jī)信號(hào)Digital

Output數(shù)字量輸出信號(hào)用于輸出機(jī)器人狀態(tài)或控制外部裝置Group

Input組輸入信號(hào)用于上位機(jī)調(diào)用不同機(jī)器人程序Group

Output組輸出信號(hào)用于控制多功能或多需求的夾具Analog

Input模擬量輸入信號(hào)用于接收輸送鏈運(yùn)行速度Analog

Output模擬量輸出信號(hào)用于控制焊接電源的電壓或電流數(shù)字量輸入信號(hào)的建立DSQC651輸入端口24V

6A開關(guān)電源按鈕開關(guān)參數(shù)名稱設(shè)置值說明Namedi_1信號(hào)名稱Typeof

signalDigital

Input信號(hào)類型Assignedof

DeviceBoard10信號(hào)所屬I/O模塊Device

Mapping0信號(hào)在該模塊中的地址這里我們以一個(gè)按鈕開關(guān)為例,當(dāng)我們把一個(gè)按鈕開關(guān)接入到DSQC651板卡的輸入端口時(shí),651板卡的公共端將與開關(guān)電源的0V相接。由上節(jié)課程我們知道651板卡是PNP型板卡,高電位有效,所以我們將按鈕的一端接入開關(guān)電源的24V,另一端接入651板卡輸入端的第一個(gè)針腳。此時(shí)就可以形成一個(gè)完整的外部控制電路,當(dāng)按鈕觸發(fā)時(shí),24V導(dǎo)通,651板卡輸入端即可收到信號(hào)。數(shù)字量輸出信號(hào)的建立DSQC651輸出端口24V

6A開關(guān)電源按鈕開關(guān)參數(shù)名稱設(shè)置值說明Namedo_1信號(hào)名稱Typeof

signalDigital

Onput信號(hào)類型Assignedof

DeviceBoard10信號(hào)所屬I/O模塊Device

Mapping32信號(hào)在該模塊中的地址這里我們以一個(gè)24V信號(hào)燈為例,當(dāng)我們把一個(gè)信號(hào)燈接入到DSQC651板卡的輸出端口時(shí),因?yàn)?51板卡是PNP型板卡,輸出端口高電位有效,所以我們將信號(hào)燈的24V端口接入651板卡的輸出端口的第一腳,信號(hào)燈的0V接入開關(guān)電源的0V端,此時(shí)就可以形成一個(gè)完整的電路,當(dāng)651板卡第一腳對(duì)外輸出信號(hào)時(shí),24V導(dǎo)通,信號(hào)燈此時(shí)就被點(diǎn)亮了。24V

信號(hào)燈組輸出信號(hào)的建立DSQC651輸出端口按鈕開關(guān)參數(shù)名稱設(shè)置值說明Namego_1信號(hào)名稱Typeof

signalGroup

Onput信號(hào)類型Assignedof

DeviceBoard10信號(hào)所屬I/O模塊Device

Mapping36-39信號(hào)在該模塊中的地址組信號(hào)就是將多個(gè)數(shù)字量輸出信號(hào)組成一組進(jìn)行使用,這樣可以同時(shí)控制多個(gè)信號(hào)進(jìn)行輸出,提高了效率及可控性。例如我們將651板卡的5,6,7,8四個(gè)數(shù)字量輸出端口組成一組,將這一組信號(hào)命名為一個(gè)組信號(hào)go_1。此時(shí)當(dāng)我們將go_1的值設(shè)定為5時(shí),計(jì)算機(jī)將會(huì)把十進(jìn)制的“5”轉(zhuǎn)變成二進(jìn)制的“0101”所以此時(shí)651板卡的6、8號(hào)腳將會(huì)同時(shí)對(duì)外輸出信號(hào)。5、7號(hào)腳將不會(huì)輸出。將5、6、7、8用于組輸出模擬量輸出信號(hào)的建立DSQC651輸出端口DSQC651板卡具備了兩個(gè)模擬量輸出接口AO1、AO2。X6端口中前三個(gè)端口并未使用,第四個(gè)端口為0V公共端,第五個(gè)端口為AO1輸出端,第六個(gè)端口為AO2輸出端。我們可以利用這兩個(gè)模擬量輸出端口在焊接應(yīng)用中分別控制焊接電源的焊接電壓與焊接電流。根絕我們上節(jié)課所講的知識(shí),我們可以知道:AO1地址范圍:0-15(2Byte)AO2地址范圍:16-31(2Byte)ao_10V10V14V40V焊接電壓模擬電壓模擬量輸出信號(hào)的建立參數(shù)名稱設(shè)定值備注Nameao_1信號(hào)名稱Typeof

signalAnalog

Output信號(hào)類型Assignedto

DeviceBoard10所屬I/O模塊Device

Mapping0-15信號(hào)在模塊下的地址Default

Value14默認(rèn)值,設(shè)定默認(rèn)值時(shí)不能小于最小邏輯值,否則系統(tǒng)會(huì)出錯(cuò)AnalogEncoding

TypeUnsignal編碼類型,我們設(shè)為無符號(hào)類型MaximumLogical

Value40最大邏輯值,因?yàn)槲覀兊暮笝C(jī)最大輸出電壓為40VMaximumPhysical

Value10最大物理值,焊機(jī)在輸出最大電壓時(shí)所對(duì)應(yīng)I/O板卡的輸出電壓的電壓值MaximumPyhsicalValue

Limit10最大物理極限值,I/O板卡模擬量輸出端口的最大輸出電壓MaximumBit

value65535最大邏輯位值,2byte

所以為2的16次方-1=65535MinimumLogical

Value14最小邏輯值,因?yàn)槲覀兊暮笝C(jī)最小輸出電壓為14VMinimumPhysical

Value0最小物理值,焊機(jī)在輸出最小電壓時(shí)所對(duì)應(yīng)I/O板卡的輸出電壓的電壓值MinimumPyhsicalValue

Limit0最小物理極限值,I/O板卡模擬量輸出端口的最小輸出電壓MinimumBit

value0最小邏輯位值第二部分:信號(hào)與系統(tǒng)功能的關(guān)聯(lián)信號(hào)與系統(tǒng)功能的關(guān)聯(lián)信號(hào)與系統(tǒng)功能的關(guān)聯(lián):當(dāng)我們建立好了機(jī)器人的輸入輸出信號(hào)后,我們就可以利用創(chuàng)建好的信號(hào)控制或接收外部裝置的動(dòng)作或命令。此時(shí),如果我們的上位機(jī)是PLC,如何通過PLC來控制機(jī)器人的電機(jī)開啟、啟動(dòng)或停止呢?這時(shí)我們就需要將控制信號(hào)與機(jī)器人系統(tǒng)輸入輸出功能相連接了,也就是我們機(jī)器人系統(tǒng)配置中的“SystemInput”與“SystemOutput”信號(hào)與系統(tǒng)功能的關(guān)聯(lián)DeviceNet總線任務(wù):現(xiàn)在需要用PLC遠(yuǎn)程來控制機(jī)器人電機(jī)上電工作,同時(shí)當(dāng)機(jī)器人端呈“自動(dòng)狀態(tài)”時(shí)需要將“狀態(tài)”通過I/O信號(hào)傳遞給PLC。解決辦法:當(dāng)需要將機(jī)器人的狀態(tài)傳遞給上位機(jī)PLC的時(shí)候,我們需要借助機(jī)器人系統(tǒng)中的“System

Output”功能,利用這個(gè)功能,將機(jī)器人系統(tǒng)的功能或狀態(tài)與對(duì)應(yīng)的輸出信號(hào)相綁定,一旦事件觸發(fā),則對(duì)應(yīng)綁定的信號(hào)將觸發(fā)。如果上位機(jī)PLC需要機(jī)器人完成對(duì)應(yīng)的系統(tǒng)功能或事件時(shí),我們則利用機(jī)器人系統(tǒng)中的“SystemInput”功能,利用此功能,將機(jī)器人系統(tǒng)的功能或狀態(tài)與對(duì)應(yīng)的輸入信號(hào)相綁定。一旦該輸入信號(hào)被上位機(jī)觸發(fā),機(jī)器人則完成相對(duì)應(yīng)的系統(tǒng)功能或事件。信號(hào)與系統(tǒng)功能的關(guān)聯(lián)信號(hào)關(guān)聯(lián)步驟1:首先,我們先選定所需要用的信號(hào)。例如,我們現(xiàn)在需要用“do_1”數(shù)字量輸出信號(hào)關(guān)聯(lián)系統(tǒng)的“自動(dòng)狀態(tài)”;機(jī)器人將自身狀態(tài)對(duì)外輸出,則應(yīng)該使用“System

Output”系統(tǒng)輸出功能信號(hào)與系統(tǒng)功能的關(guān)聯(lián)信號(hào)關(guān)聯(lián)步驟2:首先,我們先選定所需要用的信號(hào)。例如,我們現(xiàn)在需要用“di_1”數(shù)字量輸入信號(hào)關(guān)聯(lián)系統(tǒng)的“電機(jī)上電”;外部信號(hào)控制機(jī)器人端工作,則應(yīng)該使用“System

Iutput”系統(tǒng)輸出功能

感謝您的觀看!演示者2020-12-05

15:15:59--------------------------------------------本PPT模板部分元素使用了幻燈片母版制作。如果需要修改,點(diǎn)擊-視圖-幻燈片母版-修改;完成后關(guān)閉編輯母版即可。IndustrialRobotField

Programming工業(yè)機(jī)器人技術(shù)基礎(chǔ)及應(yīng)用演示者2020-12-05

15:17:49--------------------------------------------本PPT模板部分元素使用了幻燈片母版制作。如果需要修改,點(diǎn)擊-視圖-幻燈片母版-修改;完成后關(guān)閉編輯母版即可。課程概覽工業(yè)機(jī)器人I/O通信與硬件講解工業(yè)機(jī)器人I/O信號(hào)的建立與系統(tǒng)功能的關(guān)聯(lián)工業(yè)機(jī)器人socket通信與實(shí)例分析模塊四 工業(yè)機(jī)器人硬件及通信基礎(chǔ)第一部分:Socket通信概覽Socket通信概覽什么是Socket?Socket

的原意是“插座”,在計(jì)算機(jī)通信領(lǐng)域,Socket

被翻譯為“套接字”,它是計(jì)算機(jī)之間進(jìn)行通信的一種約定或一種方式。通過Socket

這種約定,一臺(tái)計(jì)算機(jī)可以接收其他計(jì)算機(jī)的字符串?dāng)?shù)據(jù),也可以向其他計(jì)算機(jī)發(fā)送字符串?dāng)?shù)據(jù)。以一個(gè)國家級(jí)電話網(wǎng)為例。電話的通話雙方相當(dāng)于相互通信的2個(gè)進(jìn)程,區(qū)號(hào)是它的網(wǎng)絡(luò)地址;然后向?qū)Ψ綋芴?hào)呼叫,相當(dāng)于發(fā)出連接請求(假如對(duì)方不在同一區(qū)內(nèi),還要撥對(duì)方區(qū)號(hào),相當(dāng)于給出網(wǎng)絡(luò)地址)。對(duì)方假如在場并空閑(相當(dāng)于通信的另一主機(jī)開機(jī)且可以接受連接請求),拿起電話話筒,雙方就可以正式通話,相當(dāng)于連接成功。區(qū)內(nèi)一個(gè)單位的交換機(jī)相當(dāng)于一臺(tái)主機(jī),主機(jī)分配給每個(gè)用戶的局內(nèi)號(hào)碼相當(dāng)于socket號(hào)。任何用戶在通話之前,首先要占有一部電話機(jī),相當(dāng)于申請一個(gè)socket;同時(shí)要知道對(duì)方的號(hào)碼,相當(dāng)于對(duì)方有一個(gè)固定的socket。視覺相機(jī)Socket通信概覽Socket

Messaging

的目的是允許RAPID編程人員運(yùn)用TCP/IP

網(wǎng)絡(luò)協(xié)議在電腦之間發(fā)送數(shù)據(jù)。一個(gè)Socket

代表了一個(gè)普通的通信信道,獨(dú)立于被運(yùn)用的網(wǎng)絡(luò)通信協(xié)議。Socket

通訊是一個(gè)標(biāo)準(zhǔn),通過SocketMessaging,一臺(tái)機(jī)器人控制器內(nèi)的RAPID程序可以和在另一臺(tái)電腦上的程序進(jìn)行通信。要使用Socket

通信需要擁有RobotWare

選項(xiàng)616-1

PC-interface;Socket通信分為服務(wù)器端和客戶端兩種,兩種類型在RAPID程序中建立通信的過程比較類似,但在實(shí)際調(diào)用函數(shù)時(shí)略有區(qū)別。服務(wù)器端建立過程客戶端建立過程Socket通信概覽Socket的基本使用方法:作為服務(wù)器的方法:1、創(chuàng)建一個(gè)Socket,包括一個(gè)Client

和Server。機(jī)器人可以作為客戶端或者服務(wù)器,這里我們創(chuàng)建一個(gè)Server服務(wù)端;2、通過SocketBind

和SocketListen

指令在服務(wù)器上綁定和監(jiān)聽一個(gè)指定的IP

地址和端口號(hào);3、通過SocketAccept

指令讓服務(wù)器去接受即將到來的Socket

連接需求;4、從客戶端請求Socket

連接;5、在客戶端和服務(wù)器之間發(fā)送和接收數(shù)據(jù);作為客戶端的方法:1、創(chuàng)建一個(gè)Socket,包括一個(gè)Client

和Server。機(jī)器人可以作為客戶端或者服務(wù)器,這里我們創(chuàng)建一個(gè)Client客戶端;2、通過SocketConnect

指令連接服務(wù)器的Socket

通信信道;3、在客戶端和服務(wù)器之間發(fā)送和接收數(shù)據(jù);Socket通信概覽Socket客戶端指令數(shù)據(jù)類型說明socketdev一個(gè)用于和在網(wǎng)絡(luò)上的其它電腦通信的Socket

裝置socketstatus可以包含來自Socketdev

參數(shù)的狀態(tài)信息Socket指令說明SocketCreate創(chuàng)建一個(gè)新的Socket,并將它分配給一個(gè)Socketdev

參數(shù)SocketConnect對(duì)一臺(tái)遠(yuǎn)程電腦發(fā)送連接請求。用于客戶端去連接一個(gè)服務(wù)器SocketSend通過一個(gè)SocketConnect

去發(fā)送數(shù)據(jù)給一臺(tái)遠(yuǎn)程電腦。這些數(shù)據(jù)可以是string\rawbytes參數(shù)或者一個(gè)byte

數(shù)組SocketReceive接收一個(gè)數(shù)據(jù),并將它儲(chǔ)存進(jìn)一個(gè)string\rawbytes

參數(shù)或者byte

數(shù)組中SocketClose關(guān)閉一個(gè)Socket

并清除所有數(shù)據(jù)Socket通信概覽Socket指令說明SocketBind將Socket

約束到服務(wù)端上的一個(gè)指定端口號(hào)。通過服務(wù)端去定義在哪個(gè)端口(在服務(wù)端上)上去接聽這個(gè)連接。IP

地址定義了一個(gè)物理電腦,并且端口號(hào)定義了在那臺(tái)電腦上的一個(gè)程序的邏輯通道.;SocketListen使電腦作為一個(gè)服務(wù)端,并且接受即將到來的連接。它將監(jiān)聽一個(gè)連接在由SocketBind約束的指定端口;SocketAccept接受一個(gè)即將到來的連接請求。用于服務(wù)端去接收客戶端的請求;Socket服務(wù)端指令一個(gè)Socket

Messaging

服務(wù)端使用和客戶端相同的指令,除了SocketConnect。額外的,服務(wù)端使用以下的指令:注意:服務(wù)器必須先于客戶端被啟用,SocketAccept

指令需要在SocketConnect之前被執(zhí)行Socket機(jī)器人通信設(shè)置1234Socket機(jī)器人通信設(shè)置56在進(jìn)行Socket設(shè)置時(shí),基本方法就為這6步,ABB機(jī)器人執(zhí)行Socket通信的前提是,我們需要開通機(jī)器人606-1

PC-Interface系統(tǒng)選項(xiàng),開通該選項(xiàng)后,我們就可以利用機(jī)器人控制器上的LAN2和LAN3以及WAN口這三個(gè)以太網(wǎng)接口和外部的設(shè)備進(jìn)行Socket通信了。在第6步的設(shè)置過程中,我們需要在IP選項(xiàng)下設(shè)置IP地址,子網(wǎng)掩碼默認(rèn)255.255.255.0即可,在Interface接口選項(xiàng)下,選擇我們需要進(jìn)行通信的機(jī)器人控制器網(wǎng)口即可,在Label選項(xiàng)下為當(dāng)前通信設(shè)定名稱。第二部分:Socket通信實(shí)例Socket通信實(shí)例視覺相機(jī)待檢測物體任務(wù):現(xiàn)有一工業(yè)視覺相機(jī),我們利用Socket通信使相機(jī)和機(jī)器人相連接。任意旋轉(zhuǎn)待檢測物體后,相機(jī)拍照即可識(shí)別出物體的位置,視覺相機(jī)通過Socket將被檢測物體的位置發(fā)送至機(jī)器人端,機(jī)器人即可根據(jù)發(fā)送過來的數(shù)據(jù)完成對(duì)被檢測物體的上表面輪廓的“描邊”運(yùn)動(dòng)。工具:Socket調(diào)試工具:SocketTool機(jī)器人仿真軟件:RobotStudioSocket通信實(shí)例提出問題:1、視覺相機(jī)拍照后所得到的數(shù)據(jù)是什么?2、視覺相機(jī)是如何通過Socket將數(shù)據(jù)傳輸至機(jī)器人的?3、機(jī)器人得到的數(shù)據(jù)到底是什么?4、機(jī)器人端如何處理并利用這些數(shù)據(jù),使其具備實(shí)用性?5、機(jī)器人是如何完成最終的“描邊”運(yùn)動(dòng)的?解答問題:1、視覺相機(jī)拍照后所得到的數(shù)據(jù)是根據(jù)視覺相機(jī)配套軟件進(jìn)行編輯格式化的一串字符串(Str);2、Socket通信時(shí)一端作為服務(wù)端,另一端作為客戶端,兩端通過Socket指令函數(shù)進(jìn)行數(shù)據(jù)的收發(fā);3、機(jī)器人得到的數(shù)據(jù)就是視覺相機(jī)端發(fā)來的原始字符串(Str)數(shù)據(jù);4、因?yàn)樵甲址當(dāng)?shù)據(jù)機(jī)器人無法直接利用,這時(shí)機(jī)器人需要通過RAPID指令中的Socket專用指令對(duì)字符串進(jìn)行分割及數(shù)據(jù)的轉(zhuǎn)化,使其最終變成機(jī)器人可以直接使用的程序數(shù)據(jù);5、機(jī)器人利用工件坐標(biāo)系中的uframe和oframe的相對(duì)關(guān)系即可快速完成視覺數(shù)據(jù)的轉(zhuǎn)化及最終的“描邊”運(yùn)動(dòng);Socket通信實(shí)例第一步:與相機(jī)建立通信(做客戶端)藍(lán)色框中的程序是機(jī)器人作為client客戶端時(shí)的程序設(shè)置。程序的第1句:【Rec_Str:=”

”;】該條程序是利用賦值指令,將用于存儲(chǔ)收發(fā)數(shù)據(jù)的寄存器“Rec_Str”字符串變量中的數(shù)據(jù)清空。起到初始化作用程序的第2句:【SocketClose

socket2;】該條程序是利用SocketClose

指令將系統(tǒng)中打開的Socket通信通道關(guān)閉,以避免后續(xù)的通道重復(fù)開啟錯(cuò)誤。起到初始化作用12345程序的第3句:【W(wǎng)aitUntil

SocketGetStatus(socket2)=SOCKET_CLOSED】該條指令利用了WaitUntil條件等待指令和SocketGetStatus檢查套接字狀態(tài)指令來對(duì)socket2通道進(jìn)行判斷,意為:等待,直到socket2通道關(guān)閉后再執(zhí)行后續(xù)程序。起到初始化作用程序的第4句:【SocketCreate

socket2;】該條指利用了SocketCreate指令來打開Socket2通信通道。程序的第5句:【SocketConnect

socket2,"127.0.0.1",3000;】該條指令利用了SocketConnect指令來和遠(yuǎn)程設(shè)備進(jìn)行連接,指令的本意為,通過Socket2通道與IP地址為127.0.0.1,端口號(hào)為3000的遠(yuǎn)程設(shè)備進(jìn)行連接。Socket通信實(shí)例第一步:與相機(jī)建立通信(做服務(wù)端)紅色框中的程序是機(jī)器人作為Sever服務(wù)端時(shí)的程序設(shè)置。程序的第1-4句:機(jī)器人在做服務(wù)端時(shí)開始的通信初始化步驟與做客戶端一致,不需要做變動(dòng)。這里就不在做說明了程序的第5句:【SocketBind

socket1,"127.0.0.1",3000;】在做客戶端連接時(shí)需要使用SocketConnect指令來連接外部的服務(wù)端。但是在做服務(wù)端時(shí),我們就必須使用SocketBind指令了。這條指令本意為,通過socket1通道綁定IP地址為127.0.0.1,端口號(hào)為3000的服務(wù)器。程序的第6句:【SocketListen

socket1;】第6句與第5句成對(duì)使用,本意為:創(chuàng)建服務(wù)器套接字,并與地址為127.0.0.1的控制器網(wǎng)絡(luò)上的端口3000綁定。在執(zhí)行SocketListen后,服務(wù)器套接字開始監(jiān)聽位于該端口和地址上的輸入連接。SocketListen指令只可用于做服務(wù)端時(shí)使用。程序的第7句:【SocketAccept

socket1,socket2;】在執(zhí)行SocketListen之后,服務(wù)器套接字開始監(jiān)聽位于該端口和地址上輸入連接。SocketAccept本意為接受已經(jīng)建立連接的Socket通道的連接請求。SocketAccept指令只可用于做服務(wù)端時(shí)使用。Socket通信實(shí)例第二步:接收和發(fā)送數(shù)據(jù)(獲取數(shù)據(jù))黃色框中的程序是機(jī)器人用于接收數(shù)據(jù)及發(fā)送數(shù)據(jù)的兩條指令。SocketReceive指令用于從遠(yuǎn)程計(jì)算機(jī)接收數(shù)據(jù)。備注:SocketReceive指令可用于客戶端和服務(wù)器應(yīng)用?!維ocketReceivesocket2\Str:=Rec_Str;】第1條程序的含義:接收來自socket2通道發(fā)送來的數(shù)據(jù),并將接收到的數(shù)據(jù)存放在Rec_Str變量下。SocketSend指令用于向遠(yuǎn)程計(jì)算機(jī)發(fā)送數(shù)據(jù)。備注:SocketSend指令可用于客戶端和服務(wù)器應(yīng)用?!維ocketSend

socket2\Str:="acknowledged";】第2條程序的含義:將‘a(chǎn)cknowledged’這一串字符串?dāng)?shù)據(jù)通過socket2通道發(fā)送至遠(yuǎn)程計(jì)算機(jī)。程序邏輯:機(jī)器人通過SocketReceive指令接收到遠(yuǎn)程計(jì)算機(jī)或設(shè)備(視覺相機(jī))發(fā)送過來的數(shù)據(jù)后,機(jī)器人再通過SocketSend指令將‘a(chǎn)cknowledged’字符串發(fā)送給(視覺相機(jī))告知相機(jī)我已經(jīng)收到信息了。如果SocketReceive指令在最大等待事件內(nèi)沒有接收到來自遠(yuǎn)程計(jì)算機(jī)(視覺相機(jī))發(fā)送過來信息則會(huì)報(bào)錯(cuò),以避免持續(xù)的等待。Socket通信實(shí)例第三步:處理數(shù)據(jù)(手術(shù)刀)一般視覺相機(jī)發(fā)送過來的數(shù)據(jù)都為格式化后的字符串,在視覺軟件中設(shè)置時(shí),我們需要設(shè)定好數(shù)據(jù)與數(shù)據(jù)之間的分隔形式,一般數(shù)據(jù)之間的分隔多用逗號(hào)執(zhí)行。在二維視覺中,如果識(shí)別一個(gè)物體的相對(duì)位置,我們一般需要這個(gè)物體相對(duì)于視覺基坐標(biāo)系在X方向的定位位置,Y方向的定位位置及Rz(也就是該物體圍繞Z軸的旋轉(zhuǎn)角度)這三個(gè)數(shù)據(jù)。在這里我們擬定一組非常簡單的視覺數(shù)據(jù):“36.75,24.68,-15.32,”X方向上的位置數(shù)據(jù)Y方向上的位置數(shù)據(jù)Rz方向上的旋轉(zhuǎn)角度逗號(hào),數(shù)據(jù)分隔符Socket通信實(shí)例第三步:處理數(shù)據(jù)(手術(shù)刀) “36.75,24.68,-15.32,”首先先建立5個(gè)局部變量:①“LenStr”用于獲取字符串?dāng)?shù)據(jù)長度,該變量的類型為num數(shù)值型,數(shù)值型數(shù)據(jù)類型中可以存放“整數(shù)”、“小數(shù)”;②“LenPart”用于獲取截取后的數(shù)據(jù)的長度;③“m”用于獲取每組截取后數(shù)據(jù)在整個(gè)字符串?dāng)?shù)據(jù)中的起始位置;④“n”用于記錄截取成功的數(shù)據(jù)的數(shù)量;⑤“OK”用于strtoval指令的賦值允許。Socket通信實(shí)例第三步:處理數(shù)據(jù)(手術(shù)刀)“36.75,24.68,-15.32,”首先我們通過StrLen指令獲取我們接收并存儲(chǔ)到“Rec_Str”變量中的字符串?dāng)?shù)據(jù)的長度,以我們擬定的這組數(shù)據(jù)為例,這組數(shù)據(jù)的長度就是從3開始直到最后一個(gè)逗號(hào)結(jié)束。其中數(shù)字,符號(hào)(小數(shù)點(diǎn)、負(fù)號(hào))都算作一個(gè)長度,所以這串字符串的總長度應(yīng)為19;在執(zhí)行完StrLen指令后,發(fā)送過來的字符串?dāng)?shù)據(jù)的長度我們就得到了,之后我們通過“:=”賦值指令,將字符串的總長數(shù)據(jù)存儲(chǔ)在我們建立的局部變量LenStr中。Socket通信實(shí)例第三步:處理數(shù)據(jù)(手術(shù)刀)“36.75,24.68,-15.32,”這段程序中我們利用了FOR循環(huán)結(jié)構(gòu),這條程序本意為:由1-19循環(huán)執(zhí)行FOR循環(huán)結(jié)構(gòu)內(nèi)部的程序,這在編程邏輯中屬于典型的“遍歷”結(jié)構(gòu),也就是將一串?dāng)?shù)據(jù)從第一個(gè)元素開始一個(gè)一個(gè)元素的看到這串?dāng)?shù)據(jù)的最后一個(gè)元素。這段程序中我們利用了StrMemb實(shí)現(xiàn)了掃描字符串?dāng)?shù)據(jù)的逗號(hào)分隔符的目的。例如我們當(dāng)前數(shù)據(jù)的第12位為第二個(gè)逗號(hào)分隔符,那么當(dāng)FOR循環(huán)執(zhí)行到第12次時(shí),指令便可以搜尋到逗號(hào)分隔符,此時(shí)i=12,程序進(jìn)入到THEN后繼續(xù)執(zhí)行。這條程序的本意為:搜尋Rec_Str變量中的第i位是不是“逗號(hào)”分隔符,如果是則執(zhí)行THEN后的程序語句該串?dāng)?shù)據(jù)的長度為19Socket通信實(shí)例第三步:處理數(shù)據(jù)(手術(shù)刀)“36.75,24.68,-15.32,”該串?dāng)?shù)據(jù)的長度為19當(dāng)搜索到第二個(gè)逗號(hào)分隔符時(shí),此時(shí)i的值為12,下面來分析一下【LenPart:=(i-1)-(m-1);】這句的作用。前面5個(gè)局部變量在建立時(shí),LenPart是用來存放截取成功數(shù)據(jù)的長度,此時(shí)i=12,體現(xiàn)的是第一個(gè)逗號(hào)分隔符在整串?dāng)?shù)據(jù)中的位置,但是分隔符對(duì)于機(jī)器人而言不是有用的數(shù)據(jù),所以我們需要分隔符之前的數(shù)據(jù)(24.68),

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論