西門子PCU20無顯示數(shù)碼管不亮維修

參數(shù)數(shù)據(jù)類型為ANY的塊參數(shù)可以使用各種數(shù)據(jù)類型的變量。在被調用塊中的編程可以決定哪些變量(地址或數(shù)據(jù)類型)可以用于塊參數(shù),哪些變量是可行的。也可以以ANY指針“P#[data_block.]Address Data_type Number”的形式常量.并定義一個地址域。
對于數(shù)據(jù)類型為ANY的暫態(tài)局部數(shù)據(jù)項,ANY參數(shù)的初始化是個例外。這種情況下,不是給變量產生指針,而是在暫態(tài)局部數(shù)據(jù)中,編輯器假定數(shù)據(jù)類型為ANY的指針已經(jīng)存在。這使得用戶有了一種能力,在運行時可修改ANY指針,可以應用ANY參數(shù)。在與系統(tǒng)功能SFC 20 BLKMOV的連接中,“ANY指針變量”特別有用。
功能塊不能使用ANY類型的輸出參數(shù)。
可以用定時器功能初始化TIMER類型的塊參數(shù),用計數(shù)器功能初始化COUNTER類型的塊參數(shù),可以用本身不帶參數(shù)的塊初始化參數(shù)類型為BLOCK_FC、BLOCK_FB的塊參數(shù)。用UC訪問時,調用這些塊(在功能塊情況下也可以用CC)。通過DB寄存器,可以用在調用塊中打開的數(shù)據(jù)塊初始化BLOCK_DB。
數(shù)據(jù)類型為TIMER. COUNTER. BLOCK_xx的塊參數(shù)只能作為輸入?yún)?shù)。
對于復雜或擴展的數(shù)據(jù)結構,*使用用戶自定義(UDT)數(shù)據(jù)類型。在使用前,首先定義UDT,例如在數(shù)據(jù)塊中要生成變量或聲明塊參數(shù)時必須定義UDT。然后,在初始化塊參數(shù)時可以使用變量。應注意的是,實參(變量)必須和塊參數(shù)的數(shù)據(jù)類型(相同的UDT)*。
作為塊參數(shù),相同UDT數(shù)據(jù)類型的完整數(shù)據(jù)塊不允許作為實參。
用戶自定義數(shù)據(jù)類型的參數(shù)的描述將在后續(xù)文章中進行詳解。
每個塊參數(shù)都可以是復雜數(shù)據(jù)類型或用戶自定義數(shù)據(jù)類型。同種數(shù)據(jù)類型的變量也可以用作實際地址。

對于塊參數(shù)為日歷數(shù)據(jù)類型或字符串數(shù)據(jù)類型的初始化,可以使用單獨的變量,或具有相同數(shù)據(jù)類型的字段或結構元素。在STL中禁止用常量初始化。
如果對具有STRING變量的功能塊進行初始化,則此變量必須與STRING塊參數(shù)有相同的大長度。
在暫態(tài)局部數(shù)據(jù)中創(chuàng)建STRING變量時,禁止預賦值,STRING變量就含有所謂的“任意”值。如果想使用這樣的一個變量作為IEC功能的實參,就必須通過程序為這個變量預先“有效的”值(在對STRING變量進行寫操作前,IEC功能將檢測即將被寫入的值以適應這個變量)。
對于數(shù)據(jù)類型為數(shù)組(ARRAY)或結構(STRUCT)的塊參數(shù)的初始化,只要是結構*相同的變量,都可以作為塊參數(shù)。
對復雜數(shù)據(jù)類型的參數(shù)賦值的描述艾特貿易網(wǎng)小編將在后續(xù)文章中進行詳細的講述。
可以把地址或符號地址賦給輸入、輸出和位存儲地址。輸入地址只用于輸入?yún)?shù),輸出地址只用于輸出參數(shù)(這不是強制性的)。位存儲地址適用于所有的聲明類型。但只能把外圍輸入用于輸入?yún)?shù),把外圍輸出用于輸出參數(shù)。
在使用局部尋址的數(shù)據(jù)地址的時候,必須確保當訪問塊參數(shù)(在被調用塊中)時,當前打開的數(shù)據(jù)塊也是“校正”的數(shù)據(jù)塊。因為在某些情況下,當塊被調用時,編輯器改變數(shù)據(jù)塊,不適合使用局部尋址的數(shù)據(jù)地址訪問。因此建議只能使用全局尋址的數(shù)據(jù)地址訪問。
暫態(tài)局部數(shù)據(jù)常常是符號尋址的,這些數(shù)據(jù)位于調用塊的局部數(shù)據(jù)L棧中(并在調用塊中聲明)。
如果調用塊是一個功能塊,則可以使用其靜態(tài)局部數(shù)據(jù)作為實參。靜態(tài)數(shù)據(jù)一般為符號尋址;如果通過DI寄存器(DI地址)來使用地址,必須確保當訪問塊參數(shù)(在被調用塊中)時,通過DI寄存器當前打開的數(shù)據(jù)塊也是“校正”的數(shù)據(jù)塊。因此,需要注意的是,當使用被調用塊作為局部實例數(shù)據(jù)塊時,塊局部變量地址取決于被調用塊中局部實例的聲明。
對于布爾類型的塊參數(shù),可以使用常量TRUE(信號狀態(tài)1)或FALSE(信號狀態(tài)0);對于數(shù)字類型的塊參數(shù),可以使用和數(shù)據(jù)類型相符合的所有常量。用常量進行初始化只能用于輸入?yún)?shù)。
如果數(shù)組或結構的組成元素的數(shù)據(jù)類型與塊參數(shù)的數(shù)據(jù)類型*,則可以用字段或結構的組成元素初始化基本數(shù)據(jù)類型的塊參數(shù)。
調用塊時,必須先用常量、地址或操作用的變量初始化塊參數(shù)。參數(shù)為實參。若在程序中常常調用塊,每次調用使用的實參經(jīng)常是不同的。
在數(shù)據(jù)類型上,實參必須與塊參數(shù)保持*:二進制實參(如一個存儲位)必須對應BOOL數(shù)據(jù)類型的塊參數(shù);數(shù)組元素變量必須對應同維數(shù)數(shù)組類型塊參數(shù)。表19-3概述了作為實參的地址與數(shù)據(jù)類型的對應關系。

在調用功能時,必須用實參對所有的塊參數(shù)初始化。
在調用功能塊時,用實參初始化塊參數(shù)不是必須的。對于所有的基本數(shù)據(jù)類型的塊參數(shù)、復雜數(shù)據(jù)類型的輸入和輸出參數(shù)以及數(shù)據(jù)類型為TIMER. COUNTER、BLOCK_xx的輸入?yún)?shù),STEP 7都保存為值或數(shù)字。復雜數(shù)據(jù)類型的輸入/輸出參數(shù)和數(shù)據(jù)類型為POINTER和ANY的塊參數(shù)都作為實參的指針被保存。這樣,要輸入一個有意義的值,在*調用時必須至少對后命名的塊參數(shù)進行初始化。
對于功能塊,可以通過直接訪問的方式訪問塊參數(shù)。因為這些參數(shù)位于數(shù)據(jù)塊中,所以可以像處理數(shù)據(jù)地址一樣來處理塊參數(shù)。
舉例:實例數(shù)據(jù)塊“Lift_stat_1”的功能塊控制一個二進制輸出參數(shù),該參數(shù)命名為“UP”。在功能塊處理之后(經(jīng)過調用后),可以像下面那樣來檢測參數(shù),而不用再對輸出參數(shù)初始化:
U "List_stat_1".Up;
只是需要對這個檢測編程而不用初始化參數(shù)。

西門子PCU20無顯示數(shù)碼管不亮維修