第 3章 三菱 FX系列 PLC基本指令本章要求
– 本章主要介绍三菱 FX2系列 PLC的 20条基本逻辑指令,这 20条指令功能十分强大,已经能解决一般的继电接触控制问题,本章还重点介绍梯形图和助记符语言以及其程序设计方法,都要求熟练掌握 。
3.1 三菱 FX系列 PLC的程序设计语言
1.从继电接触控制图到梯形图例 3.1 图 3.1是常见的电机启 ― 保-停继电接触控制线路,试将其控制部分线路改用与其等效的 PLC控制的梯形图。
解,图 3.1电路 的工作原理可以用如下动作顺序表来表示,按下 S B 1 KM 线圈得电
KM 辅触点闭合自锁电机 M 转动KM 主触点闭合按下 SB 2 KM 线圈失电
KM 辅触点打开电机 M 停转KM 主触点打开电机过载 主电路 FR 动作 控制电路常闭 FR 断开 电机 M 停转图 3.1电机启 ― 保-停控制电路图与图 3.1等效 PLC控制梯形图如图 3.2,比较两图,可得出结论:
① 输入、输出信号完全相同,其输入 /输出点的分配表如表 3.2。
3.1 三菱 FX系列 PLC的程序设计语言 2
图 3.3电机启 ― 保-停控制梯形图图 3.1电机启 ― 保-停控制电路图表 3.1 输入、输出点分配表
3.1 三菱 FX系列 PLC的程序设计语言 3
② 电机启停过程的控制逻辑相同。两图中都是使用常开、常闭
、线圈等器件,只不过梯形图中使用的是简化的器件符号。
③ 两者区别:前者使用硬器件,靠接线连接形成控制程序;后者使用 PLC中的内部存储器组成的软器件,靠软件实现控制程序。如前者图中使用的 KM是实际继电器和 KM的实际辅助接点
,使用的 SB1为实际常开按钮,SB2为实际常闭按钮,FR为实际常闭接点。在后者图中使用的 Y000是软继电器和软接点,
X000为常开输入接点,X001和 X002均为常闭输入接点。也就是用 PLC内部的存储器位来映像上面提到的这些外部硬器件的状态,如存储位为 1,表示对应的线圈得电或开关接通,存储位为 0,表示对应的线圈失电或开关断开。 PLC的存储过程控制具有很高的柔性,不需改变接线即能改变控制过程。
④ 梯形图中不存在实际的电流,而是用一种假想的能流 (Power
Flow)来模拟继电接触控制逻辑。
3.1 三菱 FX系列 PLC的程序设计语言 4
2.梯形图中的图元符号梯形图中的图元符号是对继电接触控制图中的图形符号的简化和抽象,两者的对应关系如表 3.3所示。可得出结论:
① 对应继电接触控制图中的各种常开符号,在梯形图表 3.2 梯形图中的图元符号与继电接触控制图中的图形符号比较
3.1 三菱 FX系列 PLC的程序设计语言 5
中一律抽象为一种图元符号来表示。同样,对应继电接触控制图中的各种常闭符号,在梯形图中也一律抽象为一种图元符号来表示。
② 不同的 PLC编程软件(或版本),在其梯形图中使用的图元符号可能会略有不同。如在表 3.3中的“梯形图中的图元符号”这一列中,有两种常闭符号,三种线圈符号。
3.梯形图的格式梯形图是形象化的编程语言,它用接点的连接组合表示条件、用线圈的输出表示结果而绘制的若干逻辑行组成的顺控电路图。
梯形图的绘制格式:
3.1 三菱 FX系列 PLC的程序设计语言 6
① 梯形图按从上到下、从左至右顺序编写。每一逻辑行总是从起始母线开始,终止于终止母线(可省)。
② 逻辑行由一个或几个支路组成,左边是由接点组成的支路,表示控制条件。逻辑行的最右端必须连接输出线圈,表示控制的结果。输出线圈总是终止于右母线,同一标识的输出线圈只能使用一次。
③ 梯形图中每一常开和常闭接点都有自己的标识,以互相区别。同一标识的常开和常闭接点均可多次重复使用,次数不限。
④ 接点可任意串联和并联,而输出线圈只能并联,不能串联。
⑤ 最后一个逻辑行要用程序结束符,END” 。
3.1.2 助记符语言( Mnemonic) 1
助记符语言:汇编指令的格式来表示控制程序的程序设计语言。
梯形图编程要求配置较大的显示器。而在现场调试时
,小型 PLC往往只配备显示屏只有几行宽度的简易编程器,这时,梯形图就无法输入了,但助记符指令却可以一条一条的输入,滚屏显示。
助记符指令组成:操作码+操作数。
操作码用便于记忆的助记符表示,用来表示指令的功能,告诉 CPU要执行什么操作,如 LD表示取,OR表示或。操作数用标识符和参数表示,用来表示参加操作的数的类别和地址。如用 X表示输入、用 Y表示输出。
操作数是可选项,如 END指令就没有对应的操作数。
3.1.2 助记符语言( Mnemonic) 2
人工将图 3.2梯形图转换成指令表方法:也是按梯形图的逻辑行和逻辑组件的编排顺序自上而下、自左向右依次进行。
表 3.4 对应图 3.3梯形图的指令表 图 3.3电机启 ― 保-停控制梯形图
3.1.3 流程图语言 ( SFC) 1
流程图( Sequential Function Chart)是一种描述顺序控制系统功能的图解表示法。
对于复杂的顺控系统,内部的互锁关系非常复杂,若用梯形图来编写,其程序步就会很长、可读性也会大大降低。符合 IEC标准的流程图语言,以流程图形式表示机械动作,即以 SFC语言的状态转移图方式编程,特别适合于编制复杂的顺控程序。
例 3.2 图 3.4( a)是某机床的运动简图,行程开关
SQ1为动力头 1的原位开关,SQ2为终点限位开关 ; SB2
为工作循环开始的起动按钮,M是动力头 1的驱动电机。
试按照图 3.4( b)机床的工作循环图,用流程图语言描述动力头 1的动作过程。
3.1.3 流程图语言 ( SFC) 2
解,从图 3.4( b)可知,机床工作自动循环分为三个工步。
工步 1:按下启动钮 SB2_电机 M正转_动力头 1前进_至终点压下限位开关 SQ2,并作为转换主令,控制工作循环切换到工步 2
工步 2,SQ2的动断接点断开_电机 M停转_动力头 1停在终点位图 3.4机床的工作过程 图 3.5机床的工作流程
13
3.1.3 流程图语言 ( SFC) 3
,等待动力头 2的到来。同时,SQ2的动合接点接通_控制动力头 2前进_直至动力头 2压下其终点限位开关 SQ4,SQ4信号也作为转换主令,控制工作循环切换到工步 3。
工步 3,SQ4的动合接点接通_控制电机 M反转_两动力头随之由终点向原位返回_动力头 1至原位压下原位行程开关 SQ1_电机
M停转,动力头 1停在原位,完成一次工作循环。
用流程图语言来描述得到机床的顺序流程图如图 3.4所示,它就是状态转移图的原型。
用 SFC语言编制顺控程序的思路:
( 1)按结构化程序设计的要求,将一复杂的控制过程分解为若干工步,这些工步称为状态。状态与状态间由转移分隔,当转移条件得到满足时,就实现转移,即上一状态的动作结束而下一状态的动作开始。用状态转移图描述控制系统直观、简单,是设计顺控程序有力工具
3.1.3 流程图语言 ( SFC) 4
( 2) SFC语言元素,由状态、转移和有向线段组成。
① 状态表示过程中的一个工步(动作)。状态符号用单线框表示,框内是状态的组件号。一个控制系统还必须要有一个初始状态,对应的是其运行的原点,初始状态的符号是双线框。
② 转移是表示从一个状态到另一个状态的变化。状态间要用向线段连接,以表示转移方向。有向线段上的垂直短线和它旁边标注的文字符号或逻辑表达式表示状态转移条件,凡从上到下、从左到右的有向线段箭头可省去不画。
③ 与状态对应的动作用该状态右边的一个或几个矩形框来表示,实际上其旁边大多是被驱动的线圈等。
11
3.1.3 流程图语言 ( SFC) 5
( 3) SFC流程图的基本形式
SFC的基本形式按结构可分为三种形式:
①单流程结构:其状态是一个接着一个地顺序进行,每个状态仅连接一个转移,每个转移也仅连接一个状态。
图 3.6 SFC流程图的三种基本形式
3.1.3 流程图语言 ( SFC) 6
② 选择结构:在某一状态后有几个单流程分支,当相应的转移条件满足时,一次只能选择进入一个单流程分支
。选择结构的转移条件是在某一状态后连接一条水平线,水平线下再连接各个单流程分支的第一个转移。各个单流程分支结束时,也要用一条水平线表示,而且其下不允许再有转移。
③并行结构是指在某一转移下,若转移条件满足,将同时触发并行的几个单流程分支,这些并行的顺序分支应画在两条双水平线之间。
三种程序设计语言比较:梯形图具有与传统继电接触控制相似的特征,编程直观、形象,易于掌握。助记符语言适合编程器在现场调试程序。 SFC语言以状态转移图方式编程,适合于编制复杂的顺控程序。
3.2 三菱 FX系列 PLC的基本逻辑指令 1
3.2.1 逻辑取与输出线圈驱动指令 LD,LDI,OUT
1,指令用法
( 1) LD( 取 ),常开接点与母线连接指令 。
( 2) LDI( 取反 ),常闭接点与母线连接指令 。
( 3) OUT( 输出 ),线圈驱动指令 。
表 3.4 逻辑取与输出线圈驱动指令
3.2.1 逻辑取与输出线圈驱动指令 LD,LDI,OUT 2
2,指令说明
( 1) LD和 LDI指令用于接点与母线相连 。 与 ANB和
ORB指令配合,还作为分支起点指令 。 目标组件,X、
Y,M,T,C,S。
( 2) OUT指令用于驱动输出继电器,辅助继电器,定时器,计数器,状态继电器和功能指令,但是不能用来驱动输入继电器,目标组件,Y,M,T,C,S和功能指令线圈 F。
( 3) OUT指令可以并行输出,相当于线圈是并联的,
如图 3.6中的 M100和 T1就是并联的 。 注意,输出线圈不能串联使用 。
( 4) 在对定时器,计数器使用 OUT指令后,须设置时间常数 K,或指定数据寄存器的地址 。 如图 3.6中 T1的
3.2.1 逻辑取与输出线圈驱动指令 LD,LDI,OUT 3
时间常数设置为 K10。 时间常数 K的设定,要占一步 。
表 3.6中给出了时间常数 K的设定值范围与对应的时间实际设定值范围,及以 T,C为目时 OUT指令所占步数 。
例 3.3 阅读图 3.6中的梯形图,试解答:
( 1) 写出图 3.6中梯形图所对应的指令表 。
( 2) 指出各指令的步序并计算程序的总步数 。
( 3) 计算定时器 T1的定时时间 。
表 3.5 定时器 /计数器时间常数 K的设定
3.2.1 逻辑取与输出线圈驱动指令 LD,LDI,OUT 4
时间常数设置为 K10。 时间常数 K的设定,要占一步 。
表 3.6中给出了时间常数 K的设定值范围与对应的时间实际设定值范围,及以 T,C为目时 OUT指令所占步数 。
例 3.3 阅读图 3.7中的梯形图,试解答:
( 1) 写出图 3.7中梯形图所对应的指令表 。
( 2) 指出各指令的步序并计算程序的总步数 。
( 3) 计算定时器 T1的定时时间 。
图 3.7 LD,LDI和 OUT指令应用举例解:
( 1) 从梯形图到指令表,按自上而下,自左向右依次进行转换,
得到对应图 3.7梯形图的指令表如表 3.7所示 。
( 2) 总的程序步为 10步 。 各指令的步序如表 3.7第 1列所示 。
3.2.1 逻辑取与输出线圈驱动指令 LD,LDI,OUT 5
( 3) 由附录中的表 A.1可知 T1是 100ms定时器,所以 T1定时时间为 10× 0.1= 1s。
表 3.6 对应图 3.7梯形图的指令表
3.2.2 接点串联指令 AND,ANI 1
1,指令用法
( 1) AND( 与 ),常开接点串联指令 。
( 2) ANI( 与非 ),常闭接点串联指令 。
2,指令说明
( 1) AND和 ANI指令用于单个接点串联,串联接点的数量不限,重复使用指令次数不限 。 目为 X,Y,M,T
,C,S。 表 3.7 接点串联指令
3.2.2 接点串联指令 AND,ANI 2
( 2) 在执行 OUT指令后,通过接点对其它线圈执行
OUT指令,称为,连续输出,( 又称纵接输出 ) 。
正确:图 3.8中紧接 OUT M101后,通过接点 T1输出
OUT Y001。
错误:图 3.9中 M101与 T1和 Y001交换,出错 。 非要这样纵接,要使用后述的 MPS和 MPP指令 。
图 3.9 纵接错误举例图 3.8 AND与 ANI指令应用举例
3.2.2 接点串联指令 AND,ANI 3
例 3.4 阅读图 3.8中的梯形图,试解答:
( 1) 写出图 3.8梯形图所对应的指令表 。
( 2) 指出各指令的步序并计算程序的总步数 。
解,( 1) 对应图 3.8梯形图的指令表如表 3.9所示 。
( 2) 各指令步序如表 3.9。 程序总的占 9步 。
表 3.8 对应图 3.8梯形图的指令表
3.2.3 接点并联指令 OR,ORI 1
1,指令用法
( 1) OR( 或 ),常开接点并联指令
( 2) ORI( 或非 ),常闭接点并联指令 。
例 3.5 阅读图 3.10( a) 中的梯形图,试解答:
( 1) 写出图 3.10( a) 梯形图所对应的指令表 。
( 2) 指出各指令的步序并计算程序的总步数 。
表 3.9 接点并联指令
3.2.3 接点并联指令 OR,ORI 2
解,( 1) 对应图 3.10梯形图的指令表如 图 3.10( b) 所示 。
( 2) 各指令步序 也 如 图 3.10( b),各指令均为 1步,所以程序总的占 10步 。
图 3.10 OR与 ORI指令举例
3.2.3 接点并联指令 OR,ORI 3
2,指令说明
( 1) OR和 ORI指令引起的并联,是从 OR和 ORI一直并联到前面最近的 LD和 LDI指令上,如图 3.10( a),并联的数量不受限制 。 操作目标组件为 X,Y,M,T,C
,S。
( 2) OR和 ORI指令只能用于单个接点并联连接,若要将两个以上接点串联而成的电路块并联,要用后述的
ORB指令 。
3.2.4 串联电路块的并联指令 ORB
1,指令用法
ORB( 串联电路块或 ),将两个或两个以上串联块并联连接的指令 。 串联块:两个以上接点串联的电路 。 串联块并联,支路始端用 LD和 LDI,终端用 ORB指令 。
2,指令说明
( 1) ORB指令无操作数,其后不跟任何软组件编号 。
( 2) 多重并联电路中,ORB指令可以集中起来使用;
切记:在一条线上 LD和 LDI指令重复使用次数要 ≤ 8。
表 3.10 串联电路块的并联指令
3.2.4 串联电路块的并联指令 ORB 2
例 3.5 阅读图 3.11( a) 中的梯形图,试解答:
( 1) 写出图 3.11( a) 梯形图所对应的指令表 。
( 2) 指出各指令的步序并计算程序的总步数 。
图 3.11 ORB指令举例
3.2.4 串联电路块的并联指令 ORB 3
解:
( 1) 对应 图 3.11( a) 梯形图的指令表如 图 3.11( b) 所示 。 按照两两并联的原则,在首次出现的两个串联块后应加一个 ORB
指令,此后每出现一个要并联的串联块,就要加一个 ORB指令

( 2) 各指令步序 也 如 图 3.11( b),各指令均为 1步,所以 程序总的占 10步 。
3.2.5 并联电路块的串联指令 ANB 1
1,指令用法
ANB( 并联电路块与 ),将并联电路块的始端与前一个电路串联连接的指令 。
并联块:两个以上接点并联的电路 。
并联块串联时要用 ANB指令,支路始端用 LD和 LDI,
终端用 ANB指令 。
3.2.5 并联电路块的串联指令 ANB 2
2,指令说明
( 1) ANB指令无操作数,其后不跟任何软组件编号 。
( 2) ANB指令可以集中起来使用,但是切记,此时在一条线上 LD和 LDI指令重复使用次数要 ≤ 8。
例 3.6 阅读图 3.12( a) 中的梯形图,试解答:
( 1) 写出图 3.12( a) 梯形图所对应的指令表 。
( 2) 指出各指令的步序并计算程序的总步数 。
解,( 1) 对应图 3.12( a) 梯形图的指令表如图 3.12( b) 。 按两两串联原则,在首次出现的两并联块后应加一个 ANB指令,
表 3.11 并联电路块的串联指令
3.2.5 并联电路块的串联指令 ANB 3
此后每出现一个并联块,就要加一个 ANB。 前一并联块结束时
,应用 LD或 LDI指令开始后一并联块 。
( 2) 各指令步序 也 如 图 3.12( b),各指令均为 1步,所以 程序总的占 11步 。
图 3.12 ANB指令举例
3.2.6 多重输出指令 MPS,MRD,MPP 1
1,指令用法
( 1) MPS( PUSH),进栈指令 。
( 2) MRD( READ),读栈指令 。
( 3) MPP( POP),出栈指令 。
这组指令可将接点的状态先进栈保护,
图 3.13 栈操作示意当需要接点状态时,再出栈恢复,
以保证与后面的电路正确连接 。
表 3.12 多重输出指令
3.2.6 多重输出指令 MPS,MRD,MPP 2
2,指令说明
( 1) PLC中,有 11个可存储中间运算结果的存储器,
它们相当于微机中的堆栈,是按照先进后出的原则进行存取的一段存储器区域 。 堆栈指令的操作如图 3.13。
( 2) 使用一次 MPS指令,该时刻的运算结果就压入第一个单元中 ( 栈顶 ) 。 再次使用 MPS,当前结果压入栈顶,原先数据依次向栈的下一个单元推移 。
( 3) 使用 MPP指令,各数据依次向上一个栈单元传送
。 栈顶数据在弹出后就从栈内消失 。
( 4) MRD是栈顶数据的读出专用指令,但栈内的数据不发生下压或上托的传送 。
( 5) MPS,MRD,MPP指令均无操作数 。
( 6) MPS和 MPP应配对使用,连续使用次数 ≤ 11次 。
3.2.6 多重输出指令 MPS,MRD,MPP 3
例 3.7 阅读图 3.14( a) 中一层堆栈的梯形图,试解答:
( 1) 写出图 3.14( a) 梯形图所对应的指令表 。
( 2) 指出各指令的步序并计算程序的总步数 。
图 3.14 例 3.7多重输出指令举例
3.2.6 多重输出指令 MPS,MRD,MPP 4
解:
( 1) 对应图 3.14( a) 梯形图的指令表如图 3.14( b) 。 注意,
栈操作指令在梯形图中并非显式可见的,需要人工将它们加在指令表中 。 为了减少出错,可用 FXGPC软件先画好梯形图,然后再将梯形图转换为指令 。
( 2) 用 FXGP先画好梯形图,然后用 工具 _ 转换 命令,即可得到图 3.14( b) 所示的指令表 。 各指令的步序已经在此程序中标出,并可得到总的程序步为 21步 。
例 3.8 阅读图 3.15( a) 中二层堆栈的梯形图,试解答:
( 1) 写出图 3.15( a) 梯形图所对应的指令表 。
( 2) 指出各指令的步序并计算程序的总步数 。
解,( 1) 用 FXGP先画好梯形图,然后用 工具 _ 转换 命令,即可得到 对应图 3.15( a) 梯形图的指令表如图 3.15( b) 所示 。
( 2) 各指令的步序已经在此程序中标出,并可得到总的程序步为 18步 。
3.2.6 多重输出指令 MPS,MRD,MPP 5
( 1) 对应图 3.14( a) 梯形图的指令表如图 3.14( b) 。 注意,
栈操作指令在梯形图中并非显式可见,要人工将其加在指令表中

( 2) 用 FXGP先画好梯形图,然后用 工具 _ 转换 命令,即可得到图 3.14( b) 所示的指令表 。 各指令的步序已经在此程序中标出,并可得到总的程序步为 21步 。
图 3.15 例 3.9多重输出指令举例