三菱 FX3U 系列 PLC 本事可不小,自带的功能指令五花八门,啥样的工业控制需求基本都能满足。
要是把 FX 系列 PLC 的编程比作盖房子,那基础逻辑指令就像一块块砖头,能搭出简单的 “小平房”—— 列如用 LD、OUT 指令弄个启停控制, easy。但想盖带 “智能家居系统” 的 “高楼大厦”,处理数据比较、定时循环、高速脉冲输出这些复杂活儿,就得靠功能指令来撑场面了。
许多人都会遇到这种情况:简单的启停控制玩得溜,可一碰到稍微复杂点的需求就卡壳。别愁,这正是功能指令该上场的时候,有了它,再棘手的控制逻辑也能理顺。

从生产线的电机转速计算到温湿度的 PID 调节,从设备运行数据的批量处理到多机通讯的信息交互,功能指令将 PLC 的控制能力从 “开关量逻辑” 推向 “数据化、智能化控制”。列如用 CMP 指令实现物料计数的阈值判断,用 MOV 指令完成参数的实时传递,用 PLSY 指令精准控制伺服电机的走位,这些看似复杂的操作,都能通过功能指令的组合轻松实现。

许多人觉得功能指令 “抽象难用”,实则是由于脱离了具体场景空谈指令。本文将从 “指令作用 — 典型场景 — 实操技巧” 三个维度,拆解三菱 FX 系列核心功能指令的用法:从程序流程控制到数据运算,从高速处理到外围设备交互,每个指令都搭配真实案例解析,让你不仅知道 “怎么用”,更清楚 “为什么这么用”。毕竟,掌握功能指令的本质,是让 PLC 从 “简单控制器” 变成 “工业大脑” 的关键一步。

一、常用功能指令的介绍:
程序流程指令:CJ:条件跳转指令,当满足指定条件时,程序跳转到指定的指针位置执行,可用于实现程序的分支结构,减少重复程序段。
CALL:子程序调用指令,用于调用指定的子程序,可将常用功能编写成子程序,提高程序的可读性和可维护性。
FEND:主程序结束指令,标志主程序的结束,PLC 执行到该指令时,会进行输入输出处理等操作。
FOR和NEXT:循环指令,FOR 指定循环的起始,NEXT 指定循环的结束,之间的程序段会根据设定的循环次数重复执行。
传送・比较指令:CMP:比较指令,将两个源操作数进行比较,比较结果反映在目标操作数的相关标志位中,常用于根据比较结果执行不同的控制逻辑。
MOV:传送指令,将源操作数中的数据传送到目标操作数中,可用于数据的赋值、存储等操作。
BMOV:成批传送指令,可将指定数量的数据从源数据块传送到目标数据块,常用于数据的批量处理。
四则・逻辑运算指令:ADD:BIN 加法运算指令,将两个源操作数进行二进制加法运算,结果存储在目标操作数中,可用于数值计算等场景。
MUL:BIN 乘法运算指令,实现两个源操作数的二进制乘法运算,适用于需要计算乘积的控制过程。
WAND:逻辑与指令,对两个源操作数进行按位逻辑与运算,常用于屏蔽某些位或提取特定位的值。
循环・移位指令:ROR:循环右移指令,将目标操作数中的数据按位向右循环移动指定的位数,最低位移入最高位。
SFTL:位左移指令,将目标操作数中的位数据向左移动指定的位数,空出的位补 0,可用于数据的移位处理和状态控制。
WSFR:字右移指令,以字为单位将数据向右移动,常用于处理字数据组成的数组等。
数据处理指令:ZRST:成批复位指令,可将指定范围内的多个软元件复位为初始值,方便对一组数据或状态进行初始化操作。
DECO:译码指令,根据源操作数中的数值,将目标操作数中对应的位置为 1,其他位为 0,常用于编码转换等。
MEAN:平均值指令,计算指定数量源操作数的平均值,结果存储在目标操作数中,可用于数据统计等场景。
高速处理指令:REF:输入输出刷新指令,用于立即刷新指定的输入输出点,确保及时获取最新的输入状态和输出控制。
PLSY:脉冲输出指令,可输出指定数量和频率的脉冲,常用于控制步进电机或伺服电机等。
PWM:脉宽调制指令,用于生成指定占空比和周期的脉冲信号,可用于电机调速、灯光亮度调节等。
便捷指令:IST:初始状态指令,用于自动设定初始状态和相关特殊辅助继电器,简化顺序控制程序的编写。
ALT:交替输出指令,在每次输入信号上升沿时,使目标操作数的状态反转,可用于实现按钮的启停控制等。
ROTC:旋转工作台控制指令,可实现对旋转工作台的定位、分度等控制功能。
外围设备 I/O 指令:TKY:数字键输入指令,用于连接数字键输入设备,读取输入的数字信号。
SEGD:7 段译码指令,将输入的 4 位二进制数转换为 7 段数码管的显示代码,方便驱动 7 段数码管显示数字。
FROM和TO:用于与特殊功能模块进行数据读写操作,可实现与模拟量模块、通信模块等的交互。
定位指令:DSZR:带 DOG 搜索的原点回归指令,可使设备按照指定的方式回归原点,常用于数控机床等设备的原点定位。
DRVI:相对定位指令,根据指定的脉冲数和脉冲频率进行相对位置定位,可实现设备的相对位移控制。
DRVA:绝对定位指令,基于绝对坐标进行定位,可准确控制设备到达指定的绝对位置。
二、功能指令基础
2.1 指令格式与分类
FX3U功能指令采用FNC编号+操作码格式,如CMP FNC10。按功能分为以下类别:
|
类别 |
FNC编号范围 |
典型指令 |
|
程序流程 |
00~09 |
CJ(跳转)、CALL(子程序调用) |
|
传送·比较 |
10~19 |
MOV(传送)、CMP(比较) |
|
四则·逻辑运算 |
20~29 |
ADD(加法)、SUB(减法) |
|
循环·移位 |
30~39 |
ROR(循环右移)、SFTR(位右移) |
|
数据处理 |
40~49 |
ZRST(成批复位)、DECO(译码) |
|
高速处理 |
50~59 |
HSCS(高速计数器置位)、PLSY(脉冲输出) |
|
外围设备I/O |
70~79 |
FROM(读特殊模块)、TO(写特殊模块) |
2.2 基本指令示例
LD/LDI/OUT指令(梯形图示例):
|-----[LD X0]------(OUT Y0)-----|
|-----[LDI X1]-----| |
|--(OUT Y1)---|
- LD X0
- :当X0接通时,Y0输出
- LDI X1
- :当X1断开时,Y1输出
三、常用功能指令详解
3.1 传送与比较指令
MOV(FNC12)传送指令
- 格式
- :MOV S D(S:源数据,D:目标寄存器)
- 功能
- :将源数据传送到目标寄存器
- 程序示例
- :|—–[LD X0]——————|
|—–[MOV K100 D0]————| ; X0接通时,将100传送到D0
CMP(FNC10)比较指令
- 格式
- :CMP S1 S2 D(S1/S2:比较值,D:结果存储位)
- 功能
- :比较S1与S2,结果存入D、D+1、D+2(D为ON时S1>S2,D+1为ON时S1=S2,D+2为ON时S1<S2)
- 应用案例
- :温度上下限报警|—–[LD M8000]—————|
|—–[CMP D0 K50 M0]———-| ; 比较D0(当前温度)与50℃
|—–[LD M0]——————| ; M0=ON(D0>50)时
|—–[OUT Y0]—————–| ; 高温报警Y0输出
3.2 运算指令
ADD(FNC20)加法指令
- 格式
- :ADD S1 S2 D(S1+S2→D)
- 程序示例
- :|—–[LD X0]——————|
|—–[ADD D0 D1 D2]———–| ; D0+D1结果存入D2
3.3 高速处理指令
PLSY(FNC57)脉冲输出指令
- 格式
- :PLSY S1 S2 Y(S1:频率Hz,S2:脉冲数,Y:输出端)
- 功能
- :产生指定频率和数量的脉冲
- 应用
- :控制步进电机正转|—–[LD X0]——————|
|—–[PLSY K10000 K5000 Y0]—| ; Y0输出10kHz脉冲,共5000个
四、综合应用案例
4.1 灯光循环控制
控制要求:X0启动后,Y0(绿灯)亮1秒灭1秒循环5次→Y1(红灯)亮2.5秒灭2.5秒循环3次→Y2(黄灯)亮0.5秒灭0.5秒循环6次后结束。
程序结构:
- 初始化:X0触发,ZRST复位D0-D2计数器
- 绿灯循环:使用CMP比较计数器值,T0定时1秒,M0控制循环次数
- 红灯循环:T1定时2.5秒,M1控制循环次数
- 黄灯循环:T2定时0.5秒,M2控制循环次数
梯形图片段:
|-----[LD X0]---------------------------|
|-----[ZRST D0 D2]----------------------| ; 复位计数器
|-----[SET M0]--------------------------| ; 启动绿灯循环
| |
|-----[LD M0]---------------------------|
|-----[T0 K10]--------------------------| ; T0定时1秒
|-----[PLS M10]-------------------------| ; T0上升沿触发
|-----[ADD K1 D0 D0]--------------------| ; D0计数+1
|-----[CMP D0 K10 M20]------------------| ; 比较D0与10(5次循环)
|-----[LD M21]--------------------------| ; M21=ON(D0=10)时
|-----[RST M0]--------------------------| ; 结束绿灯循环
|-----[SET M1]--------------------------| ; 启动红灯循环
4.2 FX3U-4AD模拟量采集
硬件配置:FX3U-32MT + FX3U-4AD(第一个扩展模块),采集0-10V电压信号(对应0-10000数字量)。
接线图:
- 传感器正极 → FX3U-4AD的V+(CH1)
- 传感器负极 → FX3U-4AD的VI-
- 模块供电:DC24V → 24+/-端子
程序示例:
|-----[LD M8000]------------------------|
|-----[TO K0 K0 H0002 K1]---------------| ; 设置CH1为0-10V输入
|-----[FROM K0 K10 D0 K1]---------------| ; 读取CH1数据到D0
|-----[DIV D0 K200 D1]------------------| ; D0/200→D1(转换为实际电压)
- TO指令
- :将H0002写入模块0的BFM#0,设置通道1为0-10V输入
- FROM指令
- :读取模块0的BFM#10(CH1数据)到D0
五、硬件接线指南
5.1 基本I/O接线(FX3U-32MR)
电源接线:
- L/N端子 → AC220V
- 接地端子 → 保护接地
输入接线(漏型/NPN传感器):
- S/S端子 → +24V
- X0-X7 → 传感器信号端
- 0V端子 → 传感器负极
输出接线(继电器输出):
- Y0-Y3 → 负载(如电磁阀)
- COM1 → 负载电源正极
5.2 通讯口引脚定义(Mini-Din-8P)
|
引脚 |
名称 |
I/O |
描述 |
|
1 |
RX- |
输入 |
RS422接收- |
|
2 |
RX+ |
输入 |
RS422接收+ |
|
3 |
GND |
电源 |
5V地 |
|
4 |
TX- |
输出 |
RS422发送- |
|
5 |
VCC |
输出 |
+5V |
|
6 |
NC |
– |
空脚 |
|
7 |
TX+ |
输出 |
RS422发送+ |
|
8 |
NC |
– |
空脚 |
六、通讯设置步骤
6.1 与威纶通触摸屏通讯(RS485 4W)
硬件连接:
- 触摸屏COM2 → FX3U-485BD模块
- 屏RX- → BD板SDB
- 屏RX+ → BD板SDA
- 屏TX- → BD板RDB
- 屏TX+ → BD板RDA
- GND → GND
参数设置:
- PLC侧
- (GX Works2):
- 路径:参数→PLC参数→PLC系统设置2→CH1
- 协议:专用协议通信(MC协议)
- 波特率:9600,数据位7,停止位1,偶校验
- 触摸屏侧
- (EasyBuilder Pro):
- 设备类型:Mitsubishi FX232/485BD
- 接口:RS485 4W,COM2
- 站号:1,波特率9600
6.2 与三菱变频器Modbus RTU通讯
硬件:FX3U + FX3U-485BD,变频器E740。
程序示例(读取频率):
|-----[LD M8000]------------------------|
|-----[MOV H01 D10]---------------------| ; 从站地址1
|-----[MOV H03 D11]---------------------| ; 功能码03(读保持寄存器)
|-----[MOV H2000 D12]--------------------| ; 寄存器地址2000(频率)
|-----[MOV K2 D13]----------------------| ; 读取2个寄存器
|-----[RS D10 K8 D20 K7]----------------| ; RS指令发送/接收数据
- RS指令
- :D10起始发送数据,K8发送长度;D20接收缓冲区,K7接收长度
- 通讯参数
- :通过D8120设置为9600bps,8位数据,偶校验
七、总结与注意事项
- 指令使用
- :功能指令需注意操作数范围(如16位/32位),部分指令需配合特殊辅助继电器(如M8029为指令完成标志)。
- 接线规范
- :输入输出回路需独立供电,模拟量信号线使用屏蔽电缆,避免与动力线并行。
- 调试技巧
- :使用GX Works2的监控功能实时查看软元件状态,通过FROM/TO指令读取模块故障代码(BFM#29)。

超棒
学到了💪
收藏了,感谢分享