0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

各種邏輯塊中聲明的變量或參數(shù)類型

機(jī)器人及PLC自動化應(yīng)用 ? 來源:機(jī)器人及PLC自動化應(yīng)用 ? 2023-03-08 11:14 ? 次閱讀

每類本地變量或參數(shù),都有用各自關(guān)鍵字對標(biāo)識的自己的聲明子域。每個子域包含允許的詳細(xì)的聲明子域,子域可按任何順序定位。

下表顯示能夠在各種邏輯塊中聲明的變量或參數(shù)類型。

變量作為:
靜態(tài)變量

VAR
. . .
END_VAR


臨時變量

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)行時其值被保留。用來保存功能塊的值,并包含在相應(yīng)實例數(shù)據(jù)塊中。

句法(Syntax)

靜態(tài)變量在VAR / END_VAR聲明區(qū)內(nèi)聲明。該聲明子域是FB聲明部分的一部分。編譯之后,該子域和塊參數(shù)子域決定了指定的實例數(shù)據(jù)塊的結(jié)構(gòu)。

在該子域能夠:

  • 建立變量,指定變量的數(shù)據(jù)類型和初始化變量。

  • 如果要在當(dāng)前FB中作為本地實例調(diào)(其他的)FB,則將一個被調(diào)用的FB聲明為靜態(tài)變量。

例子(Example)


VAR
RUN :INT;
MEASARR :ARRAY [1..10] OF REAL;
SWITCH :BOOL;
MOTOR_1,MOTOR_2:FB100;// 實例聲明

END_VAR

存取(Access)

從如下代碼部分存取變量:

  • 塊內(nèi)存取(Access within the block):在功能塊的代碼部分能夠存取在聲明部分聲明的變量。詳細(xì)的解釋在標(biāo)題為"賦值語句(Value Assignment)"節(jié)。

  • 用實例DB進(jìn)行外部存取(External access using the instance DB):索引存取能夠從其他塊存取變量,如DBx.變量。

臨時變量

Temporary Variables

臨時變量在本地屬于邏輯塊,不產(chǎn)生靜態(tài)內(nèi)存區(qū)域,他們位于CPU的堆棧里。本塊正在運(yùn)行時,其值才被保留。臨時變量不能從聲明它的塊外存取。一個OB、FB或FC首次執(zhí)行前,臨時變量的值是不確定的。也不能被初始化。

如果只要求在OB、FB或者FC執(zhí)行時記錄中間結(jié)果,可以聲明臨時數(shù)據(jù)。

句法(Syntax)

臨時變量在VAR_TEMP / END_VAR聲明部分里聲明。該聲明部分是FB、FC或OB的一部分。通過變量聲明以聲明變量名和數(shù)據(jù)類型。

例子(Example)

VAR_TEMP
BUFFER 1: ARRAY [1..10] OF INT ;
AUX1, AUX2: REAL ;
END_VAR

存取(Access)

變量總是從邏輯塊的代碼部分存取,變量是在聲明部分聲明的(內(nèi)部存取)。參見題為“賦值語句(Value Assignment)”節(jié)。

塊參數(shù)

Block Parameters

參數(shù)是占位符,塊被實際地調(diào)用時才指定一個值。在塊里聲明的占位符認(rèn)為是指派了作為實際參數(shù)的值的形式變量。且參數(shù)提供了一個塊間交換信息的機(jī)制。

塊參數(shù)的類型(Types of Block Parameters)

  • 被實際參數(shù)指定的形式輸入?yún)?shù)(數(shù)據(jù)流入塊)。

  • 形式輸出參數(shù)用來傳遞輸出參數(shù)(數(shù)據(jù) 從塊流出)。

  • 有輸入和輸出參數(shù)功能的形式輸入/輸出參數(shù)。

句法(Syntax)

在功能塊或函數(shù)的聲明部分制作形式參數(shù)的聲明,根據(jù)在三種聲明子域內(nèi)的參數(shù)類型組合參數(shù)。在變量聲明中,指定參數(shù)名和數(shù)據(jù)類型。初始化只可能對一個FB的輸入和輸出參數(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)部存?。?/span> 從在其聲明部分已經(jīng)聲明該參數(shù)的邏輯塊的代碼部分存取。在題為"賦值語句(Value Assignment)"和"表達(dá)式、操作和地址(Expressions, Operations and Addresses)"節(jié)有解釋。

  • 用實例數(shù)據(jù)塊外部存取: 用特定的DB能夠存取功能塊的塊參數(shù)。


審核編輯 :李倩


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4333

    瀏覽量

    62699
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4791

    瀏覽量

    68694
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28396

原文標(biāo)題:Block Parameters

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機(jī)器人及PLC自動化應(yīng)用】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    變量聲明和定義有什么區(qū)別和聯(lián)系

    變量聲明和定義是編程的兩個重要概念,它們在語法和語義上有一些區(qū)別和聯(lián)系。在本文中,我將詳細(xì)介紹變量聲明和定義之間的區(qū)別和聯(lián)系。 首先,
    的頭像 發(fā)表于 12-07 16:14 ?1152次閱讀

    變量聲明最佳實踐?

    所以我們開始編寫32位和16位代碼,并過渡到MPLAB X和XC編譯器。我想到的一個主題是聲明變量的最佳實踐。常規(guī)IpType。h類型。h pr STDIN。
    發(fā)表于 09-30 12:01

    Verilog 變量聲明與數(shù)據(jù)類型

    Verilog 變量聲明與數(shù)據(jù)類型二上節(jié)介紹了wire,reg數(shù)據(jù)類型及其用法,并對變量定義
    發(fā)表于 08-06 09:21

    Verilog 變量聲明與數(shù)據(jù)類型

    必須先聲明后使用,聲明變量的數(shù)據(jù)類型也就確定了。變量聲明是模塊(module)內(nèi)惟一的,不能在
    發(fā)表于 08-10 14:01

    Python的變量類型詳細(xì)資料說明

    Python 變量賦值不需要類型聲明。每個變量在內(nèi)存創(chuàng)建,都包括
    發(fā)表于 08-24 16:47 ?3次下載
    Python的<b class='flag-5'>變量</b><b class='flag-5'>類型</b>詳細(xì)資料說明

    Python的變量類型詳細(xì)說明

    變量賦值Python 變量賦值不需要類型聲明。 每個變量在內(nèi)存
    發(fā)表于 01-15 16:29 ?1次下載
    Python的<b class='flag-5'>變量</b><b class='flag-5'>類型</b>詳細(xì)說明

    編程語言SCLANY數(shù)據(jù)類型

    了 ANY 指針的結(jié)構(gòu): 在SCL,能夠聲明ANY數(shù)據(jù)類型變量如下: 作為的形式參數(shù);當(dāng)
    的頭像 發(fā)表于 05-25 11:02 ?5195次閱讀
    編程語言SCL<b class='flag-5'>中</b>ANY數(shù)據(jù)<b class='flag-5'>類型</b>

    西門子SCL邏輯聲明變量參數(shù)類型

    每類本地變量參數(shù),都有用各自關(guān)鍵字對標(biāo)識的自己的聲明子域。每個子域包含允許的詳細(xì)的聲明子域,子域可按任何順序定位。 下表顯示能夠在
    的頭像 發(fā)表于 08-25 18:07 ?9830次閱讀

    關(guān)于S7-1500訪問聲明變量內(nèi)的數(shù)據(jù)區(qū)域

    S7-1500 要訪問聲明變量內(nèi)的數(shù)據(jù)區(qū)域,可以通過附加聲明來覆蓋所聲明變量。其優(yōu)勢在于無需指令即可根據(jù)需要實現(xiàn)
    的頭像 發(fā)表于 10-08 11:26 ?1741次閱讀

    淺析python的變量類型

    python不需要事先聲明變量。 python的變量類型是在運(yùn)行過程自動決定的,不需要代碼聲明
    的頭像 發(fā)表于 03-10 10:11 ?817次閱讀
    淺析python的<b class='flag-5'>變量</b><b class='flag-5'>類型</b>

    C語言如何定義結(jié)構(gòu)體類型變量

    在定義了結(jié)構(gòu)體變量后,系統(tǒng)會為之分配內(nèi)存單元。根據(jù)結(jié)構(gòu)體類型包含的成員情況,在Visual C++占63個字節(jié)。 * 這種聲明方式是
    的頭像 發(fā)表于 03-10 15:35 ?1375次閱讀

    西門子博途中聲明STRUCT數(shù)據(jù)類型變量

    聲明 STRUCT 數(shù)據(jù)類型變量,請按以下步驟操作。
    的頭像 發(fā)表于 06-21 09:32 ?4191次閱讀

    ARRAY 數(shù)據(jù)類型變量

    要求 全局?jǐn)?shù)據(jù)已打開。 操作步驟 要聲明一個 ARRAY 數(shù)據(jù)類型變量,請按以下步驟操作: 在“名稱”(Name) 列,輸入
    的頭像 發(fā)表于 07-06 11:08 ?1124次閱讀

    各種邏輯聲明變量參數(shù)類型

    每類本地變量參數(shù),都有用各自關(guān)鍵字對標(biāo)識的自己的聲明子域。每個子域包含允許的詳細(xì)的聲明子域,子域可按任何順序定位。
    的頭像 發(fā)表于 08-17 11:00 ?508次閱讀

    C語言編程時,各種類型變量該如何初始化?

    不同的方式。 1. 聲明和賦值分開初始化: 這種方式將變量聲明與賦值分開,在聲明時分配內(nèi)存空間,再在后續(xù)代碼中進(jìn)行賦值。 ```c int number; //
    的頭像 發(fā)表于 12-07 13:53 ?1248次閱讀