官术网_书友最值得收藏!

2.4 梯形圖轉(zhuǎn)換與優(yōu)化

2.4.1 電路轉(zhuǎn)換為梯形圖

利用不同編程語言編制的PLC程序,可以通過操作系統(tǒng)或編程軟件自動轉(zhuǎn)換,無需進(jìn)行其他考慮,但是,對于梯形圖程序與傳統(tǒng)繼電器控制電路之間的轉(zhuǎn)換,應(yīng)注意兩者在工作原理、方式上的區(qū)別,部分梯形圖程序不能完全套用繼電器電路,反之亦然。

繼電器電路可使用,但梯形圖程序不能實現(xiàn)的情況主要有下文的幾種,這樣的電路需要經(jīng)過適當(dāng)處理,才能成為梯形圖程序。為了便于比較與說明,在下述的內(nèi)容中,對于繼電器電路,觸點、線圈仍以通常的Kn表示;但是,在梯形圖上,繼電器Kn的觸點將以輸入I0.n代替,線圈以輸出Q0.n代替。

(1)橋接支路

為了節(jié)省觸點,繼電器電路可采用圖2.4.1(a)所示的“橋接”支路,利用K5觸點的橋接,使觸點K3、K1能夠?qū)€圈K6、K7進(jìn)行交叉控制,這樣的支路在梯形圖程序中不能實現(xiàn)。這是因為:

①梯形圖的編程格式不允許,采用梯形圖編程時,程序中的觸點一般不能進(jìn)行垂直方向布置;

②違背PLC程序的執(zhí)行規(guī)則,因為梯形圖程序的指令執(zhí)行嚴(yán)格按從上至下的順序進(jìn)行,因此,除非使用重復(fù)線圈,否則,在同一PLC循環(huán)內(nèi),不能利用線圈輸出指令以后的程序來對已經(jīng)執(zhí)行完成的輸出線圈附加其他條件。

因此,梯形圖程序設(shè)計時,每一輸出線圈原則上都應(yīng)有獨立的邏輯控制條件。梯形圖程序的觸點使用次數(shù)不受任何限制,因此,對于圖2.4.1(a)所示的“橋接”支路,在梯形圖程序中可轉(zhuǎn)化為圖2.4.1(b)所示的形式編程。

圖2.4.1 橋接支路的轉(zhuǎn)換

(2)后置觸點

同樣出于節(jié)省觸點的目的,繼電器電路經(jīng)常使用圖2.4.2(a)所示的后置觸點K5,來同時控制線圈K6、K7,但是,在梯形圖程序中,PLC的輸出線圈必須是程序段的最終輸出(中間線圈只能是內(nèi)部繼電器)。因此,使用后置觸點的繼電器電路轉(zhuǎn)換為梯形圖程序時,需要以圖2.4.2(b)所示的形式編程。

圖2.4.2 后置觸點的轉(zhuǎn)換

(3)中間輸出

繼電器電路可利用圖2.4.3(a)的中間輸出節(jié)省觸點,這樣的電路可以轉(zhuǎn)換為梯形圖,但執(zhí)行指令時需要使用堆棧,它將無謂地增加程序容量和執(zhí)行時間。因此,在梯形圖程序中宜轉(zhuǎn)換為圖2.4.3(b)的形式,通過改變觸點次序取消堆棧操作;或者,將其分解為圖2.4.3(c)所示的2個獨立程序段,以簡化程序。

圖2.4.3 中間輸出的轉(zhuǎn)換

(4)并聯(lián)輸出

圖2.4.4(a)是繼電器接點控制電路常用的并聯(lián)輸出支路,鑒于中間輸出同樣的原因,轉(zhuǎn)換梯形圖時宜改為圖2.4.4(b)所示的形式。

圖2.4.4 并聯(lián)輸出的轉(zhuǎn)換

2.4.2 梯形圖轉(zhuǎn)換為電路

簡單的梯形圖程序也可以轉(zhuǎn)換為繼電器電路,但某些特殊的梯形圖程序不能通過繼電器電路實現(xiàn),常見的情況有以下幾種。

(1)邊沿檢測程序

梯形圖程序可充分利用PLC的循環(huán)掃描功能,實現(xiàn)圖2.4.5(a)所示的邊沿檢測功能。但是,這樣的程序如果直接轉(zhuǎn)換為圖2.4.5(b)所示的繼電器電路,由于實際繼電器的常閉觸點斷開通常先于常開觸點的閉合,因此,繼電器K3不能被短時接通,轉(zhuǎn)換后的電路將變得無任何實際意義。

圖2.4.5 邊沿檢測程序轉(zhuǎn)換

(2)時序控制程序

PLC的梯形圖程序嚴(yán)格按從上至下、從左向右的順序執(zhí)行,同樣的程序段編制在程序不同的位置,可能得到完全不同的結(jié)果。

例如,對于圖2.4.6(a)的程序,如果M0.1的輸出指令位于M0.0的輸出指令之后,可在M0.0上得到I0.1的上升沿脈沖;但是,對于圖2.4.6(b)所示的程序,如果M0.1的輸出位于M0.0的輸出之前,M0.0的輸出將始終為“0”。

圖2.4.6 產(chǎn)生不同結(jié)果的梯形圖

但是,繼電器電路的工作是同步的,如果線圈通電,無論觸點位于電路的哪一位置,它們都將被同時接通或斷開,因此,即便改變電路的前后次序,也無法得到不同的結(jié)果。

例如,對于圖2.4.7(a)和圖2.4.7(b)所示的電路,當(dāng)觸點K1接通時,所得到的結(jié)果總是為線圈K2接通、K3斷開。

圖2.4.7 效果相同的電路

(3)競爭電路

PLC的循環(huán)掃描的工作方式?jīng)Q定了梯形圖程序在同一循環(huán)內(nèi)不會產(chǎn)生“競爭”現(xiàn)象,例如圖2.4.8(a)所示的梯形圖程序,如果M0.0為邊沿信號,程序便可用于交替通斷控制(參見圖2.3.18)。

圖2.4.8 競爭電路的梯形圖

但是,繼電器電路為同步工作,如將圖2.4.8(a)所示的梯形圖程序轉(zhuǎn)換為圖2.4.8(b)所示的繼電器電路,當(dāng)觸點K10接通時,將出現(xiàn)“K2接通→K1接通→K2斷開→K3接通→K1斷開→K3斷開→K2接通……”的循環(huán),使繼電器K1、K2、K3處于連續(xù)不斷的通斷狀態(tài),引起“競爭”,導(dǎo)致電路不能工作。

(4)重復(fù)線圈

重復(fù)線圈可用來保存邏輯運算的中間狀態(tài),起到內(nèi)部繼電器同樣的作用;使用重復(fù)線圈編程時,PLC一般會發(fā)生語法錯誤提示,但并不影響程序的運行。

例如,對于圖2.4.9(a)所示的程序,在不同的輸入狀態(tài)下可得到圖2.4.9(b)所示的不同的結(jié)果。

圖2.4.9 重復(fù)線圈編程

①I0.1、I0.2同時為“1”,I0.3和I0.4中任意一個為“0”。在這種情況下,執(zhí)行Network7指令,Q0.6的輸出將為“1”,因而Q0.0將輸出“1”;但在執(zhí)行Network9指令后,Q0.6將成為“0”;因此,程序最終的輸出結(jié)果為Q0.0=1、Q0.6=0。

②I0.1和I0.2中任意一個為“0”,I0.3、I0.4同時為“1”。在這種情況下,執(zhí)行Network7指令,Q0.6的輸出將為“0”,因而Q0.0將輸出“0”;但在執(zhí)行Network9指令后,Q0.6將成為“1”;因此,程序最終的輸出結(jié)果為Q0.0=0、Q0.6=1。

③I0.1、I0.2、I0.3、I0.4同時為“1”。在這種情況下,執(zhí)行Network7指令,Q0.6的輸出將為“1”,因而Q0.0將輸出“1”;執(zhí)行Network9指令后,Q0.6也為“1”;因此,程序最終的輸出結(jié)果為Q0.0=1、Q0.6=1。

繼電器的線圈不允許重復(fù)接線,因此,使用重復(fù)線圈的梯形圖程序不能轉(zhuǎn)換為繼電器控制電路。

2.4.3 梯形圖程序優(yōu)化

不同梯形圖程序的存儲容量及指令執(zhí)行時間各不相同,因此,在不影響程序執(zhí)行結(jié)果的前提下,有時需要對程序進(jìn)行適當(dāng)調(diào)整與優(yōu)化,以減少存儲容量、縮短執(zhí)行時間。常用的PLC梯形圖程序優(yōu)化方法如下。

(1)并聯(lián)支路優(yōu)化

并聯(lián)支路應(yīng)根據(jù)先“與”后“或”的邏輯運算規(guī)則,將具有串聯(lián)觸點的支路放在只有獨立觸點的支路上方,這樣,就可避免堆棧操作,減少存儲容量、縮短執(zhí)行時間。

例如,對于圖2.4.10(a)所示的程序,PLC處理程序時,首先需要讀入I0.1的狀態(tài),并將其壓入堆棧;接著讀入Q0.1的狀態(tài)、進(jìn)行的運算;然后再取出堆棧,進(jìn)行I0.1和的邏輯“或”運算,再將結(jié)果輸出到Q0.1上。

圖2.4.10 并聯(lián)支路優(yōu)化

當(dāng)程序按圖2.4.10(b)優(yōu)化后,PLC處理程序時,首先讀入Q0.1的狀態(tài)、接著進(jìn)行的運算;然后,以現(xiàn)行運算結(jié)果和I0.1進(jìn)行“或”運算,再將結(jié)果輸出到Q0.1上。因此,程序優(yōu)化后可減少存儲容量、縮短執(zhí)行時間。

(2)串聯(lián)支路優(yōu)化

串聯(lián)支路應(yīng)根據(jù)“從左向右”處理次序,將有帶有并聯(lián)觸點的環(huán)節(jié)放在最前面,以避免堆棧操作,減少存儲容量,縮短執(zhí)行時間。

例如,對于圖2.4.11(a)所示的程序,PLC處理程序時,首先需要讀入I0.1的狀態(tài),并將其壓入堆棧中;接著讀入I0.2的狀態(tài)、進(jìn)行I0.2和的邏輯“或”運算;然后,再取出堆棧狀態(tài),進(jìn)行的邏輯“與”運算,再將結(jié)果輸出到Q0.1上。

當(dāng)程序按圖2.4.11(b)優(yōu)化后,PLC處理程序時,可直接讀入I0.2的狀態(tài)、進(jìn)行I0.2和的“或”運算;然后,以現(xiàn)行運算結(jié)果和I0.1進(jìn)行邏輯“與”運算,再將結(jié)果輸出到Q0.1上。同樣,程序優(yōu)化后可減少存儲容量、縮短執(zhí)行時間。

圖2.4.11 串聯(lián)支路優(yōu)化

(3)使用內(nèi)部繼電器優(yōu)化

對于需要多次使用某些邏輯運算結(jié)果,可通過內(nèi)部繼電器簡化程序,方便程序修改。例如,圖2.4.12(a)所示的程序可以按照圖2.4.12(b)進(jìn)行優(yōu)化。

在圖2.4.12(a)所示的程序上,Q0.1、Q0.2、Q0.3具有共同的控制條件I0.1&I0.2&I0.3,程序長度15步。如將控制條件I0.1&I0.2&I0.3用圖2.4.12(b)所示的內(nèi)部繼電器M0.1緩存,便可將程序長度減少至13步。

圖2.4.12(b)所示程序的另一優(yōu)點是修改方便。例如,當(dāng)輸入I0.1需要更改為M1.0時,圖2.4.12(a)所示的程序必須同時修改Network8、9、10;但在圖2.4.12(b)所示的程序中,則只需將Network8的I0.1改為M1.0,這樣不僅修改簡單,且可避免遺漏。

圖2.4.12 利用內(nèi)部繼電器的優(yōu)化

(4)中間輸出的優(yōu)化

對于多輸出線圈控制的程序,應(yīng)按邏輯運算規(guī)則,保證邏輯處理的依次進(jìn)行。例如,圖2.4.13(a)所示的程序需要堆棧操作,優(yōu)化為圖2.4.13(b)所示的程序后,便可直接處理。

圖2.4.13 輸出位置調(diào)整

主站蜘蛛池模板: 兴隆县| 沙田区| 赣榆县| 大石桥市| 上高县| 日喀则市| 文成县| 万年县| 乐至县| 宁武县| 古田县| 鹤峰县| 屏山县| 白朗县| 韩城市| 延长县| 旺苍县| 砚山县| 会宁县| 西和县| 资阳市| 齐河县| 镇巴县| 昭平县| 长沙市| 阳新县| 张家界市| 龙游县| 西乌珠穆沁旗| 嘉祥县| 丰城市| 伊春市| 北宁市| 景洪市| 海盐县| 子洲县| 通城县| 子洲县| 汶川县| 延吉市| 咸阳市|