回收西門子模塊6ES75901AJ300AA0 回收西門子模塊6ES75901AJ300AA0
邏輯塊局部數(shù)據(jù)的數(shù)據(jù)類型
在變量聲明表中,要明確局部數(shù)據(jù)的數(shù)據(jù)類型,這樣操作系統(tǒng)才能給變量分配確定的 存儲(chǔ)空間。局部數(shù)據(jù)可以是基本數(shù)據(jù)類型或復(fù)式數(shù)據(jù)類型,也可以是專門用于參數(shù)傳遞 的所謂的“參數(shù)類型”。參數(shù)類型包括定時(shí)器、計(jì)數(shù)器、塊的地址或指針等,見表5.2。表5.2 參數(shù)類型變量
參數(shù)類型 大 小 說 明
定時(shí)器(Timer) 2 B 在功能塊中定義一個(gè)定時(shí)器形參,調(diào)用時(shí)賦予定時(shí)器實(shí)參
計(jì)數(shù)器(Counter) 2 B 在功能塊中定義一個(gè)計(jì)數(shù)器形參,調(diào)用時(shí)賦予計(jì)數(shù)器實(shí)參
塊:
Block_FB
Block_FC
Block_DB
Block_SDB 2 B 在功能塊中定義一個(gè)功能塊或數(shù)據(jù)塊形參變量,調(diào)用時(shí)給功能塊類或數(shù)據(jù)塊類形參賦予實(shí)際的功能塊或數(shù)據(jù)塊編號(hào),如
FC 101、DB 42
指針(Pointer) 6 B 在功能塊中定義一個(gè)形參,該形參說明的是內(nèi)存的地址指針。例如,調(diào)用時(shí)可給形參賦予實(shí)參P#M50.0,以訪問內(nèi)存M50.0
ANY 10 B 當(dāng)實(shí)參的數(shù)據(jù)類型未知時(shí),可以使用該類型
1) 定時(shí)器或計(jì)數(shù)器參數(shù)類型
在功能塊中定義一個(gè)定時(shí)器或計(jì)數(shù)器類型的形參,功能塊就能使用一個(gè)定時(shí)器或計(jì)數(shù)器,而不需明確具體的定時(shí)器或計(jì)數(shù)器,等到調(diào)用該功能塊時(shí)再確定定時(shí)器或計(jì)數(shù)器號(hào)。這使用戶程序能靈活性地分配和使用定時(shí)器或計(jì)數(shù)器。當(dāng)給定時(shí)器或計(jì)數(shù)器參數(shù)類型形參分配實(shí)參時(shí),在“T”或“C”后跟一個(gè)有效整數(shù),如T 100。
2) 塊參數(shù)類型
當(dāng)定義一個(gè)作為輸入輸出的塊時(shí),參數(shù)聲明決定了塊的類型(FB、FC、DB等)。當(dāng)為塊參數(shù)類型形參分配實(shí)參時(shí),可以使用物理地址,如FC 101,也可使用符號(hào)地址,如“valve
3) 指針參數(shù)類型
一個(gè)指針給出的是變量的地址,而不是變量的數(shù)值大小。在有些功能塊中,可能使用指針編程更為方便。用定義指針類型的形參,就能在功能塊中先使用一個(gè)虛設(shè)的指針,待調(diào)用功能塊時(shí)再為其賦予確定的地址。當(dāng)為指針參數(shù)類型形參分配實(shí)參時(shí),需要指明內(nèi)存地址,例如P#M50.0。
3. 塊調(diào)用過程及內(nèi)存分配
CPU提供塊堆棧(B堆棧)來存儲(chǔ)與處理被中斷塊的有關(guān)信息。當(dāng)發(fā)生塊調(diào)用或有來自更高優(yōu)先級(jí)的中斷時(shí),就有相關(guān)的塊信息存儲(chǔ)在B堆棧里,并影響部分內(nèi)存和寄存器。圖5.2顯示了調(diào)用塊時(shí)B堆棧與L堆棧的變化。圖5.3提供了關(guān)于STEP 7的塊調(diào)用情況。
1) B堆棧與L堆棧
B堆棧是CPU系統(tǒng)內(nèi)存中的一部分,它存儲(chǔ)以下被中斷塊的數(shù)據(jù):
(1) 塊號(hào)、塊類型、優(yōu)先級(jí)、被中斷塊的返回地址;