簡介
接口中包含有塊所用局部變量和局部常量的聲明。這些變量可分為以下兩組:
在程序中調用時構成塊接口的塊參數。
用于存儲中間結果的局部數據。
變量聲明可用于定義程序中塊的調用接口,以及塊中需使用的變量/常量名稱和數據類型。
函數塊接口中還定義了分配給函數塊的背景結構。
塊參數
下表列出了塊參數的類型:
類型 | 區域 | 功能 | 可用于 |
---|---|---|---|
輸入參數 | Input | 其值由塊讀取的參數。 | 函數、函數塊和某些類型的組織塊 |
輸出參數 | Output | 其值由塊寫入的參數。 | 函數和函數塊 |
輸入/輸出參數 | InOut | 調用時由塊讀取其值,執行后又由塊寫入其值的參數。 | 函數和函數塊 |
返回值 | 返回 | 返回到調用塊的值。 | 功能 |
根據打開塊的類型不同,可能顯示其它的區域。
局部數據
下表列出了局部數據的類型:
類型 | 區域 | 功能 | 可用于 |
---|---|---|---|
臨時局部數據 | Temp | 用于存儲臨時中間結果的變量。只保留一個周期的臨時局部數據。如果使用臨時局部數據,則必須確保在要讀取這些值的周期內寫入這些值。否則,這些值將為隨機數。 |
函數、函數塊和組織塊 注: 臨時局部數據不顯示在背景數據塊中。 |
靜態局部數據 | Static | 用于在背景數據塊中存儲靜態中間結果的變量。靜態數據會一直保留到被覆蓋,這可能在幾個周期之后。在此代碼塊中作為多重實例調用的塊名稱,也將存儲在靜態局部數據中。 | 函數塊 |
常量 | 常量 | 在塊中使用且帶有聲明符號名的常量。 |
函數、函數塊和組織塊 注: 局部常量不顯示在背景數據塊中。 |
塊接口中的有效數據類型
S7-1200 中塊接口的有效數據類型
下表列出了接口各區域可分配的參數數據類型。
區域 |
標準 數據類型 |
ARRAY STRUCT STRING / WSTRING DT |
ARRAY [*] | VOID | VARIANT |
---|---|---|---|---|---|
組織塊 | |||||
Temp | √ | √ | - | - | √ |
常量 | √ | √ (1) (2) | - | - | - |
函數塊 | |||||
Input | √ | √ | - | - | √ |
Output | √ | √ | - | - | - |
InOut | √ | √ (1) | √ (4) | - | √ |
Static | √ | √ | - | - | - |
Temp | √ | √ | - | - | √ |
常量 | √ | √ (1) (2) | - | - | - |
函數 | |||||
Input | √ | √ (1) | √ (4) | - | √ |
Output | √ | √ (1) | √ (4) | - | √ |
InOut | √ | √ (1) | √ (4) | - | √ |
Temp | √ | √ | - | - | √ |
返回 | √ | √ (3) | - | √ | - |
常量 | √ | √ (1) (2) | - | - | - |
(1) 不能在這些區域中聲明 STRING 和 WSTRING 的長度。STRING 標準長度通常為 254;WSTRING 標準長度為 16832。不允許聲明 MyString[3] 格式。在這些區域中,僅允許在具有優化訪問權的塊中聲明 WSTRING。 (2) 不允許使用數據類型為 ARRAY 或 STRUCT 的常量。 (3) WSTRING 數據類型的函數值不得超過 1022 個字符。 (4) 固件版本 V4.2 及更高版本中,ARRAY[*] 可用于具有優化訪問的塊中。 |
S7-1500 中塊接口的有效數據類型
下表列出了接口各區域可分配的參數數據類型。
區域 |
標準 數據類型 |
ARRAY STRUCT STRING / WSTRING DT |
ARRAY[*] | 參數類型 | VOID | DB_ANY | POINTER | ANY | VARIANT | REF_TO |
---|---|---|---|---|---|---|---|---|---|---|
組織塊 | ||||||||||
Temp | √ | √ | - | - (4) | - | √ | - | √ (3) | √ | √ |
常量 | √ | √ (1) (5) | - | - | - | - | - | - | - | - |
函數塊 | ||||||||||
Input | √ | √ | - | √ | - | √ | √ | √ | √ | - |
Output | √ | √ | - | - | - | √ | - | - | - | - |
InOut | √ | √ (1) | √(7)(8) | - (4) | - | √ | √ | √ | √ | - |
Static | √ | √ | - | - | - | √ | - | - | - | - |
Temp | √ | √ | - | - (4) | - | √ | - | √ (3) | √ | √ |
常量 | √ | √ (1)(5) | - | - | - | - | - | - | - | - |
函數 | ||||||||||
Input | √ | √ (1) | √ (7) | √ | - | √ | √ | √ | √ | √ |
Output | √ | √ (1) | √ (7) | - | - | √ | √ | √ | √ | √ |
InOut | √ | √ (1) | √ (7) | - (4) | - | √ | √ | √ | √ | - |
Temp | √ | √ | - | - (4) | - | √ | - | √ (3) | √ | √ |
返回 | √ | √ (6) | - | - | √ | √ | √ | √(2) | - | √ |
常量 | √ | √ (1) (5) | - | - | - | - | - | - | - | - |
(1) 不能在這些區域中聲明 STRING 和 WSTRING 的長度。STRING 標準長度通常為 254;WSTRING 標準長度為 16832。不允許聲明 MyString[3] 格式。在這些區域中,僅允許在具有優化訪問權的塊中聲明 WSTRING。 (2) 在 SCL 中,ANY 不允許作為函數值。 (3) ANY 只能用于“Temp”區域中的標準訪問塊。 (4) “INSTANCE”參數類型是“TEMP”和“InOut”區域中唯一允許出現的例外。 (5) 不允許使用數據類型為 ARRAY 或 STRUCT 的常量。 (6) WSTRING 數據類型的函數值不得超過 1022 個字符。 (7) 固件版本 V2.0 及更高版本中,ARRAY[*] 可用于具有優化訪問的塊中。 (8) 僅當未設置屬性“在 IDB 中設置”(Set in IDB) 時,ARRAY[*] 才可用。 |
塊接口的布局
塊接口的布局
下圖顯示了塊接口的結構。具體的列數和區域取決于塊類型。
各列的含義
下表列出了各列的含義。可根據需要顯示或隱藏各列。顯示的列數取決于 CPU 系列和打開對象的類型。
列 | 說明 |
---|---|
單擊該符號,可將元素拖放到程序中作為操作數。 | |
名稱 | 元素的名稱。 |
數據類型 | 元素的數據類型。 |
偏移 |
塊中變量的相對地址。僅標準訪問的塊中,才顯示該列。 注: SIMATIC 系統庫中的許多指令都具有“優化塊訪問”屬性,因此不占用任何固定存儲器地址。即使將這些指令用作標準訪問塊中的多重實例,這些指令也不顯示偏移量。 |
默認值 |
代碼塊接口中可預分配給特定變量的值,或局部常量的值。 對于變量,可選擇是否指定默認值。如果未指定任何值,則使用指定數據類型的預定義值。例如,BOOL 類型的預定義值為“false”。 在相應的背景數據塊中,將變量的默認值應用為初始值。在背景數據塊中,可使用實例特定的起始值對這些值進行替換。 而在塊接口中常量通常為聲明的默認值。這些常量不顯示在背景數據塊中,也無法在此指定實例特定的值。 |
保持性 |
將變量標記為具有保持性。 即使在關斷電源后,保持性變量的值也將保留不變。 該列僅在具有優化訪問特性的函數塊接口中顯示。 |
在 HMI 工程組態中可見 | 指示 HMI 選擇列表中是否默認顯示變量。 |
從 HMI/OPC UA 可訪問 | 指示在運行過程中,HMI/OPC UA 是否可訪問該變量。 |
從 HMI/OPC UA 可寫 | 指示在運行過程中,是否可從 HMI/OPC UA 寫入變量。 |
設定值 |
將變量標記為設定值。設定值是指調試過程中可能需要微調的值。 該列僅適用于函數塊的接口中。 |
監控 | 指示是否已為該變量的過程診斷創建有監視。 |
注釋 | 說明元素的注釋信息。 |
-
接口
+關注
關注
33文章
8615瀏覽量
151311 -
函數
+關注
關注
3文章
4333瀏覽量
62705 -
數據類型
+關注
關注
0文章
236瀏覽量
13630 -
Inout
+關注
關注
0文章
4瀏覽量
6192 -
S7-1500
+關注
關注
3文章
300瀏覽量
6434
原文標題:博途:塊接口概述
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論