返回首頁 hi, 歡迎來到機器人在線 請登錄/ 免費注冊 訂閱郵件
有疑問,咨詢在線客服

【庫卡】KUKA機器人:信息編程—信息類型介紹

時間:2020-01-09 來源:庫卡機器人(上海)有限公司(KUKA) 閱讀:1673

想必對于 KU 粉們而言,就 KUKA 示教器(SmartPad)上顯示的各種圖標大家一定不會陌生,但是對于這些圖標代表的信息,你都知道嗎?他們的作用是什么?區別又是什么呢?


01、庫卡機器人示教器(SmartPad)上的圖標一共有5種類型,如下圖所示噢:


02、看了上圖的信息類型,大家肯定要問,它們的作用是什么呢?


確認信息:


通常用于表示發生了錯誤,信息生成后必須按下OK鍵,信息消失后才能讓程序繼續運行。

圖1:確認信息


狀態信息:

用于表示一種狀態,比如在急停狀態或者是程序正在運行狀態。

特性:狀態信息沒有OK鍵確認,只有當這個狀態消失了之后,信息才消失。

圖2:狀態信息


提示信息:

起提示作用,通常是提示一下操作人員需要去做什么事情,或者控制器完成了什么事情。

特性:該信息生成后不記錄到緩存當中。信息生成后程序代碼不能對信息進行后續操作,大約可生成300萬條。

圖3:提示信息


等待信息:

在等待信號或者某個條件時顯示的信息。

特性:該信息有模擬鍵,用于模擬等待條件成立,程序直接往下執行。

圖4:等待信息


對話信息:

在界面上出現一個窗口,可以有按鈕進行選擇,程序根據用戶的選擇進行后續操作。

圖5:對話信息

03、看到這里,是不是又在好奇這些信息類型之間有什么區別呢?


? 確認信息、狀態信息、提示信息、等待信息可看成是一個大類,這些信息都顯示在SmartPAD上方的信息窗口中。

? 對話信息,又叫對話框,使用一個獨立的窗口顯示,因此可看成另一個大類。

? 這兩類信息編輯方法上大致一致,但又有所區別。區別在于對話框生成消息和接收消息的按鍵反饋,都會有專用的函數,后續程序處理會復雜一些


既然大家已經知道圖標所代表的信息類型,那如何在 smartpad 里面編輯出這些信息呢?

那么,我們就來講講這塊的實操性的內容-- “信息編程的步驟(除對話信息)”

滴!KR C4 Smartpad 上傳來一條提示信息“There are 3 cubes moved.”, wow ,是不是迫不及待自己可以編輯出這么一條信息?心動不如手動,以“提示信息”為示例,一起操作起來把!


?注意:這個數字3是一個變量,數字3從一個叫 counter 的整型變量獲得。在這一次顯示的時候 counter是3,則顯示“There are 3 cubes moved.”,在下一次,如果 counter 是4,則顯示“ There are 4 cubes moved . ” ( counter 的整型變量會在編程初始時候提前設置好)


詳細步驟:


STEP 1:定義作者(來源)、編號、內容(關鍵字)

使用系統預定義結構體 KRLMSG_T

■(本章節中所提到的結構體都是系統預先構建好的,直接聲明結構體變量使用即可)


decl krlmsg_t mess

mess={ modul[] “KUKA”, nr2019001, msg_txt[] “There are %1 cubes moved”}


上面橙色部分分別為作者、編號、和消息要顯示的內容。

編號:由用戶自定義,與系統無關,便于用戶對信息進行識別。

內容:內容中的%1是占位符,表示這里要顯示的是一個變量。內容作為字符串來顯示,要顯示變量,不可以直接把變量名字填入到字符串中。如果把變量名 counter 直接填入到字符串中,則系統會顯示 There are counter cubes moved ,而不是顯示 There are 3 cubes moved 。


STEP 2 :定義占位符

■占位符一共有3個,分別是%1、%2、%3。

這一步主要是說明占位符是否有使用。如果使用了,占位符的數值從哪個變量獲得。

使用系統預定義結構體 KRLMSGPAR_T

decl krlmsgpar_t para[3]


■ 此處必須是長度為3的數組,因為系統默認有三個占位符。

對于第一個占位符%1,上述例子使用了,并且%1的數值來源于叫做counter的int類型變量,所以

para[1]={par_type#value}

para[1].par_int=counter

其中parameter[1]表示%1;#value:表示%1使用了;int和counter:表示%1從一個叫做counter的整型變量獲得數值。

對于第二個占位符%2和第三個占位符%3,例子未使用,所以

para[2]={par_type #empty}

para[3]={par_type #empty}

其中para[2]和para[3]分別表示%2和%3;#empty:表示未使用。因為這兩個占位符沒有使用,所以也不需要規定他們從哪里獲得數值。


STEP 3 :定義信息生成后的選項

定義信息生成之后的一些操作選項

使用系統預先定義的結構體 KRLMSGOPT_T

decl krlmsgopt_t option

option={vl_stop true, clear_p_reset true, clear_p_saw true, log_to_db false}

vl_stop: 生成信息時,是否打斷預進指針,true為打斷;

clear_p_reset:生成信息后,進行程序復位或退出程序操作,這條信息是否刪除, true 為刪除;

clear_p_saw :生成信息后,進行語句行選擇操作后,這條信息是否刪除, true 為刪除;

log_to_db:是否將信息記錄到數據庫中,true 為記錄。


STEP 4 生成信息

使用系統自帶的函數set_krlmsg生成信息。

函數有返回值,返回值是信息在緩存中的地址,類型是int。

int address

address = set_krlmsg( #notify, mess, para[], option)

其中#notify表示要生成提示信息。

如果要生成其他類型信息, #quit :確認信息;#state :狀態信息;#waiting ?:等待信息。


之前講過,對話信息(又名對話框,下面統稱對話框)與其他的信息類型有所區別,屬于單獨的一個大類。不過對話框編程與提示信息編程步驟大致類似[在定義作者(來源)、編號、內容(關鍵字),占位符,選項這三個步驟上],但因對話框中需要提供按鈕給用戶選擇,所以需要額外再定義按鈕按鍵,如下圖:

So, “對話框編程步驟”的重點講解內容就是“按鈕按鍵的編程”,那究竟怎么才能生成這些按鍵信息呢?一起往下看吧!


詳細步驟:


STEP 1 定義按鍵

使用系統預先構建的結構體 KRLMSGDLGSK_T

一個對話框中最多可以有7個按鈕按鍵,在聲明結構體變量時一定是7個元素的數組。

decl krlmsgdlgsk_t softkey[7]

softkey[1]={sk_type #value, sk_txt[] “Four”}

softkey[1]表示第一個按鈕按鍵,#value表示這個按鍵使用了,“Four”表示按鍵上要顯示的內容。

softkey[5]={sk_type #empty}

softkey[5]表示第五個按鈕按鍵,#empty表示這個按鍵未使用。

這7個按鍵,程序員可以決定使用哪個按鍵,不講究順序。


STEP 2 生成對話框

使用系統自帶的函數 set_krldlg 生成信息。

函數有返回值,返回值是信息在緩存中的地址,類型是int。

int address

address=set_krldlg(mess,para[],softkey[],option)

生成對話框的函數 set_krldlg 不需要指定信息的類型,因為對話框只有一種類型,另外需要將按鈕按鍵的數組作為參數傳遞進去。


STEP 3 生成對話框的后續處理

對話框生成后一定是停著等用戶去進行選擇的,所以讓程序進入到一個循環中。循環一直在查詢對話框是否還在緩存中,如果沒有人去選擇,則對話框一直不消失,能查詢得到;如果被選擇了,那么對話框消失,查詢不到了。同時用戶按了哪個按鍵,通過查詢函數 exists_krldlg 的第二個參數進行反饋(在樣例代碼中為 answer )。


以下為樣例代碼:


在獲得了 answer 值之后,就可以利用程序判斷,按了哪個按鍵,該去做什么事情。

好的文章,需要您的鼓勵

1

  • 最新文章
  • 精品案例
  • 現貨產品
延伸閱讀 熱門要聞

鼎汇彩票 马鞍山市 赤水市 讷河市 六安市 济南市 启东市 偃师市 安国市 醴陵市 舞钢市 攀枝花市 三河市 聊城市 虎林市 韶山市 孟州市 厦门市 灵宝市 林州市 台州市 景德镇市 徐州市 贵阳市 宝鸡市 凯里市 永济市 靖江市 敦化市 郏县 阆中市 台中市 新沂市 石家庄市 梅河口市 富德市 辽宁省 西昌市 淮北市 鹤壁市 河北省 公主岭市 滕州市 眉山市 开封市 迁安市 六安市 汕头市 临沧市 叶城市 任丘市 九台市 广东省 双鸭山市 定州市 江阴市 湖州市 东方市