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)注

    5013

    文章

    13315

    瀏覽量

    463882
  • KUKA
    +關(guān)注

    關(guān)注

    3

    文章

    217

    瀏覽量

    16552

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    請問TPL0102-100的VSS供電有什么講究嗎?

    你好,請問TPL0102-100的VSS供電有什么講究嗎? 內(nèi)部的電阻式無極性的嗎? 我用在運放的增益控制,所以內(nèi)部電阻的電壓可能有正有負,也可能高到10V,對供電有沒有要求,謝謝!
    發(fā)表于 01-06 08:09

    DAC7614 vss電壓工作異常的原因?

    最近在使用DAC7614時發(fā)現(xiàn)如下現(xiàn)象: 供給IC的-5V VSS電壓會變成 -1.8V 請問這個現(xiàn)象正常么?如果不正常一般是由哪些原因引起的呢?-5V由LM2776提供.
    發(fā)表于 01-06 07:39

    VSS的工作原理解析

    VSS(Visual SourceSafe)是微軟公司開發(fā)的一款版本控制系統(tǒng),主要用于軟件開發(fā)過程中的代碼管理。 1. VSS概述 Visual SourceSafe(VSS)是一個基
    的頭像 發(fā)表于 12-13 16:09 ?248次閱讀

    VSS遇到的常見錯誤及解決方法

    Visual SourceSafe(VSS)是一個版本控制系統(tǒng),由微軟開發(fā),用于跟蹤文件和項目的歷史記錄。盡管VSS已經(jīng)有些過時,但仍有一些團隊在使用它。以下是一些VSS用戶可能遇到的
    的頭像 發(fā)表于 12-13 16:08 ?222次閱讀

    VSS在數(shù)據(jù)備份中的作用 VSS技術(shù)的優(yōu)勢與劣勢

    的一項服務(wù),它允許用戶創(chuàng)建文件和文件系統(tǒng)的快照,即影子副本。這些快照可以用于數(shù)據(jù)備份、恢復(fù)和分析,而不需要中斷當前的文件系統(tǒng)操作。 2. VSS在數(shù)據(jù)備份中的作用 一致性備份 :VSS能夠創(chuàng)建應(yīng)用程序
    的頭像 發(fā)表于 12-13 16:03 ?196次閱讀

    labview CAN DBC加載解析程序

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

    RTOS V1.4版本SDK作為TCP Server沒有調(diào)用斷開連接的回調(diào)函數(shù),為什么?

    硬件環(huán)境是:ESP-12F, 軟件環(huán)境是:RTOS V1.4版本 問題描述: 模塊作為STA,socket為TCP Server,當TCP Client連接到模塊的TCP Server時會調(diào)用
    發(fā)表于 07-18 08:31

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

    Kuka機器人配置Profinet通訊網(wǎng)關(guān)HT3S-PNS-ECS
    的頭像 發(fā)表于 06-13 15:52 ?698次閱讀
    <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

    摩爾線程發(fā)布版本號為v250.60.1的Windows驅(qū)動程序

    3月20日,摩爾線程發(fā)布版本號為v250.60.1的Windows驅(qū)動程序。新的驅(qū)動程序,在PES控制中心新增了屏幕錄制功能。
    的頭像 發(fā)表于 03-21 10:01 ?495次閱讀
    摩爾線程發(fā)布<b class='flag-5'>版本</b>號為v250.60.1的Windows驅(qū)動<b class='flag-5'>程序</b>

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

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

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

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

    瑞薩Flash示例程序01型SC版本(代碼Flash)應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《瑞薩Flash示例程序01型SC版本(代碼Flash)應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 02-19 13:48 ?0次下載
    瑞薩Flash示例<b class='flag-5'>程序</b>01型SC<b class='flag-5'>版本</b>(代碼Flash)應(yīng)用說明

    瑞薩Flash示例程序01型SC版本應(yīng)用說明

    電子發(fā)燒友網(wǎng)站提供《瑞薩Flash示例程序01型SC版本應(yīng)用說明.pdf》資料免費下載
    發(fā)表于 02-19 13:46 ?0次下載
    瑞薩Flash示例<b class='flag-5'>程序</b>01型SC<b class='flag-5'>版本</b>應(yīng)用說明

    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 ?765次閱讀