三菱plc有哪些编程指令?详细介绍
发布时间:2025-11-13来源: 点击:77
三菱PLC(主要以主流FX系列和Q/L系列为例)的编程指令非常丰富,涵盖基本逻辑控制、数据处理、运算、流程控制、通信、定位等多个方面。以下按功能分类对一些常用和重要的指令进行详细介绍(使用中文指令名,括号内为常见助记符):
一、 基本逻辑指令 (LD, LDI, AND, ANI, OR, ORI, OUT, SET, RST)
- LD (取):
读取常开触点状态。若对应软元件为ON,则触点导通。例如:
LD X0 读取输入点X0状态。
- LDI (取反):
读取常闭触点状态。若对应软元件为OFF,则触点导通。例如:
LDI X1。
- AND (与):
串联常开触点。例如:
LD X0 AND X1 表示X0与X1都ON时通路。
- ANI (与非):
串联常闭触点。例如:
LD X0 ANI X1 表示X0 ON且X1 OFF时通路。
- OR (或):
并联常开触点。例如:
LD X0 OR X1 表示X0或X1任一个ON时通路。
- ORI (或非):
并联常闭触点。例如:
LD X0 ORI X1 表示X0 ON或X1 OFF时通路。
- OUT (输出):
驱动线圈(继电器输出Y,辅助继电器M,定时器T,计数器C等)。例如:
OUT Y0。
- SET (置位):
将目标位元件置为ON并保持(锁定)。一旦置位,即使条件断开,状态仍保持ON,直到被复位。例如:
SET M0。
- RST (复位):
将目标位元件置为OFF并保持(解锁),或清除定时器当前值和计数器当前值。例如:
RST M0, RST C0。
二、 堆栈与主控指令 (MPS, MRD, MPP, MC, MCR)
- MPS (入栈):
存储运算中间结果(状态)。用于处理复杂的串并联分支。
- MRD (读栈):
读取栈顶存储的中间结果,不影响堆栈。用于分支点之后的公共部分。
- MPP (出栈):
读取并清除栈顶存储的中间结果。通常用于分支的结束。
- MC (主控):
条件成立时,激活主控起点到主控结束点之间的程序。相当于一个总开关。
- MCR (主控复位):
三、 定时器指令 (T)
- 定时器 (T):
-
线圈(如
OUT T0 K50)被驱动时开始计时。
K50
表示设定时间(如100ms单位定时器K50=5秒,单位由T编号决定)。
-
计时过程中当前值增加。当前值 ≥ 设定值时,定时器触点动作。
-
- 工作原理:
-
类型:普通定时器(通电延时ON),积算定时器(断电保持当前值)。
四、 计数器指令 (C)
- 计数器 (C):
输入脉冲达到设定次数后,其常开触点闭合,常闭触点断开。
- 计数输入:
- 复位输入(RST指令):
-
当前值 ≥ 设定值(如
OUT C0 K10)时,计数器触点动作。
- 工作原理(增计数):
-
类型:16位增计数器(普通型,电池后备/锁存型),32位增减双向计数器等。
五、 数据处理指令
- MOV (传送):
MOV S D
将源操作数S中的数据复制到目标操作数D中。例如:MOV D0 D10。
- ADD (加):
ADD S1 S2 D
将S1和S2相加,结果存入D。例如:ADD D0 D1 D2 (D2 = D0 + D1)。
- SUB (减):
SUB S1 S2 D
将S1减去S2,结果存入D。例如:SUB D0 D1 D2 (D2 = D0 - D1)。
- MUL (乘):
MUL S1 S2 D
将S1乘以S2,结果存入D(注意结果占用多个寄存器)。例如:MUL D0 D1 D2。
- DIV (除):
DIV S1 S2 D
将S1除以S2,商存入D,余数存入D的下一个寄存器。例如:DIV D0 D1 D2 (商存D2,余数存D3)。
- INC (加1):
INC D
- DEC (减1):
DEC D
- AND (与):
AND S1 S2 D
- OR (或):
OR S1 S2 D
- XOR (异或):
XOR S1 S2 D
- CMP (比较):
CMP S1 S2
比较S1和S2的大小,结果驱动特殊继电器(M8020零标志, M8021小于标志, M8022大于标志)。
- ZCP (区间比较):
ZCP S S1 S2 D
比较源S与下限S1、上限S2构成的区间,驱动3个连续目标位元件D(表示小于), D+1(表示范围内), D+2(表示大于)。
六、 移位与循环指令
- SFTR (位右移), SFTL (位左移):
对n位组成的移位寄存器进行位移动。常用于流水线控制、状态切换。
- ROR (循环右移), ROL (循环左移):
- SFR (右移), SFL (左移):
七、 流程控制指令 (CJ, CALL, SRET, IRET, EI, DI, FEND, END)
- CJ (条件跳转):
CJ Pn
当驱动条件满足时,跳过中间程序,跳转到指定指针Pn处执行。
- CALL (子程序调用):
CALL Pn
当驱动条件满足时,调用指定的子程序(以Pn为标号)。
- SRET (子程序返回):
位于子程序末尾,执行此指令时返回主程序
CALL指令后的下一条指令。
- FEND (主程序结束):
- IRET (中断返回), EI (允许中断), DI (禁止中断):
- END (程序扫描结束):
表示程序结束。PLC每次扫描执行到END就回到第0步,处理I/O刷新后开始下一扫描周期。
八、 方便指令 (应用指令)
- ALT (交替输出):
每次输入条件从OFF变ON时,目标元件状态翻转一次(ON变OFF或OFF变ON)。常用于单按钮启动/停止。
- HSC (高速计数器):
- PLSY (脉冲输出):
用于控制步进电机或伺服电机,发出指定频率和数量的脉冲(FX系列常用)。
- PLSR (加减速脉冲输出):
- DRVA (绝对定位), DRVI (增量定位):
- RS (串行通信):
- FROM/TO (缓冲存储器读写):
用于读写特殊功能模块(如模拟量模块、通信模块)内部的数据寄存器(BFM)。
九、 模拟量指令 (通过FROM/TO配合特殊模块)
虽然严格来说不是单一指令,但对模拟量处理至关重要:
- 读模拟量输入:
使用
FROM指令读取模拟量输入模块对应通道的BFM(AD转换值)。
- 写模拟量输出:
使用
TO指令将数据写入模拟量输出模块对应通道的BFM(设置DA输出值)。
十、 时钟与比较指令
- TCMP (时间比较):
将当前时间(小时、分钟、秒)与设定的时间值进行比较。
- TZCP (时间段比较):
重要说明:
- 操作数表示:
S
通常代表源操作数(Source, 如D0, K10, H0A, X0等),D通常代表目标操作数(Destination, 如D10, Y0, M0等)。n通常代表数量或数据长度。
- 数据长度:
三菱PLC指令区分16位和32位操作。指令符号前加
D表示32位操作(如MOV是16位,DMOV是32位)。指令符号后加P表示脉冲执行型(只在驱动条件从OFF变ON的上升沿执行一次)。例如:DMOVP D0 D10(在上升沿将D0/D1的32位值传到D10/D11)
免责声明:本站所提供信息均来源于网友提供或网络搜集,由本站编辑整理,如涉及版权问题,请联系本站管理员予以更改或删除