快換的Profinet對(duì)接使用方式
同一個(gè)設(shè)備可以在不同的機(jī)器人上交替運(yùn)行。為此必須使用其他的 IOCTL 功能進(jìn)行解耦和耦合。如果一個(gè)設(shè)備僅在一個(gè)機(jī)器人上運(yùn)行,則也可以使用這些 IOCTL 功能。其他 IOCTL 功能只能為了兼容的原因而使用。
l? 在帶有工具更換系統(tǒng)的應(yīng)用中,絕不能將總線用戶持久地耦合在工業(yè)以太網(wǎng)上。
l? 在冷啟動(dòng)或在一個(gè)輸入 / 輸出端配置時(shí),在該情況下這將直接導(dǎo)致工業(yè)以太網(wǎng)故障。
l? 關(guān)閉始終可用這一功能可以防止這些設(shè)備在冷啟動(dòng)后或者重新配置輸入 /輸出端后被邏輯耦合進(jìn)工業(yè)以太網(wǎng)。
l? 這些已被停用的設(shè)備可以在以后程序運(yùn)行時(shí)毫無問題地重新耦合進(jìn)來。
l? 但是在項(xiàng)目設(shè)置時(shí)必須考慮到,將所有工具在物理和邏輯上集入進(jìn)工業(yè)以太網(wǎng)項(xiàng)目。
解耦 --已解耦設(shè)備的屬性:
l? 若將已解耦的設(shè)備與工業(yè)以太網(wǎng)或者電源分離開,這不會(huì)觸發(fā)故障。
l? 在已解耦的設(shè)備上進(jìn)行的所有 IO 操作都無效。
l? 已解耦的設(shè)備不能對(duì)讀 / 寫故障進(jìn)行處理。
l? 解耦時(shí)設(shè)備的輸入端已被歸零。
耦合
IOCTL 函數(shù)是同步執(zhí)行的。當(dāng)設(shè)備重新可以使用并可寫入時(shí),該函數(shù)才返回。耦合的設(shè)備不可用時(shí),例如因?yàn)樗c總線或電源斷開了,在超時(shí) ( 默認(rèn) 10 秒) 后顯示一條提示信息。
? 菜單路徑:項(xiàng)目結(jié)構(gòu) > ProfiNet > 用鼠標(biāo)雙擊 > 設(shè)備設(shè)定
? 通過勾選將設(shè)備設(shè)置為始終可用或者取消此設(shè)置。
選項(xiàng) “始終可用” 會(huì)影響機(jī)器人控制系統(tǒng)在冷啟動(dòng)或在重新配置 I/O 驅(qū)動(dòng)程序時(shí)對(duì)于已解耦設(shè)備的反應(yīng)?!笔冀K可用”可在 WorkVisual 內(nèi)的設(shè)備數(shù)據(jù)中設(shè)置。
如果設(shè)備沒有勾選選項(xiàng) 始終可用,則設(shè)備在重啟時(shí)或在重新配置 I/O 驅(qū)動(dòng)程序時(shí)自動(dòng)解耦。為了與設(shè)備建立連接,必須用 IOCTL 功能重新耦合設(shè)備。
通過 HMI 耦合和解耦現(xiàn)場(chǎng)總線用戶
1.選擇菜單序列顯示 > 變量 > 單個(gè)。
2.2. 在 名稱欄輸入:
? 解耦時(shí):
? 在一臺(tái)機(jī)器人上使用該設(shè)備時(shí):
=IOCTL("PNIO-CTRL",60,[ 用戶識(shí)別號(hào) ])
? 在一臺(tái)或多臺(tái)機(jī)器人上使用該設(shè)備時(shí):
=IOCTL("PNIO-CTRL",1060,[ 用戶識(shí)別號(hào) ])
? 耦合時(shí):
? 在一臺(tái)機(jī)器人上使用該設(shè)備時(shí):
=IOCTL("PNIO-CTRL",50,[ 用戶識(shí)別號(hào) ])
? 在一臺(tái)或多臺(tái)機(jī)器人上使用該設(shè)備時(shí):
=IOCTL("PNIO-CTRL",1050,[ 用戶識(shí)別號(hào) ])
IOCTL :用于耦合和解耦的 系統(tǒng)變量
PNIO-CTRL :通過 ProfiNet 驅(qū)動(dòng)程序名 調(diào)用
? 50/1050 = 調(diào)用耦合
? 60/1060 = 調(diào)用解耦
用戶識(shí)別號(hào) 要耦合或解耦的模塊的設(shè)備編號(hào) / 用戶識(shí)別號(hào)
在單個(gè)變量顯示中,執(zhí)行每個(gè)IOCTL 指令后,在當(dāng)前值窗口內(nèi)以數(shù)字的形式顯示一個(gè)返還值。此數(shù)字有下列不同的含義:
l0 :IOCTL 已成功執(zhí)行。
l1 :超時(shí) — 設(shè)備未能在規(guī)定時(shí)間內(nèi)耦合或解耦。
l2 :IOCTL 包含一個(gè)不正確的參數(shù) — 請(qǐng)檢查輸入!
l-1 :故障 — 無法執(zhí)行指令。
? IOCTL 功能是同步執(zhí)行的。當(dāng)設(shè)備重新可以使用并可寫入時(shí),才能再次執(zhí)行 IOCTL 功能。
? 若耦合的設(shè)備不可用,例如因?yàn)樗c總線或電源斷開了,則將在超時(shí)后顯示一條信息。
若規(guī)定的用于耦合或解耦的時(shí)間設(shè)計(jì)得太短,可以重新設(shè)定超時(shí)。標(biāo)準(zhǔn)設(shè)置為 10 秒,即 10000 毫秒
RET = IOCTL("PNIO-CTRL",1001,10000)
詢問設(shè)備狀態(tài):
用 IOCTL 函數(shù) 70 可以詢問從屬設(shè)備的狀態(tài)。
RET = IOCTL("PNIO-CTRL",70,[ 用戶 ID] )
RET 的返回值:
l4 :設(shè)備已解耦。
l5 :設(shè)備已耦合,但出現(xiàn)錯(cuò)誤。
l6 :設(shè)備已耦合且無錯(cuò)誤。
l7 :設(shè)備已解耦,但內(nèi)部仍在 PROFINET Controller 中激活。
通過激活或停用總線故障
在默認(rèn)情況下激活總線故障。如果出現(xiàn)總線故障,這會(huì)導(dǎo)致停止和/或鎖定激活命令。借助 KRL 函數(shù) IOCTL 可停用并再次激活總線故障。
激活或停用可以在運(yùn)行時(shí)于程序內(nèi)通過 KRL 執(zhí)行。 可為一個(gè)或多個(gè)總線實(shí)例停用總線故障。
如果總線故障被停用,會(huì)有如下表現(xiàn):
? 總線故障:不停止和/或鎖定激活命令
? 總線故障:smartHMI 信息窗口中沒有故障信息
? smartHMI 信息窗口中會(huì)顯示以下信息: KRC IO 總線錯(cuò)誤抑制針對(duì)下列總線實(shí)例激活:{總線實(shí)例}{總線實(shí)例}{總線實(shí)例}
? 如果總線實(shí)例中已出現(xiàn)故障,則無法再次激活總線故障。
該情況下可通過系統(tǒng)變量 $IOBUS_INFO 讀取是否出現(xiàn)總線故障。
? 為了停用總線故障: RET = IOCTL("KRC->PNIO-CTRL", 1, 1) ? 為了激活總線故障: RET = IOCTL("KRC->PNIO-CTRL", 1, 0)
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 命令 |
通過 KRL 重啟總線系統(tǒng)
總線故障后,可在運(yùn)行時(shí)在程序之內(nèi)重啟總線系統(tǒng)。為此,必須在程序中借助KRL 函數(shù) IOCTL 編程一個(gè)重啟總線系統(tǒng)的命令。
RET = IOCTL("PNIO-CTRL",12,0)
12 | 用于重啟總線系統(tǒng)的 IOCTL 命令 |
審核編輯:劉清
-
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6548瀏覽量
110494 -
機(jī)器人
+關(guān)注
關(guān)注
210文章
28219瀏覽量
206583 -
工業(yè)以太網(wǎng)
+關(guān)注
關(guān)注
10文章
614瀏覽量
42315 -
HMI
+關(guān)注
關(guān)注
9文章
584瀏覽量
48459 -
Profinet
+關(guān)注
關(guān)注
6文章
1069瀏覽量
23330
原文標(biāo)題:DOCK之profinet的對(duì)接快換耦合V3.15
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論