濟寧西門子代理商
PLC基本指令及程序設(shè)計(S7-200為例)
一,、PLC的基本邏輯指令
1、邏輯取及線圈驅(qū)動指令
1-1:邏輯取及線圈驅(qū)動指令:LD(load),、LDN(load not),、=(out) LD:用于網(wǎng)絡(luò)塊邏輯運算開始常開觸點與母線的連接 LDN:取反指令,,常閉觸點與母線連接 =:線圈驅(qū)動指令 注:1、在分支電路塊開始也要用LDLDN 2,、并聯(lián)的=可連續(xù)使用多次 3,、在同一程序中不能用雙線圈輸出!??!即任一元件在程序中只能使用一次=指令 4、T和C作為輸出線圈時不用=
1-2:取反指令NOT:邏輯取反,。
2,、觸點串聯(lián)指令
A(and)、AN(and not) A:與指令,。用于單個常開觸點的串聯(lián) AN:用于單個常閉觸點的串聯(lián) 注:1,、A/AN可連續(xù)使用多次 2、連續(xù)輸出電路可反復(fù)用=(不是在分支處,,而是連續(xù)的輸出(即在緊貼線圈之前)) 3,、AAN操作數(shù)為:I Q M SM T C V S L
3、觸點并聯(lián)指令
O(or) ON(or not) O:或指令,。用于單個常開觸點的并聯(lián)連接 ON:或反指令,。用于單個常閉觸點的并聯(lián)連接 注:1、O/ON可連續(xù)使用
4,、置位,、復(fù)位指令
S bit,N(從bit位開始連續(xù)N個元件置1) R bit,N(從bit位開始連續(xù)N個元件清零) 注:1、兩者對立,,保持作用只有當(dāng)相對的作用時才會釋放,。 2、S/R可以互換次序使用,,寫在后面的指令具有優(yōu)先權(quán) 3,、對T C復(fù)位 當(dāng)前值被清零,但有其特殊性,,后面說 4,、N的常數(shù)范圍0-255 也可用變量,一般用常量,。
5,、RS觸發(fā)器指令
SR(Set Dominant Bistable):置位優(yōu)先觸發(fā)器指令。當(dāng)置位信號(S1)和復(fù)位信號(R)都為真時,,輸出為真,。 RS(Reset Dominant Bistable):復(fù)位優(yōu)先觸發(fā)器指令。 兩個為RS觸發(fā)器,不同的是在同時輸入為1(S=R=1)時,,哪個優(yōu)先
6,、立即指令
不受PLC循環(huán)掃描工作方式的影響。
立即取 LDI bit(I) 立即取反 LDNI bit(I) 立即或 OI bit(I) 立即或反 ONI bit(I) 立即與 AI bit(I) 立即與反ANI bit(I)
立即輸出 =I bit
立即置位 SI bit,,N(0~128)
立即復(fù)位 RI bit,,N(0~128)
考慮到穩(wěn)定性和快速執(zhí)行,一般不用立即指令
7,、邊沿脈沖指令
EU(Edge Up) 在上升沿產(chǎn)生脈沖 ED(Edge Down) 在下降沿產(chǎn)生脈沖
(?。∽ⅲ好}沖寬度為一個掃描周期,,所以在程序的其他地方可以用到在此指令之后的線圈)
8,、串聯(lián)電路塊的并聯(lián)連接指令(OLD)
注意:1、塊電路的開始也要用LD/LDN指令 2,、每次完成一次塊電路的并聯(lián)時寫上OLD命令(在并聯(lián)完成之后) 3,、OLD無操作數(shù)
實質(zhì):塊電路完成邏輯運算后,結(jié)果存放在堆棧棧頂,,OLD指令把棧頂上面兩層的內(nèi)容進行“或"操作,,再將結(jié)果存放在棧頂。
濟寧西門子代理商
2. PLC - PG/PC 遠(yuǎn)程鏈接
由于下列原因,,在帶被動DP接口的ET200S CPU中不能進行這種類型的鏈接:
在該運行作模式中,,S7連接通過功能塊“PG_DIAL"建立從PLC到本地TS適配器的連接。功能塊“PG_DIAL"隨TeleService軟件提供并集成到已安裝的STEP 7軟件包中,?!癙G_DIAL"功能塊內(nèi)部調(diào)用S7基本通訊塊:X_SEND和X_GET。然后,,TS適配器自己通過已連接好的調(diào)制解調(diào)器自己建立到遠(yuǎn)程PG/PC的遠(yuǎn)程連接。在此連接中,,應(yīng)用程序(用PRODAVE MPI創(chuàng)建)扮演相應(yīng)通訊伙伴的角色,。在這種情況下,CPU必須承擔(dān)建立連接的任務(wù),。只有CPU的接口為 主動的接口并具有MPI屬性(通過 X 塊支持S7基本通訊)才有可能,。

圖2:PLC-PG 遠(yuǎn)程鏈接
3. PLC - PLC 遠(yuǎn)程鏈接
該連接用于通過WAN的CPU-CPU通訊。至少一方必須主動建立連接(啟動程序),,為此,,這一方的通訊接口必須為主動接口,而且S7基本通訊塊可用(X_PUT,,X_SEND,,X_GET,X_ABORT)。另一方具有服務(wù)器功能即可,,而且 被動接口亦可行,。
將S7連接到本地TS適配器通過本地CPU中的功能塊“PLC_DIAL"建立。功能塊“PLC_DIAL"隨TeleService軟件提供并集成到已安裝的 STEP 7軟架包中,?!癙LC_DIAL"功能塊提供到本地TS適配器的選擇信息,之后TS適配器通過已連接的調(diào)制解調(diào)器建立到遠(yuǎn)程TS適配器的遠(yuǎn)程連接,。數(shù)據(jù)傳送期間,,遠(yuǎn)程TS適配器如“透明路由器"一樣動作。它建立遠(yuǎn)程CPU的S7連接,,并且用遠(yuǎn)程CPU的操作固件執(zhí)行X_GET和X_PUT任務(wù)而無需在遠(yuǎn)程CPU上使用具有此功能的用戶程序,。
ET200S CPU有一個被動接口,因而如服務(wù)器那樣支持PLC-PLC遠(yuǎn)程連接,,盡管只適用于引發(fā)設(shè)備(本地CPU)中的系統(tǒng)功能X_PUT和/或X_GET,。之后,可以比較ET200S的PROFIBUS接口和MPI接口(PB地址 = MPI地址),。必須將ET200S連接到如同TS適配器一樣的相同PROFIBUS段,。在參數(shù)化TS適配器時,必須設(shè)置對應(yīng)于ET200 CPU的PROFIBUS設(shè)置文件,。

圖3:PLC-PLC 遠(yuǎn)程鏈接
問題:如何計算當(dāng)前程序所需的Local Data大小并合理設(shè)置S7 400 CPU屬性中的Memory選項卡中的Local Data,,S7 400 CPU中的Local data設(shè)置不當(dāng)會導(dǎo)致什么問題?
回答:Local data顧名思義為本地數(shù)據(jù),,在西門子控制器中有一部分內(nèi)存空間被設(shè)置為L區(qū)間,,它被用于控制器在運行程序時存儲臨時數(shù)據(jù)。由于編寫FB/FC程序的需要和OB中調(diào)用功能塊結(jié)構(gòu)的不同,,不同的OB由于調(diào)用不同的FB/FC,,因此所需的Local data的大小各不相同(被調(diào)用的FB/FC將占用當(dāng)前調(diào)用他的OB塊的Local Data資源)。在控制器硬件組態(tài)中的CPU屬性設(shè)置中,,Memory選項卡用于設(shè)置Local data的分配,。如果相應(yīng)OB塊實際運行所需的Local data大于硬件組態(tài)中所設(shè)置的Local Data大小,那么相應(yīng)的程序?qū)o法運行,,CPU將報告INTF錯誤,,甚至更為嚴(yán)重的情況下CPU可能會停止運行。但如果盲目將Local Data的分配設(shè)置過大,,將會浪費一部分寶貴的CPU內(nèi)存空間,。
S7 300CPU中的Local data不可修改,每個優(yōu)先級固定設(shè)置為256 bytes,,S7 400的Local data則可以人為修改,。由此可以看出正確設(shè)置S7400 CPU的Local Data的大小非常重要。在控制器硬件組態(tài)中CPU屬性? Memory選項卡的Local Data區(qū)域用于設(shè)置基于優(yōu)先級的Local Data(如下圖所示):

Pic1: Local Data的分配
在PCS7組態(tài)的項目中,在編譯CFC程序后,,系統(tǒng)將會自動計算各OB塊所需的Local Data大小,,可以通過交叉索引(Chart reference data ? Local data,如下圖所示)查詢到,。

Pic2: Chart reference data ? Local data
而普通的由用戶采用Step7編程方式編寫的程序,,程序功能塊及OB塊各自的調(diào)用結(jié)構(gòu)由用戶自行控制,需要在編寫完整個程序之后自行計算,。