從一個主程序中可以將參數傳遞到局部或全局子程序和函數中。
怎樣傳遞參數有 2 種方式:
作為 IN 參數
變量值在主程序中保持不變。
這種傳遞方式也稱為 “ 值傳遞 (Call by Value)”。
作為 OUT 參數
子程序讀取并更改該值,然后將新值寫回到主程序中。
這種傳遞方式也稱為 “Call by Reference”。
建議:始終將一個參數傳遞到相同數據類型的變量中。可以將參數傳遞到另一個數據類型中,但是有特定的限制。 將參數傳遞給局部子程序:
例:
1 DEF MY_PROG( ) 2 DECL REAL r,s 3 ... 4 CALC_1(r)
調用子程序 CALC_1 并傳遞參數 “r”。
5 ...
6 CALC_2(s)
調用子程序 CALC_2 并傳遞參數 “s”。
7 ...
8 END _______________________________________
9 DEF CALC_1(num1:IN)
num1:要將值 “r” 傳遞到其上的變量名稱。IN 表示:只為讀取傳遞 “r”。
10 DECL REAL num1
必須聲明要將數值傳遞到其上的變量。
11 ...
12 END _______________________________________
13 DEF CALC_2(num2:OUT)
num2:要將值 “s” 傳遞到其上的變量名稱。OUT 表示:傳遞、更改 “s” 并將其寫回到主程序中。
14 DECL REAL num2
必須聲明要將數值傳遞到其上的變量。
15 ...
16 END
將參數傳遞給全局函數: 主程序 MY_PROG( ):
1 DEF MY_PROG( ) 2 DECL REAL result, value 3 value = 2.0
給 “value” 賦值 “2.0”。
4 result = CALC(value)
調用函數 CALC,并傳遞 “value” 的值。給變量 “result” 分配函數的返還值。
5 ... ... END
在將該值作為 IN 參數傳遞時發生了什么?
帶 IN 的函數 CALC():
1 DEFFCT REAL CALC(num:IN)
將 “value” 的值作為 IN 參數傳遞給 “num”。該值還為 2.0。
2 DECL REAL return_value, num 3 num = num + 8.0
更改 “num” 的值。該值現在為 10.0。
4 return_value = num * 100.0 5 RETURN(return_value)
計算 “return_value” 的值并將該值發回到主程序的變量“result” 中。該值為 1000.0。
6 ENDFCT
函數已結束,從行 5 起繼續執行主程序。提示:主程序中 “value” 的值未更改,為 2.0
審核編輯 :李倩
-
機器人
+關注
關注
211文章
28380瀏覽量
206918 -
程序
+關注
關注
117文章
3785瀏覽量
81004 -
函數
+關注
關注
3文章
4327瀏覽量
62573
原文標題:KUKA 機器人:將參數傳遞到子程序或函數中V1版..
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論