0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

KUKA的程序調(diào)用--VSS版本解析

機器人及PLC自動化應(yīng)用 ? 來源:機器人及PLC自動化應(yīng)用 ? 作者:機器人及PLC自動化 ? 2021-03-18 10:07 ? 次閱讀

UP/MAKRO程序調(diào)用

該指令可用于調(diào)用子程序并將子程序調(diào)用鏈接到條件(布爾操作數(shù))。如果需要,可以鏈接多個操作數(shù)(最多11個)。

子程序的調(diào)用次數(shù)沒有限制。

o4YBAGBSttGAZkwZAAA54XUv0yw847.png

UP101 = F78 + F79 激活條件UP101

;%{SE}%MKUKATPVW %CVW_SPS %VUP %P 2:UP101 = F78 + F79,3:UP

;ENDFOLDSEL_RES=SELECT(#UP,101,$FLAG[78] OR $FLAG[79])

REPEAT UP101 N= 999 STOP= !F298 條件滿足停止循環(huán)調(diào)用UP101

SEL_RES=SELECT (#CYC_UP,101,TRUE,#NUM,999,#NOT_F,298,FALSE)

;ENDFOLD

;ENDFOLD

DEFFCT INT SELECT

(SUB :IN,NO :IN,CALL_CND :IN,ARI_OP :IN,ARI_NUM :IN,BOOL_OP :IN,BOOL_NUM :IN,MAKRO_ADV :IN)

SUB : 選擇調(diào)用的類型UP/makro

NO : 程序號

CALL_CND : 激活條件

ADV_RESULT = 0

IF NOT CALL_CND THEN ---如果不激活就跳步到最后

GOTO PEXIT -----跳步到退出

ENDIF

SWITCH SUB

CASE #UP 使用調(diào)用UP

CALLBYSELECT=TRUE

SWITCH NO ;調(diào)用UP程序號

CASE 101 ---程序號

UP101( ) 調(diào)用UP程序號

CASE 102

UP102( )

CASE 103

UP103( )

CASE 112

UP112( )

CASE 201

UP201( )

CASE 206

UP206( )

DEFAULT

$LOOP_MSG[]=" "

OFFSET = 0

---程序號不能被調(diào)用---

SWRITE($LOOP_MSG[],STATE,OFFSET,"UP%D ist nicht vorhanden",NO)

HALT ---程序號不能被調(diào)用---使得程序停止

$LOOP_MSG[]=" "

ENDSWITCH

CALLBYSELECT=FALSE

CASE #MAKRO

SWITCH NO ;開始調(diào)用MAKRO程序號 --

CASE 0 要激活的程序號

ADV_RESULT= MAKRO0 (MAKRO_ADV) 激活MAKRO0程序

CASE 1

ADV_RESULT= MAKRO1 (MAKRO_ADV) 激活MAKRO1程序

CASE 2

ADV_RESULT= MAKRO2 (MAKRO_ADV)

CASE 3

ADV_RESULT= MAKRO3 (MAKRO_ADV)

CASE 4

ADV_RESULT= MAKRO4 (MAKRO_ADV)

CASE 5

ADV_RESULT= MAKRO5 (MAKRO_ADV)

CASE 6

ADV_RESULT= MAKRO6 (MAKRO_ADV)

CASE 7

ADV_RESULT= MAKRO7 (MAKRO_ADV)

CASE 8

ADV_RESULT= MAKRO8 (MAKRO_ADV)

CASE 9

ADV_RESULT= MAKRO9 (MAKRO_ADV)

CASE 10

ADV_RESULT= MAKRO10 (MAKRO_ADV)

CASE 11

ADV_RESULT= MAKRO11 (MAKRO_ADV)

CASE 12

ADV_RESULT= MAKRO12 (MAKRO_ADV)

CASE 13

ADV_RESULT= MAKRO13 (MAKRO_ADV)

CASE 14

ADV_RESULT= MAKRO14 (MAKRO_ADV)

CASE 15

ADV_RESULT= MAKRO15 (MAKRO_ADV)

CASE 20

ADV_RESULT= MAKRO20 (MAKRO_ADV)

CASE 50

ADV_RESULT= MAKRO50 (MAKRO_ADV)

CASE 57

ADV_RESULT= MAKRO57 (MAKRO_ADV)

CASE 80

ADV_RESULT= MAKRO80 (MAKRO_ADV)

CASE 81

ADV_RESULT= MAKRO81 (MAKRO_ADV)

CASE 82

ADV_RESULT= MAKRO82 (MAKRO_ADV)

CASE 83

ADV_RESULT= MAKRO83 (MAKRO_ADV)

CASE 89

ADV_RESULT= MAKRO89 (MAKRO_ADV)

DEFAULT

$LOOP_MSG[]=" "

-------沒有建立的Makro號被調(diào)用

OFFSET = 0

SWRITE($LOOP_MSG[],STATE,OFFSET,"Makro%D ist nicht vorhanden",NO)

用來模擬顯示: 沒有建立的Makro號被調(diào)用

HALT -----如果沒有號需要停止

$LOOP_MSG[]=" "

ENDSWITCH 結(jié)束了MAKRO選擇

CASE #CYC_UP -----循環(huán)執(zhí)行UP程序

NR=0

WHILE NOT (CHECK_BOOL(BOOL_OP,BOOL_NUM) OR CHECK_ARI(NR,ARI_OP,ARI_NUM)) CHECK_BOOL/ CHECK_ARI啟動功能條件開啟

NR=NR+1 從0開始計數(shù)大于給定值將不執(zhí)行循環(huán)程序

CALLBYSELECT=TRUE

SWITCH NO ; UP程序號調(diào)用

CASE 101

UP101( )

CASE 102

UP102( )

CASE 103

UP103( )

CASE 112

UP112( )

CASE 201

UP201( )

CASE 206

UP206( )

DEFAULT

$LOOP_MSG[]=" "

UP程序號沒有被激活的程序號

OFFSET = 0

SWRITE($LOOP_MSG[],STATE,OFFSET,"UP%D ist nicht vorhanden",NO)

HALT 程序號沒有使用程序停止

$LOOP_MSG[]=" "

ENDSWITCH

CALLBYSELECT=FALSE

ENDWHILE

CASE #CYC_MAKRO -----循環(huán)執(zhí)行MAKRO程序

NR=0

WHILE NOT (CHECK_BOOL(BOOL_OP,BOOL_NUM) OR CHECK_ARI(NR,ARI_OP,ARI_NUM)) 大于給定值將不執(zhí)行循環(huán)程序

NR=NR+1 從0開始計數(shù)大于給定值將不執(zhí)行循環(huán)程序

SWITCH NO -----調(diào)用的程序號

CASE 0

ADV_RESULT= MAKRO0 (MAKRO_ADV) 調(diào)用執(zhí)行MAKRO程序

CASE 1

ADV_RESULT= MAKRO1 (MAKRO_ADV)

CASE 2

ADV_RESULT= MAKRO2 (MAKRO_ADV)

CASE 3

ADV_RESULT= MAKRO3 (MAKRO_ADV)

CASE 4

ADV_RESULT= MAKRO4 (MAKRO_ADV)

CASE 5

ADV_RESULT= MAKRO5 (MAKRO_ADV)

CASE 6

ADV_RESULT= MAKRO6 (MAKRO_ADV)

CASE 7

ADV_RESULT= MAKRO7 (MAKRO_ADV)

CASE 8

ADV_RESULT= MAKRO8 (MAKRO_ADV)

CASE 9

ADV_RESULT= MAKRO9 (MAKRO_ADV)

CASE 10

ADV_RESULT= MAKRO10 (MAKRO_ADV)

CASE 11

ADV_RESULT= MAKRO11 (MAKRO_ADV)

CASE 12

ADV_RESULT= MAKRO12 (MAKRO_ADV)

CASE 13

ADV_RESULT= MAKRO13 (MAKRO_ADV)

CASE 14

ADV_RESULT= MAKRO14 (MAKRO_ADV)

CASE 15

ADV_RESULT= MAKRO15 (MAKRO_ADV)

CASE 20

ADV_RESULT= MAKRO20 (MAKRO_ADV)

CASE 50

ADV_RESULT= MAKRO50 (MAKRO_ADV)

CASE 57

ADV_RESULT= MAKRO57 (MAKRO_ADV)

CASE 80

ADV_RESULT= MAKRO80 (MAKRO_ADV)

CASE 81

ADV_RESULT= MAKRO81 (MAKRO_ADV)

CASE 82

ADV_RESULT= MAKRO82 (MAKRO_ADV)

CASE 83

ADV_RESULT= MAKRO83 (MAKRO_ADV)

CASE 89

ADV_RESULT= MAKRO89 (MAKRO_ADV)

DEFAULT

$LOOP_MSG[]=" "

Makro程序號沒有被激活的程序號

OFFSET = 0

SWRITE($LOOP_MSG[],STATE,OFFSET,"Makro%D ist nicht vorhanden",NO)

HALT -----程序號沒有使用程序停止

$LOOP_MSG[]=" "

ENDSWITCH ---結(jié)束選擇程序

ENDWHILE ---結(jié)束條件

DEFAULT --- 沒有UP,MAKRO,CYC_MAKRO,CYC_UP

ENDSWITCH ---結(jié)束選擇程序

PEXIT: -------跳步退出

RETURN ADV_RESULT

ENDFCT

---檢查位用于循環(huán)調(diào)用---

DEFFCT BOOL CHECK_BOOL(BOOLOP :IN,BOOLOP_NUM :IN)

INT BOOLOP_NUM 位號,數(shù)字

DECL BOOL_TYP BOOLOP 各種類型

BOOL STOP_BOOL

SWITCH BOOLOP

CASE #EIN

STOP_BOOL=TRUE ---激活

CASE #AUS

STOP_BOOL=FALSE ---關(guān)閉

CASE #E

STOP_BOOL=$IN[BOOLOP_NUM] ---用輸入激活

CASE #NOT_E

STOP_BOOL= NOT $IN[BOOLOP_NUM] ---輸入取反激活

CASE #A

STOP_BOOL=$OUT[BOOLOP_NUM] ---用輸出激活

CASE #NOT_A

STOP_BOOL= NOT $OUT[BOOLOP_NUM] ---用輸出的非激活

CASE #M

STOP_BOOL=$CYCFLAG[BOOLOP_NUM] ---用M量激活

CASE #NOT_M

STOP_BOOL= NOT $CYCFLAG[BOOLOP_NUM] ---用M量的非激活

CASE #F

STOP_BOOL=$FLAG[BOOLOP_NUM] 用F量激活

CASE #NOT_F

STOP_BOOL= NOT $FLAG[BOOLOP_NUM] 用F量的非激活

CASE #T

STOP_BOOL=$TIMER_FLAG[BOOLOP_NUM] 用時間量激活

CASE #NOT_T

STOP_BOOL= NOT $TIMER_FLAG[BOOLOP_NUM] 用時間量的非激活

CASE #S

STOP_BOOL=S[BOOLOP_NUM] S量一般不用

CASE #NOT_S

STOP_BOOL= NOT S[BOOLOP_NUM]

ENDSWITCH

RETURN (STOP_BOOL) 條件滿足反饋

ENDFCT

-----用于輸入數(shù)---

DEFFCT BOOL CHECK_ARI(ACT_NR :IN, ARIOP :IN ,ARIOP_NUM :IN)

INT ACT_NR, ARIOP_NUM, MAX_NR

DECL ARI_TYP ARIOP

SWITCH ARIOP

CASE #NUM 直接給入數(shù)

MAX_NR=ARIOP_NUM

CASE #COUNT 計數(shù)器

MAX_NR=$COUNT_I[ARIOP_NUM]

CASE #BIN 二進制

MAX_NR=$B_OUT[ARIOP_NUM]

CASE #BININ 二進制輸入

MAX_NR=ARIOP_NUM

CASE #ANA 模擬量輸出

MAX_NR=$ANOUT[ARIOP_NUM]*1000

CASE #ANAIN 模擬量輸入

MAX_NR=$ANIN[ARIOP_NUM]*1000

CASE #TIMER 時間控制

MAX_NR=$TIMER[ARIOP_NUM]*0.01

CASE #PROCPAR P值控制

MAX_NR=PROCPAR[ARIOP_NUM]

ENDSWITCH

RETURN (ACT_NR>=MAX_NR) 計數(shù)大于給定值.

ENDFCT

;ENDFOLD

;ENDFOLD

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • plc
    plc
    +關(guān)注

    關(guān)注

    5004

    文章

    13050

    瀏覽量

    460920
  • KUKA
    +關(guān)注

    關(guān)注

    3

    文章

    216

    瀏覽量

    16461

原文標題:KUKA的程序調(diào)用--VSS版本解析

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    labview CAN DBC加載解析程序

    labview CAN DBC加載解析程序
    發(fā)表于 08-18 11:42

    Kuka機器人配置Profinet通訊網(wǎng)關(guān)HT3S-PNS-ECS

    Kuka機器人配置Profinet通訊網(wǎng)關(guān)HT3S-PNS-ECS
    的頭像 發(fā)表于 06-13 15:52 ?561次閱讀
    <b class='flag-5'>Kuka</b>機器人配置Profinet通訊網(wǎng)關(guān)HT3S-PNS-ECS

    什么是VCC、 VDD、VEE和VSS?

    VCC、 VDD、VEE和VSS解析
    發(fā)表于 06-04 06:52

    安卓版Chrome瀏覽器現(xiàn)已支持第三方密碼管理器調(diào)用

    據(jù)報道,數(shù)據(jù)解析專家Leppeva64近日在安卓版谷歌Chrome瀏覽器的源代碼中透露,該瀏覽器已在安卓平臺上實現(xiàn)了對第三方密碼管理器的調(diào)用支持,并覆蓋Stable、Beta及Canary版本
    的頭像 發(fā)表于 03-19 11:04 ?606次閱讀

    STM32H745IIK6器件VDD和VSS短路的原因?

    在淘寶上采購了幾片STM32H745IIK6(UFBGA176+25封裝),焊接到板子上后,發(fā)現(xiàn)電源M9/H12/D5和封裝中間25個VSS短路,VDD33_USB(F13)和M10(VSS)短路
    發(fā)表于 03-15 06:57

    Linux內(nèi)核中信號相關(guān)的系統(tǒng)調(diào)用

    正如我們所知,運行在用戶態(tài)下的程序可以發(fā)送和接收信號。這意味著必須定義一組系統(tǒng)調(diào)用來允許這類操作。不幸的是,由于歷史原因,有些系統(tǒng)調(diào)用可能功能相同。 因此,其中一些系統(tǒng)調(diào)用永遠不會被
    的頭像 發(fā)表于 01-20 09:34 ?575次閱讀

    藍牙協(xié)議版本解析:不同類型的藍牙協(xié)議及其作用

    藍牙技術(shù)作為一種無線通信技術(shù),隨著時間的推移不斷發(fā)展演進。不同的藍牙協(xié)議版本為各類設(shè)備提供了不同的功能和應(yīng)用特性。本文將深入解析不同類型的藍牙協(xié)議版本,以及它們在各種設(shè)備中的作用。 1. 藍牙1.0
    的頭像 發(fā)表于 12-28 11:17 ?1859次閱讀

    VCC、 VDD、VEE、VSS,他們具有什么樣的關(guān)系那?

    Vcc和Vdd是器件的電源端。Vcc是雙極器件的正,Vdd多半是單級器件的正。下標可以理解為NPN晶體管的集電極C,和PMOS or NMOS場效應(yīng)管的漏極D。同樣你可在電路圖中看見Vee和Vss,含義一樣。
    發(fā)表于 12-26 16:30 ?894次閱讀

    更改KUKA C 4 Windows系統(tǒng)的密碼

    或者可以通過 WorkVisual 更改密碼。如果在機器人控制系統(tǒng)上安裝了 KUKA.NonAdmin,則只能通過 WorkVisual 更改該密碼。
    的頭像 發(fā)表于 12-12 17:11 ?970次閱讀

    python調(diào)用windows命令

    Python是一種強大的編程語言,可以用于開發(fā)各種不同類型的應(yīng)用程序。其中一個常見的用途是使用Python調(diào)用Windows命令來執(zhí)行特定的任務(wù)。在本文中,我們將詳細討論如何使用Python調(diào)用
    的頭像 發(fā)表于 11-29 14:34 ?918次閱讀

    如何查看及更改函數(shù)/函數(shù)塊的調(diào)用環(huán)境

    模塊化設(shè)計的思想是把一些相似的功能(比如電機控制、閥控制)設(shè)計成函數(shù)或函數(shù)塊,這樣就可以反復(fù)調(diào)用。其優(yōu)點是:使程序架構(gòu)更加清晰,避免重復(fù)編寫相似功能的代碼。不過可能會產(chǎn)生一個疑惑:既然PLC的程序
    的頭像 發(fā)表于 11-17 09:08 ?765次閱讀
    如何查看及更改函數(shù)/函數(shù)塊的<b class='flag-5'>調(diào)用</b>環(huán)境

    Linux系統(tǒng)調(diào)用概述

    控制。也就是說操作系統(tǒng)是使用這些資源的唯一入口,而這個入口就是操作系統(tǒng)提供的系統(tǒng)調(diào)用(System Call)。在linux中系統(tǒng)調(diào)用是用戶空間訪問內(nèi)核的唯一手段,除異常和陷入外,他們是內(nèi)核唯一的合法入口。 一般情況下應(yīng)用程序
    的頭像 發(fā)表于 11-09 10:27 ?485次閱讀
    Linux系統(tǒng)<b class='flag-5'>調(diào)用</b>概述

    shell調(diào)用java并返回執(zhí)行結(jié)果

    在Shell腳本中調(diào)用Java程序并獲取執(zhí)行結(jié)果,可以通過以下步驟實現(xiàn): 編寫Java程序:首先,你需要編寫一個Java程序,包含你想要執(zhí)行的功能。確保你的Java
    的頭像 發(fā)表于 11-08 10:32 ?1384次閱讀

    KUKA機器人程序診斷:顯示調(diào)用方堆棧

    $PRO_IP:讀取機器人程序中的變量是指機器人在解釋器中的狀態(tài)。 在提交程序中讀取變量是指關(guān)聯(lián)的提交解釋器的狀態(tài)。 通過變量校正函數(shù)讀取/寫入變量是指$INTERPRETER的當前值。
    的頭像 發(fā)表于 11-08 10:22 ?490次閱讀
    <b class='flag-5'>KUKA</b>機器人<b class='flag-5'>程序</b>診斷:顯示<b class='flag-5'>調(diào)用</b>方堆棧

    TIA Portal版本和CPU中程序版本在上傳時的兼容性

    通常 CPU 內(nèi)的程序只能使用相同版本的 TIA Portal 軟件上傳,也就是說例如用 V18 下載的程序只能使用 V18 版本 TIA Portal 上傳,但是也存在一些特例,或者
    的頭像 發(fā)表于 11-05 16:52 ?2693次閱讀
    TIA Portal<b class='flag-5'>版本</b>和CPU中<b class='flag-5'>程序</b><b class='flag-5'>版本</b>在上傳時的兼容性