功能塊(FB)的結(jié)構(gòu)
Structure of a Function Block (FB)
定義(Definition)
功能塊是邏輯塊,包含程序部分,并且有一個(gè)內(nèi)存區(qū)域援引派給它。無論何時(shí)FB被調(diào)用,必須給它指定一個(gè)實(shí)例數(shù)據(jù)塊。當(dāng)定義FB的聲明部分時(shí),就說明了實(shí)例數(shù)據(jù)塊的結(jié)構(gòu)。
FB標(biāo)識(shí)符(FB Identifier)
在關(guān)鍵字FUNCTION_BLOCK或PROGRAM之后,鍵入關(guān)鍵字FB,跟上一個(gè)塊號(hào)或FB的符號(hào)名。塊號(hào)是0到65533之間的一個(gè)數(shù)值。
例子(Examples):
FUNCTION_BLOCK FB10
FUNCTION_BLOCK MOTOR1
FB聲明部分(FB Declaration Section)
FB的聲明部分用來定義塊專有數(shù)據(jù)。聲明部分應(yīng)詳細(xì)描述,記住聲明部分也決定指派的實(shí)例數(shù)據(jù)塊的結(jié)構(gòu)。
例子(Example)
下例顯示了一個(gè)功能塊的源代碼。例中輸入和輸出參數(shù)(本案中為V1和V2)賦予了初始值。
FUNCTION_BLOCK FB11
VAR_INPUT
V1 : INT := 7 ;
END_VAR
VAR_OUTPUT
V2 : REAL ;
END_VAR
VAR
FX1, FX2, FY1, FY2 : REAL ;
END_VAR
BEGIN
IF V1 = 7 THEN
FX1 := 1.5 ;
FX2 := 2.3 ;
FY1 := 3.1 ;
FY2 := 5.4 ;
//調(diào)用函數(shù)FC11并用靜態(tài)變量提供參數(shù)
V2 := FC11 (X1:= FX1, X2 := FX2, Y1 := FY1, Y2 := FY2) ;
END_IF ;
END_FUNCTION_BLOCK
---作為本地實(shí)例調(diào)用的舉例---
Example of a Call as a Local Instance
帶一個(gè)簡(jiǎn)單FOR循環(huán)的功能塊作為“作為共享實(shí)例”的例子編程,假設(shè)符號(hào)TEST在符號(hào)表中為FB17已經(jīng)聲明。
功能塊能如下調(diào)用,假設(shè)VARIABLE1在調(diào)用塊作為一個(gè)實(shí)數(shù)變量已經(jīng)聲明。
調(diào)用(Call)
FUNCTION_BLOCK CALL
VAR
// 本地實(shí)例聲明
TEST_L : TEST ;
VARIABLE1 : REAL ;
RESULT : BOOL ;
END_VAR
BEGIN
. . .
// 調(diào)用本地實(shí)例:
TEST_L (FINALVAL:= 10, IQ1:= VARIABLE1) ;
讀取輸出值(Reading an Output Value)
輸出參數(shù)CONTROL能夠如下讀取:
// 輸出參數(shù)被存取
// 通過:
RESULT := TEST_L.CONTROL ;
END_FUNCTION_BLOCK
審核編輯:劉清
-
Motor
+關(guān)注
關(guān)注
0文章
28瀏覽量
15246 -
Block
+關(guān)注
關(guān)注
0文章
26瀏覽量
14695 -
VaR
+關(guān)注
關(guān)注
0文章
39瀏覽量
11336
原文標(biāo)題:Example of a Call as a Local Instance
文章出處:【微信號(hào):gh_a8b121171b08,微信公眾號(hào):機(jī)器人及PLC自動(dòng)化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論