
三菱FX系列可编程控制器的功能指令 PLC是由取代继电器开始产生、发展的,且早期的PLC绝大部分用于顺序控制,于是 许多人习惯把PLC看作是继电器,定时器,计数器的集合,把PLC的作用局限地等同 于继电器控制系统,顺序控制器等。其实,PLC就是工业控制计算机。PLC系统具有 一切计算机控制系统的功能,大型的PLC系统就是当代最先进的计算机控制系统.小 型的PLC由于运算速度及存贮容量的限制,功能自然稍弱,但为了使PLC在其基本逻 辑功能,顺序步进功能之外具有更近一步的特殊功能,以尽可能多地满足PLC用户的 特殊要求,从80年代开始,PLC制造商就逐步地在小型PLC上加入一些功能指令或 称为应用指令。这些功能指令实际上就是一个个功能不同的子程序.随着芯片技术的 进步,小型PLC的运算速度、存贮量不断增加,其功能指令的功能也越来越强。许多 技术人员梦寐以求甚至以前不敢想象的功能,通过功能指令就成为极容易实现的现实, 从而大大提高了PLC的实用价值。 一般来说功能指令可以分为以下几类: (1)程序流向控制(4)移位与循环移位 (7)便利指令 (2)传送与比较 (5)数据处理 (8)外部输入输出处理 (3)算术与逻辑运算(6)高速处理 (9)外部设备通讯
三菱FX2系列可编程控制器的功能指令 PLC是由取代继电器开始产生、发展的,且早期的PLC绝大部分用于顺序控制,于是 许多人习惯把PLC看作是继电器,定时器,计数器的集合,把PLC的作用局限地等同 于继电器控制系统,顺序控制器等。其实,PLC就是工业控制计算机。PLC系统具有 一切计算机控制系统的功能,大型的PLC系统就是当代最先进的计算机控制系统.小 型的PLC由于运算速度及存贮容量的限制,功能自然稍弱,但为了使PLC在其基本逻 辑功能,顺序步进功能之外具有更近一步的特殊功能,以尽可能多地满足PLC用户的 特殊要求,从80年代开始,PLC制造商就逐步地在小型PLC上加入一些功能指令或 称为应用指令。这些功能指令实际上就是一个个功能不同的子程序.随着芯片技术的 进步,小型PLC的运算速度、存贮量不断增加,其功能指令的功能也越来越强。许多 技术人员梦寐以求甚至以前不敢想象的功能,通过功能指令就成为极容易实现的现实, 从而大大提高了PLC的实用价值。 一般来说功能指令可以分为以下几类: (1)程序流向控制 (4)移位与循环移位 (7)便利指令 (2)传送与比较 (5)数据处理 (8)外部输入输出处理 (3)算术与逻辑运算 (6)高速处理 (9)外部设备通讯

熟练掌握基本逻辑指令、顺序步进指令后,再掌握功能指令,编起程序来就变化无穷,随 心所欲,得心应手 目前广为应用的小型PLC(例如F1、F2系列,80年代产品),其功能指令采用功能线圈 的形式。例如 H100 F671 K123 F672 K700 F670 KS3 这是一条数据传送指令,其功能是将常数123传送到数据器D700中。执行结果是D700中 存入常数123。其操作原理见上图。 上图中,M1O0称为功能指令的执行条件,也称为驱动输入(Drive input)。功能线圈 F670指定操作功能(相当于子程序号),F671、F672指定执行该子程序必须的操作数。本 指令中只用了两个操作数,F671指定源操作数(Source),F672指定目标(Destination). 这种格式在运用熟练之后,使用起来也还方便。但是这一长串功能线圈F670、F671..,以 及其后的数字很难令人联想到该指令的实际功能。在大型PLC中以及新的小型PLC(如三 菱FX2系列,90年代产品)中,功能指令采用了计算机通用的助记符形式,与前例的功能 指令相同的功能可用下图方式表示: M100 K123 D500
熟练掌握基本逻辑指令、顺序步进指令后,再掌握功能指令,编起程序来就变化无穷,随 心所欲,得心应手。 目前广为应用的小型PLC(例如F1、F2系列,80年代产品),其功能指令采用功能线圈 的形式。例如 这是一条数据传送指令,其功能是将常数123传送到数据器D700中。执行结果是D700中 存入常数123。其操作原理见上图。 上图中,M100称为功能指令的执行条件,也称为驱动输入(Drive input)。功能线圈 F670指定操作功能(相当于子程序号),F671、F672指定执行该子程序必须的操作数。本 指令中只用了两个操作数,F671指定源操作数(Source),F672指定目标(Destination)。 这种格式在运用熟练之后,使用起来也还方便。但是这一长串功能线圈F670、F671…,以 及其后的数字很难令人联想到该指令的实际功能。在大型PLC中以及新的小型PLC(如三 菱FX2系列,90年代产品)中,功能指令采用了计算机通用的助记符形式,与前例的功能 指令相同的功能可用下图方式表示:

看到上图后,稍具计算计和PLC知识的人马上可以联想到:该指令为当M1O0接通时,把 十进制常数123送到数据寄存器D500中去。 这种格式具有显而易见的优点,它必定会成为PC功能指令的“流行格式”。因而,本章 以FX2系列PC的功能指令系统为蓝本,详细剖析其基本的格式、类型及每条功能指令的具 体规则。 功能指令的基本格式 一、功能指令的基本格式及使用要素 和基本指令不同,功能指令不含表达梯形图符号间相互关系的成分。而是直接表达本 指令要做什么。FX2系列PLC在梯形图中使用功能框表示功能指令。图7.1.1是功能指令的 梯形图示例。图中X0的常开触点是功能指令的执行条件,其后的方框即为功能框。功能 框中分栏表示指令的名称、相关数据或数据的存储地址。这种表达方式的优点是直观,稍 具计算机程序知识的人马上可以悟出指令的功能。上例中指令的功能是:当M8002接通时 D10和D11中的数据进行交换。 [D1.][D2.] FNC 17 XCH(P) D10 D11 图7.1.1
看到上图后,稍具计算计和PLC知识的人马上可以联想到:该指令为当M100接通时,把 十进制常数123送到数据寄存器D500中去。 这种格式具有显而易见的优点,它必定会成为PC功能指令的“流行格式”。因而,本章 以FX2系列PC的功能指令系统为蓝本,详细剖析其基本的格式、类型及每条功能指令的具 体规则。 功 能 指 令 的 基 本 格 式 一、功能指令的基本格式及使用要素 和基本指令不同,功能指令不含表达梯形图符号间相互关系的成分。而是直接表达本 指令要做什么。FX2系列PLC在梯形图中使用功能框表示功能指令。图7.1.1是功能指令的 梯形图示例。图中X0的常开触点是功能指令的执行条件,其后的方框即为功能框。功能 框中分栏表示指令的名称、相关数据或数据的存储地址。这种表达方式的优点是直观,稍 具计算机程序知识的人马上可以悟出指令的功能。上例中指令的功能是:当M8002接通时 ,D10和D11中的数据进行交换。 图 7.1.1

使用功能指令需注意指令的基本格式级使用要素。现以加法指令为例作出说明,表7.1.1 及图7.12给出了加法指令的基本格式及使用要素。 表7.1.1加法指令格式及要素 操作数范围 指令 助记符 指令 名称 代码 程序步 SI⊙) S2-) D可) ADD FNC20 K、H 加法 KnX、KnY、KnM ADD、ADDP..7步 ADD(P) (16/32) KnX、KnY、KnM、KnS Kns DADD、DADDP. T、C、D、V、Z T、C、D、V、Z 13步 5 S1.) S2. D. FNC (D)ADD D10 D12 D14 执行条件 源操作数 目标操作数 功能指令段 图7.1.2
使用功能指令需注意指令的基本格式级使用要素。现以加法指令为例作出说明,表7.1.1 及图7.1.2给出了加法指令的基本格式及使用要素。 表7.1.1 加法指令格式及要素 指令 名称 助记符 指令 代码 操作数范围 程序步 S1(•) S2(•) D(•) 加法 ADD ADD(P) FNC20 (16/32) K、H KnX、KnY、KnM、KnS T、C、D、V、Z KnX、KnY、KnM、 KnS T、C、D、V、Z ADD、ADDP…7步 DADD、DADDP… 13步 图 7.1.2

图7.1.2及表7.1.1中综合功能指令的使用要素如下。 (1)功能指令编号每条功能指令都有一定的编号。在使用简易编程器的场合,输入功能 指令时,首先输入的就是功能编号。如图7.1.2中1所示的就是功能指令编号。 (2)助记符功能指令的助记符是该指令的英文缩写词。如加法指令“ADDITION简写为 ADD,交替输出指令“ALTERNATE OUTPUT简化为ALT。采用这种方式容易了解指令 的功能。助记符如图7.1.2中2所示。 (3)数据长度功能指令依处理数据的长度分为16位指令和32位指令。其中32位指令用(D) 表示,无D)符号的为16位指令。图7.1.2中3为数据长度符号。 (4)执行形式功能指令有脉冲执行型和连续执行型。指令中标有(P)的为脉冲执行型(如图 7.1.2中4所示)。脉冲执行型指令在执行条件满足时仅执行一个扫描周期。这点对数据处理 有很重要的意义。比如一条加法指令,在脉冲执行时,只将加数和被加数做一次加法运算 而连续型加法运算指令在执行条件满足时,每一个扫描周期都要相加一次。某些指令如 NC、DEC等,在用连续执行方式时应特别注意。在指令标示栏中用“、”警示,见图 7.1.2中5
图7.1.2及表7.1.1中综合功能指令的使用要素如下。 (1)功能指令编号 每条功能指令都有一定的编号。在使用简易编程器的场合,输入功能 指令时,首先输入的就是功能编号。如图7.1.2中1所示的就是功能指令编号。 (2)助记符 功能指令的助记符是该指令的英文缩写词。如加法指令“ADDITION”简写为 ADD,交替输出指令“ALTERNATE OUTPUT‘’简化为ALT。采用这种方式容易了解指令 的功能。助记符如图7.1.2中2所示。 (3)数据长度 功能指令依处理数据的长度分为16位指令和32位指令。其中32位指令用(D) 表示,无(D)符号的为16位指令。图7.1.2中3为数据长度符号。 (4)执行形式 功能指令有脉冲执行型和连续执行型。指令中标有(P)的为脉冲执行型(如图 7.1.2中4所示)。脉冲执行型指令在执行条件满足时仅执行一个扫描周期。这点对数据处理 有很重要的意义。比如一条加法指令,在脉冲执行时,只将加数和被加数做一次加法运算。 而连续型加法运算指令在执行条件满足时,每一个扫描周期都要相加一次。某些指令如 INC、DEC等,在用连续执行方式时应特别注意。在指令标示栏中用“◥”警示,见图 7.1.2中5

(⑤)操作数操作数是功能指令涉及或产生的数据。操作数分为源操作数、目标操作数及其 他操作数。源操作数是指令执行后不改变其内容的操作数,用[S]表示。目标操作数是指 令执行后将改变其内容的操作数,D]表示目标操作数。m与表示其他操作数。其他操作 数常用来表示常数或者对源操作数和目标操作数作出补充说明。表示常数时,K为十进制 H为十六进制。在一条指令中,源操作数、目标操作数及其他操作数都可能不止一个,也 可以一个都没有。某种操作数多时,可用下标数码区别,如[S1][S2]。 操作数从根本上来说,是参加运算数据的地址。地址是依元件的类型分布在存储区中。 由于不同指令对参与操作的元件类型有一定限制,因此操作数的取值就有一定的范围。正 确地选取操作数类型,对正确使用指令有很重要的意义。要想了解这些内容可查阅相关手 册。操作数在图7.1.2中见6。 (6)变址功能操作数可具有变址功能。手册操作数旁加有“.”的即为具有变址功能的 操作数。如[S1][S2小D]等。 (⑦)程序步数程序步数为执行该指令所需的步数。功能指令的功能号和指令助记符占一 个程序步,每个操作数占2个或4个程序步(16位操作数是2个程序步,32位操作数是4个程 序步)。因此,一般16位指令为7个程序步,32位指令为13个程序步。 在了解了以上要素以后,我们就可以通过查阅手册了解功能指令的用法了。如图7.1.2所示 的功能指令是,功能指令编号为20,32位加法指令,采用脉冲执行型。当其工作条件X0 置1时,数据寄存器D10和D12内的数据相加,结果送到D14中
(5)操作数 操作数是功能指令涉及或产生的数据。操作数分为源操作数、目标操作数及其 他操作数。源操作数是指令执行后不改变其内容的操作数,用[S]表示。目标操作数是指 令执行后将改变其内容的操作数,[D]表示目标操作数。m与n表示其他操作数。其他操作 数常用来表示常数或者对源操作数和目标操作数作出补充说明。表示常数时,K为十进制, H为十六进制。在一条指令中,源操作数、目标操作数及其他操作数都可能不止一个,也 可以一个都没有。某种操作数多时,可用下标数码区别,如[S1][S2]。 操作数从根本上来说,是参加运算数据的地址。地址是依元件的类型分布在存储区中。 由于不同指令对参与操作的元件类型有一定限制,因此操作数的取值就有一定的范围。正 确地选取操作数类型,对正确使用指令有很重要的意义。要想了解这些内容可查阅相关手 册。操作数在图7.1.2中见6。 (6)变址功能 操作数可具有变址功能。手册操作数旁加有“.”的即为具有变址功能的 操作数。如[S1·]、[S2·]、[D·]等。 (7)程序步数 程序步数为执行该指令所需的步数。功能指令的功能号和指令助记符占一 个程序步,每个操作数占2个或4个程序步(16位操作数是2个程序步,32位操作数是4个程 序步)。因此,一般16位指令为7个程序步,32位指令为13个程序步。 在了解了以上要素以后,我们就可以通过查阅手册了解功能指令的用法了。如图7.1.2所示 的功能指令是,功能指令编号为20,32位加法指令,采用脉冲执行型。当其工作条件X0 置1时,数据寄存器D10和D12内的数据相加,结果送到D14中

二、FX,系列PLC数据类软元件 本部分主要介绍FX2系列PLC数据类特殊软元件,至于通用数据寄存器与文件寄存器可 参阅第一章。 1、变址寄存器(V,Z各一点) 变址寄存器V、Z和通用数据寄存器一样,是进行数值数据读、写的16位数据寄存器。 主要用于运算操作数地址的修改。 进行32位数据运算时,将两者结合使用,指定Z为低位,组合成为(V,Z)。如果直接向 V写入较大的数据,易出现运算误差。 这里是变址寄存器应用的例子,根据V与Z的内容修改软元件地址号,称为软元件的变 址。 可以用变址寄存器进行变址的软元件是X、Y、M、S、P、T、C、D、K、H、KnX、 KnY、KnM、KnS(Kn△为位组合元件,见本节后述说明)。例如V=6,则K20V为 K26(20+6=26):如果V=7,则K20V变为K27(20+7=27)。 应用说明如图7.1.3所示。 如:当V=8,Z=14时, D5+8)=D(13);D10+14)二D24) 则(D13)→(D24) FNC12 MOV D10Z 当V=9,D(5+9)=D14), 则(D14)→(D24)
二、FX2系列PLC数据类软元件 本部分主要介绍FX2系列PLC数据类特殊软元件,至于通用数据寄存器与文件寄存器可 参阅第一章。 1、变址寄存器(V,Z各一点) 变址寄存器V、Z和通用数据寄存器一样,是进行数值数据读、写的16位数据寄存器。 主要用于运算操作数地址的修改。 进行32位数据运算时,将两者结合使用,指定Z为低位,组合成为(V,Z)。如果直接向 V写入较大的数据,易出现运算误差。 这里是变址寄存器应用的例子,根据V与Z的内容修改软元件地址号,称为软元件的变 址。 可以用变址寄存器进行变址的软元件是X、Y、M、S、P、T、C、D、K、H、KnX、 KnY、KnM、 KnS(Kn△ 为位组合元件 ,见本节后述说明 )。例如V=6 , 则 K20V为 K26(20+6=26);如果V=7,则K20V变为K27(20+7=27)。 应用说明如图7.1.3所示。 如:当V=8,Z=14时, D(5+8)=D(l3);D(10+14)二D(24) 则(D13)→(D24) 当V=9,D(5+9)=D(14), 则(D14) →(D24)

但是,变址寄存器不能修改V与Z本身或位数指定用的Kn参数。例如K4M0Z有效,而 K0ZM0无效。 2、指针P/D 指针用作跳转、中断等程序的人口地址,与跳转、子程序、中断程序等指令一起应用。 地址号采用十进制数分配。按用途可分为指针P和指针I两类。 (I).指针P 指针P用于跳转指令,其地址号P0~P63,共64点。P63即相当于END指令。指针P用于子 程序调用指令,其地址号P0~P62共63点。应用举例如图7.1.4所示。 图7.1.4(a)所示的是在条件跳转使用,图7.1.4b)所示的是在子程序调用使用。 在编程时,指针编号不能重复使用。 FFNC 01 CALL P1 HI0 FNC,00 PO CJ FNC 06 主程序 FEND 女 FNC 02 程 (a)条件转移 SRET (b)子程序调用 图7.1.4指针P的使用
但是,变址寄存器不能修改V与Z本身或位数指定用的Kn参数。例如K4M0Z有效,而 K0ZM0无效。 2、指针(P/I) 指针用作跳转、中断等程序的人口地址,与跳转、子程序、中断程序等指令一起应用。 地址号采用十进制数分配。按用途可分为指针P和指针I两类。 (1).指针P 指针P用于跳转指令,其地址号P0~P63,共64点。P63即相当于END指令。指针P用于子 程序调用指令,其地址号P0~P62共63点。应用举例如图7.1.4所示。 图7.1.4(a)所示的是在条件跳转使用,图7.1.4(b)所示的是在子程序调用使用。 在编程时,指针编号不能重复使用。 图 7.1.4 指针P的使用

(2).指针1 指针根据用途又分为二种类型。 A、输人中断用I00口~I50口,共6点。指针的格式表示如图7.1.5。 ▣0▣ 输入中断 口口口定时器中断 0:下降沿中断 1099ms 1:上升沿中断 输入号位05, 定时器中断号6~8, 每个输入只能用一次 每个定时器只能用一次 图7.1.5 图7.1.6 输人中断是外界信号引起的中断。外界信号的输入口为X0~X5,输入号也就以此定义。 上升沿或下降沿指对输入信号类别的选择。 例如,I001为输入X0从OFF→ON变化时,执行由该指针作为标号后面的中断程序,并在 执行IRET指令时返回。 B、定时器中断用16口口~18口口,共3点。指针的格式表示如图7.1.6。 定时器中断为机内信号中断。由指定编号为6~8的专用定时器控制。设定时间在10~99s 间选取。每隔设定时间中断一次
(2).指针I 指针I根据用途又分为二种类型。 A、输人中断用 I00□~I50□,共6点。指针的格式表示如图7.1.5。 I□0□ 输入中断 0:下降沿中断 1:上升沿中断 输入号位0~5, 每个输入只 能用一次 图7.1.5 I□ □□ 定时器中断 10~99ms 定时器中断号6~8, 每个定时器只能用一次 图7.1.6 输人中断是外界信号引起的中断。外界信号的输入口为X0~X5,输入号也就以此定义。 上升沿或下降沿指对输入信号类别的选择。 例如,I00l为输入X0从OFF→ON变化时,执行由该指针作为标号后面的中断程序,并在 执行IRET指令时返回。 B、定时器中断用 16□□~18□□,共3点。指针的格式表示如图7.1.6。 定时器中断为机内信号中断。由指定编号为6~8的专用定时器控制。设定时间在10~99ms 间选取。每隔设定时间中断一次

例如,I610为每隔10ms就执行标号为I610后面的中断程序一次,在IRET指令执行时返回 (3).数据类软元件的结构形式 A、基本形式 FX2系列PLC数据类元件的基本结构为16位存储单元。最高位(第16位)为符号位,单 元标号如上所述,称为“字元件”。 B、双字元件 为了完成32位数据的存储,可以使用二个字元件组成“双字元件”,其中低位元件存 储32位数据的低位部分,高位元件存储32位数据的高位部分。最高位(第32位)为符号位。 在指令中使用双字元件时,一般只用其低位地址表示这个元件,其高位同时被指令使用。 虽然取奇数或偶数地址作为双字元件的低位是任意的,但为了减少元件安排上的错误,建 议用偶数作为双字元件的元件号。 C、位组合元件 作为用户环境的重要内容,在可编程控制器中,人们除了要用二进制数据外,常希望 能直接使用十进制数据。FX2系列PLC中使用4位BCD码表示一位十进制数据,由此产生了 位组合元件,这是由4位位元件成组使用的情况。在输入继电器、输出继电器及辅助继电 器中都有使用。位组合元件表达为KnX、KnY、KnM、KnS等形式,式中Kn指有n组这样 的数据。如KnX0表示位组合元件是由从X0开始的n组位元件组合。若n为l,则K1X0指由 X0、X、X2、X3四位输入继电器的组合:而为2,则K2X0是指X0~X7八位输入继电器 组合
例如,I610为每隔10ms就执行标号为I610后面的中断程序一次,在IRET指令执行时返回。 (3).数据类软元件的结构形式 A、基本形式 FX2系列PLC数据类元件的基本结构为16位存储单元。最高位(第16位)为符号位,单 元标号如上所述,称为“字元件”。 B、双字元件 为了完成32位数据的存储,可以使用二个字元件组成“双字元件”,其中低位元件存 储32位数据的低位部分,高位元件存储32位数据的高位部分。最高位(第32位)为符号位。 在指令中使用双字元件时,一般只用其低位地址表示这个元件,其高位同时被指令使用。 虽然取奇数或偶数地址作为双字元件的低位是任意的,但为了减少元件安排上的错误,建 议用偶数作为双字元件的元件号。 C、位组合元件 作为用户环境的重要内容,在可编程控制器中,人们除了要用二进制数据外,常希望 能直接使用十进制数据。FX2系列PLC中使用4位BCD码表示一位十进制数据,由此产生了 位组合元件,这是由4位位元件成组使用的情况。在输入继电器、输出继电器及辅助继电 器中都有使用。位组合元件表达为KnX、KnY、KnM、KnS等形式,式中Kn指有n组这样 的数据。如KnX0表示位组合元件是由从X0开始的n组位元件组合。若n为1,则K1X0指由 X0、Xl、X2、X3四位输入继电器的组合;而n为2,则K2X0是指X0~X7八位输入继电器 组合