調(diào)用函數(shù)(FC)
通過說明函數(shù)名(FC, SFC標(biāo)識(shí)符)和參數(shù)表來調(diào)用函數(shù)。能夠用絕對(duì)或符號(hào)形式指定標(biāo)識(shí)返回值的函數(shù)名稱:
FC31 (X1:=5, Q1:=Checksum) ; // 絕對(duì)形式
DISTANCE (X1:=5, Q1=:Checksum) ; // 符號(hào)形式
調(diào)用之后,函數(shù)的結(jié)果可用作為返回值或作為輸出和輸入/輸出參數(shù)(實(shí)際參數(shù))。
對(duì)比功能塊,函數(shù)提供一個(gè)結(jié)果當(dāng)作返回值。基于這個(gè)原因,函數(shù)能夠被子當(dāng)作地址來對(duì)待(VOID類型的函數(shù)除外)。
函數(shù)計(jì)算與函數(shù)有同樣名稱的返回值,且將其返回給調(diào)用它的塊。在那里,值代替函數(shù)調(diào)用。
例如,在下面的賦值中,DISTANCE函數(shù)被調(diào)用,且結(jié)果賦值給LENGTH變量。
LENGTH:= DISTANCE (X1:=-3, Y1:=2);
返回值能夠用在下面的函數(shù)或功能塊元素:
-
在一個(gè)賦值語句中,
-
在一個(gè)邏輯、算術(shù)或比較表達(dá)式或
-
作為更進(jìn)一步的功能塊或函數(shù)調(diào)用的參數(shù)。
函數(shù)的參數(shù)
對(duì)比功能塊,函數(shù)沒有任何他們保存參數(shù)值的內(nèi)存。在函數(shù)激活時(shí),本地?cái)?shù)據(jù)只中臨時(shí)地貯存。由于這個(gè)原因,當(dāng)調(diào)用函數(shù)時(shí),所有在函數(shù)聲明部分定義的形式輸入、輸入/輸出和輸出參數(shù)必須賦予實(shí)際參數(shù)。
例子(Example)
帶為輸入、輸出和輸入/輸出參數(shù)賦值的調(diào)用如下:
FC32 (E_Param1:=5,D_Param1:=LENGTH,
A_Param1:=Checksum)
函數(shù)調(diào)用舉例:
函數(shù)被調(diào)用(Function to be Called)
計(jì)算在使用笛卡爾坐標(biāo)系統(tǒng)的同一平面中兩點(diǎn)(X1,Y1)和(X2,Y2)之間距離的函數(shù)DISTANCE可以是下面的形式(此例假設(shè)符號(hào)DISTANCE在符號(hào)表中為FC37已經(jīng)聲明)。
FUNCTION DISTANCE: REAL // 符號(hào)
VAR_INPUT
X1 : REAL;
X2 : REAL;
Y1 : REAL;
Y2 : REAL;
END_VAR
VAR_OUTPUT
Q2 : REAL;
END_VAR
BEGIN 開始
DISTANCE := SQRT( (X2-X1)**2 + (Y2-Y1)**2 );
Q2 := X1+X2+Y1+Y2;
END_FUNCTION
調(diào)用塊(Calling Block)
下例顯示更多函數(shù)值的使用的可選擇的形式:
FUNCTION_BLOCK CALL
VAR
LENGTH : REAL ;
CHECKSUM : REAL ;
RADIUS : REAL;
Y : REAL;
END_VAR
BEGIN
. . .
// 在賦值語句中調(diào)用:
LENGTH := DISTANCE (X1:=3, Y1:=2, X2:=8.9, Y2:= 7.4, Q2:=CHECKSUM) ;
// 在算術(shù)或邏輯表達(dá)式中調(diào)用,如:
Y := RADIUS + DISTANCE (X1:=-3, Y1:=2, X2:=8.9, Y2:=7.4, Q2:=Checksum)
// 用來為進(jìn)一步的被調(diào)用的塊提供參數(shù)
FB32.DB32 (DIST:= DISTANCE (X1:=-3, Y1:=2, X2:=8.9, Y2:=7.4), Q2:=Checksum)
. . .
END_FUNCTION_BLOCK
審核編輯 :李倩
-
參數(shù)
+關(guān)注
關(guān)注
11文章
1865瀏覽量
32847 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4367瀏覽量
64105
原文標(biāo)題:函數(shù)的參數(shù)
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
ARM基礎(chǔ)下:函數(shù)參數(shù)類型知識(shí)
怎么將函數(shù)參數(shù)傳遞給內(nèi)聯(lián)ASM
es6語法中函數(shù)參數(shù)
通訊組件的函數(shù)和參數(shù)有哪些?它是怎么使用的?
匯編的子程序函數(shù)參數(shù)和返回值怎么判斷?
指針作為函數(shù)參數(shù)
利用函數(shù)參數(shù)和返回值提高嵌入式軟件質(zhì)量

VB SendMessage 函數(shù)參數(shù)
函數(shù)參數(shù)傳遞的原理

單片機(jī)的本質(zhì)函數(shù)參數(shù)傳遞詳細(xì)資料說明

C語言函數(shù)參數(shù)關(guān)于傳值和傳指針有什么區(qū)別?
如何使用gobpf和uprobe來為Go程序構(gòu)建函數(shù)參數(shù)跟蹤程序

評(píng)論