- 艾寶物聯IOBOV? ─ 工業無線測控專家
功能指令又稱專用指令,CPM1A系列PLC提供的功能指令主要用來實現程序控制,數據處理和算術運算等。這類指令在簡易編程器上一般沒有對應的指令鍵,只是為每個指令規定了一個功能代碼,用兩位數字表示。在輸入這類指令時先按下“FUN”鍵,再按下相應的代碼。下面將介紹部分常用的功能指令。
1.空操作指令NOP(0 0)
本指令不作任何的邏輯操作,故稱空操作,也不使用繼電器,無須操作數。該指令應用在程序中留出一個地址,以便調試程序時插入指令,還可用于微調掃描時間。
2.結束指令END(01)
本指令單獨使用,無須操作數,是程序的最后一條指令,表示程序到此結束。PLC在執行用戶程序時,當執行到END指令時就停止執行程序階段,轉入執行輸出刷新階段。如果程序中遺漏END指令,編程器執行時則會顯示出錯信號:“NO END INSET”:當加上END指令后,PLC才能正常運行。本指令也可用來分段調試程序。
3.互鎖指令IL(02)和互鎖清除指令ILC(0 3)
這兩條指令不帶操作數,IL指令為互鎖條件,形成分支電路,即新母線以便與LD指令連用,表示互鎖程序段的開始;ILC指令表示互鎖程序段結束。
互鎖指令IL和互鎖清除指令ILC用來在梯形圖的分支處形成新的母線,使某一部分梯形圖受到某些條件的控制。IL和ILC指令應當成對配合使用,否則出錯。IL/ILC指令的功能是:如果控制IL的條件成立(即ON),則執行互鎖指令。若控制IL的條件不成立(即OFF),則IL與ILC之間的互鎖程序段不執行,即位于IL/ILC之間的所有繼電器均為OFF,此時所有定時器將復位,但所有的計數器,移位寄存器及保持繼電器均保持當前值。
4.跳轉開始指令JMP(0 4)和跳轉結束指令JME(0 5)
這兩條指令不帶操作數,JMP指令表示程序轉移的開始,JME指令表示程序轉移的結束。
JMP/JME指令組用于控制程序分支。當JMP條件為OFF時,程序轉去執行JME后面的第一條指令;當JMP的條件為ON,則整個梯形圖按順序執行,如同JMP/JME指令不存在一樣。
在使用JMP/JME指令時要注意,若JMP的條件為OFF,則JMP/JME之間的繼電器狀態為:輸出繼電器保持目前狀態;定時器/計數器及移位寄存器均保持當前值。另外JMP/JME指令應配對使用,否則PLC顯示出錯。
5.逐位移位指令 SFT(10)
又稱移位寄存器指令,本指令帶兩個操作數,以通道為單位,第一個操作數為首通道號D1,第二個操作數為末通道號D2。所使用的繼電器有:000CH~019CH, 200CH~252CH, HR00~HR19。其功能相當于一個串行輸入移位寄存器。
移位寄存器有數據輸入端(IN)、移位時鐘端(CP)及復位端(R),必須按照輸入(IN)、時鐘(CP)、復位(R)和SFT指令的順序進行編程。當移位時鐘由OFF→ON時,將(D1~D2)通道的內容,按照從低位到高位的順序移動一位,最高位溢出丟失,最低位由輸入數據填充。當復位端輸入ON時,參與移位的所有通道數據均復位,即都為OFF。
如果需要多于16位的數據進行移位,可以將幾個通道級連起來。
移位指令在使用時須注意:起始通道和結束通道,必須在同一種繼電器中且起始通道號≤結束通道號。
6.鎖存指令KEEP(11)
本指令使用的操作數有:01000~01915、20000~25515、HR0000~HR1915,其功能相當于鎖存器,當置位端(S端)條件為ON時,KEEP繼電器一直保持ON狀態,即使S端條件變為OFF,KEEP繼電器也還保持ON,,直到復位端(R端)條件為ON時,才使之變OFF ,KEEP 指令主要用于線圈的保持,即繼電器的自鎖電路可用KEEP指令實現。若SET端和RES端同時為ON,則KEEP繼電器優先變為OFF。鎖存繼電器指令編寫必須按置位行(S端),復位行(R端)和KEEP繼電器的順序來編寫。
7.前沿微分脈沖指令DIFU(13)和后沿微分脈沖指令DIFD(14)
本指令使用操作數有:01000~01915、20000~25515、HR0000~HR1915,DIFU的功能是在輸入脈沖的前(上升)沿使指定的繼電器接通一個掃描周期之后釋放,而DIFD的功能是在輸入脈沖的后(下降)沿使指定的繼電器接通一個掃描周期之后釋放。
8.快速定時器指令 TIMH(15)
本指令操作數占二行,一行為定時器號000~127(不得與TIM或CNT重復使用同號),另一行為設定時間。設定的定時時間,可以是常數,也可以由通道000CH~019CH,20000CH~25515CH,HR0000~HR1915中的內容決定,但必須為四位BCD碼。其功能與基本指令中的普通定時器作用相似,唯一區別是TIMH定時精度為0. 01s,定時范圍為0~99.99s。
9.通道移位指令WSFT(16)
又稱字移位指令,本指令是以字(通道)為單位的串行移位。操作數為首通道號D1,末通道號D2??扇?/span>000CH~019CH, 200CH~252CH, HR00~HR19。通道移位指令執行時,當移位條件為ON,WSFT從首通道向末通道依此移動一個字,原首通道16位內容全部復位,原末通道中的16位內容全部移出丟失。
WSFT指令在使用時須注意:首通道和末通道必須是同一類型的繼電器;首通道號≤末通道號。
當移位條件為ON時,CPU每掃描一次程序就執行一次WSFT指令。如只要程序執行一次,則應該用微分指令。
10.可逆計數器指令 CNTR(12)
本指令的功能是對外部信號進行加1或減1的環形計數。帶兩個操作數:計數器號000~127,設定值范圍0000~9999,設定值可以用常數,也可以用通道號,用通道號時,設定值為通道中的內容。
11.比較指令CMP(20)
本指令的功能是將S(源通道)中的內容與D(目標通道)的內容進行比較,其比較結果送到PLC的內部專用繼電器25505、05506、25507中進行處理后輸出,輸出狀態見表4-9。
表4-9 比較結果輸出專用繼電器狀態表
SMR |
25505 |
25506 |
25507 |
S>D |
ON |
OFF |
OFF |
S=D |
OFF |
ON |
OFF |
S,D |
OFF |
OFF |
ON |
比較指令CMP用于將通道數據S與另一通道數據D中的十六進制數或四位常數進行比較,S和D中至少有一個是通道數據。
12.數據傳送指令 MOV(21)和數據求反傳送指令MOVN(22)
這兩條指令都是用于數據的傳送。當MOV前面的狀態為0N時,執行MOV指令,在每個掃描周期中把S中的源數據傳送到目標D所指定的通道中去。當MOV前面的狀態為0FF時,執行MOVN指令,在每個掃描周期中把S中的源數據求反后傳送到目標D所指定的通道中去。執行傳送指令后,如果目標通道D中的內容全為零時,則標志位25506為ON。
13.進位置位指令STC(40)和進位復位位指令CLC(41)
這兩條指令的功能是將進位標志繼電器25504置位(即置ON)或強制將進位標志繼電器25504復位(即置OFF)。當這兩條指令前面狀態為ON時,執行指令,否則不執行。通常在執行加、減運算操作之前,先執行CLC指令來清進位位,以確保運算結果的正確。
14.加法指令ADD(30) 本指令是將兩個通道的內容或一個通道的內容與一個常數相加(帶進位位),再把結果送至目標通道D。操作數中被加數S1、加數S2、運算結果D的內容見表4-10。
表4-10 加法指令的操作數內容
S1/S2 |
000~019CH |
200~231CH |
HR00~HR19 |
TIM/CNT000~127 |
DM0000~1023 DM6144~6655 |
四位 常數 |
D |
010~019CH |
200~231CH |
HR00~HR19 |
— |
DM0000~1023 |
— |
注:DM6144~6655不能用程序寫入(只能用外圍設備設定)
說明:執行加法運算前必須加一條清進位標志指令CLC(41)參加運算;被加數和加數必須是BCD數,否則25503置ON,不執行ADD指令;若相加后結果有進位,則進位標志繼電器25504為ON;若和為零,則專用繼電器25506變為ON。
15.減法指令SUB(31)
本指令與ADD指令相似,是把兩個四位BCD數作帶借位減法,差值送入指定通道,其操作數同ADD指令。在編寫SUB指令語言時,必須指定被減數,減數和差值的存放通道三個數
說明:執行減法運算前必須加一條清進位位指令CLC(41);被減數和減數必須是BCD數,否則25503置ON,不執行SUB指令;若運算結果有借位,則進位標志繼電器25504為ON;若運算結果為零,則專用繼電器25506變為ON。
以上介紹是CPM1A系列PLC一些常用的專用指令,還有一些未作介紹,C200H系列PLC除了基本指令和CPM1A系列PLC相同外,很多功能指令也相同,另外又增加了一些功能指令,讀者可以根據不同型號的PLC按其使用功能的不同參閱使用手冊加以學習和掌握。