應用領域 | 環保,能源,建材/家具,電子/電池,道路/軌道/船舶 |
---|
6ES7214-1AF40-0XB0
SIMATIC S7-1200,CPU 1214 FC, 緊湊型 CPU,DC/DC/DC, 機載 I/O: 14 個 24V DC 數字輸入;10 個 24V DC 數字輸出; 2 AI 0-10V DC, 電源:直流 20.4-28.8V DC, 程序存儲器/數據存儲器 125 KB
![]() |
參考價 | 面議 |
更新時間:2023-07-18 10:21:57瀏覽次數:793
聯系我們時請說明是化工儀器網上看到的信息,謝謝!
西門子S7-1200,CPU 1214 FC, 緊湊型 CPU
![]() | 6ES7214-1AF40-0XB0 SIMATIC S7-1200,CPU 1214 FC, 緊湊型 CPU,DC/DC/DC, 機載 I/O: 14 個 24V DC 數字輸入;10 個 24V DC 數字輸出; 2 AI 0-10V DC, 電源:直流 20.4-28.8V DC, 程序存儲器/數據存儲器 125 KB |
向塊傳遞參數
函數塊 (FB) 和函數 (FC) 有三種不同接口類型:
函數塊和函數通過 IN 和 IN/OUT 接口類型接收參數。 塊對這些數據進行處理,此后,通過 IN/OUT 和 OUT 接口類型將返回值傳回調用者。
用戶程序采用以下兩種方法中的某一種傳遞參數。
傳值
用戶程序以“傳值”(call-by-value) 方式將參數傳遞給某個函數時,用戶程序會將實際參數值復制給塊的 IN 接口類型的輸入參數。 該操作期間,被復制值要求使用額外存儲空間。
當用戶程序調用該塊時,會復制這些值。
傳引用
用戶程序以“傳引用”(call-by-reference) 方式向某個函數傳遞參數時,用戶程序將引用 IN/OUT 接口類型的實參地址,不進行值復制操作。 該操作過程不需要額外的存儲空間。
當用戶程序調用該塊時,會引用實際參數的地址。
提示 通常情況下,針對結構變量使用 IN/OUT 接口類型(例如,ARRAY、STRUCT 和 STRING),避免不必要地增大所需的數據存儲器。 |
塊優化和參數傳遞
對于簡單數據類型(例如,INT、DINT 和 REAL 型),用戶程序可以以“傳值”方式傳遞函數塊的參數。 傳遞復雜數據類型(例如,STRUCT、ARRAY 和 STRING)時,可以采用“傳引用”方式。
用戶程序傳遞的函數塊參數通常在和該函數塊相關的背景數據塊 (DB) 中:
數據塊可以創建成“優化的”或“標準的”(未優化)數據塊。 優化型數據塊的體積小于非優化型數據塊。 優化型數據塊和非優化型數據塊中的數據元素順序不一樣。 關于優化型數據塊的更多說明,請參閱 S7?1200/1500、STEP 7 (TIA Portal) S7 編程指南(出版日期:2014 年 3 月)中的章節“優化塊”。
可以創建用來處理優化或非優化數據的函數塊和函數。 可以選擇復選框“優化塊訪問” (Optimized block access),將其作為塊的屬性。 默認情況下,用戶程序會優化程序塊;程序塊期望傳遞給該塊的數據采用優化格式。
用戶向某個函數傳遞復雜參數(例如,STRUCT 結構的參數)時,系統會檢查包含該結構的數據塊的優化設置和程序塊的優化設置。 如果你同時優化該數據塊和該函數,用戶程序將以“傳引用”方式傳遞該結構 (STRUCT)。 如果選擇了不優化該數據塊和該函數,也采用“傳引用”方式傳遞該結構。
但是,如果函數和數據塊采用不同優化設置(即,優化了一個塊且沒有優化另一個塊),則必須將 STRUCT 轉換成函數所期望的格式。 例如,如果選擇了不優化該數據塊但優化該函數,則數據塊中的 STRUCT 須轉換成優化格式后才能被該函數進行處理。 該轉換過程由系統完成,其方法是:先制作該 STRUCT 的一個“副本”,接著,將它轉換成該函數所期望的優化格式。
總而言之,當用戶程序將某個復雜數據類型(例如,STRUCT)作為 IN/OUT 參數傳遞給某個函數時,該函數希望用戶程序以“傳引用”方式傳遞 STRUCT。
優化設置對用戶程序的影響作用
如果 HMI 或中斷組織塊更改了結構中的元素,參數復制將可能導致用戶程序出現問題。 例如,某個函數有一個 IN/OUT 參數(正常情況下以“傳引用”方式傳遞),但是,數據塊和該函數采用了不同的設置,則:
采用制作結構副本的方式進行格式轉換的后果:該中斷組織塊改寫過的數據將被丟失。 對于采用 HMI 寫入的值,情況也同樣如此。 HMI 也可能中斷用戶程序的執行,并以和中斷組織塊相同的方式寫入某個值。
解決該問題的方法有很多種:
西門子S7-1200,CPU 1214 FC, 緊湊型 CPU