工業(yè)機器人應(yīng)用編程(KUKA中高級) 課件 項目八 工業(yè)機器人實訓平臺二次開發(fā)_第1頁
工業(yè)機器人應(yīng)用編程(KUKA中高級) 課件 項目八 工業(yè)機器人實訓平臺二次開發(fā)_第2頁
工業(yè)機器人應(yīng)用編程(KUKA中高級) 課件 項目八 工業(yè)機器人實訓平臺二次開發(fā)_第3頁
工業(yè)機器人應(yīng)用編程(KUKA中高級) 課件 項目八 工業(yè)機器人實訓平臺二次開發(fā)_第4頁
工業(yè)機器人應(yīng)用編程(KUKA中高級) 課件 項目八 工業(yè)機器人實訓平臺二次開發(fā)_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目八工業(yè)機器人實訓平臺二次開發(fā)公司簡介匯博工業(yè)CATALOGUE一學習目標公司簡介CATALOGUE目錄四知識拓展二工作任務(wù)五評價反饋三實踐操作六練習與思考題1.熟悉軟件程序與硬件的通信。2.掌握C#基本控件的使用方法。3.掌握C#代碼編寫的基礎(chǔ)知識。4.掌握Modbus的使用方法。一、學習目標一、工作任務(wù)背景隨著全球工業(yè)化進程的不斷推進,工業(yè)機器人已經(jīng)在越來越多的行業(yè)發(fā)揮著舉足輕重的作用。為了適應(yīng)不斷發(fā)展的工業(yè)需求,工業(yè)機器人需要不斷創(chuàng)新,不斷完善,一些科研院所對工業(yè)機器人的應(yīng)用,有更多的創(chuàng)新,對工業(yè)機器人二次開發(fā)功能要求也就更具多樣性。二、工作任務(wù)二、所需要的設(shè)備工業(yè)機器人的二次開發(fā)所需要的設(shè)備:一臺裝有VisioStudio2019的計算機。二、工作任務(wù)三、任務(wù)描述1.完成開發(fā)軟件與工業(yè)機器人通信的界面設(shè)計。2.實現(xiàn)開發(fā)軟件中工業(yè)機器人連接與斷開功能。3.實現(xiàn)開發(fā)軟件中數(shù)據(jù)的寫入功能。4.實現(xiàn)開發(fā)軟件中接口地址對應(yīng)值的讀取功能。5.實現(xiàn)開發(fā)軟件中讀取工業(yè)機器人各個關(guān)節(jié)數(shù)據(jù)的功能。二、工作任務(wù)三、實踐操作C#(CSharp,最初稱為COOL)是由C和C++衍生出來的一種安全穩(wěn)定的、簡單簡單的面向?qū)ο蟮木幊陶Z言。C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、簡潔的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程成為Microsoft.NET開發(fā)的首選語言。程序員可以通過C#快速地編寫各種基于Microsoft.NET平臺的應(yīng)用程序。一、知識儲備二、任務(wù)實施1.界面設(shè)計(1)控件與軟件主界面控件主要用來進行界面的設(shè)計,常用的控件有Button(按鈕)控件、ComboBox(下拉框)控件、Label(標簽)控件、TextBox(文本框)控件和PictureBox(圖片)控件,所有的控件都在主界面的工具箱中。如果主界面沒有工具箱按鈕,可以單擊菜單欄中的“視圖”→“工具箱”將工具箱調(diào)出,“屬性”標簽同理。軟件工作界面如圖8-1所示。圖8-1軟件工作界面三、實踐操作(2)控件屬性的介紹與修改(表8-1)1)Button控件:將其從工具欄中拖拽到界面設(shè)計窗口后,界面設(shè)計窗口中會自動生成一個按鈕,可以改變按鈕的大小和位置,也可以通過在屬性窗口輸入位置數(shù)值進行精確的設(shè)置,然后在屬性窗口更改“Name”屬性和“Text”屬性。三、實踐操作以“連接機器人”按鈕為例,如果界面設(shè)計窗口中沒有任何按鈕,將Button控件拖拽到界面設(shè)計窗口后,按鈕上的文字默認顯示的是“button1”,通過鼠標拖拽控件,改變控件大小和位置到合適的程度,然后單擊“屬性”打開控件的屬性窗口,設(shè)置“Text”屬性為“連接機器人”,設(shè)置“Name”屬性為“btn_connect”(設(shè)置Name屬性主要是讓開發(fā)者養(yǎng)成一個良好的命名習慣,做到見名知意)。Button控件屬性窗口的修改如圖8-2所示。圖8-2Button控件屬性窗口的修改三、實踐操作2)ComboBox控件:將其從工具欄中拖拽到界面設(shè)計窗口后,界面設(shè)計窗口中會自動生成一個下拉框。下拉框默認是可以輸入數(shù)據(jù)的,可以將下拉框的“DropDownStyle”屬性設(shè)置為“DropDownList”,下拉框就不可以輸入數(shù)據(jù)了。單擊“Item”屬性右側(cè)的按鈕,打開“字符串集合編輯器”對話框,輸入下拉框要顯示的數(shù)據(jù),以回車作為一條數(shù)據(jù)的結(jié)束?!癈omboBox”屬性的修改如圖8-3所示。圖8-3ComboBox屬性的修改三、實踐操作三、實踐操作3)Label控件:如果界面設(shè)計窗口沒有標簽,將其從工具欄拖拽到界面設(shè)計窗口后默認是“l(fā)able1”,label控件只要在屬性窗口修改它的“Text”屬性即可,控件的大小和位置可進行拖動修改,修改方法與Button控件相同。4)TextBox控件:TextBox控件只要在屬性窗口修改它的“Name”屬性和“AutoSize”屬性即可。“Name”屬性根據(jù)文本框位置和標簽位置可進行相應(yīng)的更改;將“AutoSize”屬性設(shè)置為“false”,可通過鼠標拖拽控件來改變控件大小和位置。5)PictureBox控件:單擊屬性窗口的“image”屬性右側(cè)的按鈕,打開“查找本地文件”對話框,找到要添加的文件,單擊“確定”,然后將“SizeMode”屬性設(shè)置為“Stretch-Image”,讓圖片的大小適應(yīng)控件的大小。(3)控件事件介紹1)Click(單擊)事件:當單擊該控件時,程序會觸發(fā)相應(yīng)的動作。2)SelectedIndexChanged(下拉框索引改變)事件:選擇下拉框中不同數(shù)據(jù)時,會引發(fā)的一個動作。2.代碼編寫知識(1)變量的聲明與初始化1)語法:修飾符數(shù)據(jù)類型變量名。2)修飾符:用來設(shè)置變量或者函數(shù)的訪問權(quán)限。①private代表私有,只能本類訪問,子類和實例都不可訪問。②Public代表公有,不受任何限制。③protected代表保護,只能本類和子類訪問,實例不可訪問。3)數(shù)據(jù)類型:用來說明這個變量或者函數(shù)的類型。常用的數(shù)據(jù)類型有int(整型)、float(浮點型)、bool(布爾型)和byte(字節(jié)型)。例8-1:聲明一個私有整型變量,名稱為a。privateinta;例8-2:聲明一個私有整型變量,名稱為a,并初始化a為66。privateinta=66;(2)數(shù)組(這里僅介紹一維數(shù)組)1)語法:修飾符數(shù)據(jù)類型[]變量名=new數(shù)據(jù)類型[數(shù)組大小];2)作用:可以包含同一個類型的多個元素。三、實踐操作例8-3:聲明一個公有整型數(shù)組a,數(shù)組大小為4。publicint[]a=newint[4];例8-4:聲明一個公有整型數(shù)組a,數(shù)組大小為4,并對其進行初始化。publicint[]a=newint[4]{0,0,0,0};(2)循環(huán)(這里僅介紹while循環(huán))1)語法:while(循環(huán)條件){循環(huán)體;}2)作用:多次執(zhí)行同一部分代碼。例8-5:通過循環(huán)求1到100的和inti=0;while(i<=100){i=i+1;}(3)函數(shù)1)語法:修飾符

數(shù)據(jù)類型

函數(shù)名(){函數(shù)體;}2)作用:當程序功能較多時,可以將功能分模塊來寫,每一個功能模塊放在一個函數(shù)內(nèi),需要時直接調(diào)用該函數(shù)即可。三、實踐操作例8-6:建立一個私有的無返回值的函數(shù)a。在函數(shù)中實現(xiàn)求1到100的整數(shù)和。Privatevoida(){for(inti=1;i<=100;i++){i+=1;}}(5)線程

開啟線程三步走:創(chuàng)建一個新線程

設(shè)置與后臺線程同步

準備開啟線程。1)Thread自定義的線程名=newThread(要開啟線程的函數(shù))。2)自定義的線程名.IsBackground=true。3)自定義的線程名.Start()。注意:使用線程時需要引入System.Threading,引入方法是在程序第一行添加usingSystem.Threading代碼。(6)類中函數(shù)的調(diào)用

步驟為:實例化類→調(diào)用。1)實例化類:類名

自定義名=new類名()。2)調(diào)用:自定義名.函數(shù)名(參數(shù)1,參數(shù)2...參數(shù)n)。三、實踐操作(7)異常處理(這里僅介紹try...catch()...的方式)語法:try{可能會引發(fā)異常的代碼;}Catch(Excepton){對異常進行處理的代碼;}三、實踐操作例8-7:假設(shè)this.pictureBox1.Image=Image.FromFile("C:/Users/Administrator/Desktop/小燈圖片/RedLight.png");這段代碼會發(fā)生找不到文件的異常,處理方式如下:try{this.pictureBox1.Image=Image.FromFile("C:/Users/Administrator/Desktop/小燈圖片/RedLight.png");}Catch(Excepton){messageBox.Show(“文件未找到”);}三、實踐操作3.界面設(shè)計的操作步驟

參考界面如圖8-4。圖8-4界面設(shè)計三、實踐操作三、實踐操作界面設(shè)計的操作步驟見表8-2。三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作按鈕控件對應(yīng)的“Name”和“Text”屬性值見表8-3。三、實踐操作4.界面通信設(shè)計

界面通信設(shè)計的操作步驟見表8-4。三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作三、實踐操作一、TCP連接管理1.總體描述MODBUS通信需要建立客戶機與服務(wù)器之間的TCP連接。建立通信連接可以由用戶應(yīng)用模塊實現(xiàn),也可以由TCP連接管理模塊自動完成。在第一種情況下,用戶應(yīng)用模塊必須提供應(yīng)用程序接口,以便完全管理連接。這種方式為應(yīng)用開發(fā)人員提供了靈活性,但需要TCP/IP機制方面的專長。在第二種方案中,TCP連接管理完全不出現(xiàn),用戶應(yīng)用僅需要發(fā)送和接受MODBUS報文。TCP連接管理模塊負責在需要時建立新的TCP連接。TCP客戶機和服務(wù)器連接數(shù)量的定義不屬于本文件的范疇(在本文中采用n)。根據(jù)設(shè)備能力,TCP連接的數(shù)量會不同,如圖8-5所示。圖8-5TCP連接管理操作圖四、知識拓展1)顯式TCP連接管理。用戶應(yīng)用模塊負責管理所有的TCP連接:主動的和被動的連接建立、連接結(jié)束。對客戶機與服務(wù)器間所有的連接進行管理。BSD套接字接口用在用戶應(yīng)用模塊中來管理TCP連接。這種方案提供了完全的靈活性,但也意味著應(yīng)用開發(fā)人員要具備充分的有關(guān)TCP的知識??紤]到設(shè)備的能力和需求,必須進行配置客戶機與服務(wù)器間連接數(shù)的限制。2)自動TCP連接管理。TCP連接管理對用戶應(yīng)用模塊是完全透明的。連接管理模塊可以接受足夠數(shù)量的客戶機/服務(wù)器連接。否則,在超過所授權(quán)數(shù)量的連接時必須有一種實現(xiàn)機制。在這種情況下,建議:關(guān)閉最早建立的不使用的連接。在收到第一個來自遠端客戶機或本地用戶應(yīng)用的數(shù)據(jù)包后,就建立了與遠端對象的連接。如果一個網(wǎng)絡(luò)進行終止或本地設(shè)備決定終止,此連接將被關(guān)閉。在接收連接請求時,訪問控制選項可用來禁止未授權(quán)客戶訪問設(shè)備的可能性。TCP連接管理模塊采用棧接口(通常BSD套接字接口)來與TCP/IP棧進行通信。為了保持系統(tǒng)需求與服務(wù)器資源之間的兼容,TCP管理將保持兩個連接庫。四、知識拓展第一個庫(優(yōu)先連接庫)由那些從不被本地主動關(guān)閉的連接組成。必須提供一個配置來建立這個庫。實現(xiàn)的原理是將這個庫的每一個可能的連接與一個特定的IP地址聯(lián)系起來。具有這個IP地址的設(shè)備被稱為“標記的”。任何一個被“標記的”設(shè)備的新的連接請求必須被接收,并從優(yōu)先連接庫中取出。還有必要設(shè)置允許每個遠端設(shè)備最多建立連接的數(shù)量,以避免同一設(shè)備使用優(yōu)先連接庫中所有的連接。第二個庫(非優(yōu)先連接庫)包括了非標記設(shè)備的連接。這里采用的規(guī)則是:當有來自非標記設(shè)備的新的連接請求,以及庫中沒有連接可用時,關(guān)閉早些時候建立的連接。一個配置可作為選項提供來分配每個庫中可用連接的數(shù)量。如果需要,設(shè)計人員可在設(shè)計期間設(shè)定連接的數(shù)量。四、知識拓展2.連接管理描述1)連接建立。MODBUS報文傳輸服務(wù)必須在502口上提供一個偵聽套接字,允許接收新的連接和與其他設(shè)備交換數(shù)據(jù),如圖8-6所示。當報文傳輸服務(wù)需要與遠端服務(wù)器交換數(shù)據(jù)時,必須與遠端502口建立一個新的客戶連接,以便與遠距離交換數(shù)據(jù)。本地口必須高于1024,并且每個客戶連接各不相同。圖8-6MODBUSTCP/IP連接建立四、知識拓展如果客戶機與服務(wù)器的連接數(shù)量大于授權(quán)的連接數(shù)量,則最早建立的無用的連接被關(guān)閉。激活訪問控制機制檢查遠端客戶機的IP地址是否是經(jīng)過授權(quán)的。如果未經(jīng)授權(quán),將拒絕新的連接。2)MODBUS數(shù)據(jù)變換?;谝呀?jīng)打開的正確的TCP連接發(fā)送MODBUS請求。遠端設(shè)備的IP地址用于尋找所建的TCP連接。在與同一個遠端設(shè)備建立多個連接時,必須選擇其中一個連接用于發(fā)送MODBUS報文,可以采取不同的選擇策略,例如:最早的連接、第一個連接。在MODBUS通信的全過程中,連接必須始終保持打開。一個客戶機可以向一個服務(wù)器啟動多個事務(wù)處理,而不必等待前序事物處理結(jié)束。3)連接關(guān)閉。當客戶機與服務(wù)器間的MODBUS通信結(jié)束時,客戶機必須關(guān)閉用于通信的連接。四、知識拓展二、Profinet協(xié)議1.總體描述Profinet是一個開放式的工業(yè)以太網(wǎng)通訊協(xié)定,主要由西門子公司和PROFIBUS&PROFINET國際協(xié)會所提出。PROFINET應(yīng)用TCP/IP及資訊科技的相關(guān)標準,是實時的工業(yè)以太網(wǎng)。2.協(xié)議細節(jié)因為使用了IEEE802.3以太網(wǎng)標準和TCP/IP,大多數(shù)的PROFINET通信是通過沒有被修改的以太網(wǎng)和TCP/IP包來完成。以PROFINETRT為例來理解在整個通信的過程中實時性能是如何來保證的。從通信的終端設(shè)備來看,首先采用了優(yōu)化的協(xié)議棧。這樣一來在終端的設(shè)備上數(shù)據(jù)報文被處理的時間大大的縮短,這是實時性能保證的一個方面。其次是終端設(shè)備上采用的分時間段處理機制,這樣保證了在每個通信的循環(huán)的周期內(nèi)終端設(shè)備即可以處理RT的實時

溫馨提示

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

評論

0/150

提交評論