每類本地變量或參數(shù),都有用各自關(guān)鍵字對(duì)標(biāo)識(shí)的自己的聲明子域。每個(gè)子域包含允許的詳細(xì)的聲明子域,子域可按任何順序定位。
下表顯示能夠在各種邏輯塊中聲明的變量或參數(shù)類型。
變量作為: 靜態(tài)變量 |
VAR . . . END_VAR |
臨時(shí)變量 |
VAR_TEMP . . . END_VAR |
塊參數(shù)作為: 輸入?yún)?shù) |
VAR_INPUT . . . END_VAR |
輸出參數(shù) |
VAR_OUTPUT . . . END_VAR |
輸入/輸出參數(shù) |
VAR_IN_OUT . . . END_VAR |
靜態(tài)變量
靜態(tài)變量是本地變量,塊運(yùn)行時(shí)其值被保留。用來(lái)保存功能塊的值,并包含在相應(yīng)實(shí)例數(shù)據(jù)塊中。
句法(Syntax)
靜態(tài)變量在VAR / END_VAR聲明區(qū)內(nèi)聲明。該聲明子域是FB聲明部分的一部分。編譯之后,該子域和塊參數(shù)子域決定了指定的實(shí)例數(shù)據(jù)塊的結(jié)構(gòu)。
在該子域能夠:
建立變量,指定變量的數(shù)據(jù)類型和初始化變量。
如果要在當(dāng)前FB中作為本地實(shí)例調(diào)(其他的)FB,則將一個(gè)被調(diào)用的FB聲明為靜態(tài)變量。
例子(Example)
VAR
RUN :INT;
MEASARR :ARRAY [1..10] OF REAL;
SWITCH :BOOL;
MOTOR_1,MOTOR_2:FB100;// 實(shí)例聲明
END_VAR
存取(Access)
從如下代碼部分存取變量:
塊內(nèi)存取(Access within the block):在功能塊的代碼部分能夠存取在聲明部分聲明的變量。詳細(xì)的解釋在標(biāo)題為"賦值語(yǔ)句(Value Assignment)"節(jié)。
用實(shí)例DB進(jìn)行外部存取(External access using the instance DB): 用索引存取能夠從其他塊存取變量,如DBx.變量。
臨時(shí)變量
Temporary Variables
臨時(shí)變量在本地屬于邏輯塊,不產(chǎn)生靜態(tài)內(nèi)存區(qū)域,他們位于CPU的堆棧里。本塊正在運(yùn)行時(shí),其值才被保留。臨時(shí)變量不能從聲明它的塊外存取。一個(gè)OB、FB或FC首次執(zhí)行前,臨時(shí)變量的值是不確定的。也不能被初始化。
如果只要求在OB、FB或者FC執(zhí)行時(shí)記錄中間結(jié)果,可以聲明臨時(shí)數(shù)據(jù)。
句法(Syntax)
臨時(shí)變量在VAR_TEMP / END_VAR聲明部分里聲明。該聲明部分是FB、FC或OB的一部分。通過(guò)變量聲明以聲明變量名和數(shù)據(jù)類型。
例子(Example)
VAR_TEMP
BUFFER 1: ARRAY [1..10] OF INT ;
AUX1, AUX2: REAL ;
END_VAR
存取(Access)
變量總是從邏輯塊的代碼部分存取,變量是在聲明部分聲明的(內(nèi)部存取)。參見(jiàn)題為“賦值語(yǔ)句(Value Assignment)”節(jié)。
塊參數(shù)
參數(shù)是占位符,塊被實(shí)際地調(diào)用時(shí)才指定一個(gè)值。在塊里聲明的占位符認(rèn)為是指派了作為實(shí)際參數(shù)的值的形式變量。且參數(shù)提供了一個(gè)塊間交換信息的機(jī)制。
塊參數(shù)的類型(Types of Block Parameters)
被實(shí)際參數(shù)指定的形式輸入?yún)?shù)(數(shù)據(jù)流入塊)。
形式輸出參數(shù)用來(lái)傳遞輸出參數(shù)(數(shù)據(jù) 從塊流出)。
有輸入和輸出參數(shù)功能的形式輸入/輸出參數(shù)。
句法(Syntax)
在功能塊或函數(shù)的聲明部分制作形式參數(shù)的聲明,根據(jù)在三種聲明子域內(nèi)的參數(shù)類型組合參數(shù)。在變量聲明中,指定參數(shù)名和數(shù)據(jù)類型。初始化只可能對(duì)一個(gè)FB的輸入和輸出參數(shù)。
聲明形式參數(shù)時(shí),不僅只能用基本的、復(fù)雜的和用戶定義數(shù)據(jù)類型,也可用參數(shù)數(shù)據(jù)類型。
例子(Example)
VAR_INPUT// 輸入?yún)?shù)
MY_DB: BLOCK_DB ;
CONTROLLER: DWORD ;
TIMEOFDAY: TIME_OF_DAY ;
END_VAR
VAR_OUTPUT// 輸出參數(shù)
SETPOINTS: ARRAY [1..10] of INT ;
END_VAR
VAR_IN_OUT// 輸入/輸出參數(shù)
SETTING : INT ;
END_VAR
存取(Access)
塊參數(shù)可從邏輯塊的代碼部分進(jìn)行存取如下:
內(nèi)部存取: 從在其聲明部分已經(jīng)聲明該參數(shù)的邏輯塊的代碼部分存取。在題為"賦值語(yǔ)句(Value Assignment)"和"表達(dá)式、操作和地址(Expressions, Operations and Addresses)"節(jié)有解釋。
用實(shí)例數(shù)據(jù)塊外部存取: 用特定的DB能夠存取功能塊的塊參數(shù)。
-
參數(shù)
+關(guān)注
關(guān)注
11文章
1860瀏覽量
32449 -
代碼
+關(guān)注
關(guān)注
30文章
4837瀏覽量
69123 -
變量
+關(guān)注
關(guān)注
0文章
613瀏覽量
28477
原文標(biāo)題:Block Parameters
文章出處:【微信號(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)推薦
變量的聲明和定義有什么區(qū)別和聯(lián)系
變量聲明最佳實(shí)踐?
Verilog 變量聲明與數(shù)據(jù)類型二
Verilog 變量聲明與數(shù)據(jù)類型一
Python的變量類型詳細(xì)資料說(shuō)明
![Python的<b class='flag-5'>變量</b><b class='flag-5'>類型</b>詳細(xì)資料說(shuō)明](https://file.elecfans.com/web1/M00/C4/C3/o4YBAF9DfhGAT8twAAUam59hEqs941.png)
編程語(yǔ)言SCL中ANY數(shù)據(jù)類型
![編程語(yǔ)言SCL<b class='flag-5'>中</b>ANY數(shù)據(jù)<b class='flag-5'>類型</b>](https://file.elecfans.com/web1/M00/F1/0B/pIYBAGCsafyAR7QkAAAkf7jPILk461.png)
評(píng)論