數(shù)據(jù)的處理,經(jīng)常需要進(jìn)行比較,在PLC中也是如此。而我這次所分享的,就是三菱FX PLC 2N的各種比較指令。那么,廢話(huà)不多說(shuō),我們直接進(jìn)入主題吧。
一、CMP指令
CMP指令是所有比較指令中最為常用的指令,也是功能指令中的常用指令之一,其在編程手冊(cè)中的說(shuō)明如下圖所示。
CMP指令的理解也很簡(jiǎn)單,就是S1、S2兩個(gè)數(shù)的相互比較,根據(jù)我們多年的數(shù)學(xué)學(xué)習(xí)經(jīng)驗(yàn),顯然,比較結(jié)果可能有三種:S1>S2;S1=S2;S1<S2。雖然有三種結(jié)果,但它們不可能同時(shí)出現(xiàn),又由于PLC不可能直接開(kāi)口告訴我們結(jié)果,所以它就用了三個(gè)連續(xù)編號(hào)的位元件對(duì)三種結(jié)果加以區(qū)分,其中D·是三個(gè)連續(xù)位元件的首址。也就是說(shuō),終址D占用了3個(gè)點(diǎn),且它的適用軟元件為位元件(Y、M、S)。
另外,源址S1、S2均為字元件,畢竟要存數(shù)據(jù),且源址S1、S2與終址D都可用于變址尋址。從上圖的指令梯形圖可以看到,當(dāng)驅(qū)動(dòng)條件X0=ON時(shí),S1、S2相互比較,若S1>S2,則D=ON;若S1=S2,則D+1=ON;若S1<S2,則D+2=ON。
如執(zhí)行指令CMP D0 K10 M0表示:將數(shù)據(jù)寄存器D0中的內(nèi)容與常數(shù)K10進(jìn)行比較,若D0的內(nèi)容(D0)>K10,M0接通;若D0的內(nèi)容(D0)=K10,M1接通,若D0的內(nèi)容(D0)<K10,M2接通。
顯然,在CMP指令中,終址雖然只給出了首址D,但是D+1、D+2兩個(gè)拖油瓶也被指令占用,不能再用于其他地方。
指令被執(zhí)行后,即使驅(qū)動(dòng)條件斷開(kāi),保存結(jié)果的D、D+1、D+2仍然保持當(dāng)前狀態(tài),不會(huì)自動(dòng)復(fù)位。想要它們復(fù)位,可以應(yīng)用復(fù)位指令RST或批量復(fù)位指令ZRST。
二、ZCP指令
ZCP指令也是比較指令,但它是區(qū)間比較指令,比CMP指令略顯麻煩。
從ZCP指令和CMP指令的梯形圖中,可以看到,ZCP指令比CMP指令多了一個(gè)源址S·,這個(gè)S·就是ZCP指令的主角,它到底有什么含義呢?我們接著往下看。
ZCP指令是區(qū)間比較指令,所謂區(qū)間,就是一個(gè)數(shù)據(jù)范圍。例如我們考試,將成績(jī)劃分為3個(gè)區(qū)間:0-59分為不及格,60-80分為良好,81-100分為優(yōu)秀。ZCP指令也將數(shù)據(jù)劃分為3個(gè)區(qū)間,分界點(diǎn)分別為S1、S2,而S就是被用于比較的主角,例如我們每個(gè)人所考的成績(jī)。終址D的含義類(lèi)似于CMP指令中的D,也是用于反饋比較結(jié)果,占用3點(diǎn):D、D+1、D+2。
類(lèi)似于CMP指令,在ZCP指令中,當(dāng)驅(qū)動(dòng)條件成立時(shí),將源址S數(shù)據(jù)分別與源址S1、S2數(shù)據(jù)進(jìn)行比較,若比較結(jié)果S<S1,則D接通;若S1≤S≤S2,則D+1接通;若S>S2,則D+2接通。
例如執(zhí)行指令ZCP K60 D0 K100 M0表示:若數(shù)據(jù)寄存器D0的內(nèi)容(D0)<K60,則M0接通,若K60≤(D0)≤K100,則M1接通;若(D0)>K100,則M2接通。
源址S1與S2除了可以是常數(shù)外,還可以是各種字元件,但在這里要注意的一點(diǎn)是:ZCP指令在正常執(zhí)行的情況下,S1<S2,也就是說(shuō),S1所存的數(shù)據(jù)應(yīng)小于S2所存的數(shù)據(jù),若S1>S2,PLC就會(huì)把S2作為S1處理。例如在ZCP D10 D11 D12 Y0中,D10內(nèi)存的數(shù)據(jù)為K10,D11所存的數(shù)據(jù)為K8,此時(shí)若D12所存的數(shù)據(jù)為K8或K9,D12都是M0接通。
和CMP指令一樣,執(zhí)行ZCP指令后,若驅(qū)動(dòng)條件斷開(kāi),終址D、D+1、D+2的狀態(tài)依然保持不變,可以用復(fù)位指令RST或批量復(fù)位指令ZRST對(duì)它們復(fù)位。
無(wú)論是CMP指令還是ZCP指令,它們都是字元件數(shù)據(jù)的比較,且比較結(jié)果用終址相對(duì)應(yīng)的3個(gè)位元件接通來(lái)區(qū)分。除此之外,三菱FX PLC 2N中還有觸點(diǎn)比較指令,什么是觸點(diǎn)比較指令?它們與CMP指令和ZCP指令又有什么區(qū)別呢?接下來(lái)我們繼續(xù)走進(jìn)觸點(diǎn)比較指令的世界。
三、觸點(diǎn)比較指令
觸點(diǎn)只有兩種狀態(tài)(ON或OFF),在梯形圖中,所用到的觸點(diǎn)都是位元件的觸點(diǎn),如X、Y、M等,常常作為驅(qū)動(dòng)條件使用。
類(lèi)似的,觸點(diǎn)比較指令等同于一個(gè)常開(kāi)觸點(diǎn),且這個(gè)常開(kāi)觸點(diǎn)的狀態(tài)(ON或OFF)由指令的兩個(gè)源址S1、S2的數(shù)據(jù)比較結(jié)果所決定。結(jié)合上文的CMP指令和ZCP指令,可以發(fā)現(xiàn),觸點(diǎn)比較指令所等同的常開(kāi)觸點(diǎn)的作用其實(shí)和CMP指令和ZCP指令的終址位元件的作用一樣。
既然觸點(diǎn)比較指令等同于一個(gè)常開(kāi)觸點(diǎn),那么它就可以像一般觸點(diǎn)那樣,和其他觸點(diǎn)相串或相并,或者作為驅(qū)動(dòng)條件單獨(dú)使用。根據(jù)應(yīng)用方式的不同,可以將觸點(diǎn)比較指令分為起始觸點(diǎn)比較指令、串接觸點(diǎn)比較指令、并接觸點(diǎn)比較指令三種。
1、起始觸點(diǎn)比較指令
所謂“起始”,是指這指令與母線(xiàn)相連接,以“LD”開(kāi)頭,其用法類(lèi)似于“LD(取)”指令。起始觸點(diǎn)比較指令一共有6個(gè),如下圖所示。
從上圖可見(jiàn),起始觸點(diǎn)比較指令有6個(gè)是因?yàn)閮蓚(gè)源址S1、S2的比較結(jié)果可以分為6種情況。其中S1≠S2不能直接輸入“≠”符號(hào),而是輸入“<>”,同樣的,大于等于符號(hào)“≥”應(yīng)用“>=”符號(hào)表示,小于等于符號(hào)“≤”應(yīng)用“<=”符號(hào)表示。
在編程時(shí)直接輸入對(duì)應(yīng)助記符即可,例如輸入“LD= D1 D2”,其梯形圖如下圖所示。另外,大家從下圖可以發(fā)現(xiàn),輸入“LD= D1 D2”后回車(chē),“LD”兩個(gè)字母不會(huì)顯示。
2、串接觸點(diǎn)比較指令
串接觸點(diǎn)比較指令和起始觸點(diǎn)比較指令的區(qū)別只在于,串接觸點(diǎn)比較指令以“AND”開(kāi)頭,而起始觸點(diǎn)比較指令以“LD”開(kāi)頭。
所謂“串接”,是指串接觸點(diǎn)比較指令只能與其他觸點(diǎn)串聯(lián)使用,不能直接與母線(xiàn)相連。類(lèi)似于起始觸點(diǎn)比較指令,也有6種形式,如下圖所示。
其功能號(hào)為232~238,但沒(méi)有235,這在其觸點(diǎn)比較指令中也是類(lèi)似的,從224~230,卻沒(méi)有227,別問(wèn)我為什么,因?yàn)槲乙膊恢纞
串接觸點(diǎn)比較指令的編程類(lèi)似于起始觸點(diǎn)比較指令,在輸入完畢后“AND”字母不會(huì)顯示。那么問(wèn)題來(lái)了,若是只看梯形圖,我們?cè)趺粗肋@是起始的還是串接的呢?
其實(shí),在用觸點(diǎn)比較指令與其他觸點(diǎn)串接時(shí),也是可以用起始觸點(diǎn)比較指令的,不相信的話(huà)大家可以用編程軟件試試,親測(cè)有效。但串接觸點(diǎn)比較指令不能用作起始觸點(diǎn)比較指令,也就是不能與母線(xiàn)相連。
3、并接觸點(diǎn)比較指令
所謂“并接”,就是并接觸點(diǎn)比較指令在編寫(xiě)完畢后,直接與其他觸點(diǎn)并接,所以該指令必須在有其他觸點(diǎn)與之并接的情況下才能編寫(xiě)。
如上圖所示,若上一行對(duì)應(yīng)位置沒(méi)有觸點(diǎn),則并接觸點(diǎn)比較指令不能正常使用。同樣的,并接觸點(diǎn)比較指令也有6個(gè),且其功能號(hào)也不連續(xù),簡(jiǎn)直是奇了怪。
并接觸點(diǎn)比較指令在編寫(xiě)完畢后,字母“OR”同樣不顯示,且串接觸點(diǎn)比較指令可以用起始觸點(diǎn)比較指令替代使用,只不過(guò)在編寫(xiě)時(shí)多兩步豎線(xiàn)輸入。
至此,這次的學(xué)習(xí)分享內(nèi)容我覺(jué)得是這么多次以來(lái)最簡(jiǎn)單的一次了,簡(jiǎn)單易懂,且用法都是大同小異。所以,在此我也不啰嗦什么,希望這次的分享能對(duì)大家有所幫助!
注:本文章內(nèi)容都是基于三菱FX PLC 2N所寫(xiě)