PLC(可编程逻辑控制器)作为工业自动化控制的核心设备,其高效运行离不开各类常用命令的支持,这些命令涵盖了逻辑控制、定时计数、数据传输、流程控制等多个方面,是实现设备自动化逻辑的基础,以下从基本逻辑指令、功能指令、流程控制指令及特殊应用指令四个维度,详细解析PLC的常用命令。

基本逻辑指令
基本逻辑指令是PLC编程中最基础、最常用的指令,主要用于实现开关量的逻辑运算,包括与、或、非等基本功能。
- LD(Load):常开触点与左侧母线连接,表示逻辑运算的开始,LD X0 表示输入继电器X0的常开触点与母线相连。
- LDI(Load Inverse):常闭触点与左侧母线连接,例如LDI X1 表示输入继电器X1的常闭触点与母线相连。
- OUT(Out):驱动线圈输出,例如OUT Y0 表示将运算结果输出到输出继电器Y0。
- AND/ANI:与指令,用于串联常开/常闭触点,例如AND X2 表示在X0基础上串联X2的常开触点。
- OR/ORI:或指令,用于并联常开/常闭触点,例如OR X3 表示在X0基础上并联X3的常开触点。
- ANB/ORB:块与/块或指令,用于多个触点块的串联或并联,例如ANB用于将两个并联块串联,ORB用于将两个串联块并联。
- MPS/MRD/MPP:进栈、读栈、出栈指令,用于多重输出电路,实现中间结果的存储和读取,例如在复杂梯形图中暂存运算中间状态。
功能指令
功能指令是针对特定控制需求设计的高级指令,通常以功能代码(如FNC)表示,用于实现数据运算、转换、处理等功能。
- MOV(Move):数据传送指令,将源操作数数据传送到目标操作数,例如MOV D0 D10,将数据寄存器D0的内容传送到D10。
- CMP(Compare):比较指令,比较两个数据的大小,并根据比较结果驱动相应触点,例如CMP K100 C0,将常数100与计数器C0的当前值比较,结果影响M0-M2的状态。
- ADD/SUB:加法/减法指令,对两个操作数进行算术运算,结果存入目标寄存器,例如ADD D1 K10 D2,将D1的值加10后存入D2。
- MUL/DIV:乘法/除法指令,支持16位/32位运算,例如MUL D0 D1 D2,将D0与D1的值相乘,结果存入D2(32位数据)。
- INC/DEC:加1/减1指令,对目标寄存器的内容进行递增或递减操作,例如INC D0,将D0的值加1。
- SFTL(Shift Left):移位指令,实现数据的左移或右移,常用于流水线控制或顺序开关操作,例如SFTL M0 K1 K4,将M0开始的4位数据左移1位。
流程控制指令
流程控制指令用于改变程序的执行顺序,实现分支、循环、跳转等逻辑,增强程序灵活性。
- CJ(Conditional Jump):条件跳转指令,当条件满足时跳转至指定标号处执行,例如CJ P0,当M0为ON时跳转至标号P0。
- CALL/RET:子程序调用与返回指令,CALL调用指定子程序,RET结束子程序返回主程序,例如CALL P1,调用标号为P1的子程序。
- FOR/NEXT:循环指令,FOR设定循环次数,NEXT结束循环,例如FOR K5,表示循环5次,NEXT为循环结束标志。
- MC/MCR:主控/主控复位指令,用于控制多个输出触点的公共条件,例如MC N0 M10,N0为主控嵌套级,M10为主控触点。
特殊应用指令
特殊应用指令针对PLC的特定功能模块或扩展需求,如高速处理、通信、模拟量控制等。

- FROM/TO:特殊模块读写指令,FROM用于读取特殊模块的数据,TO用于向特殊模块写入数据,例如FROM K0 K0 D0,读取模块0的缓冲区0数据到D0。
- SPD(Speed Detection):速度检测指令,用于测量输入脉冲的频率,常与编码器配合使用,例如SPD X0 K2 D0,将X0的脉冲频率存入D0。
- PID:PID控制指令,实现比例-积分-微分控制,用于温度、压力等模拟量的闭环控制,例如PID P1 D100 D150 D200,设置PID参数并启动运算。
- RS(Serial Communication):串行通信指令,用于PLC与其他设备(如变频器、人机界面)的串行数据交换,例如RS D200 D10 K10,通过D200发送数据,接收数据存入D10。
以下为部分常用功能指令的总结表:
指令类型 | 功能代码 | 指令名称 | 功能说明 | 示例 |
---|---|---|---|---|
数据传送 | FNC12 | MOV | 16位数据传送 | MOV K10 D0 |
数据比较 | FNC10 | CMP | 16位数据比较 | CMP C0 K100 M0 |
算术运算 | FNC20 | ADD | 16位加法 | ADD D1 K2 D2 |
移位指令 | FNC34 | SFTL | 16位左移位 | SFTL M0 K8 K1 |
流程控制 | FNC00 | CJ | 条件跳转 | CJ P10 |
通信指令 | FNC80 | RS | 串行通信 | RS D200 D10 K10 |
相关问答FAQs
Q1:PLC中MOV指令与CMP指令有什么区别?
A:MOV(数据传送指令)主要用于将源操作数的数据复制到目标操作数,属于数据操作类指令,例如将常数存入寄存器或实现数据备份;CMP(比较指令)则用于比较两个数据的大小,并根据比较结果(大于、等于、小于)驱动相应的标志位(如M0、M1、M2),属于逻辑判断类指令,常用于条件分支控制,两者的核心功能不同,MOV侧重数据传递,CMP侧重逻辑比较。
Q2:如何使用PLC的定时器指令实现延时断开功能?
A:以三菱FX系列PLC为例,使用T定时器(如T0 K50,定时50×100ms=5s)和辅助继电器(如M0)可实现延时断开,具体梯形图逻辑为:当输入触点X0接通时,M0线圈得电并自锁,同时T0开始计时;当X0断开后,M0仍保持得电,直到T0计时完成,T0常闭触点断开,使M0线圈失电,从而实现X0断开后延时5s断开的效果,关键是通过自锁电路保持M0通电,再通过定时器常闭触点切断回路。
