當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動(dòng)化控制 > PLC可編程控制器
發(fā)布日期:2022-04-26 點(diǎn)擊率:364 品牌:歐姆龍_Omron
除基本邏輯指令外,OMRON公司C系列plc還有若干條功能指令,或稱專用指令。因機(jī)型不同所使用的功能指令數(shù)量也不同,如C20P~C60P有功能指令25條,C500有功能指令56條,C200H有功能指令133條,C1000H、C2000H有功能指令162條。檔次越高,功能指令數(shù)越多,因而控制功能越強(qiáng)。
與基本指令不同,功能指令在編程器上沒有與其對(duì)應(yīng)的專用鍵,輸入功能指令時(shí),先按下FUN鍵,然后輸入功能代碼。不同的功能代碼有不同的助記符,以實(shí)現(xiàn)不同的功能。
1、程序結(jié)束指令END(FUN 01)
END指令在梯形圖中的符號(hào)如圖1所示。

圖1 END指令在梯形圖中的符號(hào)
在程序結(jié)束時(shí),必須使用END指令。一般P型機(jī)對(duì)用戶程序的掃描范圍為:從0000到1193步循環(huán)掃描,加入END指令可使程序只在0000~END之間循環(huán)掃描,縮短了循環(huán)周期。另外,在程序調(diào)試時(shí)利用END指令分段調(diào)試,使調(diào)試程序變得簡單方便。
2、分支開始指令I(lǐng)L(FUN 02)和分支結(jié)束指令I(lǐng)LC(FUN 03)
IL和ILC指令在梯形圖中的符號(hào)如圖2所示。

圖2 IL和ILC指令在梯形圖中的符號(hào)
如果梯形圖中出現(xiàn)具有分支的多路輸出程序,且分支電路后的每個(gè)輸出支路至少有一個(gè)串聯(lián)觸點(diǎn)時(shí),可用分支開始指令I(lǐng)L編程,分支結(jié)束時(shí)用ILC指令使IL指令復(fù)位,回到前一級(jí)邏輯母線。IL指令和ILC指令在程序中要求配合使用,但也允許在不會(huì)引起程序混亂的前提下用一個(gè)ILC和多個(gè)IL配合使用,此時(shí)在執(zhí)行程序檢查時(shí)會(huì)在編程器上顯示出錯(cuò)提示“IL-ILC ERR”,但這個(gè)錯(cuò)誤不會(huì)影響程序的正常執(zhí)行。
當(dāng)IL的條件為OFF時(shí),IL和ILC之間的各繼電器狀態(tài)為:輸出繼電器、 輔助繼電器斷開,定時(shí)器復(fù)位,計(jì)數(shù)器、保持繼電器、鎖存繼電器保持原狀態(tài)不變。當(dāng)IL的條件為ON時(shí),IL和ILC之間的各繼電器正常工作。
在梯形圖程序中,允許出現(xiàn)多重分支程序,即分支嵌套。在小型PLC中,允許進(jìn)行分支嵌套的次數(shù)不應(yīng)超過8次。圖3所示是一個(gè)含有三重分支的程序。
圖3中,在分支處形成一個(gè)新的邏輯母線,因此從這個(gè)新邏輯母線開始的指令都要用LD或LD NOT指令。如0000為OFF,0501、0502、0503和0504均為OFF,CNT02正常工作……如0000為ON,且0001或0004為ON、0002或0005為ON時(shí),程序正常執(zhí)行。當(dāng)0000為OFF時(shí),不滿足執(zhí)行條件,IL~ILC間的程序不被執(zhí)行,由此可以看出來采用IL~ILC編程比采用暫存繼電器TR可以使程序更加簡練。

圖3 IL和ILC指令
3、跳轉(zhuǎn)開始指令JMP(FUN 04)和跳轉(zhuǎn)結(jié)束指令JME(FUN05)
JMP和JME指令在梯形圖中的符號(hào)如圖4所示。
如果JMP的條件為ON時(shí),程序正常執(zhí)行,即相當(dāng)于沒有JMP和JME指令。如果JMP的條件為OFF,則執(zhí)行跳轉(zhuǎn),即不執(zhí)行JMP~JME間的程序。
圖5中,如1001為ON,程序執(zhí)行順序?yàn)锳→B→C,否則為A→C。

圖4 JMP和JME指令在梯形圖中的符號(hào)

圖5 跳轉(zhuǎn)指令
如果JMP的條件為OFF,JMP~JME間的各繼電器狀態(tài)為:輸出繼電器、輔助繼電器、保持繼電器、鎖存繼電器保持跳轉(zhuǎn)前的狀態(tài)不變。定時(shí)器復(fù)位,停止計(jì)時(shí)。計(jì)數(shù)器中斷計(jì)數(shù),保持跳轉(zhuǎn)前的計(jì)數(shù)值不變。
圖6中,當(dāng)1000為ON時(shí),程序正常執(zhí)行。當(dāng)1000為OFF時(shí),開始跳轉(zhuǎn),直接執(zhí)行JME之后的程序。在此期間,無論1001是ON或OFF,0500均保持跳轉(zhuǎn)前的ON/OFF狀態(tài)不變;定時(shí)器TIM00復(fù)位停止工作,即使1002為ON,TIM00也不會(huì)工作;計(jì)數(shù)器CNT03則中斷計(jì)數(shù),保持跳轉(zhuǎn)前的計(jì)數(shù)值不變。

圖6 JMP和JME指令
與分支指令一樣,JMP和JME一般也要求配合使用,也允許不超過8次的嵌套。也允許多個(gè)JMP和一個(gè)JME配合使用(此時(shí)程序檢查時(shí)會(huì)在編程器上出現(xiàn)“JMPJMP ERR”,但不影響程序正常運(yùn)行)。
4、鎖存器指令KEEP(FUN 11)
KEEP指令在梯形圖中的符號(hào)如圖7所示。

圖7 KEEP指令在梯形圖中的符號(hào)
XXXX為繼電器號(hào),可使用的繼電器有輸出繼電器、 內(nèi)部輔助繼電器和保持繼電器。S端為置“1”輸入端,如果S端為ON,則繼電器XXXX得電并自鎖。R端為置“0”輸入端(即復(fù)位端),如果R端為ON,則繼電器XXXX解除自鎖(失電)。當(dāng)R端和S端同時(shí)出現(xiàn)信號(hào)時(shí),復(fù)位優(yōu)先。
KEEP指令可以使一個(gè)普通的繼電器具有鎖存功能,稱之為鎖存繼電器。利用KEEP指令很容易實(shí)現(xiàn)類似繼電器控制線路中的自鎖(或自保持)功能,如圖8中0002為ON時(shí),0500變?yōu)镺N并自保持,即使0002由ON變?yōu)镺FF,只要0003為OFF,0500始終為ON。如果0003為ON,0500就變?yōu)镺FF。圖8(b)的作用與圖8(a)相同。

圖8 KEEP指令
KEEP指令具有自鎖功能,但必須注意的是KEEP指令本身并無掉電保持功能,圖8(a)中如程序運(yùn)行中電源掉電時(shí),0500將變?yōu)镺FF,如欲在電源發(fā)生故障后又恢復(fù)送電時(shí)電路的狀態(tài)保持不變,可用保持繼電器作為鎖存器。圖9所示的報(bào)警電路中,0002、0003和0004為報(bào)警條件,0005為報(bào)警解除,輸出端子0500接報(bào)警設(shè)備。

圖9 KEEP指令的應(yīng)用
5、前沿微分指令DIFU(FUN 13)和后沿微分指令DIFD(FUN 14)
DIFU和DIFD指令在梯形圖中的符號(hào)如圖10所示。

圖10 DIFU和DIFD指令在梯形圖中的符號(hào)
XXXX為繼電器號(hào),DIFU和DIFD指令可使用的繼電器為輸出繼電器、內(nèi)部輔助繼電器和保持繼電器。
DIFU指令的功能是在滿足條件的輸入信號(hào)前沿,使指定的繼電器ON一個(gè)掃描周期。DIFD指令的功能是在滿足條件的輸入信號(hào)后沿,使指定的繼電器ON一個(gè)掃描周期。DIFU和DIFD指令在一個(gè)程序中最多可使用的數(shù)量都是48個(gè)。
圖11說明了DIFU和DIFD的工作情況。

圖11 DIFU和DIFD
6、移位寄存指令SFT(FUN 10)
SFT指令在梯形圖中的符號(hào)如圖12所示。
IN端為數(shù)據(jù)輸入端,CP端為脈沖輸入端,R端為復(fù)位輸入端。
SFT指令的功能相當(dāng)于一個(gè)串行輸入移位寄存器,其功能是將從首通道到末通道的n個(gè)通道的n×16 位數(shù)據(jù)按位移位。

圖12 SFT指令在梯形圖中的符號(hào)
SFT指令可使用的通道可以是輸出繼電器、內(nèi)部輔助繼電器和保持繼電器通道。首通道和末通道可以是同一個(gè)通道,也可以不是同一通道(此時(shí)要求首通道號(hào)小于末通道號(hào),且要保證首通道和末通道是同一類通道)。
用SFT指令編程時(shí)必須按數(shù)據(jù)輸入、移位脈沖輸入、復(fù)位輸入、SFT、首通道號(hào)、末通道號(hào)的順序進(jìn)行編程。數(shù)據(jù)移位是由脈沖輸入CP端控制,CP端每由OFF→ON一次(即在移位脈沖輸入的上升沿),從首通道至末通道的所有“位”均將自己的數(shù)據(jù)(0或1)傳給下一“位”,首通道的第一位(即首通道的第00位)的狀態(tài)取決于移位脈沖的上升沿所對(duì)應(yīng)的數(shù)據(jù)輸入IN端的狀態(tài),即在移位脈沖輸入的上升沿所對(duì)應(yīng)的時(shí)刻,如果IN端為ON,則首通道的第00位也為ON,否則為OFF。當(dāng)復(fù)位輸入R端變?yōu)镺N時(shí),所有被移位通道中的數(shù)據(jù)同時(shí)被置“0”。如果移位通道是保持繼電器通道,則電源掉電時(shí)通道中的內(nèi)容保持不變。
圖13中,在復(fù)位輸入0503為OFF時(shí),0500(即首通道的第一位)的狀態(tài)取決于數(shù)據(jù)輸入IN(即1000),其它各位在每個(gè)時(shí)鐘脈沖CP的上升沿依次移位。在復(fù)位輸入0503為ON時(shí),所有位均被置“0”。

圖13 SFT指令
7、通道移位指令WSFT(FUN 16)
WSFT指令在梯形圖中的符號(hào)如圖14所示。

圖14 WSFT指令在梯形圖中的指令
WSFT是通道移位指令,也稱為并行移位指令,它以通道(16位)為單位進(jìn)行移位,所以必須設(shè)置兩個(gè)數(shù)據(jù):開始通道號(hào)D1和結(jié)束通道號(hào)D2。WSFT可使用的通道為輸出繼電器通道、 內(nèi)部輔助繼電器通道、保持繼電器通道及數(shù)據(jù)存儲(chǔ)通道。開始通道和結(jié)束通道必須是同一類通道,并要保證開始通道號(hào)小于結(jié)束通道號(hào)。(版權(quán)所有)當(dāng)移位條件變?yōu)镺N時(shí),CPU每掃描一次程序就執(zhí)行一次WSFT指令,進(jìn)行一次通道移位,執(zhí)行WSFT時(shí),開始通道的內(nèi)容移到其下一通道(同時(shí)開始通道的內(nèi)容變?yōu)?),下一通道的內(nèi)容又移到其下一通道……結(jié)束通道的內(nèi)容被其上一通道覆蓋。如果只想執(zhí)行一次通道移位操作,應(yīng)該使用DIFU或DIFD命令?!∪鐖D15所示。

圖15 WSFT指令
圖15中,設(shè)在執(zhí)行WSFT指令之前10、11和12通道的內(nèi)容分別為:

8、十進(jìn)制→二進(jìn)制轉(zhuǎn)換指令BIN(FUN 23)和二進(jìn)制→十進(jìn)制轉(zhuǎn)換指令BCD(FUN 24)
BIN和BCD指令在梯形圖中的符號(hào)如圖16所示。

圖16 BIN和BCD指令在梯形圖中的符號(hào)
BIN指令的功能是將源通道S中的4位十進(jìn)制數(shù)(BCD碼)轉(zhuǎn)換成16位二進(jìn)制數(shù),再存放到目的通道D中。
BCD指令的功能是將源通道S中的16位二進(jìn)制數(shù)轉(zhuǎn)換成4位十進(jìn)制數(shù)(BCD碼),存放到目的通道D中去。
BIN和BCD指令可使用的源通道為:輸入繼電器通道、輸出繼電器通道、定時(shí)器/計(jì)數(shù)器通道、保持繼電器通道和數(shù)據(jù)存儲(chǔ)器通道,可使用的目的通道為:輸出繼電器通道、保持繼電器通道和數(shù)據(jù)存儲(chǔ)器通道。執(zhí)行BIN或BCD指令時(shí),如轉(zhuǎn)換的結(jié)果為“0”,則1906為ON。
圖17所示是當(dāng)0002為ON時(shí),將10通道中的4位十進(jìn)制數(shù)(BCD碼形式)轉(zhuǎn)換為16位二進(jìn)制數(shù),存放到HR1通道中去。如執(zhí)行BIN指令前10通道存放的數(shù)據(jù)為3721(見表1),則執(zhí)行BIN指令后HR1如表2所示。

圖17 BIN指令

表1 CH10
表2 HR1
9、比較指令CMP(FUN 20)
CMP指令在梯形圖中的符號(hào)如果18所示。

圖18 CMP指令在梯形圖中的符號(hào)
CMP為比較指令,其功能是將一個(gè)通道的內(nèi)容或一個(gè)4位十六進(jìn)制常數(shù)(S1)與另一個(gè)通道的內(nèi)容或4位十六進(jìn)制常數(shù)(S2)進(jìn)行比較。S1和S2中至少要有一個(gè)是通道內(nèi)容,不能兩個(gè)都是常數(shù)。
CMP指令可使用的通道或常數(shù)為輸入/輸出繼電器通道、 內(nèi)部輔助繼電器通道、保持繼電器通道、定時(shí)器/計(jì)數(shù)器通道數(shù)據(jù)存儲(chǔ)通道及0000~FFFF的常數(shù)。
比較后,如果S1>S2,則專用內(nèi)部輔助繼電器1905為ON;如果S1=S2,則專用內(nèi)部輔助繼電器1906為ON;如果S1<S2,則專用內(nèi)部輔助繼電器1907為ON。
圖19說明了一個(gè)將定時(shí)器的當(dāng)前值與一個(gè)通道的內(nèi)容相比較的例子。

圖19 CMP指令
10、傳送指令MOV(FUN 21)和取反傳送指令MVN(FUN 22)
MOV和MVN指令在梯形圖中的符號(hào)如圖20所示。
MOV指令將源通道S中的內(nèi)容或一個(gè)4位十六進(jìn)制常數(shù)傳送到目的通道D中去;而MVN指令則是先將源通道S中的內(nèi)容取反后(即0→1,1→0)再傳送到目的通道中去。MOV及MVN指令使用的通道和常數(shù)如表3所示。

圖20 MOV和MVN指令在梯形圖中的符號(hào)

表3 MOV及MVN指令使用的通道和常數(shù)
執(zhí)行MOV指令時(shí),如果源通道S中的內(nèi)容全為“0”,或執(zhí)行MVN指令時(shí)源通道S中的內(nèi)容全為“1”,則專用內(nèi)部輔助繼電器1906(零標(biāo)志)為ON。
圖21中,當(dāng)0002為ON時(shí),CPU每掃描一次程序,就執(zhí)行一次MOV及MVN指令,如果希望0002每得電(ON)一次只進(jìn)行一次傳送,應(yīng)使用DIFU或DIFD指令。

圖21 MOV、MVN指令
應(yīng)用傳送指令還可以實(shí)現(xiàn)在程序運(yùn)行時(shí)改變定時(shí)器和計(jì)數(shù)器的設(shè)定值(此時(shí)通道內(nèi)容必須是4位BCD碼,否則1903為ON,使MOV指令不能執(zhí)行),如圖22所示。

圖22 用MOV指令改變定時(shí)器的設(shè)定值
圖22所示是把HR1通道的內(nèi)容作為定時(shí)器TIM01的設(shè)定值,當(dāng)0002為ON時(shí),TIM01的設(shè)定值為10 s,10 s后輸出繼電器0500變?yōu)镺N。當(dāng)0003為ON時(shí),TIM01的設(shè)定值為30 s,30 s 之后0500變?yōu)镺N。如果0002和0003同時(shí)為ON,TIM01不動(dòng)作。
11、置進(jìn)位標(biāo)志指令STC(FUN 40)和清進(jìn)位標(biāo)志指令CLC(FUN 41)
STC和CLC指令在梯形圖中的符號(hào)如圖23所示。
STC指令把進(jìn)位標(biāo)志1904置為ON。
CLC指令把進(jìn)位標(biāo)志1904置為OFF。在執(zhí)行ADD和SUB指令前需用CLC指令對(duì)進(jìn)位標(biāo)志位進(jìn)行清零。

圖23 STC和CLC指令在梯形圖中的符號(hào)
12. 加法指令A(yù)DD(FUN 30)和減法指令SUB(FUN 31)
ADD和SUB指令在梯形圖中的符號(hào)如圖24所示。

圖24 ADD和SUB指令在梯形圖中的符號(hào)
加法指令A(yù)DD用于兩個(gè)4位數(shù)的相加,即將被加數(shù)通道S1中的內(nèi)容加上加數(shù)通道S2中的內(nèi)容或一個(gè)常數(shù),其結(jié)果送到和通道D。
減法指令SUB用于兩個(gè)4位數(shù)的相減,即將被減數(shù)通道S1中的內(nèi)容減去減數(shù)通道S2中的內(nèi)容或一個(gè)常數(shù),其結(jié)果送到差通道D。
ADD及SUB指令使用的通道和常數(shù)如表4所示。

表4 ADD及SUB指令使用的通道和常數(shù)
使用ADD及SUB指令時(shí)應(yīng)注意如下問題:
(1)要求通道內(nèi)容須為BCD碼,否則1903變?yōu)镺N,ADD及SUB指令不能執(zhí)行。
(2)在執(zhí)行ADD或SUB指令前,必須先用CLC指令對(duì)進(jìn)(借)位標(biāo)志位1904進(jìn)行清零,否則進(jìn)位標(biāo)志位也要參加運(yùn)算。
(3)ADD和SUB指令都是在條件滿足時(shí)CPU每掃描程序一次就執(zhí)行一次,如果要求只執(zhí)行一次加、 減法操作,應(yīng)使用DIFU或DIFD指令。
兩個(gè)4位數(shù)相加后,其結(jié)果可能是4位或5位數(shù),如果進(jìn)位標(biāo)志位(1904)為ON,則其和為5位數(shù),可用傳送指令MOV將進(jìn)位標(biāo)志位存放待用,如圖25所示。

圖25 ADD指令及進(jìn)位
在執(zhí)行SUB指令時(shí),如差值為負(fù),則D通道的內(nèi)容為差值的反碼。為得到差值的原碼,可再執(zhí)行一次用常數(shù)0000減去差值反碼的減法操作,其結(jié)果仍可以送到D通道中。
在圖26中,如果12通道的內(nèi)容為1234,則SUB指令的執(zhí)行過程見右圖。

圖26 MLPX和DMPX指令在梯形圖中的符號(hào)
13、譯碼指令MLPX(FUN 76)和編碼指令DMPX(FUN 77)
MLPX和DMPX指令在梯形圖中的符號(hào)如圖27所示。

圖27 MLPX和DMPX指令在梯形圖中的符號(hào)
MLPX指令的功能是將源通道S中的4位十六進(jìn)制數(shù)的一位或幾位進(jìn)行譯碼,其結(jié)果送到目的通道D的對(duì)應(yīng)位上去。MLPX指令可使用的通道和常數(shù)如表6-10所示。

表5 MLPX指令可使用的通道和常數(shù)
在MLPX指令中的數(shù)字目標(biāo)使用一個(gè)4位數(shù),只有低2位有效。最低位表示從源通道S的第幾位數(shù)字位開始譯碼:0、1、2、3表示從第0、1、2、3位開始譯碼。次低位表示需要譯碼的位數(shù):0、1、2、3分別表示要譯1、2、3、4位。如數(shù)字目標(biāo)為0023,則表示從源通道S的第3位開始譯碼,共譯3位,它們分別是第3位、第0位、第1位。如果要求譯碼的位數(shù)多于1位,則存放譯碼結(jié)果的目的通道D也應(yīng)多于1個(gè),在程序中的目的通道D僅為存放第一個(gè)譯碼結(jié)果的通道號(hào),其它位的譯碼結(jié)果依次存放到通道D+1,D+2,…中。在MLPX指令中,由數(shù)字目標(biāo)指定的源通道和目的通道的對(duì)應(yīng)關(guān)系見圖28。

圖28 MLPX指令中源通道和目的通道的對(duì)應(yīng)關(guān)系
圖28中,如果10通道中的內(nèi)容為18A5,其執(zhí)行過程如圖29所示。

圖29 MLPX指令

圖30 MLPX指令的執(zhí)行過程
DMPX指令的功能是把源通道S中內(nèi)容為ON的最高一位是第幾位,編為4位二進(jìn)制數(shù)傳送到目的通道D中由數(shù)字目標(biāo)指定的位置中去。DMPX指令可使用的通道及常數(shù)同MLPX指令。
DMPX指令中的數(shù)字目標(biāo)為一個(gè)4位數(shù),低2位有效。最低位表示從目的通道D中的哪一位開始存放編碼結(jié)果:0、1、2、 3分別表示從通道D中的第0、1、2、3位開始存放編碼結(jié)果。(版權(quán)所有)次低位表示要被編碼的源通道個(gè)數(shù):0、1、2、3分別表示有1、 2、3、4個(gè)源通道要被編碼。當(dāng)多于1個(gè)源通道要被編碼時(shí),程序中的源通道號(hào)S表示相鄰幾個(gè)通道的第一個(gè)源通道。由數(shù)字目標(biāo)指定的源通道和目的通道的對(duì)應(yīng)關(guān)系見圖31。

圖31 DMPX指令中源通道和目的通道的對(duì)應(yīng)關(guān)系
圖32中,如執(zhí)行DMPX指令前10通道和11通道的內(nèi)容分別為018A和196F,編碼指令的工作情況見圖33,目的通道中未被編碼的位保持其原狀態(tài)不變。

圖32 DMPX指令

圖33 DMPX指令的執(zhí)行過程
14、空操作指令NOP(FUN 00)
NOP指令是讓該步序或當(dāng)前指令不起作用的空操作指令。預(yù)先在程序中設(shè)置NOP指令,在修改和增加指令時(shí),可使步序號(hào)的更改減到最低程度,也可以用NOP指令取代已寫入的指令來修改程序。
下一篇: PLC、DCS、FCS三大控
上一篇: MATLAB和Simulink在航