功能指令又稱專用指令,歐姆龍cpm1a系列plc提供的功能指令主要用來(lái)實(shí)現(xiàn)程序控制,數(shù)據(jù)處理和算術(shù)運(yùn)算等。這類指令在簡(jiǎn)易編程器上一般沒(méi)有對(duì)應(yīng)的指令鍵,只是為每個(gè)指令規(guī)定了一個(gè)功能代碼,用兩位數(shù)字表示。在輸入這類指令時(shí)先按下“fun”鍵,再按下相應(yīng)的代碼。下面將介紹部分常用的功能指令。
1.空操作指令nop(0 0)
本指令不作任何的邏輯操作,故稱空操作,也不使用繼電器,無(wú)須操作數(shù)。該指令應(yīng)用在程序中留出一個(gè)地址,以便調(diào)試程序時(shí)插入指令,還可用于微調(diào)掃描時(shí)間。
2.結(jié)束指令end(01)
本指令單獨(dú)使用,無(wú)須操作數(shù),是程序的最后一條指令,表示程序到此結(jié)束。plc在執(zhí)行用戶程序時(shí),當(dāng)執(zhí)行到end指令時(shí)就停止執(zhí)行程序階段,轉(zhuǎn)入執(zhí)行輸出刷新階段。如果程序中遺漏end指令,編程器執(zhí)行時(shí)則會(huì)顯示出錯(cuò)信號(hào):“no end inset”:當(dāng)加上end指令后,plc才能正常運(yùn)行。本指令也可用來(lái)分段調(diào)試程序。
3.互鎖指令il(02)和互鎖清除指令ilc(0 3)
這兩條指令不帶操作數(shù),il指令為互鎖條件,形成分支電路,即新母線以便與ld指令連用,表示互鎖程序段的開始;ilc指令表示互鎖程序段結(jié)束。
互鎖指令il和互鎖清除指令ilc用來(lái)在梯形圖的分支處形成新的母線,使某一部分梯形圖受到某些條件的控制。il和ilc指令應(yīng)當(dāng)成對(duì)配合使用,否則出錯(cuò)。il/ilc指令的功能是:如果控制il的條件成立(即on),則執(zhí)行互鎖指令。若控制il的條件不成立(即off),則il與ilc之間的互鎖程序段不執(zhí)行,即位于il/ilc之間的所有繼電器均為off,此時(shí)所有定時(shí)器將復(fù)位,但所有的計(jì)數(shù)器,移位寄存器及保持繼電器均保持當(dāng)前值。
4.跳轉(zhuǎn)開始指令jmp(0 4)和跳轉(zhuǎn)結(jié)束指令jme(0 5)
這兩條指令不帶操作數(shù),jmp指令表示程序轉(zhuǎn)移的開始,jme指令表示程序轉(zhuǎn)移的結(jié)束。
jmp/jme指令組用于控制程序分支。當(dāng)jmp條件為off時(shí),程序轉(zhuǎn)去執(zhí)行jme后面的第一條指令;當(dāng)jmp的條件為on,則整個(gè)梯形圖按順序執(zhí)行,如同jmp/jme指令不存在一樣。
在使用jmp/jme指令時(shí)要注意,若jmp的條件為off,則jmp/jme之間的繼電器狀態(tài)為:輸出繼電器保持目前狀態(tài);定時(shí)器/計(jì)數(shù)器及移位寄存器均保持當(dāng)前值。另外jmp/jme指令應(yīng)配對(duì)使用,否則plc顯示出錯(cuò)。
5.逐位移位指令 sft(10)
又稱移位寄存器指令,本指令帶兩個(gè)操作數(shù),以通道為單位,第一個(gè)操作數(shù)為首通道號(hào)d1,第二個(gè)操作數(shù)為末通道號(hào)d2。所使用的繼電器有:000ch~019ch, 200ch~252ch, hr00~hr19。其功能相當(dāng)于一個(gè)串行輸入移位寄存器。
移位寄存器有數(shù)據(jù)輸入端(in)、移位時(shí)鐘端(cp)及復(fù)位端(r),必須按照輸入(in)、時(shí)鐘(cp)、復(fù)位(r)和sft指令的順序進(jìn)行編程。當(dāng)移位時(shí)鐘由off→on時(shí),將(d1~d2)通道的內(nèi)容,按照從低位到高位的順序移動(dòng)一位,最高位溢出丟失,最低位由輸入數(shù)據(jù)填充。當(dāng)復(fù)位端輸入on時(shí),參與移位的所有通道數(shù)據(jù)均復(fù)位,即都為off。
如果需要多于16位的數(shù)據(jù)進(jìn)行移位,可以將幾個(gè)通道級(jí)連起來(lái)。
移位指令在使用時(shí)須注意:起始通道和結(jié)束通道,必須在同一種繼電器中且起始通道號(hào)≤結(jié)束通道號(hào)。
6.鎖存指令keep(11)
本指令使用的操作數(shù)有:01000~01915、20000~25515、hr0000~hr1915,其功能相當(dāng)于鎖存器,當(dāng)置位端(s端)條件為on時(shí),keep繼電器一直保持on狀態(tài),即使s端條件變?yōu)閛ff,keep繼電器也還保持on,,直到復(fù)位端(r端)條件為on時(shí),才使之變off ,keep 指令主要用于線圈的保持,即繼電器的自鎖電路可用keep指令實(shí)現(xiàn)。若set端和res端同時(shí)為on,則keep繼電器優(yōu)先變?yōu)閛ff。鎖存繼電器指令編寫必須按置位行(s端),復(fù)位行(r端)和keep繼電器的順序來(lái)編寫。
7.前沿微分脈沖指令difu(13)和后沿微分脈沖指令difd(14)
本指令使用操作數(shù)有:01000~01915、20000~25515、hr0000~hr1915,difu的功能是在輸入脈沖的前(上升)沿使指定的繼電器接通一個(gè)掃描周期之后釋放,而difd的功能是在輸入脈沖的后(下降)沿使指定的繼電器接通一個(gè)掃描周期之后釋放。
8.快速定時(shí)器指令 timh(15)
本指令操作數(shù)占二行,一行為定時(shí)器號(hào)000~127(不得與tim或cnt重復(fù)使用同號(hào)),另一行為設(shè)定時(shí)間。設(shè)定的定時(shí)時(shí)間,可以是常數(shù),也可以由通道000ch~019ch,20000ch~25515ch,hr0000~hr1915中的內(nèi)容決定,但必須為四位bcd碼。其功能與基本指令中的普通定時(shí)器作用相似,唯一區(qū)別是timh定時(shí)精度為0. 01s,定時(shí)范圍為0~99.99s。
9.通道移位指令wsft(16)
又稱字移位指令,本指令是以字(通道)為單位的串行移位。操作數(shù)為首通道號(hào)d1,末通道號(hào)d2。可取000ch~019ch, 200ch~252ch, hr00~hr19。通道移位指令執(zhí)行時(shí),當(dāng)移位條件為on,wsft從首通道向末通道依此移動(dòng)一個(gè)字,原首通道16位內(nèi)容全部復(fù)位,原末通道中的16位內(nèi)容全部移出丟失。
wsft指令在使用時(shí)須注意:首通道和末通道必須是同一類型的繼電器;首通道號(hào)≤末通道號(hào)。
當(dāng)移位條件為on時(shí),cpu每掃描一次程序就執(zhí)行一次wsft指令。如只要程序執(zhí)行一次,則應(yīng)該用微分指令。
10.可逆計(jì)數(shù)器指令 cntr(12)
本指令的功能是對(duì)外部信號(hào)進(jìn)行加1或減1的環(huán)形計(jì)數(shù)。帶兩個(gè)操作數(shù):計(jì)數(shù)器號(hào)000~127,設(shè)定值范圍0000~9999,設(shè)定值可以用常數(shù),也可以用通道號(hào),用通道號(hào)時(shí),設(shè)定值為通道中的內(nèi)容。
11.比較指令cmp(20)
本指令的功能是將s(源通道)中的內(nèi)容與d(目標(biāo)通道)的內(nèi)容進(jìn)行比較,其比較結(jié)果送到plc的內(nèi)部專用繼電器25505、05506、25507中進(jìn)行處理后輸出,輸出狀態(tài)見表4-9。
表4-9 比較結(jié)果輸出專用繼電器狀態(tài)表
smr255052550625507
s>donoffoff
s=doffonoff
s,doffoffon
比較指令cmp用于將通道數(shù)據(jù)s與另一通道數(shù)據(jù)d中的十六進(jìn)制數(shù)或四位常數(shù)進(jìn)行比較,s和d中至少有一個(gè)是通道數(shù)據(jù)。
12.?dāng)?shù)據(jù)傳送指令 mov(21)和數(shù)據(jù)求反傳送指令movn(22)
這兩條指令都是用于數(shù)據(jù)的傳送。當(dāng)mov前面的狀態(tài)為0n時(shí),執(zhí)行mov指令,在每個(gè)掃描周期中把s中的源數(shù)據(jù)傳送到目標(biāo)d所指定的通道中去。當(dāng)mov前面的狀態(tài)為0ff時(shí),執(zhí)行movn指令,在每個(gè)掃描周期中把s中的源數(shù)據(jù)求反后傳送到目標(biāo)d所指定的通道中去。執(zhí)行傳送指令后,如果目標(biāo)通道d中的內(nèi)容全為零時(shí),則標(biāo)志位25506為on。
13.進(jìn)位置位指令stc(40)和進(jìn)位復(fù)位位指令clc(41)
這兩條指令的功能是將進(jìn)位標(biāo)志繼電器25504置位(即置on)或強(qiáng)制將進(jìn)位標(biāo)志繼電器25504復(fù)位(即置off)。當(dāng)這兩條指令前面狀態(tài)為on時(shí),執(zhí)行指令,否則不執(zhí)行。通常在執(zhí)行加、減運(yùn)算操作之前,先執(zhí)行clc指令來(lái)清進(jìn)位位,以確保運(yùn)算結(jié)果的正確。
14.加法指令add(30) 本指令是將兩個(gè)通道的內(nèi)容或一個(gè)通道的內(nèi)容與一個(gè)常數(shù)相加(帶進(jìn)位位),再把結(jié)果送至目標(biāo)通道d。操作數(shù)中被加數(shù)s1、加數(shù)s2、運(yùn)算結(jié)果d的內(nèi)容見表4-10。
表4-10 加法指令的操作數(shù)內(nèi)容
s1/s2000~019ch200~231chhr00~hr19tim/cnt000~127dm0000~1023
dm6144~6655四位
常數(shù)
d010~019ch200~231chhr00~hr19—dm0000~1023—
注:dm6144~6655不能用程序?qū)懭耄ㄖ荒苡猛鈬O(shè)備設(shè)定)
說(shuō)明:執(zhí)行加法運(yùn)算前必須加一條清進(jìn)位標(biāo)志指令clc(41)參加運(yùn)算;被加數(shù)和加數(shù)必須是bcd數(shù),否則25503置on,不執(zhí)行add指令;若相加后結(jié)果有進(jìn)位,則進(jìn)位標(biāo)志繼電器25504為on;若和為零,則專用繼電器25506變?yōu)閛n。
15.減法指令sub(31)
本指令與add指令相似,是把兩個(gè)四位bcd數(shù)作帶借位減法,差值送入指定通道,其操作數(shù)同add指令。在編寫sub指令語(yǔ)言時(shí),必須指定被減數(shù),減數(shù)和差值的存放通道三個(gè)數(shù)
說(shuō)明:執(zhí)行減法運(yùn)算前必須加一條清進(jìn)位位指令clc(41);被減數(shù)和減數(shù)必須是bcd數(shù),否則25503置on,不執(zhí)行sub指令;若運(yùn)算結(jié)果有借位,則進(jìn)位標(biāo)志繼電器25504為on;若運(yùn)算結(jié)果為零,則專用繼電器25506變?yōu)閛n。
以上介紹是cpm1a系列plc一些常用的專用指令,還有一些未作介紹,c200h系列plc除了基本指令和cpm1a系列plc相同外,很多功能指令也相同,另外又增加了一些功能指令,讀者可以根據(jù)不同型號(hào)的plc按其使用功能的不同參閱使用手冊(cè)加以學(xué)習(xí)和掌握。