指令MC(Master Control)和MCR(Master Control Reset)在PLC(可編程邏輯控制器)編程中非常常見,它們用于創(chuàng)建和控制主控電路
MC指令(主控指令):
功能:MC指令用于標記主控電路塊的開始。當MC指令的觸點接通時,該MC與對應(yīng)的MCR之間的所有指令開始執(zhí)行。
應(yīng)用:在編程中,經(jīng)常遇到多個線圈同時受一個或一組觸點控制的情況。使用MC指令可以避免在每個線圈的控制電路中都串入同樣的觸點,從而節(jié)省存儲單元。
特點:MC指令只能用于輸出繼電器Y和輔助繼電器M(不包括特殊輔助繼電器)。MC指令后,母線(LD、LDI點)移至MC觸點之后,返回原來母線的指令是MCR。
MCR指令(主控復位指令):
功能:MCR指令用于標記主控電路塊的結(jié)束。當MCR指令執(zhí)行時,會結(jié)束當前MC指令所標記的主控電路塊。
應(yīng)用:與MC指令配合使用,用于控制主控電路塊的執(zhí)行和結(jié)束。
特點:MCR指令后,母線返回原來位置。在嵌套結(jié)構(gòu)中,MCR指令會同時復位所有比其編號小的嵌套層。
假設(shè)我們有一個簡單的PLC程序,當輸入X000接通時,我們希望根據(jù)輸入X001和X002的狀態(tài)來控制輸出Y000和Y001的接通與斷開。
以下是使用MC和MCR指令的編程示例:
LD X000 // 如果X000接通,則執(zhí)行以下指令
MC N0 // 開始一個編號為N0的主控電路塊
LD X001 // 如果X001接通,則執(zhí)行以下指令
OUT Y000 // 輸出Y000接通
LD X002 // 如果X002接通,則執(zhí)行以下指令
OUT Y001 // 輸出Y001接通
MCR N0 // 結(jié)束編號為N0的主控電路塊
在這個示例中,當輸入X000接通時,會執(zhí)行從MC N0到MCR N0之間的所有指令。如果X001接通,則輸出Y000接通;如果X002接通,則輸出Y001接通。當X000斷開時,由于MC和MCR指令的存在,Y000和Y001都會斷開。
MC和MCR指令搭配使用好處:
結(jié)束主控電路塊:
當你使用MC指令開始一個主控電路塊后,你需要在適當?shù)奈恢檬褂肕CR指令來結(jié)束這個電路塊。這是為了確保邏輯的正確性和完整性。
避免邏輯混亂:
如果沒有正確地使用MCR指令來結(jié)束主控電路塊,可能會導致邏輯混亂,因為PLC可能會繼續(xù)執(zhí)行MC指令之后的指令,即使這些指令本應(yīng)在MC指令的控制范圍之外。
節(jié)省存儲空間:
在編程時,我們經(jīng)常會遇到多個線圈同時受一個或一組觸點控制的情況。如果在每個線圈的控制電路中都串入同樣的觸點,將會占用很多存儲單元。通過使用MC和MCR指令,我們可以避免這種重復,從而節(jié)省存儲空間。
嵌套結(jié)構(gòu):
在復雜的PLC程序中,可能會使用到嵌套的主控電路塊。在這種情況下,每個嵌套的MC指令都需要一個對應(yīng)的MCR指令來結(jié)束。而且,MCR指令會同時復位所有比其編號小的嵌套層。
以下情況謹慎使用:
無主控電路塊:
如果PLC程序中沒有使用MC指令來開始一個主控電路塊,那么使用MCR指令將沒有實際意義。MCR指令必須和MC指令配對使用,用于結(jié)束MC指令所開始的主控電路塊。
嵌套結(jié)構(gòu)中的錯誤使用:
在嵌套的主控電路塊中,MCR指令會同時復位所有比其編號小的嵌套層。如果錯誤地使用了MCR指令,可能會導致不應(yīng)該被復位的嵌套層被復位,從而影響程序的邏輯和功能。
特殊輔助繼電器:
MC和MCR指令的目標元件通常為Y(輸出繼電器)和M(輔助繼電器),但特殊輔助繼電器(如計時器、計數(shù)器等)不能用作MC或MCR指令的目標元件。因此,在涉及特殊輔助繼電器的程序中,MCR指令可能不適用。
其他控制邏輯:
在某些情況下,可能需要使用其他控制邏輯來實現(xiàn)特定的功能,而不是使用MC和MCR指令。例如,可以使用順序控制指令(如STL/RET)來實現(xiàn)順序控制邏輯,或者使用跳轉(zhuǎn)指令(如JMP/JME)來實現(xiàn)程序的跳轉(zhuǎn)和分支。在這些情況下,MCR指令可能不適用。