產(chǎn)地類別 | 進(jìn)口 |
---|
SIEMENS 可編程控制器
1、 SIMATIC S7 系列PLC:S7-200、S7-1200,、S7-300、S7-400,、ET-200
2,、 邏輯控制模塊 LOGO!230RC,、230RCO,、230RCL、24RC,、24RCL等
3,、 SITOP直流電源 24V DC 1.3A、2.5A,、3A,、5A、10A,、20A,、40A可并聯(lián).
![]() |
參考價(jià) | 面議 |
更新時(shí)間:2023-07-28 18:06:05瀏覽次數(shù):134
聯(lián)系我們時(shí)請(qǐng)說(shuō)明是化工儀器網(wǎng)上看到的信息,謝謝!
成都西門子PLC代理商
S7-300系列PLC的編程語(yǔ)言是STEP 7。STEP 7繼承了STEP 5語(yǔ)言結(jié)構(gòu)化程序設(shè)計(jì)的優(yōu)點(diǎn),用文件塊的形式管理用戶編寫的程序及程序運(yùn)行所需的數(shù)據(jù),。如果這些文件塊是子程序,,則可以通過(guò)調(diào)用語(yǔ)句,將它們組成結(jié)構(gòu)化的用戶程序,。這樣,,PLC的程序組織明確,結(jié)構(gòu)清晰,,易于修改,。
為支持結(jié)構(gòu)化程序設(shè)計(jì),STEP 7用戶程序通常由組織塊(OB),、功能塊(FB)或功能塊(FC)等三種類型的邏輯塊和數(shù)據(jù)塊(DB)組成,。
組織塊(OB)是系統(tǒng)操作程序與用戶應(yīng)用程序在各種條件下的接口界面,用于控制程序的運(yùn)行,。OB塊根據(jù)操作系統(tǒng)調(diào)用的條件(如時(shí)間中斷,、報(bào)警中斷等)可分成幾種類型,這些類型有不同的優(yōu)先級(jí),,高優(yōu)先級(jí)的OB可以中斷低優(yōu)先級(jí)的OB,。每個(gè)S7 CPU包含一套可編程的OB塊(隨CPU而不同),不同的OB塊執(zhí)行特定的功能,。
OB1是主程序循環(huán)塊,,在任何情況下,它都是需要的,。根據(jù)過(guò)程控制的復(fù)雜程度,,可將所有程序放入OB1中進(jìn)行線性編程,或?qū)⒊绦蛴貌煌倪壿媺K加以結(jié)構(gòu)化,,通過(guò)OB1調(diào)用這些邏輯塊,,并允許塊間的相互調(diào)用。塊的調(diào)用指令中止當(dāng)前塊(調(diào)用塊)的運(yùn)行調(diào)用,,然后執(zhí)行被調(diào)用塊的所有指令,。一旦被調(diào)用的塊被完成,執(zhí)行調(diào)用指令的塊繼續(xù)執(zhí)行調(diào)用指令后的指令,。調(diào)用塊可以是任何邏輯塊,,被調(diào)用塊只能是功能塊(除OB外的邏輯塊)。圖5.1所示是一個(gè)STEP 7調(diào)用實(shí)例,。除了OB1,,操作系統(tǒng)可以調(diào)用其它的OB塊以響應(yīng)確定事件。其它可用的OB塊隨所用的CPU性能和控制過(guò)程的要求而定,。
功能塊(FB,、FC)實(shí)際上是用戶子程序,,分為帶“記憶"的功能塊FB和不帶“記憶"的功能塊FC。前者有一個(gè)數(shù)據(jù)結(jié)構(gòu)與該功能塊的參數(shù)表*相同的數(shù)據(jù)塊(DB)附屬于該功能塊,,并隨功能塊的調(diào)用而打開,,隨功能塊的結(jié)束而關(guān)閉。該附屬數(shù)據(jù)塊叫做背景數(shù)據(jù)塊(Instance Data Block),,存放在背景數(shù)據(jù)塊中的數(shù)據(jù)在FB塊結(jié)束時(shí)繼續(xù)保持,,即被“記憶"。功能塊FC沒有背景數(shù)據(jù)塊,,當(dāng)FC完成操作后數(shù)據(jù)不能保持,。
數(shù)據(jù)塊(DB)是用戶定義的用于存取數(shù)據(jù)的存儲(chǔ)區(qū),可以被打開或關(guān)閉,。DB可以是屬于某個(gè)FB的情景數(shù)據(jù)塊,,也可以是通用的全局?jǐn)?shù)據(jù)塊,用于FB或FC,。S7 CPU還提供標(biāo)準(zhǔn)系統(tǒng)功能塊(SFB,、SFC),它們是預(yù)先編好的,,經(jīng)過(guò)測(cè)試后集成在S7 CPU中的功能程序庫(kù),。用戶可以直接調(diào)用它們,高效地編制自己的程序,。由于它們是操作系統(tǒng)的一部分,,因此不需將其作為用戶程序下載到PLC。與FB塊相似,,SFB需要一個(gè)背景數(shù)據(jù)塊,并需將此DB塊作為程序的一部分安裝到CPU中,。不同的CPU提供不同的SFB,、SFC功能。
系統(tǒng)數(shù)據(jù)塊(SDB)是為存放PLC參數(shù)所建立的系統(tǒng)數(shù)據(jù)存儲(chǔ)區(qū),。用STEP 7的S7組態(tài)軟件可以將PLC組態(tài)數(shù)據(jù)和其它操作參數(shù)存放于SDB中,。
功能塊編程及調(diào)用
功能塊由兩個(gè)主要部分組成:一部分是每個(gè)功能塊的變量聲明表,變量聲明表聲明此塊的局部數(shù)據(jù),;另一部分是邏輯指令組成的程序,,程序要用到變量聲明表中給出的局部數(shù)據(jù)。
當(dāng)調(diào)用功能塊時(shí),,需提供塊執(zhí)行時(shí)要用到的數(shù)據(jù)或變量,,也就是將外部數(shù)據(jù)傳遞給功能塊,這被稱為參數(shù)傳遞,。參數(shù)傳遞的方式使得功能塊具有通用性,,它可被其它的塊調(diào)用,,以完成多個(gè)類似的控制任務(wù)。
1. 變量聲明表(局部數(shù)據(jù))
每個(gè)邏輯塊前部都有一個(gè)變量聲明表,,在變量聲明表中定義邏輯塊用到的局部數(shù)據(jù),。局部數(shù)據(jù)分為參數(shù)和局部變量?jī)纱箢悾植孔兞坑职o態(tài)變量和臨時(shí)變量(暫態(tài)變量)兩種,。參數(shù)是在調(diào)用塊和被調(diào)用塊間傳遞的數(shù)據(jù),。靜態(tài)變量和臨時(shí)變量是僅供邏輯塊本身使用的數(shù)據(jù)。表5.1給出了局部數(shù)據(jù)聲明類型,,表中內(nèi)容的排列順序也是在變量聲明
表中聲明變量的順序和變量在內(nèi)存中的存儲(chǔ)順序,。在邏輯塊中不需使用的局部數(shù)據(jù)類型,可以不必在變量聲明表中聲明,。
表5.1 局部數(shù)據(jù)類型
變 量 名 類 型 說(shuō) 明
輸入?yún)?shù) In 由調(diào)用邏輯塊的塊提供數(shù)據(jù),,輸入給邏輯塊的指令
輸出參數(shù) Out 向調(diào)用邏輯塊的塊返回參數(shù),即從邏輯塊輸出結(jié)果數(shù)據(jù)
IO參數(shù) In_Out 參數(shù)的值由調(diào)用塊的塊提供,,由邏輯塊處理修改,,然后返回
靜態(tài)變量 Stat 靜態(tài)變量存儲(chǔ)在背景數(shù)據(jù)塊中,塊調(diào)用結(jié)束后,,其內(nèi)容被保留
臨時(shí)變量 Temp 臨時(shí)變量存儲(chǔ)在L堆棧中,,塊執(zhí)行結(jié)束變量的值因被其它內(nèi)容覆蓋而丟掉
對(duì)于功能塊FB,操作系統(tǒng)為參數(shù)及靜態(tài)變量分配的存儲(chǔ)空間是背景數(shù)據(jù)塊,。這樣參數(shù)變量在背景數(shù)據(jù)塊中留有運(yùn)行結(jié)果備份,。在調(diào)用FB時(shí),若沒有提供實(shí)參,,則功能塊使用背景數(shù)據(jù)塊中的數(shù)值,。操作系統(tǒng)在L堆棧中給FB的臨時(shí)變量分配存儲(chǔ)空間。
對(duì)于功能塊FC,,操作系統(tǒng)在L堆棧中給FC的臨時(shí)變量分配存儲(chǔ)空間,。由于沒有背景數(shù)據(jù)塊,因而FC不能使用靜態(tài)變量,。輸入,、輸出、IO參數(shù)以指向?qū)崊⒌闹羔樞问酱鎯?chǔ)在操作系統(tǒng)為參數(shù)傳遞而保留的額外空間中,。
對(duì)于組織塊OB來(lái)說(shuō),,其調(diào)用是由操作系統(tǒng)管理的,用戶不能參與,。因此,,OB只有定義在L堆棧中的臨時(shí)變量。
1) 形參
為保證功能塊對(duì)同一類設(shè)備控制的通用性,,用戶在編程時(shí)就不能使用具體設(shè)備對(duì)應(yīng)的存儲(chǔ)區(qū)地址參數(shù)(如不能使用I1.0等),,而是使用這類設(shè)備的抽象地址參數(shù),。這些抽象參數(shù)稱為形式參數(shù),簡(jiǎn)稱形參,。將該設(shè)備的相應(yīng)實(shí)際存儲(chǔ)區(qū)地址參數(shù)(簡(jiǎn)稱實(shí)參)傳遞給功能塊,,功能塊在運(yùn)行時(shí)以實(shí)參替代形參,從而可通過(guò)調(diào)用功能塊實(shí)現(xiàn)對(duì)具體設(shè)備的控制,。當(dāng)對(duì)另一設(shè)備控制時(shí),,同樣也可通過(guò)調(diào)用實(shí)參將其傳遞給功能塊。
形參需在功能塊的變量聲明表中定義,,實(shí)參在調(diào)用功能塊時(shí)給出,。在功能塊的不同調(diào)用處,可為形參提供不同的實(shí)參,,但實(shí)參的數(shù)據(jù)類型必須與形參*,。用戶程序可定義功能塊的輸入值參數(shù)或輸出值參數(shù),也可定義一參數(shù)作為輸入輸出值,。參數(shù)傳遞可將調(diào)用塊的信息傳遞給被調(diào)用塊,,也能把被調(diào)用塊的運(yùn)行結(jié)果返回給調(diào)用塊。
2) 靜態(tài)變量
靜態(tài)變量在PLC運(yùn)行期間始終被存儲(chǔ),。S7將靜態(tài)變量定義在背景數(shù)據(jù)塊中,,當(dāng)被調(diào)用塊運(yùn)行時(shí),能讀出或修改靜態(tài)變量,;被調(diào)用塊運(yùn)行結(jié)束后,,靜態(tài)變量保留在數(shù)據(jù)塊中。由于只有功能塊FB有關(guān)聯(lián)的背景數(shù)據(jù)塊,,因此只能為FB定義靜態(tài)變量,。功能塊FC不能有靜態(tài)變量。
3) 臨時(shí)變量
臨時(shí)變量?jī)H在邏輯塊運(yùn)行時(shí)有效,,邏輯塊結(jié)束時(shí)存儲(chǔ)臨時(shí)變量的內(nèi)存被操作系統(tǒng)另行 分配,。S7將臨時(shí)變量定義在L堆棧中,L堆棧是為存儲(chǔ)邏輯塊的臨時(shí)變量而專設(shè)的,。當(dāng)塊程序運(yùn)行時(shí),在L堆棧中建立該塊的臨時(shí)變量,,一旦塊執(zhí)行結(jié)束,,堆棧重新分配,因而信息丟失,。
邏輯塊局部數(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ù)類型 大 小 說(shuō) 明
定時(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è)形參,該形參說(shuō)明的是內(nèi)存的地址指針,。例如,,調(diào)用時(shí)可給形參賦予實(shí)參P#M50.0,以訪問(wèn)內(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)用過(guò)程及內(nèi)存分配
CPU提供塊堆棧(B堆棧)來(lái)存儲(chǔ)與處理被中斷塊的有關(guān)信息。當(dāng)發(fā)生塊調(diào)用或有來(lái)自更高優(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í)、被中斷塊的返回地址,;
(2) 塊寄存器DB,、DI被中斷前的內(nèi)容;
(3) 臨時(shí)變量的指針(被中斷塊的L堆棧地址),。
STEP 7中可使用的B堆棧大小是有限制的,,對(duì)于S7-300 CPU,則可在B堆棧中存儲(chǔ)8個(gè)塊的信息,。因此,,塊調(diào)用嵌套深度也是有限制的,多可同時(shí)激活8個(gè)塊,。
L堆棧是CPU內(nèi)存中的一部分,,它在塊調(diào)用時(shí)被重新分配。L堆棧用來(lái)存儲(chǔ)邏輯塊中定義的臨時(shí)變量,,也分配給臨時(shí)本地?cái)?shù)據(jù)使用,。梯形圖的方塊指令與標(biāo)準(zhǔn)功能塊也可能使用L堆棧存儲(chǔ)運(yùn)算的中間結(jié)果。
2) 調(diào)用功能塊FB
當(dāng)調(diào)用功能塊FB時(shí),,會(huì)有以下事件發(fā)生:
(1) 調(diào)用塊的地址和返回位置存儲(chǔ)在塊堆棧中,,調(diào)用塊的臨時(shí)變量壓入L堆棧;
(2) 數(shù)據(jù)塊DB寄存器內(nèi)容與DI寄存器內(nèi)容交換,;
(3) 新的數(shù)據(jù)塊地址裝入DI寄存器,;
(4) 被調(diào)用塊的實(shí)參裝入DB和L堆棧上部;
(5) 當(dāng)功能塊FB結(jié)束時(shí),,先前塊的現(xiàn)場(chǎng)信息從塊堆棧中彈出,,臨時(shí)變量彈出L堆棧;
(6) DB和DI寄存器內(nèi)容交換,。
當(dāng)調(diào)用功能塊FB時(shí),STEP 7并不一定要求給FB形參賦予實(shí)參,,除非參數(shù)是復(fù)式數(shù)據(jù)類型的IO形參或參數(shù)類型形參,。如果沒有給FB形參賦予實(shí)參,,則功能塊FB就調(diào)用背景數(shù)據(jù)塊內(nèi)的數(shù)值。該數(shù)值是在功能塊的變量聲明表內(nèi)或背景數(shù)據(jù)塊內(nèi)設(shè)置的形參初始數(shù)值,。
成都西門子PLC代理商