通過(guò) KRL 解耦 PROFINET 設(shè)備
? | IOCTL 命令 1060: |
? |
為了可以在不同的機(jī)器人上交替地運(yùn)行一個(gè)設(shè)備,需要 IOCTL 命 令 1060 進(jìn)行解耦。如果該設(shè)備僅在一個(gè)機(jī)器人上運(yùn)行,也可以使 用該命令。 設(shè)備輸出端設(shè)置在解耦后立即歸零。如果將設(shè)備短時(shí)間斷開電源后 又重新接上,則不會(huì)恢復(fù)輸出端設(shè)置。 |
? | IOCTL 命令 60: |
? |
只在該設(shè)備僅在一個(gè)機(jī)器人上運(yùn)行時(shí),才能使用該 IOCTL 命令。 只出于兼容性原因,該命令才仍可用。 在解耦時(shí),設(shè)備上的輸出端設(shè)置保持不變。如果將設(shè)備短時(shí)間斷開 電源后又重新接上,則會(huì)恢復(fù)輸出端設(shè)置。 |
始終可用 |
? 勾選:機(jī)器人控制器啟動(dòng)時(shí)期待設(shè)備已被激活。若設(shè)備未被激活,將輸出故障信息。 ? 未勾選:機(jī)器人控制器在啟動(dòng)時(shí)不檢查設(shè)備是否已被激活。 |
已解耦設(shè)備的屬性
? 若將解耦了的設(shè)備與總線或者電源分離開,這不會(huì)觸發(fā)故障。
? 在已解耦的設(shè)備上進(jìn)行的所有輸入/輸出操作都將保持無(wú)效。
? 已解耦的設(shè)備不能對(duì)讀/寫故障進(jìn)行處理。
? 解耦時(shí)設(shè)備的輸入端已被歸零。
? 解耦時(shí)設(shè)備的輸入端已被歸零。
選項(xiàng) 始終可用
對(duì)于帶工具更換系統(tǒng)的應(yīng)用程序,并非所有設(shè)備都持續(xù)耦合。在冷啟動(dòng)或重新配置 I/O 驅(qū)動(dòng)程序時(shí),解耦的設(shè)備將直接觸發(fā)總線故障。用選項(xiàng) 始終可用可以避免該情況:
? 勾選:錯(cuò)誤信息
未勾選:無(wú)故障信息
句法
? 在一臺(tái)機(jī)器人上使用該設(shè)備時(shí):
RET = IOCTL("PNIO-CTRL",60,用戶 ID)
? 在一臺(tái)或多臺(tái)機(jī)器人上使用該設(shè)備時(shí):
RET = IOCTL("PNIO-CTRL",1060,用戶 ID)
這里將根據(jù)所用的工具給 ID 為 3 的設(shè)備解耦:
...
IF (NEXT_TOOL == GRIPPER_1) THEN
RET = IOCTL("PNIO-CTRL",1060,3)
ENDIF
...
2.通過(guò) KRL 耦合 PROFINET 設(shè)備
有 2 個(gè)具有不同應(yīng)用和效果的 IOCTL 命令用于耦合:
? IOCTL 命令 1050:為了使設(shè)備可以在不同的機(jī)器人上交替運(yùn)行,需要IOCTL 命令 1050 進(jìn)行耦合。如果該設(shè)備僅在一個(gè)機(jī)器人上運(yùn)行,也可以使用該命令。
? IOCTL 命令 50:只在該設(shè)備僅在一個(gè)機(jī)器人上運(yùn)行時(shí),才能使用該IOCTL 命令。只出于兼容性原因,該命令才仍可用。
句法
? 在一臺(tái)機(jī)器人上使用該設(shè)備時(shí):
RET= IOCTL("PNIO-CTRL",50,用戶 ID)
? 在一臺(tái)或多臺(tái)機(jī)器人上使用該設(shè)備時(shí):
RET= IOCTL("PNIO-CTRL",1050,用戶 ID)
這里將根據(jù)所用的工具給 ID 為 5 的設(shè)備耦合:
...
IF (NEXT_TOOL == GRIPPER_2) THEN
RET = IOCTL("PNIO-CTRL",1050,5)
ENDIF
...
3、通過(guò) KRL 更改耦合 PROFINET 設(shè)備的等待時(shí)間
有些設(shè)備的耦合時(shí)間長(zhǎng)于其他設(shè)備。因此,在機(jī)器人控制系統(tǒng)輸出錯(cuò)誤信息之前,要等待規(guī)定的時(shí)間。默認(rèn)情況下,規(guī)定的等待時(shí)間為 10 秒,可在運(yùn)行時(shí)于程序之內(nèi)更改。為此,必須在程序中借助 KRL 函數(shù) IOCTL 編程一個(gè)更改等待時(shí)間的命令。
句法
RET = IOCTL("PNIO-CTRL",32776,等待時(shí)間)
素 | 說(shuō)明 |
RET | 用于保存 KRL 函數(shù) IOCTL 返回值的變量。該變量的數(shù)據(jù)類型為 INT,在使用之前必須在程序中聲明。 |
IOCTL | 用于向總線驅(qū)動(dòng)程序發(fā)送命令的 KRL 函數(shù) |
PNIO-CTRL | 總線驅(qū)動(dòng)程序的名稱 |
32776 | 用于更改等待時(shí)間的 IOCTL 命令 |
等待時(shí)間 | 在機(jī)器人控制器輸出錯(cuò)誤信息之前要等待的時(shí)間,單位:ms |
返回值:RET
0 | 已成功更改等待時(shí)間。 |
-1 | 由于無(wú)法訪問(wèn)總線系統(tǒng),所以未能更改等待時(shí)間。 |
示例
在該示例中,將該值設(shè)為 15 s (= 15000 ms):
RET = IOCTL("PNIO-CTRL",32776,15000)
4.通過(guò) KRL 查詢 PROFINET 設(shè)備的狀態(tài)
說(shuō)明
運(yùn)行時(shí),可在一個(gè)程序之內(nèi)查詢 PROFINET 設(shè)備的狀態(tài)。為此,必須在程序中借助 KRL 函數(shù) IOCTL 編程一個(gè)查詢狀態(tài)的命令。
句法
RET = IOCTL("PNIO-CTRL",70,用戶 ID)
元素 | 說(shuō)明 |
RET | 用于保存 KRL 函數(shù) IOCTL 返還值的變量。該變量的數(shù)據(jù)類型為 INT,在使用之前必須在程序中聲明。 |
IOCTL | 用于向總線驅(qū)動(dòng)程序發(fā)送命令的 KRL 函數(shù) |
PNIO-CTRL | 總線驅(qū)動(dòng)程序的名稱 |
70 | 用于查詢?cè)O(shè)備狀態(tài)的 IOCTL 命令 |
用戶識(shí)別號(hào) | 要查詢其狀態(tài)的設(shè)備的用戶 ID |
返回值RET
值 | 說(shuō)明 |
4 | 設(shè)備已解耦。 |
5 | 設(shè)備已耦合,但出現(xiàn)錯(cuò)誤。 |
6 | 設(shè)備已耦合且工作正常。 |
7 |
設(shè)備已解耦,但內(nèi)部仍在 PROFINET Controller 中激活。 提示:例如,當(dāng)用 IOCTL 命令 60 將設(shè)備解耦時(shí),會(huì)出現(xiàn)這種狀態(tài)。在這種情況下,PROFINET Controller 會(huì)通過(guò) DCP 搜索設(shè)備。 |
5.通過(guò) KRL 激活或停用總線故障
在默認(rèn)情況下激活總線故障。如果出現(xiàn)總線故障,這會(huì)導(dǎo)致停止和/或鎖定激活命令。借助 KRL 函數(shù) IOCTL 可停用并再次激活總線故障。激活或停用可以在運(yùn)行時(shí)于程序內(nèi)通過(guò) KRL 執(zhí)行。
可為一個(gè)或多個(gè)總線實(shí)例停用總線故障。如果總線故障被停用,會(huì)有如下表現(xiàn):
? 總線故障:不停止和/或鎖定激活命令
? 總線故障:smartHMI 信息窗口中沒(méi)有故障信息
? smartHMI 信息窗口中會(huì)顯示以下信息:
KRC IO 總線錯(cuò)誤抑制針對(duì)下列總線實(shí)例激活:{總線實(shí)例}{總線實(shí)例}{總線實(shí)例}
? 如果總線實(shí)例中已出現(xiàn)故障,則無(wú)法再次激活總線故障。
該情況下可通過(guò)系統(tǒng)變量 $IOBUS_INFO 讀取是否出現(xiàn)總線故障。
句法
? 為了停用總線故障:
RET = IOCTL("KRC->PNIO-CTRL", 1, 1)
? 為了激活總線故障:
RET = IOCTL("KRC->PNIO-CTRL", 1, 0)
元素 | 說(shuō)明 |
RET | 用于保存 KRL 函數(shù) IOCTL 返還值的變量。該變量的數(shù)據(jù)類型為 INT,在使用之前必須在程序中聲明。 |
IOCTL | 用于向總線驅(qū)動(dòng)程序發(fā)送命令的 KRL 函數(shù) |
PNIO-CTRL | 總線驅(qū)動(dòng)程序的名稱 |
1、1 | 用于停用總線故障的 IOCTL 命令 |
1、0 | 用于激活總線故障的 IOCTL 命令 |
返回值RET
值 | 說(shuō)明 |
0 | IOCTL 命令成功執(zhí)行。 |
-1 | 未找到指定的總線驅(qū)動(dòng)程序。 |
-3 | KRL 函數(shù) IOCTL 包含一個(gè)錯(cuò)誤參數(shù)。 |
-4 | 由于出現(xiàn)總線故障,不允許激活。 |
6.通過(guò) KRL 查詢機(jī)器人控制器的節(jié)能模式
運(yùn)行時(shí),可在一個(gè)程序之內(nèi)查詢機(jī)器人控制器的節(jié)能模式。為此,必須在程序中借助 KRL 函數(shù) IOCTL 編程一個(gè)查詢節(jié)能模式的命令。
句法
RET = IOCTL("PNIO-DEV",1002,0)
元素 | 說(shuō)明 |
RET | 用于保存 KRL 函數(shù) IOCTL 返回值的變量。該變量的數(shù)據(jù)類型為 INT,在使用之前必須在程序中聲明。 |
IOCTL | 用于向總線驅(qū)動(dòng)程序發(fā)送命令的 KRL 函數(shù) |
PNIO-DEV | 總線驅(qū)動(dòng)程序的名稱 |
1002 | 用于查詢機(jī)器人控制器節(jié)能模式的 IOCTL 命令 |
返回值RET
值 | 說(shuō)明 |
-1 | 查詢時(shí)出現(xiàn)了一個(gè)錯(cuò)誤。 |
2 | 機(jī)器人控制器處于制動(dòng)器已制動(dòng)的狀態(tài)下。 |
240 | 機(jī)器人控制器處于 Energy_Saving_Disabled 狀態(tài)下。 |
255 | 機(jī)器人控制器處于 Ready_To_Operate 狀態(tài)下。 |
256 | PROFIenergy 未初始化。 |
257 | 機(jī)器人控制器處于過(guò)度狀態(tài)下 |
通過(guò) KRL 重啟總線系統(tǒng)
總線故障后,可在運(yùn)行時(shí)在程序之內(nèi)重啟總線系統(tǒng)。為此,必須在程序中借助KRL 函數(shù) IOCTL 編程一個(gè)重啟總線系統(tǒng)的命令。
句法
RET = IOCTL("PNIO-CTRL",12,0)
元素 | 說(shuō)明 |
RET | 用于保存 KRL 函數(shù) IOCTL 返還值的變量。該變量的數(shù)據(jù)類型為 INT,在使用之前必須在程序中聲明。 |
IOCTL | 用于向總線驅(qū)動(dòng)程序發(fā)送命令的 KRL 函數(shù) |
PNIO-CTRL | 總線驅(qū)動(dòng)程序的名稱 |
12 | 用于重啟總線系統(tǒng)的 IOCTL 命令 |
返回值RET
值 | 說(shuō)明 |
0 | 重啟總線系統(tǒng)成功。 |
3 | 重啟總線系統(tǒng)失敗。 |
7.通過(guò) KRL 查詢有故障的 PROFINET 設(shè)備數(shù)量
運(yùn)行時(shí),可在一個(gè)程序之內(nèi)查詢總線系統(tǒng)上有故障的 PROFINET 設(shè)備數(shù)量。為此,必須在程序中借助 KRL 函數(shù) IOCTL 編寫一個(gè)查詢故障設(shè)備的命令。
RET = IOCTL("PNIO-CTRL",32774,0)
元素 | 說(shuō)明 |
RET | 用于保存 KRL 函數(shù) IOCTL 返回值的變量。該變量的數(shù)據(jù)類型為 INT,在使用之前必須在程序中聲明。 |
IOCTL | 用于向總線驅(qū)動(dòng)程序發(fā)送命令的 KRL 函數(shù) |
PNIO-CTRL | 總線驅(qū)動(dòng)程序的名稱 |
32774 | 用于查詢故障設(shè)備數(shù)量的 IOCTL 命令 |
返回值RET
值 | 說(shuō)明 |
0 | 總線系統(tǒng)上的所有設(shè)備功能完好。 |
>0 | 故障設(shè)備的數(shù)量 |
8.通過(guò) KRL 查詢已配置的 PROFINET 設(shè)備數(shù)量
運(yùn)行時(shí),可在一個(gè)程序之內(nèi)查詢總線系統(tǒng)上已配置的 PROFINET 設(shè)備數(shù)量。為此,必須在程序中借助 KRL 函數(shù) IOCTL 編寫一個(gè)查詢已配置設(shè)備的命令。
句法
RET = IOCTL("PNIO-CTRL",32775,0)
元素 | 說(shuō)明 |
RET | 用于保存 KRL 函數(shù) IOCTL 返回值的變量。該變量的數(shù)據(jù)類型為 INT,在使用之前必須在程序中聲明。 |
IOCTL | 用于向總線驅(qū)動(dòng)程序發(fā)送命令的 KRL 函數(shù) |
PNIO-CTRL | 總線驅(qū)動(dòng)程序的名稱 |
32775 | 用于查詢已配置設(shè)備數(shù)量的 IOCTL 命令 |
返回值RET
值 | 說(shuō)明 |
-1 | 執(zhí)行 IOCTL 命令時(shí)出錯(cuò)。 |
>0 | 已配置設(shè)備的數(shù)量 |
-
控制器
+關(guān)注
關(guān)注
114文章
17116瀏覽量
184441 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
29756瀏覽量
213043 -
DCP
+關(guān)注
關(guān)注
0文章
30瀏覽量
17580
原文標(biāo)題:KUKA.機(jī)器人8.7系統(tǒng) 對(duì) PROFINET軟件進(jìn)行編程控制
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
LabVIEW的六軸工業(yè)機(jī)器人運(yùn)動(dòng)控制系統(tǒng)
KUKA重型機(jī)器人
求KUKA機(jī)器人控制柜三維模型
KUKA焊接機(jī)器人伺服電機(jī)常見故障及維修處理
庫(kù)卡機(jī)器人MGV電源模塊維修
機(jī)器人系統(tǒng)與控制需求簡(jiǎn)介
KUKA機(jī)器人伺服驅(qū)動(dòng)模塊維修
profinet轉(zhuǎn)ethernet網(wǎng)關(guān)連接發(fā)那科機(jī)器人配置案例
EPR6-S工業(yè)機(jī)器人通過(guò)EtherCAT轉(zhuǎn)profinet網(wǎng)關(guān)接入西門子系統(tǒng)
西門子1500與KUKA工業(yè)機(jī)器人的Profinet通訊步驟
KUKA機(jī)器人編程
KUKA工業(yè)機(jī)器人與S7-1200PLC實(shí)現(xiàn)Profinet通訊的步驟

使用UKA.機(jī)器人8.7系統(tǒng)編程控制PROFINET軟件的方法

評(píng)論