1、FX2N系列可编程控制器功能指令系列可编程控制器功能指令4.5.1概述概述定义定义定义定义可编程控制器的基本指令可编程控制器的基本指令基于继电器、定时器、计数器类软元件,主要用于逻辑处理的指令。功能指令(应用程序)功能指令(应用程序)用于数据的传送、运算、变换及程序控制等功能。3概述概述功能指令功能指令功能指令功能指令的特点的特点的特点的特点 功能强大功能强大 指令处理的数据多指令处理的数据多 数据在存储单元中流转的过程复杂数据在存储单元中流转的过程复杂4 数据类软元件及存储器组织数据类软元件及存储器组织n一、数据类软元件的类型及使用一、数据类软元件的类型及使用 1.1.1.1.数据寄存器(数
2、据寄存器(数据寄存器(数据寄存器(D D D D)数据寄存器是用于存储数值数据的软元件,FX2N系列机中为16位(最高位为符号位,可处理数值范围为-32,767+32,767),如将2个相邻数据寄存器组合,可存储32位(最高位为符号位,可处理数值范围为-2,147,483,647+2,147,483,647)的数值数据。5 数据类软元件及存储器组织数据类软元件及存储器组织图6-1 16/32位二进制数据各位权值6 数据类软元件及存储器组织数据类软元件及存储器组织n常用数据寄存器有以下几类常用数据寄存器有以下几类:n通用数据寄存器(D0D199共200点)n断电保持数据寄存器(D200D511共
3、312点)n特殊数据寄存器(D8000D8255共256点)7数据类软元件及存储器组织数据类软元件及存储器组织举例在 D8000中,存有监视定时器的时间设定值。它的初始值由系统只读存储器在通电时写入。要改变时可利用传送指令(FNC12 MOV)写入未定义的特殊数据寄存未定义的特殊数据寄存未定义的特殊数据寄存未定义的特殊数据寄存器不要使用!器不要使用!器不要使用!器不要使用!图6-2 特殊数据寄存器数据的写入FNC 12 MOVK250 D800FNC 07 WDTM8002将监视定时器设为250ms监视定时器刷新8 数据类软元件及存储器组织数据类软元件及存储器组织n变址寄存器V、Z和通用数据寄
4、存器一样,是进行数值数据读、写的16位数据寄存器。主要用于运算操作数地址的修改。n进行32位数据运算时,将V0V7,Z0Z7对号结合使用,如指定Z0为低位,则V0为高位,组合成为:(V0,Z0)。变址寄存器V、Z的组合如图6-3所示。2.2.2.2.变址寄存器变址寄存器变址寄存器变址寄存器(V0(V0(V0(V0V7,Z0V7,Z0V7,Z0V7,Z0Z7Z7Z7Z7共共共共16161616点点点点)V0Z0V0 Z016位32位16位高位低位变址寄存器V、Z的组合9 数据类软元件及存储器组织数据类软元件及存储器组织举例软元件的变址FNC 12 MOVD5V0 D10Z0X000如:当V0=8
5、,Z0=14时,D(5+8)=D(13);D(10+14)=D(24)则(D13)(D24)当V0=9,D(5+9)=D(14),则(D14)(D24)图6-4 变址寄存器的使用说明可以用变址寄存器进行变址的软元件是:X、Y、M、S、P、T、C、D、K、H、KnX、KnY、Kn M、KnS。10数据类软元件及存储器组织数据类软元件及存储器组织注意!注意!注意!注意!变址寄存器不能修改V与Z本身或位数指定用的Kn参数。例如K4M0Z有效,而K0ZM0无效。11 数据类软元件及存储器组织数据类软元件及存储器组织n二、数据类软元件的结构形式二、数据类软元件的结构形式n(1)(1)(1)(1)基本形式
6、基本形式基本形式基本形式 FX2N系列PLC数据类元件的基本结构为16位存储单元。具有符号位和字元件。n(2)(2)(2)(2)双字元件双字元件双字元件双字元件 其中低位元件存储32位数据的低位部分,高位元件存储32位数据的高位部分。最高位(第32位)为符号位。n 在指令中使用双字元件时,一般只用其低位地址表示这个元件,其高位同时被指令使用。虽然取奇数或偶数地址作为双字元件的低位是任意的,但为了减少元件安排上的错误,建议用偶数作为双字元件的元件号。18 数据类软元件及存储器组织数据类软元件及存储器组织n(3)(3)(3)(3)位组合元件位组合元件位组合元件位组合元件 FX2N系列PLC中使用4
7、位BCD码,产生了位组合元件。n 位组合元件常用输入继电器X、输出继电器Y、辅助继电器M及状态继电器S组成,元件表达为KnX、KnY、KnM、KnS等形式,式中Kn指有n组这样的数据。KnX000表示位组合元件是由从 X000开始的 n组位元件组合。若n为1,则 K1X0指由 X000、X001、X002、X003四位输入继电器的组合;而n为2,则 K2X0是指 X000 X007八位输入继电器的二组组合。除此之外,位组合元件还可以变址使用,如 KnXZ、KnYZ、Kn MZ、KnSZ等,这给编程带来很大的灵活性。举例19功能指令的表达形式、使用要素及分类功能指令的表达形式、使用要素及分类n一
8、、功能指令的表达形式及使用要素一、功能指令的表达形式及使用要素 1.1.1.1.功能指令的表达形式功能指令的表达形式功能指令的表达形式功能指令的表达形式 功能指令不含表达梯形图符号间相互关系的成分,而是直接表达本指令要做什么。FNC 12 MOVK123 D500X8002图6-6 功能指令的梯形图形式24功能指令的表达形式、使用要素及分类功能指令的表达形式、使用要素及分类指令名称助记符指令代码操作数范围程序步S1S2D加法ADDADD(P)FNC20(16/32)K、HKnX、KnY、Kn M、KnST、C、D、V、ZKnY、Kn M、KnST、C、D、V、ZADD、ADDP7步DADD、D
9、ADDP13步 2.2.2.2.功能指令的使用要素功能指令的使用要素功能指令的使用要素功能指令的使用要素表6-2 加法指令要素图6-7 功能指令的格式及要素25功能指令的表达形式、使用要素及分类功能指令的表达形式、使用要素及分类功能指令功能指令的使用要的使用要素素功能指令编号功能指令编号 助记符助记符数据长度数据长度 执行形式执行形式操作数操作数.某些指令如某些指令如INCINC,DECDEC在用连续在用连续执行方式时应特别注意执行方式时应特别注意,每个扫每个扫描周期都要执行一次。警示标描周期都要执行一次。警示标示。示。264.5.2程序流向控制指令程序流向控制指令FNC00FNC09目录目录
10、n 条件跳转指令及应用条件跳转指令及应用n 子程序调用指令及应用子程序调用指令及应用n 中断指令及应用中断指令及应用n 循环指令循环指令n 程序结构程序结构1内容提要内容提要2 条件跳转指令、子程序指令、中断指令及程序循条件跳转指令、子程序指令、中断指令及程序循环指令环指令,统称为程序控制类指令。统称为程序控制类指令。程序控制指令用于程序执行流程的控制。对一个程序控制指令用于程序执行流程的控制。对一个扫描周期而言扫描周期而言,跳转指令可以使程序出现跨越或跳跃以跳转指令可以使程序出现跨越或跳跃以实现程序段的选择。子程序指令可调用某段子程序。实现程序段的选择。子程序指令可调用某段子程序。循环指令可
11、多次重复执行特定的程序段。中断指令则循环指令可多次重复执行特定的程序段。中断指令则用于中断信号引起的子程序调用。用于中断信号引起的子程序调用。程序控制类指令可以影响程序执行的流向及内容。程序控制类指令可以影响程序执行的流向及内容。对合理安排程序的结构对合理安排程序的结构,有效提高程序的功能有效提高程序的功能,对实现对实现某些技巧性运算某些技巧性运算,都有重要的意义。都有重要的意义。1、条件跳转指令及应用条件跳转指令及应用n一、条件跳转指令的要素和含义一、条件跳转指令的要素和含义指令名称助记符指令代码位数操作数程 序 步 D条件跳转CJCJ(P)FNC00(16)P0P63P63即ENDCJ和
12、CJ(P)3步标号 P1步表8-1 条件跳转指令要素含义 在满足跳转条件之后的各个扫描周期中,PLC将不再扫描执行跳转指令与跳转指针P间的程序,即跳到以指针P为入口的程序段中执行。直到跳转的条件不再满足,跳转停止进行。3 条件跳转指令及应用条件跳转指令及应用 条件跳转指令使用说明4 条件跳转指令及应用条件跳转指令及应用n二、条件跳转指令的使用说明二、条件跳转指令的使用说明 1.1.1.1.使用条件跳转指令的几点注意使用条件跳转指令的几点注意使用条件跳转指令的几点注意使用条件跳转指令的几点注意由于跳转指令具有选择程序段的功能。在同一程序且位于因跳转而不会被同时执行程序段中的同一线圈不被视为双线圈
13、。可以有多条跳转指令使用同一标号。图8-2 二条跳转指令使用同一标号7 条件跳转指令及应用条件跳转指令及应用n 标号可以设在相关的跳转指令之后或之前。n 使用CJ(P)指令时,跳转只执行一个扫描周期,但若用辅助继电器 M8000作为跳转指令的工作条件,跳转就成为无条件跳转。n跳转可用来执行程序初始化工作。n在编写跳转程序的指令表时,标号需占一行。条件跳转指令用于条件跳转指令用于程序初始化程序初始化8 条件跳转指令及应用条件跳转指令及应用n三、条件跳转指令的应用实例三、条件跳转指令的应用实例FNC 00 CJP8X010手动程序FNC 00 CJP9自动程序ENDX010P8P9LD X010
14、P8CJ P8 自动程序手动程序 P9LDI X010 ENDCJ P9图8-5 手动/自动转换程序102、子程序调用指令及应用、子程序调用指令及应用n一、子程序调用指令的使用要素及梯形图表示一、子程序调用指令的使用要素及梯形图表示指令名称助记符指令代码位数操作数程序步D子程序调用CALLCALL(P)FNC01(16)指针 P0P62嵌套 5级3步(指令标号)1步子程序返回SRETFNC02无1步 子程序调用指令要素11 子程序调用指令及应用子程序调用指令及应用n 子程序是为一些特定的控制要求编制的相对独立的程序。n 子程序调用指令在梯形图中使用的情况如图8-6所示。图8-6 子程序的使用1
15、2 子程序调用指令及应用子程序调用指令及应用n 子程序可以实现多级嵌套。图8-8 子程序的嵌套14 子程序调用指令及应用子程序调用指令及应用n二、子程序应用实例二、子程序应用实例例:报警电路,要求启动后,灯在闪,亮0.5S,灭0.5S,蜂鸣器在响。灯闪烁30次后灭,蜂鸣器停,间歇5S。如此反复三次,自动熄灭。试用调用子程序方法编写程序。15灭灭灭灭0.5S0.5S0.5S0.5S亮亮亮亮0.5S0.5S0.5S0.5S闪烁闪烁闪烁闪烁30303030次次次次注:注:FXFX系列系列PLCPLC缺点缺点往往在子程序返回之后,子程序某些线圈仍得电。往往在子程序返回之后,子程序某些线圈仍得电。补救方
16、法:用补救方法:用RSTRST、ZRSTZRST或使用或使用RETRET(输入输出刷新(输入输出刷新指令)让其线圈失电。指令)让其线圈失电。课堂练习:课堂练习:课堂练习:课堂练习:试用调用子程序方法编写三台电动机试用调用子程序方法编写三台电动机Y0Y0、Y1Y1、Y2Y2每隔每隔10S10S顺序启动的控制程序。顺序启动的控制程序。参考答案:参考答案:参考答案:参考答案:3、中断指令中断指令n一、中断指令说明及其梯形图表示一、中断指令说明及其梯形图表示指令名称助记符 指令代码操作数 程序步中断返回指令允许中断指令禁止中断指令 IRET EI DI FNC03FNC04FNC05无无无1步1步1步
17、 中断指令要素18 中断指令中断指令n 中断是计算机所特有的一种工作方式。n 中断子程序是为某些特定的控制功能而设定的。特定的控制功能的共同特点:要求响应时间小于机器的扫描周期。三类中断三类中断三类中断三类中断:输入中断输入中断 定时器中断定时器中断 计数器中断计数器中断 19n n指针指针指针指针I I I I n 输入中断用指针。输入中断用指针I00I50,共6点。6个输入中断仅接收对应于输入口 X000X005的信号触发。这些输入口无论是硬件设置还是软件管理上都与一般的输入口不同,可以处理比扫描周期短的输入中断信号。上升沿或下降沿指对输入信号类别的选择。I00:下降沿中断1:上升沿中断输
18、入号位05,每个输入只能用一次指针的格式指针的格式例如:例如:例如:例如:I001为输入X000从OFFON变化时,执行由该指针作为标号后面的中断程序,并在执行IRET指令时返回。15 中断指令中断指令地址号号称动作功能M8050(输入中断)I00禁止FNC04(EI)指令执行后,即使允许中断,可使用特殊辅助继电器M禁止个别中断动作。例如 M8050为ON时,输入中断I00中断禁止M8051(输入中断)I10禁止M8052(输入中断)I20禁止M8053(输入中断)I30禁止M8054(输入中断)I40禁止M8055(输入中断)I50禁止M8056(定时中断)I6禁止M8057(定时中断)I7
19、禁止M8058(定时中断)I8禁止M8059计数器中断禁止I010I060的中断禁止表 8-5 特殊辅助继电器与中断对应关系20 中断指令中断指令n中断指令的执行过程及应用实例中断指令的执行过程及应用实例 外部中断子程序外部中断子程序外部中断子程序外部中断子程序图8-11 外部输入中断子程序示例 外部中断常用来引入发生频率高于机器扫描频率的外控制信号,或用于处理那些需快速响应的信号。22说明:说明:说明:说明:图中一开始为允许中断,当图中一开始为允许中断,当X1X1从从OFFOFF至至ONON且保持且保持ONON,程序跳到指针程序跳到指针I101I101处执行中断,即执行第处执行中断,即执行第
20、1313行,将行,将K100K100送到送到D1D1,然后返回主程序,对定时器,然后返回主程序,对定时器T0T0计时,当计时达计时,当计时达到到D12D12当前值当前值K100K100时,时,T0T0触点闭合,触点闭合,Y0Y0得电得电。例:例:例:例:4、监视定时器指令(、监视定时器指令(P113)注:可通过修改D8000的数据改写警戒时钟。如图:5、循环指令、循环指令n一、循环指令的要素及梯形图表示一、循环指令的要素及梯形图表示指令名称助记符指令代码操作数程序步S循环指令 FOR FNC09(16)K,H,KnX,KnY,KnM,KnS,T,C,D,V,Z3步(嵌套5层)循环结束指令 NE
21、XT FNC09无1步表8-6 程序循环指令要素26 循环指令循环指令n 循环指令由FOR及NEXT二条指令构成,它们成对出现。图 8-14 循环指令使用说明多层循环间的关系是循环次数相乘的关系。274.5.34.5.3传送比较类指令传送比较类指令(FNC10(FNC10FNC19FNC19)1.1.1.1.比较指令比较指令比较指令比较指令指令名称助记符指令代码位数操作数范围程 序 步S1S2D比较CMPCMP(P)FNC10(16/32)K、HKnX、KnY、KnM、KnST、C、D、V、ZY、M、SCMP、CMPP7步DCMP、CMPP13步表7-1 比较指令的要素4FNC 10 CMPK
22、100C20M0MOM1M2K100C20当前值,M0=ONK100=C20当前值,M1=ONK100C30当前值,M3接通K100C30当前值K120时,M4接通K120(D)LDS1S2 S1S2226LD(D)LDS1S2 S1S2228LD(D)LDS1S2S1=S2229LD(D)LDS1S2S1S2239LD(D)LDS1S2 S1(D)ANDS1S2 S1S2234AND(D)ANDS1S2 S1S2236AND(D)ANDS1S2S1=S2237AND(D)ANDS1S2S1S2238AND(D)ANDS1S2 S1(D)ORS1S2 S1S2242OR(D)ORS1S2 S1
23、S2244OR(D)ORS1S2S1=S2245OR(D)ORS1S2S1S2246OR(D)ORS1S2 S1D200SPK-30ANDX001SETY011C200的内容比678493小时,或M3为ON,则M50被驱动(D)LDK678493SPC200ORM3OUTM50 从母线取用触点比较指令应用说明(二)14程序程序:当当X000=ON,C10X000=ON,C10的当前的当前值值=K200,Y010=K200,Y010驱动驱动LDLDX000X000AND=AND=K200K200SPSPC10C10OUTOUTY010Y010LDILDI X001 X001 X001X001为为
24、OFF,D0OFF,D0的内容的内容不等于不等于-10-10时时,Y011,Y011置置位位ANDANDD0D0SPSPK-10K-10SETSETY011Y011当当X002=ON,D10X002=ON,D10、D11D11的内容小于的内容小于678493678493时时,或或M3M3为为ON,ON,则则M50M50被驱被驱动动LDLDX002X002(D)AND(D)ANDK678493K678493SPSPD10(D11D10(D11)ORORM3M3OUTOUTM50M50 串联形触点比较指令应用说明15程序程序:当当X001=ON,X001=ON,或或C10C10的当前值的当前值=K
25、200=K200时时,Y010,Y010驱动驱动LD=LD=X001X001OR=OR=K200K200SPSPC10C10OUTOUTY010Y010当当X002X002与与M30M30都为都为ON,ON,或或D101,D100D101,D100的的内容比内容比100000100000大时大时,M40,M40为为ONONLDLDX002X002ANDANDM30M30(D)OR(D)ORD100D100SPSPK100000K100000OUTOUTM40M40 并联形触点比较指令应用说明16指令名称助记符指令代码位数操作数范围程 序 步 S D传送MOVMOV(P)FNC12(16/32)
26、K、HKnX、KnY、KnM、KnST、C、D、V、ZKnY、Kn M、KnST、C、D、V、ZMOV、MOVP5步DMOV、DMOVP9步传送指令的要素 4.4.4.4.传送指令传送指令传送指令传送指令17S DFNC 12 MOVK100D10X000 传送指令使用说明18举例举例定时器、计数器当前值读出FNC 12 MOVT0D20X001 传送指令应用例一19定时器、计数器设定值的间接指定FNC 12 MOVK200D12X002M0T20D20 传送指令应用例二20n二、传送比较类指令应用实例二、传送比较类指令应用实例【例1】用程序构成一个闪光信号灯,改变输入口所接置数开关可改变闪光
27、频率。设定开关4个,分别接于X000X003,X010为起停开关;信号灯接于Y000。梯形图如图7-10所示。图中第一行为变址寄存器清零,上电时完成。第二行从输入口读入设定开关数据,变址综合后送到定时器T0的设定值寄存器D0,并和第三行中的定时器T1配合产生D0时间间隔的脉冲。21 频率可变的闪光信号灯梯形图及说明22【例2】电动机的 Y/启动控制 设置启动按钮为X000,停止按钮为X001;电路主(电源)接触器KM1接于输出口Y000,电动机Y接法接触器 KM2接于输出口Y001,电动机接法接触器KM3接于输出口Y002。依电机Y/启动控制要求,通电时,Y000、Y001为ON(传送常数为1
28、+2=3),电动机Y形启动;23 当转速上升到一定程度,断开Y000、Y001,接通Y002(传送常数为4)。然后接通Y000、Y002(传送常数为1+4=5),电动机形运行。停止时,应传送常数为0。另外,启动过程中的每个状态间应有时间间隔。本例使用向输出端口送数的方式实现控制。梯形图如图7-11所示。24启动,Y000,Y001为ON,M为Y启动启动过程延时考虑接触器换接所需息弧时间,停电换接。换接延时时间应根据具体情况调整,或接触器间互锁M为运行停止 电动机 Y/启动控制梯形图及说明25【例3】彩灯的交替点亮控制 有一组灯L1L8。要求隔灯显示,每2s变换一次,反复进行。用一个开关实现启停
29、控制。设置启停开关接于 X000,L1L8接于Y000Y007。梯形图如图7-12所示。这又是一个以向输出口送数的方式实现控制要求的例子。264s时钟发生器将控制常数送Y000Y007,实现隔灯显示将控制常数送 Y000Y007,Y000Y007状态取反,实现显示轮换图7-12 彩灯交替点亮控制梯形图及说明27【例4】密码锁 用比较器构成密码锁系统。密码锁有12个按钮,分别接入 X000X013,其中 X000X003代表第一个十六进制数;X004X007代表第二个十六进制数;X010X013代表第三个十六进制数。根据设计,每次同时按四个键,分别代表三个十六进制数,共按4次,如与密码锁设定值都
30、相符合,3s后,锁可开启。且10s后,重新锁定。28 密码锁的密码由程序设定。假定为 H2A4、H01E、H151、H18A,从 K3X000上送入的数据应分别和它们相等,这可以用比较指令实现判断,梯形图如图7-13所示。如上用十二键排列组合设计的密码锁,具有较高的保密性。29H2A4代表十六进制数2A4。其中“4”应按 X2键,“A”应按 X5X7键,“2”应按 X11键。其他数值表示含义同上述4次按键成功,3s后开锁10s后重新锁定启动门锁门锁复位 密码锁的梯形图及说明30【例5】简易定时报时器 应用计数器与比较指令,构成24h可设定定时时间的控制器,每15min为一设定单位,共96个时间
31、单位。现将此控制器作如下控制:早上6点半,电铃(Y000)每秒响一次,六次后自动停止;9001700,启动住宅报警系统(Y001);晚上6点开园内照明(Y002);晚上10点关园内照明(Y002)。31 又设:X000为起停开关;X001为 15分钟快速调整与试验开关;X002为快速试验开关;时间设定值为钟点数4。使用时,在000时启动定时器。梯形图如7-14所示。32图7-14 定时控制器梯形图及说明33【例6】外置数计数器 可编程控制器中有许多计数器。但是机内计数器的设定值是由程序设定的,在一些工业控制场合,希望计数器能在程序外由普通操作人员根据工艺要求临时设定,这就需要一种外置数计数器,
32、图7-15就是这样一种计数器的梯形图程序。34图7-15 外置数计数器的梯形图及说明35n 在图7-15中,二位拨码开关接于 X000X007,通过它可以自由设定数值在099之间的整数计数值;X010为计数器件;X011为起停开关。n C5计数值是否与外部拨码开关设定值一致,是借助比较指令实现的。拨码开关送入的值为拨码开关送入的值为 BCD BCD码码,要用二进制转换指令要用二进制转换指令进行数制的变换。因为比较操作只对二进制数有效。进行数制的变换。因为比较操作只对二进制数有效。注意365块传送指令 该指令的助记符、指令代码、操作数范围、程序步如表9.11所示。表9.11移位传送指令的要素 指
33、令指令名称名称 助记符助记符 指令指令代码代码位数位数 操作数范围操作数范围 程序步程序步 SS DDn n 块传块传送送 BMOVBMOVBMOV(P)BMOV(P)FNC15FNC15(16)(16)KnXKnX、KnYKnY、KnMKnM、KnSKnS、T T、C C、D D KnYKnY、KnMKnM、KnSKnS、T T、C C、D D、V V、Z Z K K、H H512 512 BMOVBMOV、BMOVP7BMOVP7步步 BMOV指令的功能是将源操作数指定元件开始的n个数据组成数据块传送到指定的目标,如图9.13所示。图9.13BMOV指令应用 注意:如果元件号超出允许范围,
34、数据则仅传送到允许范围内的元件。6BCD/BIN指令 该类指令的助记符、指令代码、操作数范围、程序步如表9.12所示。表9.12数据变换指令的要素指令指令名称名称 助记符助记符 指令代码指令代码位数位数 操作数范围操作数范围 程序步程序步 SS DDBCDBCD变变换换 BCDBCDBCD(PBCD(P)FNC18FNC18(16/32)(16/32)KnXKnX、KnYKnY、KnMKnM、KnSKnS、T T、C C、D D V V、Z Z KnYKnY、KnMKnM、KnSKnS、T T、C C、D D、V V、Z Z BCDBCD、BCDP5BCDP5步步DBCDDBCD、DBCDP9
35、DBCDP9步步 BINBIN交交换换 BINBINBIN(PBIN(P)FNC19FNC19(16/32)(16/32)KnXKnX、KnYKnY、KnMKnM、KnSKnS、T T、C C、D D V V、Z Z KnYKnY、KnMKnM、KnSKnS、T T、C C、D D、V V、Z ZBINBIN、BINP5BINP5步步DBINDBIN、DBINP9DBINP9步步 BCD变换指令是将源元件中的二进制数转换成BCD码送到目标元件中。BIN变换指令是BCD变换指令的逆变换,是将源元件中的BCD码转换成二进制数据送到目标元件中,如图9.14所示。图9.14BCD/BIN指令应用 如果
36、指令进行16位操作时,执行结果超出09999范围将会出错;当指令进行32位操作时,执行结果超过099999999范围也将出错。传送与比较指令在PLC控制程序中起如下用途。1)用以获得程序的初始工作数据 一个控制程序总是需要初始数据的。这些数据既可以从输入端口上连接的外部器件获得,运用传送指令读取这些器件上的数据并送到内部单元;也可以用程序设置,即向内部单元传送立即数;另外,某些运算数据存储在机内的某个地方,等程序开始运行时通过初始化程序送到工作单元。2)机内数据的存取管理 在数据运算过程中,机内的数据传送是不可缺少的。运算可能要涉及不同的工作单元,数据需在它们之间传送;运算可能会产生一些中间数
37、据,这需要传送到适当的地方暂时存放;有时机内的数据需要备份保存,这就要找地方把这些数据存储妥当。总之,对一个涉及数据运算的程序,数据管理是很重要的。此外,二进制和BCD码的转换在数据管理中也是很重要的。3)运算处理结果向输出端口传送 运算处理结果总是要通过输出实现对执行器件的控制,或者输出数据用于显示,或者作为其他设备的工作数据。对于输出口连接的离散执行器件,可成组处理后看做是整体的数据单元,按各端口的目标状态送入一定的数据,即可实现对这些器件的控制。4)比较指令用于建立控制点 控制现场常有将某个物理量的量值或变化区间作为控制点的情况。如温度低于多少度就打开电热器,速度高于或低于一个区间就报警
38、等。作为一个控制“阀门”,比较指令常出现在工业控制程序中。【例9-3】PLC在送料车方向自动控制上的应用。控制要求如下。某车间有8个工作台,送料车往返于工作台之间送料,动作示意图如图9.15所示。每个工作台设有一个到位开关(SQ)和一个呼叫按钮(SB),送料车开始应能停留在8个工作台中任意一个到位开关的位置上,系统受启停开关QS的控制。具体控制要求如下。(1)当料车所在暂停位置的SQ号码大于呼叫的SB号码时,料车往左行,到呼叫的SB位置后停止。(2)当料车所在暂停位置的SQ号码小于呼叫的SB号码时,料车往右行,到呼叫的SB位置后停止。试用传送与比较指令编程实现送料车的控制要求。图9.15送料车
39、工作示意图 【解】设送料车现暂停于m号工作台(SQm为ON)处,这时n号工作台呼叫(SBn为ON),则根据题意可知:(1)当料车所在暂停位置的SQ号码大于呼叫的SB号码时,料车往左行,到呼叫的SB位置后停止。即mn,送料车左行,直至 SQn动作,到位停车。(2)当料车所在暂停位置的SQ号码小于呼叫的SB号码时,料车往右行,到呼叫的SB位置后停止。即mn,送料车右行,直至SQn动作,到位停车。(3)送料车所停位置SQ的号码与呼叫按钮SB的号码相同时,送料车不动。即m=n,送料车原位不动。5)I/O地址分配及硬件连接 由控制要求可知,系统的I/O地址分配如表9.13所示,硬件连接如图9.16所示。
40、表9.13送料车系统的I/O地址分配表输入输入 功能说功能说明明 输入输入 功能说明功能说明 输出输出 功能说明功能说明 SQ0 SQ0 X0 X0 限位限位0 0 SB0 SB0 X10 X10 呼叫呼叫0 0 KM1 KM1 Y0 Y0 电动机电动机M M正转,料车右行正转,料车右行 SQ1 SQ1 X1 X1 限位限位 1 1SB1 SB1 X11 X11 呼叫呼叫1 1 KM2 KM2 Y2 Y2 电动机电动机M M反转,料车左行反转,料车左行 SQ2 SQ2 X2 X2 限位限位 2 2SB2 SB2 X12 X12 呼叫呼叫2 2 SQ3 SQ3 X3 X3 限位限位3 3 SB3
41、 SB3 X13 X13 呼叫呼叫3 3 SQ4 SQ4 X4 X4 限位限位 4 4SB4 SB4 X14 X14 呼叫呼叫4 4 表9.13送料车系统的I/O地址分配表(续表)输入输入 功能说功能说明明 输入输入 功能说明功能说明 输出输出 功能说明功能说明 SQ5 SQ5 X5 X5 限位限位5 5 SB5 SB5 X15 X15 呼叫呼叫5 5 KM1 KM1 Y0 Y0 电动机电动机M M正转,料车右行正转,料车右行 SQ6 SQ6 X6 X6 限位限位6 6SB6 SB6 X16 X16 呼叫呼叫6 6 KM2 KM2 Y2 Y2 电动机电动机M M反转,料车左行反转,料车左行 S
42、Q7 SQ7 X7 X7 限位限位 7 7SB7 SB7 X17 X17 呼叫呼叫7 7QS QS X20 X20 启停开关启停开关 图9.16送料车系统硬件连接图 6)PLC软件的实现 用传送与比较指令编程实现送料车控制的梯形图程序如图9.17所示。图9.17送料车系统梯形图程序 图中将送料车当前位置送到数据寄存器D128中,将呼叫工作台号送到数据寄存器D129中,然后通过D128与D129中数据的比较,决定送料车的运行方向和到达的目标位置,D128、D129都是断电保持型数据寄存器,因此送料车系统重新启动后,能自动恢复断电前的状态。4.5.4 四则及逻辑运算类指令及应用四则及逻辑运算类指令
43、及应用n一、四则运算及逻辑运算指令说明一、四则运算及逻辑运算指令说明n四则及逻辑运算指令可完成四则运算或逻辑运算,可通过运算实现数据的传送、变位及其他控制功能。nFX2N系列可编程控制器中有两种四则运算,即整数四则运算和实数四则运算。37 1.1.1.1.加法指令加法指令加法指令加法指令指令名称助记符指令代码位数操作数范围程 序 步 S1 S2 D加法ADDADD(P)FNC20(16/32)K、HKnX、KnY、KnM、KnST、C、D、V、ZKnY、KnM、KnST、C、D、V、ZADD、ADDP7步DADD、DADDP13步表7-7 加法指令的要素38n nADDADD加法指令加法指令是
44、将指定的源元件中的二进制数相加,结果送到目标元件中去。FNC 20 ADDD10D12S1S2DX000D14 图7-16 加法指令使用说明一当执行条件X000由OFFON时,D10+D12D14。39n ADD加法指令有3个常用标志。M8020为零标志,M8021为借位标志,M8022为进位标志。n源和目标可以用相同的元件号。若源和目标元件号相同而采用连续执行的 ADD、(D)ADD指令时,加法的结果在每个扫描周期都会改变。40n若指令采用脉冲执行型时,如图7-17所示。FNC 20 ADD(P)D0K1S1S2 DX001D0 图7-17 加法指令使用说明二当 X001每从 OFFON变化
45、时,D0的数据加1。41指令名称助记符指令代码位数操作数范围程 序 步 S1 S2 D减法SUBSUB(P)FNC21(16/32)K、HKnX、KnY、KnM、KnST、C、D、V、ZKnY、KnM、KnST、C、D、V、ZSUB、SUBP7步DSUB、DSUBP13步表7-8 减法指令的要素 2.2.2.2.减法指令减法指令减法指令减法指令42n SUBSUB减法指令减法指令是将指定的源元件中的二进制数相减,结果送到指定的目标元件中去。FNC 21 SUBD10D12S1S2DX000D14 图7-18 减法指令使用说明当执行条件X000由OFFON时,D10-D12D14。43指令名称助
46、记符指令代码位数操作数范围程 序 步 S1 S2 D乘法MULMUL(P)FNC22(16/32)K、HKnX、KnY、KnM、KnST、C、D、ZKnY、Kn M、KnST、C、DMUL、MULP7步DMUL、DMULP13步表7-9 乘法指令的要素 3.3.3.3.乘法指令乘法指令乘法指令乘法指令44n MULMUL乘法指令乘法指令是将指定的源元件中的二进制数相乘,结果送到指定的目标元件中去。FNC 22 MULD0D2S1S2 DX000D4 图7-19 乘法指令使用说明它分16位和32位两种情况.45指令名称助记符指令代码位数操作数范围程 序 步 S1 S1 D除法DIVDIV(P)F
47、NC23(16/32)K、HKnX、KnY、KnM、KnST、C、D、ZKnY、Kn M、KnST、C、DDIV、DIVP7步DDIV、DDIVP13步表7-10 除法指令的要素 4.4.4.4.除法指令除法指令除法指令除法指令46n DIV除法指令是将指定的源元件中的二进制数相除,S1为被除数,S2为除数,商送到指定的目标元件D中去,余数送到 D的下一个目标元件。FNC 23 DIVD0D2 S1S2DX000D4 图7-20 除法指令使用说明它分16位和32位两种情况.47指令名称助记符指令代码位数操作数范围程序步 D加1INCINC(P)FNC24(16/32)KnY、KnM、KnST、
48、C、D、V、ZINC、INCP3步DINC、DINCP5步表7-11 加1指令的要素 5.5.5.5.加加加加1 1 1 1指令指令指令指令48n当 X000由 OFFON变化时,由D指定的元件D10中的二进制数加1。n若用连续指令时,每个扫描周期加1。FNC 24 INC(P)D10DX000图7-21 加1指令使用说明49指令名称助记符指令代码位数操作数范围程序步 D减1DECDEC(P)FNC25(16/32)KnY、KnM、KnST、C、D、V、ZDEC、DECP3步DDEC、DDECP5步表7-12 减1指令的要素 6.6.6.6.减减减减1 1 1 1指令指令指令指令50n当 X0
49、01由 OFFON变化时,由D指定的元件D10中的二进制数减1。n若用连续指令时,每个扫描周期减1。FNC 25 DEC(P)D10DX001图7-22 减1指令使用说明51指令名称助记符指令代码位数操作数范围程 序 步 S1 S2 D逻辑字与WANDWAND(P)FNC26(16/32)K、HKnX、KnY、KnM、KnST、C、D、V、ZKnY、KnM、KnST、C、D、V、ZWAND、WANDP7步DANDC、DANDP13步表7-13 逻辑字与指令的要素 7.7.7.7.逻辑字与指令逻辑字与指令逻辑字与指令逻辑字与指令52应为应为应为应为WANDWANDWANDWAND图7-23(a)
50、逻辑字与指令使用说明FNC 26 WANDD10D12S1S2DX000D14 (D10)(D12)(D14)按各位对应,进行逻辑字与运算 11=1 01=0 10=0 00=053指令名称助记符指令代码位数操作数范围程 序 步 S1 S2 D逻辑字或WORWOR(P)FNC27(16/32)K、HKnX、KnY、KnM、KnST、C、D、V、ZKnY、KnM、KnST、C、D、V、ZWOR、WORP7步DORC、DORP13步表7-14 逻辑字或指令的要素 8.8.8.8.逻辑字或指令逻辑字或指令逻辑字或指令逻辑字或指令54FNC 27 WORD10D12S1S2DX001D14 (D10)