在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

一文知道UP/MAKRO程序的調用

機器人及PLC自動化應用 ? 來源:搜狐網 ? 作者:搜狐網 ? 2020-11-07 10:57 ? 次閱讀

UP/MAKRO程序調用

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

子程序的調用次數沒有限制。

1 子程序號 ?0 ... 999
2 操作符_(
3 操作員。如果選擇了操作數EIN(ON)和AUS(OFF),則輸入框不可用。?_,!
4 布爾操作數(條件)?EIN(開),AUS(關),E,A,M,F,T,S
5 操作數的編號。如果選擇了操作數EIN(ON)和AUS(OFF),則輸入框不可用。
值的范圍。取決于操作數
6 操作符_(

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 條件滿足停止循環調用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 : 選擇調用的類型UP/makro

NO : 程序號

CALL_CND : 激活條件

ADV_RESULT = 0

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

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

ENDIF

SWITCH SUB

CASE #UP 使用調用UP

CALLBYSELECT=TRUE

SWITCH NO ;調用UP程序號

CASE 101 ---程序號

UP101( ) 調用UP程序號

CASE 102

UP102( )

CASE 103

UP103( )

CASE 112

UP112( )

CASE 201

UP201( )

CASE 206

UP206( )

DEFAULT

$LOOP_MSG[]=" "

OFFSET = 0

---程序號不能被調用---

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

HALT ---程序號不能被調用---使得程序停止

$LOOP_MSG[]=" "

ENDSWITCH

CALLBYSELECT=FALSE

CASE #MAKRO

SWITCH NO ;開始調用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號被調用

OFFSET = 0

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

用來模擬顯示: 沒有建立的Makro號被調用

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

$LOOP_MSG[]=" "

ENDSWITCH 結束了MAKRO選擇

CASE #CYC_UP -----循環執行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開始計數大于給定值將不執行循環程序

CALLBYSELECT=TRUE

SWITCH NO ; UP程序號調用

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 -----循環執行MAKRO程序

NR=0

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

NR=NR+1 從0開始計數大于給定值將不執行循環程序

SWITCH NO -----調用的程序號

CASE 0

ADV_RESULT= MAKRO0 (MAKRO_ADV) 調用執行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 ---結束選擇程序

ENDWHILE ---結束條件

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

ENDSWITCH ---結束選擇程序

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

RETURN ADV_RESULT

ENDFCT

---檢查位用于循環調用---

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

INT BOOLOP_NUM 位號,數字

DECL BOOL_TYP BOOLOP 各種類型

BOOL STOP_BOOL

SWITCH BOOLOP

CASE #EIN

STOP_BOOL=TRUE ---激活

CASE #AUS

STOP_BOOL=FALSE ---關閉

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

-----用于輸入數---

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 直接給入數

MAX_NR=ARIOP_NUM

CASE #COUNT 計數器

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) 計數大于給定值.

ENDFCT

;ENDFOLD

;ENDFOLD

責任編輯人:CC

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 程序
    +關注

    關注

    117

    文章

    3793

    瀏覽量

    81214
  • 調用
    +關注

    關注

    0

    文章

    8

    瀏覽量

    3248

原文標題:KUKA的程序調用--VSS版本解析

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    詳解python調用函數

    函數被定義后,本身是不會自動執行的,只有在被調用后,函數才會被執行,得到相應的結果。但是在 Python 中我們要注意個關鍵點,就是Python不允許前向引用,即在函數定義之前,不允許調用該函數。
    發表于 10-01 10:45 ?702次閱讀

    詳解PLC子程序與子程序指令

    在編程時經常會遇到相同的程序段需要多次執行的情況,如圖6-39所示,程序段A要執行兩次,編程時要寫兩段相同的程序段,這樣比較麻煩。解決這個問題的方法是將需要多次執行的程序段從主
    的頭像 發表于 12-14 13:33 ?8981次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解PLC子<b class='flag-5'>程序</b>與子<b class='flag-5'>程序</b>指令

    ARM linux系統調用的實現原理

    大家都知道linux的應用程序要想訪問內核必須使用系統調用從而實現從usr模式轉到svc模式。下面咱們看看它的實現過程。
    發表于 05-30 11:24 ?2242次閱讀

    程序的創建與調用

    【LabVIEW從入門到精通】2.5 子程序的創建與調用
    發表于 01-08 15:43 ?0次下載

    應用程序調用底層驅動

    本片主要講述了嵌入式linux操作系統的上層應用程序是如何調用底層驅動程序的。
    發表于 03-14 15:00 ?0次下載

    中斷處理和子程序調用概念解析

    程序組可以公用的指令序列,只要給出子程序的入口地址就能從主程序轉入子程序。子程序在功能上具
    發表于 11-16 11:12 ?1w次閱讀
    中斷處理和子<b class='flag-5'>程序</b><b class='flag-5'>調用</b>概念解析

    種動靜結合的惡意程序函數調用圖提取方法

    完整準確地提取函數調用圖是基于函數調用圖進行惡意程序相似性分析的基礎。為此,提出種動靜結合的惡意程序函數
    發表于 02-24 13:52 ?0次下載
    <b class='flag-5'>一</b>種動靜結合的惡意<b class='flag-5'>程序</b>函數<b class='flag-5'>調用</b>圖提取方法

    知道Arm Linux系統調用流程?

    系統調用是操作系統提供的服務,用戶程序通過各種系統調用,來引用內核提供的各種服務,系統調用的執行讓用戶程序陷入內核,該陷入動作由swi軟中斷
    發表于 05-15 16:19 ?2328次閱讀
    你<b class='flag-5'>知道</b>Arm Linux系統<b class='flag-5'>調用</b>流程?

    知道Linux系統調用的原理

    系統調用是應用程序與操作系統內核之間的接口,它決定了程序如何與內核打交道的。無論程序是直接進行系統調用,還是通過運行庫,最終還是會到達系統
    發表于 05-16 16:21 ?1512次閱讀
    你<b class='flag-5'>知道</b>Linux系統<b class='flag-5'>調用</b>的原理

    KUKA的程序調用--VSS版本解析

    該指令可用于調用程序并將子程序調用鏈接到條件(布爾操作數)。如果需要,可以鏈接多個操作數(最多11個)。 子程序
    的頭像 發表于 03-18 10:07 ?3143次閱讀
    KUKA的<b class='flag-5'>程序</b><b class='flag-5'>調用</b>--VSS版本解析

    基于Labview的調用windows程序源碼分享

    基于Labview的調用windows程序源碼分享
    發表于 12-02 11:08 ?96次下載

    自動生成的程序、程序調用

    本文介紹Motion Solution Wizard自動生成的程序、程序調用,并簡單介紹運動控制工程調用的運動控制庫文件。 具體操作介紹 1.在項目樹下雙擊“Motion Solut
    發表于 03-08 15:33 ?499次閱讀

    ifconfig up后內核網絡驅動做了什么?

    最近在排查個網絡問題,ifconfig eth0 up 后,網卡link up比較慢。因此,分析了下從ifconfig up 到網絡驅動的調用
    的頭像 發表于 05-19 15:17 ?2298次閱讀

    分享下ABB機器人調用例行程序的方法

    在機器人的編程中例行程序調用是必不可少的,今天來分享一下例行程序調用的三種方法。
    發表于 05-25 16:21 ?1.2w次閱讀
    分享<b class='flag-5'>一</b>下ABB機器人<b class='flag-5'>調用</b>例行<b class='flag-5'>程序</b>的方法

    如何使用TSMaster調用外部DLL/LIB程序

    庫,但必須通過定的方法進行封裝。本節內容以調用NI公司的TDMS文件記錄程序為例,演示封裝DLL庫的方法,而LIB庫的使用與DLL類似,用戶可以在visualst
    的頭像 發表于 08-16 09:36 ?1435次閱讀
    如何使用TSMaster<b class='flag-5'>調用</b>外部DLL/LIB<b class='flag-5'>程序</b>
    主站蜘蛛池模板: 性欧美高清精品videos| 日本午夜视频| re99热| 国产精品久久久久免费| 亚洲欧美日韩色图| 色偷偷视频| 免费黄色福利视频| 高清国产亚洲va精品| 夜夜爽天天爽| 日韩夜夜操| 欧美男人天堂网| 乱人伦的小说| 四虎国产精品永久地址49| 免费色视频| 97影院理论在线观看| 日本又粗又长一进一出抽搐| 国产精品成人一区二区| 色噜噜狠狠大色综合| 亚洲国产成人久久一区www| 日本高免费观看在线播放| 国产一级特黄aaaa大片野外| 69er小视频| 国模吧双双大尺度炮交gogo| 亚洲一区二区在线播放| 永久毛片| 人人乳乳香蕉大免费| 国产一区二区三区在线影院| 新天堂网| 欧美精品xxxⅹ欧美| 欲色综合| 嫩草影院在线入口| 亚洲射图| 啪啪网站免费观看| 亚洲欧美色视频| 免费大片黄在线观看日本| 亚洲午夜精品久久久久久人妖| 99热色| 亚洲精品456人成在线| 久久成人免费网站| 日日爽夜夜| 男女做性无遮挡免费视频|