三菱PLC(主要以主流FX系列和Q/L系列為例)的編程指令非常豐富,涵蓋基本邏輯控制、數(shù)據(jù)處理、運算、流程控制、通信、定位等多個方面。以下按功能分類對一些常用和重要的指令進(jìn)行詳細(xì)介紹(使用中文指令名,括號內(nèi)為常見助記符):
一、 基本邏輯指令 (LD, LDI, AND, ANI, OR, ORI, OUT, SET, RST)
- LD (取): 讀取常開觸點狀態(tài)。若對應(yīng)軟元件為ON,則觸點導(dǎo)通。例如:
LD X0
讀取輸入點X0狀態(tài)。 - LDI (取反): 讀取常閉觸點狀態(tài)。若對應(yīng)軟元件為OFF,則觸點導(dǎo)通。例如:
LDI X1
。 - AND (與): 串聯(lián)常開觸點。例如:
LD X0 AND X1
表示X0與X1都ON時通路。 - ANI (與非): 串聯(lián)常閉觸點。例如:
LD X0 ANI X1
表示X0 ON且X1 OFF時通路。 - OR (或): 并聯(lián)常開觸點。例如:
LD X0 OR X1
表示X0或X1任一個ON時通路。 - ORI (或非): 并聯(lián)常閉觸點。例如:
LD X0 ORI X1
表示X0 ON或X1 OFF時通路。 - OUT (輸出): 驅(qū)動線圈(繼電器輸出Y,輔助繼電器M,定時器T,計數(shù)器C等)。例如:
OUT Y0
。 - SET (置位): 將目標(biāo)位元件置為ON并保持(鎖定)。一旦置位,即使條件斷開,狀態(tài)仍保持ON,直到被復(fù)位。例如:
SET M0
。 - RST (復(fù)位): 將目標(biāo)位元件置為OFF并保持(解鎖),或清除定時器當(dāng)前值和計數(shù)器當(dāng)前值。例如:
RST M0
,RST C0
。
二、 堆棧與主控指令 (MPS, MRD, MPP, MC, MCR)
- MPS (入棧): 存儲運算中間結(jié)果(狀態(tài))。用于處理復(fù)雜的串并聯(lián)分支。
- MRD (讀棧): 讀取棧頂存儲的中間結(jié)果,不影響堆棧。用于分支點之后的公共部分。
- MPP (出棧): 讀取并清除棧頂存儲的中間結(jié)果。通常用于分支的結(jié)束。
- MC (主控): 條件成立時,激活主控起點到主控結(jié)束點之間的程序。相當(dāng)于一個總開關(guān)。
- MCR (主控復(fù)位): 主控塊的結(jié)束點。MCR后的指令不受主控條件影響。
三、 定時器指令 (T)
- 定時器 (T): 設(shè)定時間達(dá)到后,其常開觸點閉合,常閉觸點斷開。
- 工作原理:
- 線圈(如
OUT T0 K50
)被驅(qū)動時開始計時。 K50
表示設(shè)定時間(如100ms單位定時器K50=5秒,單位由T編號決定)。- 計時過程中當(dāng)前值增加。當(dāng)前值 ≥ 設(shè)定值時,定時器觸點動作。
- 線圈斷開時,當(dāng)前值復(fù)位為0。
- 線圈(如
- 類型:普通定時器(通電延時ON),積算定時器(斷電保持當(dāng)前值)。
- 工作原理:
四、 計數(shù)器指令 (C)
- 計數(shù)器 (C): 輸入脈沖達(dá)到設(shè)定次數(shù)后,其常開觸點閉合,常閉觸點斷開。
- 工作原理(增計數(shù)):
- 計數(shù)輸入: 由OFF→ON變化時,計數(shù)當(dāng)前值+1。
- 復(fù)位輸入(RST指令): 為ON時,將當(dāng)前值清零,計數(shù)器觸點復(fù)位。
- 當(dāng)前值 ≥ 設(shè)定值(如
OUT C0 K10
)時,計數(shù)器觸點動作。
- 類型:16位增計數(shù)器(普通型,電池后備/鎖存型),32位增減雙向計數(shù)器等。
- 工作原理(增計數(shù)):
五、 數(shù)據(jù)處理指令
- MOV (傳送):
MOV S D
將源操作數(shù)S中的數(shù)據(jù)復(fù)制到目標(biāo)操作數(shù)D中。例如:MOV D0 D10
。 - ADD (加):
ADD S1 S2 D
將S1和S2相加,結(jié)果存入D。例如:ADD D0 D1 D2
(D2 = D0 + D1)。 - SUB (減):
SUB S1 S2 D
將S1減去S2,結(jié)果存入D。例如:SUB D0 D1 D2
(D2 = D0 - D1)。 - MUL (乘):
MUL S1 S2 D
將S1乘以S2,結(jié)果存入D(注意結(jié)果占用多個寄存器)。例如:MUL D0 D1 D2
。 - DIV (除):
DIV S1 S2 D
將S1除以S2,商存入D,余數(shù)存入D的下一個寄存器。例如:DIV D0 D1 D2
(商存D2,余數(shù)存D3)。 - INC (加1):
INC D
目標(biāo)操作數(shù)D的值+1。 - DEC (減1):
DEC D
目標(biāo)操作數(shù)D的值-1。 - AND (與):
AND S1 S2 D
S1和S2進(jìn)行位與位邏輯與操作,結(jié)果存入D。 - OR (或):
OR S1 S2 D
S1和S2進(jìn)行位與位邏輯或操作,結(jié)果存入D。 - XOR (異或):
XOR S1 S2 D
S1和S2進(jìn)行位與位邏輯異或操作,結(jié)果存入D。 - CMP (比較):
CMP S1 S2
比較S1和S2的大小,結(jié)果驅(qū)動特殊繼電器(M8020零標(biāo)志, M8021小于標(biāo)志, M8022大于標(biāo)志)。 - ZCP (區(qū)間比較):
ZCP S S1 S2 D
比較源S與下限S1、上限S2構(gòu)成的區(qū)間,驅(qū)動3個連續(xù)目標(biāo)位元件D(表示小于), D+1(表示范圍內(nèi)), D+2(表示大于)。
六、 移位與循環(huán)指令
- SFTR (位右移), SFTL (位左移): 對n位組成的移位寄存器進(jìn)行位移動。常用于流水線控制、狀態(tài)切換。
- ROR (循環(huán)右移), ROL (循環(huán)左移): 對16/32位數(shù)據(jù)進(jìn)行循環(huán)位移。
- SFR (右移), SFL (左移): 帶進(jìn)位標(biāo)志的位移指令。
七、 流程控制指令 (CJ, CALL, SRET, IRET, EI, DI, FEND, END)
- CJ (條件跳轉(zhuǎn)):
CJ Pn
當(dāng)驅(qū)動條件滿足時,跳過中間程序,跳轉(zhuǎn)到指定指針Pn
處執(zhí)行。 - CALL (子程序調(diào)用):
CALL Pn
當(dāng)驅(qū)動條件滿足時,調(diào)用指定的子程序(以Pn
為標(biāo)號)。 - SRET (子程序返回): 位于子程序末尾,執(zhí)行此指令時返回主程序
CALL
指令后的下一條指令。 - FEND (主程序結(jié)束): 表示主程序結(jié)束,其后可為子程序或中斷程序。
- IRET (中斷返回), EI (允許中斷), DI (禁止中斷): 用于中斷服務(wù)程序的控制與管理。
- END (程序掃描結(jié)束): 表示程序結(jié)束。PLC每次掃描執(zhí)行到END就回到第0步,處理I/O刷新后開始下一掃描周期。
八、 方便指令 (應(yīng)用指令)
- ALT (交替輸出): 每次輸入條件從OFF變ON時,目標(biāo)元件狀態(tài)翻轉(zhuǎn)一次(ON變OFF或OFF變ON)。常用于單按鈕啟動/停止。
- HSC (高速計數(shù)器): 用于處理高頻脈沖輸入的專用計數(shù)器。
- PLSY (脈沖輸出): 用于控制步進(jìn)電機(jī)或伺服電機(jī),發(fā)出指定頻率和數(shù)量的脈沖(FX系列常用)。
- PLSR (加減速脈沖輸出): 帶加減速控制的脈沖輸出指令(FX系列常用)。
- DRVA (絕對定位), DRVI (增量定位): Q/L系列定位模塊常用定位指令。
- RS (串行通信): 用于無協(xié)議通信的發(fā)送/接收指令。
- FROM/TO (緩沖存儲器讀寫): 用于讀寫特殊功能模塊(如模擬量模塊、通信模塊)內(nèi)部的數(shù)據(jù)寄存器(BFM)。
九、 模擬量指令 (通過FROM/TO配合特殊模塊)
雖然嚴(yán)格來說不是單一指令,但對模擬量處理至關(guān)重要:
- 讀模擬量輸入: 使用
FROM
指令讀取模擬量輸入模塊對應(yīng)通道的BFM(AD轉(zhuǎn)換值)。 - 寫模擬量輸出: 使用
TO
指令將數(shù)據(jù)寫入模擬量輸出模塊對應(yīng)通道的BFM(設(shè)置DA輸出值)。
十、 時鐘與比較指令
- TCMP (時間比較): 將當(dāng)前時間(小時、分鐘、秒)與設(shè)定的時間值進(jìn)行比較。
- TZCP (時間段比較): 判斷當(dāng)前時間是否在設(shè)定的兩個時間點構(gòu)成的區(qū)間內(nèi)。
重要說明:
- 操作數(shù)表示:
S
通常代表源操作數(shù)(Source, 如D0, K10, H0A, X0等),D
通常代表目標(biāo)操作數(shù)(Destination, 如D10, Y0, M0等)。n
通常代表數(shù)量或數(shù)據(jù)長度。 - 數(shù)據(jù)長度: 三菱PLC指令區(qū)分16位和32位操作。指令符號前加
D
表示32位操作(如MOV
是16位,DMOV
是32位)。指令符號后加P
表示脈沖執(zhí)行型(只在驅(qū)動條件從OFF變ON的上升沿執(zhí)行一次)。例如:DMOVP D0 D10
(在上升沿將D0/D1的32位值傳到D10/D11)。 - 支持情況: 具體指令的支持情況取決于PLC的具體型號和系列(FX1S/FX1N/FX3U/FX5U/Q系列等)及CPU的版本。務(wù)必查閱相應(yīng)型號的編程手冊。
- 編程手冊: 最全面、最準(zhǔn)確的指令信息源是您所使用的具體三菱PLC型號的《編程手冊》或《指令手冊》。 手冊中會詳細(xì)列出每條指令的功能、操作數(shù)說明、用法示例、占用步數(shù)、支持的型號等關(guān)鍵信息。
總結(jié):
三菱PLC提供了從最基本的開關(guān)量控制到復(fù)雜數(shù)據(jù)處理、高速計數(shù)、精密定位、網(wǎng)絡(luò)通信等全方位的編程指令集。掌握這些核心指令是進(jìn)行有效PLC程序設(shè)計的基礎(chǔ)。對于復(fù)雜的工程應(yīng)用,務(wù)必深入研讀具體型號的官方編程手冊,并根據(jù)項目需求選擇合適的指令進(jìn)行編程。