SFTR M11kef m5000 K1V0 K1什么意思

81 FX2系列可编程控制器功能指令概述 一二 FX2系列数据类软元件_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
81 FX2系列可编程控制器功能指令概述 一二 FX2系列数据类软元件
8 ​F​X系​列​可​编​程​控​制​器​功​能​指​令​概​述​ ​一​二​ ​F​X系​列​数​据​类​软​元​件
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢三菱FX系列PLC的位右移、位左移指令[SFTR、SFTL(FNC34、FNC35)]
添加时间:
来源: | 阅读量:15
提示: 位右移指令SFTR的格式和功能说明如图6-54所示。n1为指定位元件长度,n2指定移位位数,且有n2n1 1 024。当X0为ON时,执行该指令,向右移位。每次4位向前一移,其中X3~X0M15~M12,M15~M12~M11~M8,M11~M8M7~M4,M7~M4M3~M0,M3~M0移出,即从高位移入,低位移出。 图6-54 位右移指令格式与功能说明 SFTR( P)为脉冲
&&& 位右移指令SFTR的格式和功能说明如图6-54所示。n1为指定位元件长度,n2指定移位位数,且有n2&n1 &1 024。当X0为ON时,执行该指令,向右移位。每次4位向前一移,其中X3~X0&M15~M12,M15~M12~M11~M8,M11~M8&M7~M4,M7~M4&M3~M0,M3~M0移出,即从高位移入,低位移出。
&&& 图6-54&&& 位右移指令格式与功能说明
&&& SFTR( P)为脉冲型指令,仅执行一次。用SFTR为连续型指令,移位操作每个扫描周期执行一次。
&&& SFTL为位左移指令,指令格式和移位说明与SFTR类同,只是向左移位。SFTL( P)为脉冲型指令,SFTL为连续型指令,不再重复。
(责任编辑: 佚名 )
本文关键字:
免责声明:本文章仅代表作者个人观点,与艾特贸易网无关。本站大部分技术资料均为原创文章,文章仅作为读者参考使用,请自行核实相关内容,如若转载请注明来源:
故障现象: 据用户介绍,该电...
故障现象: 据用户介绍,该电...
固定模板用的螺栓必须穿过混...
二次方律负载进行变频调速时...
新闻热点排行第二篇 可编程控制器技术第八章 FX2N系列PLC应用指令 及编程方法 本章主要介绍FX2N系列PLC的应用指令表示 与执行形式、数值处理、分类和编程方法,阐述十 类应用指令的原理及应用,并给出FX2N系列可编程 控制器的应用指令总表。 要求: 熟悉“程序控制、传送与比较、四则运算与逻 辑运算、循环移位、数据处理、高速处理、便利指 令、外部设备I/O处理、
触点比较等八类型中常用 指令的功能意义及编程应用,并能灵活运用它们编程 解决实际工程问题。 ?基本指令是主要用于逻辑处理的指令 ?应用指令(Applied Instruction,也有的 书称为功能指令Functional Instruction), 用于数据的传送、运算、变换及程序控制等 应用。 第一节应用指令的类型及使用要素?数据处理类――传送比较、运算、移位、编 解码等 ?程序控制类――主要用于程序的结构及流程 控制,如子程序、中断、跳转及循环等 ?特种应用类――机器的一些特殊应用 ?外部设备类――含一般的输入输出口设备及 专用外部设备二大类。 一、应用指令的表示形式、应用与操作M8002 FNC12 MOV⑤ ⑤K245S1?D501⑥ ⑥S2? D?X000执行条件① ①FNC20
(D)ADD(P)D10D12D14目的操作数③ ④ ② ③ ② 应用指令段 ④源操作数指令 名称指令 代码FNC 20 (16/ 32)助记符S1(?)操作数范围S2(?) D(?)KnY、KnM、 KnS、T、C、 D、V、Z程序步加法ADD ADD(P )K、H、KnX、KnY、 KnM、KnS、T、C、 D、V、ZADD、ADDP…7步 DADD、 DADDP…13步 ?(1)应用指令的编号:每条应用指令都有一定的 编号。 ?(2)助记符:应用指令的助记符是该指令的英文 缩写词。 ?(3)数据长度:应用指令依处理数据的长度分为 16位指令和32位指令。其中32位指令用(D)表示, 无(D)符号的为16位指令。 ?(4)执行形式:应用指令有脉冲执行型和连续执 行型。指令中标有(P)的为脉冲执行型,无(P) 的为连续执行型。 需要注意的指令在指令标示栏中用“”警示 ?(5)操作数:操作数是应用指令涉及或产生的数 据。操作数分为源操作数、目标操作数及其他操作 数。源操作数是指令执行后不改变其内容的操作数, 用[S(?)]表示。目标操作数是指令执行后将改变 其内容的操作数,用[D(?)]表示。其他操作数用 m与n表示。其他操作数常用来表示常数或者对源操 作数和目标操作数作出补充说明。操作数从根本上 来说,是参加运算数据的地址。 ?(6)变址应用:操作数可具有变址应用。操作数 旁加有“(?) ”的即为具有变址应用的操作数。?(7)程序步数:程序步数为执行该指令所需的步 数。一般16位指令为7个程序步,32位指令为13个 程序步。 二、FX2N系列PLC应用指令分类及汇总表8-2中,表示各操作数可用元件类型的范围 符号是:B、B’、W1、W2、W3、W4、W1’、 W2’、W3’、W4’、W1”、W4”,其表示的范围 如图8-3所示。(a) 位元件(b) 字元件 第二节 程序流程类应用指令及应用程序流程类应用指令共有十条,指令功能编号为 FNC00~FNC09一、条件跳转指令及应用 1.条件跳转指令说明(Conditional Jump)操作数 指令 名称 指令代 码位数 助记符 D(?) FNC 00 (16)CJ CJ(P )程序步条件 跳转P0~P127 P63即是END所在步,不需 要标记CJ和CJ (P)~3步 标号P~1步 0 4 6 8 11 15 18 22 25 29 P8 36 40 P9 43X000 X001 X002FNC 00 CJ Y001 M1P8 X000=ON, 跳到P8; X000=OFF, 顺序执行X003 S1 X004 T0 X005 RST X006 T246 X007 RST X010 C0 X011 X000 X012 Y001 X013 RST RST T246 C0 FNC 12 MOV FNC 00 CJ K20 K3 P9 X000=ON, 顺序执行; X000=OFF, 跳到P9 D0 K T246 2、跳转程序段中元器件在跳转执行中的工作 状态(1)处于被跳过程序段中的输出继电器Y、辅助继 电器M、状态S由于该段程序不再执行,即使梯形图 中涉及的工作条件发生变化,它们的工作状态将保持 跳转发生前的状态不变。 (2)被跳过程序段中的时间继电器T及计数器C,无 论其是否具有掉电保持功能,由于跳过的程序停止执 行,它们的当前值寄存器被锁定,跳转发生后其计时、 计数值保持不变,在跳转中止,程序继续执行时,计 时计数将继续进行。另外,计时、计数器的复位指令 具有优先权,即使复位指令位于被跳过的程序段中, 执行条件满足时,复位工作也将执行。 元件跳转前的 触点状态 X001、X002、 X003、断开 X001、X002、 X003、接通跳转后的 触点状态 X001、X002、 X003、接通 X001、X002、 X003、断开 X004 接通 X004 断开 X006 接通 X006 断开 X010 X010 接通 断开转过程中 Y001、M1、S1断开 Y001、M1、S1接通 定时器不动作 定时中断, X000断开后继续 计时 定时器不动作 定时器停止, X000 断开后继 续计时 计数器不动作 计数器停止, X000断开后继 续计数 除 FNC52~FNC59 之外的其 他应用指令不执行Y、M、S10ms 100ms 定时器X004 断开 X004 接通1ms 定时器计数器X005 断开 X006 断开 X005 断开 X006 接通 X007 断开 X010 断开 X007 断开 X010 接通 X011 断开 X011 接通应用指令X011 接通 X011 断开 3、使用跳转指令的几点注意(1)由于跳转指令具有选择程序段的功能。在同 一程序且位于因跳转而不会被同时执行程序段中的 同一线圈不被视为双线圈。 (2)若用M8000作为跳转指令CJ(P)的跳转条 件,跳转成为无条件跳转。该跳转指令只在第一个扫 描周期跳转一次,在以后的扫描周期不再跳转。 (3)可以有多条跳转指令使用同一标号。如图8- 5。但不允许一个跳转指令对应二个标号的情况存在, 即在同一程序中不允许存在二个相同的标号。在编 写跳转程序的指令表时,标号需占一行。 (4)标号一般设在相关的跳转指令之后,也可以设 在跳转指令之前,如图8-6所示。应注意的是,从程 序执行顺序来看,如果X024接通约200ms以上,造 成该程序的执行时间超过了警戒时钟设定值,会发生 监视定时器出错。 (5)跳转可用来执行程序初始化工作,如图8-7所 示。在PLC运行的第一个扫描周期中,跳转CJ P7将不 执行,程序执行初始化程序则被跨过,不再执行。 (6)图8-8说明了主控区与跳转指令的关系。 X020FNC 00 CJ FNC 00 CJ Y005跳转程序 P9 X020 P9 X021 P9 P9 LD X022 OUT Y005 LD CJ LD CJX010 P10 Y001X021P9X024X022 P9FNC 00 CJP10M8002 PLS M100 X023 FNC 00 CJ Y002 M100 P7 ? ? ? ? ? ? ? .…Y006P7 CJ CJ MC 主 CJP0 P1 N0 P1 ① P2 ③ P2 M0 ②控 CJ MCR P3 P0 主 MC CJ 控 MCR N0 M1 P4 N0 ⑤ 主 MC N0 P4 控 MCR N0 M2 P3 N0 ④ 4、跳转指令的应用及实例有时候同一套设备在不同的条 件下,需要有两种工作方式, 需运行二套不同的程序时可使 用跳转指令。常见的手动、自 动工作状态的转换即是这样一 种情况。P5X025FNC 00 CJP5手动程序 X025 FNC 00 CJP6自动程序P6END 二、子程序指令及应用1、子程序指令的使用说明及其梯形图表示方法指令名称 指令 代码 操作数 助记符 程序步D(? )CALL CALL(P )子程序调 用 子程序返 回FNC 01 (16)指针P0~P62, P64~P127嵌套5级 无可用软件3步(指令标号) 1步 1步FNC 02SRET子程序是为一些特定的控制目的编制的相对独立的 程序。为了区别于主程序,规定在程序编排时,将主程 序排在前边,子程序排在后边,并以主程序结束指令 FEND(FNC 06)将这两部分分隔开。 2.子程序的执行过程及在程序编制中的意义子程序的这种执行方式对 有多个控制功能需依一定的条 件有选择地实现时,是有重要 的意义的。它可以使主程序的 结构简洁明了。编程时可将相 对独立的功能都编成子程序, 放在主程序后面,而在主程序 中设Z一些调用指令,就能实 现对这些子程序的调用了。 当有多个子程序排列在一起 时,标号和最近的一个子程序 返回指令构成一个子程序。100 104 FNC 06 FEND P10 X030 FNC 01 CALL P11 X001 FNC 01 P10 CALL(P) 主 程 序子 程 序 ① 子 程 序 ②FNC 02 SRET P11 FNC 02 SRET END? 8-10 ? ? ? ? ? ? ? ? ? ? ? * X0003.子程序应用实例某化工反应装Z需要 完成多液体物料的化合工 作,连续生产。使用PLC 完成物料的比例投入及送 出,并完成反应装Z温度 的控制工作。P10反应物比例送入控制程序 X001 生成物均衡输出控制程序 X010 FNC 01 CALL FNC 01 CALL FNC 06 FEND 降温控制程序 FNC 02 SRET 升温控制程序 FNC 02 SRETP10X011P11P11 三、中断指令及其应用 1.中断指令说明及其梯形图表示方法指令名称 指令代码 助记符 操作数 D 中断返回指令 FNC 03 IRET 无 1步 程序步允许中断指令禁止中断指令FNC 04FNC 05EIDI无无1步1步 ? 中断是计算机所特有的一种工作方式。指主程序 的执行过程中,中断主程序的执行去执行中断子程 序。 ?和子程序一样,中断子程序也是为某些特定的控制 功能而设定的。和普通子程序的不同点是,这些特 定的控制功能都有一个共同的特点,即要求响应时 间小于机器的中断源。 ?FX2N系列PLC有三类中断源,输入中断、定时器 和计数器中断。为了区别不同的中断及在程序中标 明中断子程序的入口,规定了中断指针标号(在编 写中断子程序的指令表时,标号需占一行)。 ?FX2N系列PLC中断指针I的地址编号见前面第六章 中表6-20,并且不可重复使用。 ? 输入中断是信号从输入端子X000~X005送入而 引起的中断。 ?定时器中断是机内中断,使用定时器引出,多用 于周期性工作场合。 ?计数器中断是利用机内高速计数器的比较结果, 引起中断的。 ?由于中断的控制是脱离于程序的扫描执行机制的, 多个突发事件出现时处理也必须有个秩序,这就是 中断优先权。FX2N系列PLC一共可安排15个中断, 其优先权由中断号的大小决定,号数小的中断优先 权高。由于外部中断号整体上高于定时器中断。即 外部中断的优先权较高。 ? 中断子程序是为一些特定的随机事件而设计的。 在主程序执行中,允许中断指令EI与不允许中断指 令DI指令之间为中断程序段。如在程序的任何地方 都可以响应中断,称为全程中断。 PLC根据中断程 序段中工作性质决定是否响应中断子程序。 ?如果机器安排的中断子程序比较多,而这些中断 子程序又不一定需要同时响应时,可以由特殊辅助 继电器M8050~M8059实现输入、定时、计数中 断子程序的选择。机器规定,当M8050~M8059 被Z1时,其对应的中断被封锁;反之被Z0时,对 应的中断允许。 表8-7 特殊辅助继电器与中断对应关系地址号 ? 名称 ( 输入中断) M8050=OFF, I00 □ 允许中断 动作 ? 功能在EI和DI的开中断区间,若M8050= OFF ,由 X000 端口 的上升沿或下降沿执行I00口处的子程序。( 输入中断) 在EI和DI的开中断区间,若M8051= OFF ,由 X001 M8051=OFF, I10 □ 允许中断 端口 的上升沿或下降沿执行I10口处的子程序。在EI和DI的开中断区间,若M8052= OFF ,由 X002 ( 输入中断) M8052=OFF, I20 □ 允许中断 端口 的上升沿或下降沿执行I20口处的子程序。 在EI和DI的开中断区间,若M8053= OFF ,由 X003 ( 输入中断) M8053=OFF, I30 □ 允许中断 端口 的上升沿或下降沿执行I30口处的子程序。 在EI和DI的开中断区间,若M8054= OFF ,由 X004 ( 输入中断) M8054=OFF, I40 □ 允许中断 端口 的上升沿或下降沿执行I40口处的子程序。 在EI和DI的开中断区间,若M8055= OFF ,由 X005 ( 输入中断) M8055=OFF, I50 □ 允许中断 端口 的上升沿或下降沿执行I50口处的子程序。( 定时中断) M8056=OFF, □□ 允许中断 I6 ( 定时中断) M8057=OFF, □□ 允许中断 I7在EI和DI的开中断区间,若M8056= OFF ,每 隔 I6 □□ 设定的时间执行 I6 □□ 处的子程序。 在EI和DI的开中断区间,若M8057= OFF ,每 隔 I7 □□ 设定的时间执行 I7 □□ 处的子程序。在EI和DI的开中断区间,若M8058= OFF ,每 隔 ( 定时中断) M8058=OFF, □□ 允许中断 I8 □□ 设定的时间执行 I8 □□ 处的子程序。 I8 ( 计数器中断) 在开中断区间,若M8059=OFF , 高速计数器的当前 M8059=OFF, 允许 I010 ~I060 中断 值若与比较值相等时,执行 I010 ~I060 处的子 程序。 ?中断指令的梯形图表示如图8-12所示。从图中可 以看出,中断程序作为一种子程序安排在主程序结 束指令FEND之后。主程序中EI及DI的区间表示可 以开放中断的程序段。 ?主程序带有多个中断子程序时,中断标号和与其 最近的一处中断返回指令构成一个中断子程序。 ?FX2N型可编程控制器可实现不多于二级的中断嵌 套。 ?另外,一次中断请求,中断程序一般仅能执行一 次。 FNC 04 EI X010 M8050 FNC 05 DI FNC 04 EI X020 M8051开中 断范围关中 断范围 开中 断范围FNC 05 DI FNC 06 FEND I001 FNC 03 IRET I 101 FNC 03 IRET 中断 程序① M8050=0时,从 X000输入中断 中断 程序② M8051=0时,从 X001输入中断END 2、中断指令的 执行过程及应 用实例 (1)外部中断 子程序外部中断常 用来引入发生频 率 高 于 机 器 扫 描 I 001 频率的外控制信 号,或用于处理 那些需快速响应 的信号。FNC 04 EI X001 M Y011 FNC 05 DI FNC 06 FEND M8000 SET Y000 M Y000 X000上升沿时中断 执行一次 X001=0时,M8050=0,允 许标号I001的中断子 程序执行 Y011由M8013驱动,每 秒闪一次FNC 03 IRETEND (2)时间中断子程序FNC 04 EI X001 M8056 FNC 40 ZRST FNC 12 MOV X001 T0 T0 Y001 M2 M FNC 05 DI FNC 06 FEND M8000 I 610 M2 FNC 24 INC FNC 10 CMP D0 I610每0.01秒使D0加1, 计到1000时,正好为10秒 Y002Y003 1 2 10X001=ON,禁止定时中断, 只对M1~M3和D0复位 M1 M3 M1~M3复位 D0清零 10秒K0D0 X001K100 Y001=Y002K1000D0M1FNC 03 IRET END(K1000&D0当前值,M1=ON) (K1000=D0当前值, M2=ON) (K1000&D0当前值, M3=ON)图8-14 定时器中断子程序 0FNC 04 EI X000 FNC 12 MOV FNC 12 MOV PLS M0 K1 D1以10ms定时器中断给以下斜坡 信号输出电路编程 (D2)=255 (D3)1 启动K255D2(D1)=1 X000=ON M802910秒tM0D4为执行次数的计数用的寄存器,用 户不能使用。14SET FNC 06 FEND M1 FNC 67 RAMP M8029M116I610 18D1D2D3K1000在执行1000次(10秒)的指令之间 (D3)的内容由(D1)向(D2)值转移初始值 最终值 当前值 运行次数RST FNC 03 IRETM130执行结束后,M8029动作,则RAMP指令的 驱动输入断开。在重复运行模式下, (D3)的值一达到最终值(D2),则立 即返回初始值(D1),再次重复同样的 动作。31END图8-15 FX2NPLC斜坡输出编程 中使用时间中断的例子。 (3)计数器中断子程序根据可编程控制器内部的高速计数器的比较结 果,执行中断子程序。用于优先控制利用高速计数 器的计数结果。计数器中断指针I0□0(□=1~6)是利 用高速计数的当前值进行中断,要与比较Z位指令 FNC 53 (HSCS)组合使用,如图8-16所示。以上讨论的中断用指针的动作会受到机内特殊 辅助继电器M的控制,它们若接通, 则中断禁止。例如,M8059接通,计数器中断全禁 止。 M8000C255 K2,147,483,647S1? S2? D?FNC 53 (D)HSCS K100C255I010FNC 06 FEND I010 中断程序 FNC 03 IRET 四、主程序结束和监视定时器刷新指令1、主程序结束指令说明及其梯形图表示方法指令名称主程序结束 指令 指令代 码 操作数 D FEND 无 1步助记符程序步FNC 06该指令表示主程序结束。一般情况下,FEND指令的 执行与END指令一样,进行输出、输入处理,监视定时 器的刷新之后,返回0步的程序。图8-17是FEND指令 的应用举例。在多次使用FEND指令的场合,在最后的 FEND指令与END指令之间对子程序和中断子程序编 程,并一定要有返回指令。 FEND指令的执行与 END指 令一样,当主程序执行到FEND 指令时,进行输出、输入处 理,监视定时器的刷新之后, 自动返回0步的程序。 多次使用FEND指令的场 合,在最后的 FEND 指令与 END 指令之间安排对子程序和 中断子程序编程,并一定要有 返回指令。 图8-17是FEND 指令的应 用举例。由图可见,当 X010为 OFF 时,不执行跳转指令,仅 执行主程序;当 X010 为O N 时, 执行跳转指令,跳到 P20 处, 若X011为 OFF,仅执行第二 个主程序,若 X011为 ON , 调用 P21的子程序,结束后 通过 SRET 指令返回原断 点,继续执行第二个主程序。P21 I100 P20 X011 0 X010第一主程序 FNC 00 CJ P20第一主程序 FNC 06 FEND 第二主程序 FNC 01 CALL P21第二主程序 FNC 06 FEND 子程序的程序 中断程序的程序 END图8-17主程序结束指令的应用 * 2、监视定时器刷新指令说明及其梯形图表示方法指令名称 指令代码 助记符 操作数 D监视定时器刷新 WATCH DOG TIMER程序步FNC 07WDT WDT(P)无1步WDT指令是顺控程序中执行监视定时器刷新的指 令。它有脉冲执行型和连续执行型两种形式,它们的 执行过程如图8-18所示。 WDT指令也可以用于跳转子程序和循环子程序中 进行编程。 监视定时器指令也可以改变监视定时器的时间设定。 X000FNC 07 WDT(P) FNC 07 WDTX000 程序扫描仅对监 视定时器刷新1次X000每次程序扫描执行都 对监视定时器刷新1次图8-18 监视定时器指令两种执行方式 120ms的程序 240ms 的程序 END FNC 07 WDT 120ms的程序 END 图8-19 应用监视定时器指令将程序一分为二 M FNC 12 K300 监视定时器 MOVFNC 07 WDT 图8-20 监视定时器设置时间为300ms对监视定时 器时间刷新0起始脉冲 五、程序循环指令及应用 1.程序循环指令的要素及梯形图表示指令名称 循环开始指令 指令代码 助记符 操作数S程序步FNC 08 (16)FORK、H、KnX、KnY KnM、KnS、T、C D、V、Z3步(嵌套5层)循环结束指令FNC09NEXT无1步循环指令由FOR及NEXT二条指令构成,这二条指 令总是成对出现的。如梯形图8-21所示。2.循环程序的意义及应用循环指令用于某种操作需反复进行的场合。 FNC 08 FOR FNC 08 FORK4 D3 (D3)=3M8000FNC 08 FOR K1X000 (K1X000)=4 FNC 24 ① ② ③ INC D100 FNC 09 NEXT FNC 09 NEXT FNC 09 NEXT 六、程序控制指令与程序结构1、简单结构这是小程序的常用结构,也叫作线性结构。指 令平铺直述地写下来或执行。程序中也会分一些段。 简单结构的特点是每个扫描周期中每一条指令都要 被扫描。2、有跳越及循环的简单结构 由控制要求出发,程序需要有选择地执行时采 用跳转指令。这时在某个扫描周期中就不一定全部 指令被扫描到了,而是有选择的执行,被跳过的指 令不被扫描。循环也是这样. 3、组织模块式结构 组织模块式结构的程序则存在并列结构。组织 模块式程序可分为组织块、功能块、数据块。组织 块专门解决程序流程问题,常作为主程序。功能块 则独立地解决局部的,单一的功能,相当于一个个 的子程序。数据块则是程序所需的各种数据的集合。 在这里,多个功能块和多个数据块相对组织块来说 是并列的程序块。前边讨论过的子程序指令及中断 程序指令常用来编制组织模块式结构的程序。 4、结构化编程结构 第三节 传送、比较类应用指令及应用在FX2N系列PLC中设置了8条数据传送指令,2条 数据比较指令,其功能号是FNCl0~FNCl9。 传送指令: MOV(传送) SMOV(移位传送) CML (取反传送) BMOV(数据块传送) FMOV(多点传送) XCH(数据交换) BCD(二进制数转换成BCD码并传送) BIN(BCD码转换为二进制数并传送) 比较指令: CMP(比较) ZCP(区间比较) 第三节 传送、比较类应用指令及应用一、传送和比较类指令说明 1、比较指令(Compare)指令 名称 指令代码 位数 助记符S1(? )操作数范围S2(? ) D(? )程序步比较FNC10 (16/32)CMP CMP(P)K、H、 KnX、 KnY、KnM、 KnS、T、C、D、 V、ZY、M、SCMP、 CMPP…7步 DCMP、 DCMPP…13步 ? 比较指令CMP是将源操作数S1(?)与S2(?)的数据进行比较,在其大小一致时,目标操作数D(?) 动作,如图8-22所示。 ?数据比较是进行代数值大小比较(即带符号比较)。 所有的源数据均按二进制处理。 ?当比较指令的操作数不完整(若只指定一个或两个 操作数),或者指定的操作数不符合要求(例如把X、 D、T、C指定为目标操作数),或者指定的操作数 的元件号超出了允许范围等情况,用比较指令就会出 错。 ?目标软元件指定M0时,M0、M1、M2自动被占用。 S1?S2?D?X000FNC 10 CMP M 0K200C21M 0X000断开后 不执行CMP指 令时,M0~M2 保持X000断 开前的状态K200 & C21 当前值, M 1 M 2 K200 & C21 当前值, K200 = C21 当前值,M 0 = ON M 1 = ON M 2 = ONX000RST M 0 RST M 1 RST M 2 或用区间复 位指令复位X000FNC 40 ZRSTM 0M 2M 0 ~ M 2 复位 2、区间比较指令(Zone Compare)操作数范围 指令名 称 指令代码 及位数 助记符 S1(?)/S2(?) /S(?) 程序步 D(?) Y、M、 SZCP、ZCPP…9步 DZCP、 DZCPP…17步区间 比较FNC11 (16/32)ZCP ZCP(P)K、H、KnX、KnY、 KnM、KnS、T、C、 D、V、Z该指令是将S(?)数据与上、下两个源数据S1(?) 和S2(?)间的数据进行代数比较(即带符号比较), 在其比较的范围内,对应目标操作数中M3、M4、M5软 元件动作。 S1?S2?S?D?X000FNC 11 ZCP M3K100K200C20M3X000断开后 不执行ZCP指 令时,M3~M5 保持X000断 开前的状态K100 > C20当前值时, M4 M5 K200<C20当前值时时,M 3 = ONK100 ≤ C20当前值≤200时, M 4 = ON M 5 = ON要求源数据S1(?)≤S2(?),若S1(?)> S2(?),则S2(?)则被看作与S1(?)一样 大,在X000断开时,ZCP指令不执行,M3~M5保 持X000断开前的原状态。 (三)传送指令(Move)1.传送指令说明及梯形图表示方法指令 名称 传送 指令代 码位数FNC12 (16/32)操作数范围 助记符S1(? )MOV MOV(P)K、H、KnX、 KnY、KnM、 KnS、T、C、 D、V、Z程序步D(? )KnX、KnM、 KnS T、C、D、 V、ZMOV、MOVP…5 步 DMOV、 DMOVP…9步S?D?X000FNC 12 MOVK100D10 2.指令的应用举例(1)将定时器、计数器的当前值读出,如图8-26。图 中,X001=ON时,(T1当前值)→(D21)。 (2) 定时器、计数器设定值的间接指定,如图8-27。 图中,X002=ON时,K100→(D10),(D10) 中的数值作为T20的时间设定常数,定时器延时 10S。 (3) 对若干位软元件的成批数据传送,可用图8-28 中右图MOV指令来表示左图的顺控程序。 (4) 32位数据的传送,如图8-29。DMOV指令常用 于将运算结果以32位数据进行传送的应用指令(如 乘法指令MUL等)以及32位的数值或32位的高速计 数器的当前值等的传送。 (四)移位传送指令(Shift Move) 1.移位传送指令说明及梯形图表示方法操作数范围 指令 名称 指令代 码位数 助记符S(? ) m1 m2 D(? ) n程序步块传 送FNC13 (16)SMOV SMOV(P)KnX 、 KnY 、 K、 KnM 、 H= KnS 、 T 、 1~4 C、D、V、 ZK、 H= 1~4KnY、 KnM、 KnS、 T、 C、D、 V、ZK、 H= 1~4SMOV、 SMOVP… 11步SMOV指令是进行数据分配与合成的指令。源操 作数为负以及BCD码的值超过9999将出现错误。 S?起始位移位位数m1m2D?D的起始位nX000FNC 13 SMOVD1K4K2D2K315 0 10 1 0 1 0 0 10 2 4 m2=2 n=3 51 00 1 00 1 1 1 10 0 7D1(16位BIN) 自动转换 D1(4位BCD) 位移10 3 5 m1=4 不变10 1 94不变D2(4位BCD) 自动转换0 1 0 10 1 0 0D2(16位BIN) 2.移位传送指令应用(1)图8-31是三位BCD码数字开关与不连续的输入端连接实 现数据的组合。102101100M 8000 78 1 861 X027~ X020 851FNC19 K2X020 BIND2(X027~X020)BCD码2 位 →D2( 二进制) (X003~X000)BCD码1 位 →D1( 二进制)X003~ X000FNC19 K1X000 BIN FNC13 SMOVD1可编程控制器D1K1K1D2K3图8- 31 数字开关的数据组合 *15 0 0 10 3 0 0 0 0 10 2 0 0 0 0 10 1 0 0 0 0 1 1 1 X003-X000 10 0 D1(16位BIN) 自动转换 D1(4位BCD) m2=1 5 X027-X020 0 0 0 0 0 1 1 1 0 1 1 0 0 1 0 1 位移 D2(4位BCD) 自动转换 D2(16位BIN)00n=3 70m1=1706 (2)移位指令的扩展应用可以驱动特殊辅助继电器M8168接通,使SMOV 指令执行中,不再对源操作数进行BCD码变换,而是直 接将二进制的源操作数以四位为单位,对目标操作数 进行多点传送。如下图所示。X000M8160S ? D ?m1m2nFNC 13 SMOV M8168=ON时:15 0 0 0 1 0 1 0D1K4K2D2K3101111000 1D1(16位BIN)自动转换 0 0 0 1 0 1 0 1 D2(16位BIN)不变不变 (五)取反指令(Complement)指令 名称操作数范围指令代 码位数助记符S(?) D(?)程序步取反FNC 14 (16/32)CML CML(P)K、H、 KnX、KnY、 KnM、KnS、T、C、 D、V、ZKnY、KnM、 KnS、T、C、 D、V、ZCML、CMLP…5 步 DCMLP、 DCMLP…9步该指令功能是将源数据的各位取反(0→1,1→0)向 目标传送。若将常数K用于源数据,则自动进行二进制 变换。常用于希望PLC输出的逻辑进行取反输出的情况。 S?D?X000? ? ? ? ? ? ? ? 15 D0 1 0 1 0 0 1FNC 14 CMLD0 (D0)K1Y000 (K1Y000)0 0 1 0 1 1 0001 0符号位:0=正,1=负1Y016 Y017 不变化 Y010 Y006 Y007001Y002 Y000 Y004 Y001 Y003 取反传送
(六)块传送指令(Block Move)指令 名称 指令代 码位数 助记符 操作数范围 程序步S(? )块传 送 FNC15 (16)BMOV BMOV(P)KnX、KnY、 KnM、KnS、 T、C、DD(? )KnY、 KnM、 KnS T、C、DnK、H ≤512BMOV、 BMOVP…7步BMOV指令是从源操作数指定的软元件开始的n点 数据传送到指定的目标操作数开始的n点软元件,如果 元件号超出允许的元件号范围,数据仅传送到允许的范 围内 D5 D10 FNC 15 8-34所示中源与目标操作数的位数都是4位。 D5 D10 K3 D6 D11 n=3点 BMOV D7 D12 在传送的源与目标地址号范围重叠的场合时,为了防止源数据没有传送X000若指定的是位元件构成的块传送,源与目标操作数的位数要相同,如图S?D?n就被改写,PLC将自动确定传送顺序,如图8-35中的①~③顺序。 图8-33 块传送指令的使用说明之一① ② ③ D10&D9 ③ ② ① D10&D11 X001M8024控制BMOV 传送方向内部RAM内 或选件板内 D 0 程序存 储器 K400 D1000 D 0系统RAM内 程序存 储器 程序寄存器 D1000D1100→D1100X002FNC 15 BMOVPD1100D1100程序/注释指定相同的文件寄存器地址号M 运行时常开BMOV反 向断开? 500 ? 14 ? 文件寄存器 ? ? 分程序 ? ? [A] ? ?最大 7000点读出D1499→D1499文件寄存器 [B]7000点 D7999停电保持用 寄存器S?D?M8024(OFF):D1100X002(ON)时S?D1100D?读出 D 0内部RAM内 或选件板内 程序存 储器 程序/注释 DD1100←D1100系统RAM内 D 0 程序存 储器 程序寄存器M8024(ON):D1100X002(ON)时D1100写入? 500 ? 14 ? 文件寄存器 ? ? 分程序 ? ? [A] ? ?最大 7000点写入D1499←D1499文件寄存器 [B] 7000点 D7999停电保持用 寄存器图 8-36 利用BMOV指令读写文件寄存器中数据 (七)多点传送指令(Fill Move)操作数范围 指令名 称 指令代 码位数 助记符 S(?) D(?) n 程序步多点传 送FNC16 (16)FMOV FMOV (P)K、H KnX、KnY、 KnM、KnS T、C、D、V、ZKnY 、 KnM、KnS T、C、DFMOVP… 7 步 FMOV、 K、H ≤512 DFMOV、 DFMOVP…13步FMOV指令是将源操作数指定的软元件的内容向以 目标操作数指定的起始软元件的n点软元件传送,n点 软元件的内容都一样。 S?D?nK5X000FNC 16 K10 FMOV K10D1 D1 D2 D3 D4 D5n=5如果目标操作数指定的软元件号超出允许的元件 号范围,数据仅传送到允许的范围内。 (八)数据交换指令(Exchange)指令 名称 指令 代码 位数操作数范围 助记符 D1(?)XCH XCH( P) KnY、KnM、 KnS T、C、D、V 、Z程序步 D2(?)KnY、KnM、 KnS T、C、D、V、Z数据 交换FNC17 (16/32)XCH、XCHP…5 步 DXCH、 DXCHP…9步XCH指令是在指定的目标软元件间进行数据交换。 D1?D2?X001M8160(=SWAP) FNC 17 DXCHP M D10 D10X000FNC 17 XCHPD10D11执行前 (D10)=100 (D11)=130执行后 (D10)=130 (D11)=100D11 高8位 低8位 高8位D10 低8位图8-38 数据交换指令使用说明图8-39 数据交换指令扩展使用*若要实现高八位与低八位数据交换,可采用高、低 位交换特殊继电器M8160来实现。 (九)BCD码转换指令(Binary Code to Decimal)指令 名称 指令代 码位数操作数范围 助记符 S(?) D(?)KnY、KnM、 KnS T、C、D、V、 Z BCD、BCDP…5 步 DBCD、 DBCDP…9步程序步BCD 转换BCD FNC18 (16/32) BCD(P)KnX、KnY、 KnM、KnS T、C、D、V、ZBCD转换指令是将源元件中的二进制数转换 成BCD码送到目标元件。 S?D?X000FNC 18 BCDD12K2Y000如果是16位操作,转换的BCD码若超出0~ 9999范围,将会出错;如果是32位操作,转换结 果超出0~的范围,将会出错。 转换BCD指令可用于PLC内的二进制数据变 为七段显示等需要用BCD码向外部输出的场合。 (十)BIN转换指令(Binary)指令 名称 助记 符 指令代码 位数 操作数范围 程序步 S(?) BIN 变换BIN BIN (P) FNC19 (16/32) KnX、KnY、 KnM、KnS T、C、D、V、ZD(?)KnY、KnM、 KnS T、C、D、V、 Z BIN、BINP…5 步 DBIN、 DBINP…9步BIN转换指令是将源元件中BCD码转换成二进制数 送到目标元件中。源数据范围:16位操作为0~9999; 32位操作为0~ S?D?X010 X010=ONFNC 19 BINK2X000D12源()BCD→目标(0101)BIN图8-41 BIN转换指令使用说明 二、传送比较类指令的基本用途及应用实例 (一)传送比较指令的基本用途 1. 用以获得程序的初始工作数据 2、机内数据的存取管理 3、运算处理结果向输出端口传送 4、比较指令用于建立控制点 (二)传送比较指令应用举例1.用程序构成一个闪光信号灯,要求通过改 变输入口的置数开关改变闪光频率。 (即信 号灯亮t秒,熄t秒)4个置数开关,分别接于输入端X000~X003, X010为启停开关,闪光信号灯接于Y000。 M 8000FNC 12 MOVP FNC 12 MOV FNC 12 MOV T1K0Z0变址初值X010K1X000Z0拨动开关值输入 K8+(Z0) 送入D0,若 Z0=0,D0=8 产生D0 时间间隔信号K8Z0 T0D0 D0X010 D0 T0T0 T1 X010 T0 END图 8- 43D0 Y000D0 D0T1 Y000闪光频率可改变的闪光信号灯 2.电动机的Y/△启动控制电动机的Y/△启动控制主电路如书中P43图210, 设输入触点 X000 X001 连接开关 启动按钮 停止按钮 输出触点 Y000 Y001 Y002 Y003T0、T1输出连接器件 KM1(001) KM2Y(010) KM3△(100) 6秒/1秒依电机Y/△启动控制要求,电动机Y形启动时 应Y000、Y001为ON(传送常数为1+2=3),当 转速上升到一定值时 ,断开Y000、Y001,接通 Y002 ( 传 送 常 数 为 4 ) , 电 动 机 △ 形 运 行 时 接 通 Y000、Y002(传送常数为1+4=5).停止时,应 传送常数为0。另外,启动过程中的每个状态间应有 时间间隔。 本例使用向输出端口送数的方式实现控制。 X000SB1 X000 Y000 KM1FRY000 T0FNC 12 MOVH3 T0K1Y000启动时Y000,Y001 为ON,M为Y启动 启动过程延时 接通Y002, △形连接 根据停电后Y/△切 换延时的具体情况 调整延时时间K60 K1Y000KM1 FRY001 KM2Y-16MRFNC 12 MOVH4SB2 X001Y002 KM3Δ Y003 380V~Y002 T1 T1 FNC 12 MOV FNC 12 MOV END H5 K10FX2NK20 K1Y000 接通Y000、Y002 M为△运行 K1Y000 停止MKM2YKM3ΔCOMCOMX001K0图 8-44 电动机Y/△启动控制* 3.密码锁用比较器构成密码锁系统。密码锁有12个按钮, 分别接入X000~X013,其中X000~X003代表第 一个十六进制数;X004~X007代表第二个十六进制 数;X010~X013代表第三个十六进制数。根据设计, 开锁要按四次密码,每个密码同时按四个键,分别代 表三个十六进制数,,如密码与设定值都相符合,5 秒后,可开启锁。20秒后,重新锁定。 密码锁的密码可由程序设定。假定密码设定的 四 个 数 为 H2A4 、 H1E 、 H151 、 H18A , 则 从 K3X000送入的数据应分别和它们相等,用比较指令 进行判断,梯形图如图8-45所示。 以上所用十二键排列组合设计的密码锁,具有较 高的实用性。 M8000FNC 10 CMP H2A4 FNC 10 CMP H01EK3X000 K3X000 K3X000 K3X000 C0M1 M4 M7 M10 K4H2A4表示十六进制 数 2A4 。每位密码 的输入方法如下: 第一个数 X003 X002 X011 X000 0 1 0 0 (4) 第二个数 X007 X006 X005 X004 第三个数 X013 X012 X011 X010 0 0 1 0 (2)FNC 10 CMP H151 FNC 10 H18A CMP M2 M5 M8 M11 C0T0 T1K50 四次密码输入成功 后,延时5秒开锁 K200 锁定延时20秒后重新T0 T1SET Y000 RST Y000 RST C0 END启动门锁 门锁复位图 8-45 密码锁的梯形图 M800 Y001 0M 2 Y001 M 5 Y002 M 8 Y003 M11 Y004FNC CM 10 P FNC Y002 CM 10 P FNC Y003 CM 10 P FNC Y004 CM 10 T P 1 T 1 T 1 T 1H2A 4 H01 E H15 1 H18 AK3X00 0 K3X00 0 K3X00 0 K3X00 0 Y001M 1 M 4 M 7 M1 0H2A4表示十六进 制 数2A4 。每位密码 的输入方法如下: 第一个 X003 X002 X011 数 0 1 0 X000 0 第二个 (4) X007 X006 X005 数 1 0 0 X004 1 第三个 (A) X013 X012 X011 数 0 0 0 X010 1 (2) 第一组密码正确指示灯亮X01 1启/ 控制 停Y01 1X01 0X01 1RS TC1 0Y002第二组密码正确指示灯亮RS T M800 0Y01 1Y003第三组密码正确指示灯亮FNC 19 BI NK2X00 0Y004第四组密码正确指示灯亮Y001 Y002 Y003 Y004 M15 X014 T 0 T 1 ZRST SE T RS T M1M15 T 0 T 1 Y00 0 Y00 0 M15 EN D四次密码输入成 K5 功 后,延时5秒开锁 0 K20 锁 延时20秒后重新 定 0 启动门 锁 门锁复 位M1 6FNC 10 CM P Y01 1C1 0EN DM1~M15复位图 8-45 密码锁的梯形图 8-46 外置数计数 4.外置数计数器PLC中计数器的设定值通常是由程序设定的,在一 些工业控制场合,希望计数器设定值能在程序外由操 作人员根据工艺要求临时设定,这就需要一种外Z数 计数器,图8-46就是一种外Z数计数器的梯形图程序。 在图8-46中,二位拨码开关接于X000~X007, 通过它们可以根据要求在99以下Z值;X010为计数脉 冲源输入端;X011为启停开关。 C10计数值是否与外部拨码开关设定值一致,是 借助比较指令实现的。须注意的是,拨码开关送入的 值为BCD码,要用二进制转换指令进行数制的转换。 因为比较操作只对二进制数有效。 X011启/停 控制Y011X010 C10 K128 RST C10计数操作X011未启动前C10 与Y011复位RST M8000Y011FNC 19 K2X000 BIN FNC 10 CMPK2M0BCD码转换 为BIN码C10K2M0M5计数值与设 定值比较M6 Y011计数值与设 定值一致END 5.简易定时报时器用计数器与比较指令构成24h可设定定时时间 的定时控制器,梯形图如图8-47所示。X000为启 停开关;X001为15min快速调整与试验开关,每 15min为一个设定单位,24小时共96个时间单位; X002为格数设定的快速调整与试验开关。时间设 定值为钟点数×4。 若定时控制器作如下控制:① 早上6点半, 电铃(Y000)每秒响一次,响六次后自动停止。 ② 9:00~17:00,启动住宅报警系统(Y001)。 ③ 晚上6点开花园内照明(Y002接通)。④ 晚上 10点关园内照明(Y002断开)。使用时,在0:00时启动定时器。 X001 X000 X002 C0 C0 C1 M8000Ms) C0 M8013(1s) Ms) C1 K96 RST RST FNC 10 CMP FNC 10 CMP FNC 10 CMP FNC 11 ZCP C1 C1 C1 K36 T0 M SET RST Y001 Y002 Y002 C0 C1 K26 K72 K88 K68 K60 M1 M4 M7 C1 K900/60=15minX000为定时启动 X001快速调整以 15min为一设定格 X002格数设定调整 C1进行格数计数每15分钟复位一次 每24小时复位一次 早6:30设定 晚6点设定 晚10点设定 M10 9:00~17:00设定 T0定时6秒 每隔1秒的六次鸣响 园内照明开启 园内照明关闭 报警系统开启M2(C1=K26) T0 M5(C1=K72) M8(C1=K88) M11(K36≤C1≤K68) END 第四节 算术及逻辑运算指令及应用一、算术及逻辑运算指令的使用说明?算术及逻辑运算指令是基本运算指令,可完成四则 运算或逻辑运算,可通过运算实现数据的传送、变位 及其他控制功能。?可编程控制器有整数四则运算和实数四则运算两种, 前者指令较简单,参加运算的数据只能是整数。而实 数运算是浮点运算,是一种高精确度的运算。 ?FX2N系列PLC除有BIN的整数运算指令之外,还具 有BIN浮点运算的专用四则运算指令。 (一)二进制加法指令(Addition)指令 名称 指令代 码 位数 操作数范围 助记符 S1 (?) S2 (?) D(?) 程序步加法FNC 20(16/32)ADD ADD( P)K 、H 、 KnX 、 KnY 、 KnM 、 KnS 、T、C、D 、 V 、ZKnY 、 KnM 、 KnS T、C、D 、 V 、ZADD 、 ADDP … 7步 DADD DADDP …、 步 13ADD加法指令是将指定的源元件中的二进制数相 加,结果送到指定的目标元件中去。 S1?S2?D?S1?S2?D?X000FNC 20 ADDX001 D10 D12 D14FNC 20 ADDPD0K1D0PLC每扫描1次,(D10)+(D12)→(D14) 运算结果为0,M8020=1; 有借位, M8021=1; 有进位, M8022=1. 图8-48 二进制加法指令使用说明之一*X001每接通1次,(D0)+1→(D0)图8-49 二进制加法指令使用说明之二*M8020为零标志,若运算结果为0,则M8020=1;M8021借位标志,若运算结果小于-32767(16位) 或-(32位),则M8021=1;M8022为进位标志,如果运算结果超过32767(16 位)或(32位)则M8022=1。 (二)二进制减法指令(Subtraction)操作数范围指令 名称指令代 码位数助记符S1(? ) S2(? ) D(? )程序步减法FNC 21 (16/ 32)SUB、SUBP…7 SUB K.H、KnX、KnY、 KnY、KnM、 步 SUB(P KnM、KnS、T、C、 KnS、T、C、 DSUB.DSUBP D、V、Z D、V、Z ) …13步SUB减法指令是将指定的源元件中的二进制数 相减,结果送到指定的目标元件中去。 S1?S2?D?S1?S2?D?X000FNC 21 SUBD10D12D14X001FNC 20 DSUBPD0K1D0(D10)-(D12)→(D14) 图8-50 二进制减法指令使用说明之一(D1,D0)-1→(D1,D0) 图8-51 二进制减法指令使用说明之二各种标志的动作、32位运算中软元件的指 定方法、连续执行型和脉冲执行型的差异等均与上 述加法指令相同。 (三)二进制乘法指令(Multiplication)操作数范围 指令 名称 指令代 码位数 助记符 S1(? ) S2(? ) D(? ) 程序步乘法FNC 22 (16/ 32)MUL MUL(P )K.H、KnX、KnY、 KnM、KnS、 T、C、D、Z限16 位KnY、KnM、 KnS、T、C、 DMUL、 MULP…7步 DMUL、 DMULP…13 步MUL乘法指令是将指定的源元件中的二进制数 相乘,结果送到指定的目标元件中去。 S1?S2?D?S1?S2?D?X000FNC 22 MULD10D12D14X001FNC 22 DMULPD0D2D4BIN BIN BIN (D10)×(D12)→(D15,D14) 16位 16位 32位 (a)BIN BIN BIN (D1,D0)×(D3,D2)→(D7,D6,D5,D4) 32位 32位 64位 (b)图8-52 二进制乘法指令使用说明*?如将位组合元件用于目标操作数时,限于K的取值,只能得到低位32位的结果,不能得到高位32位 的结果。这时,应将数据移入字元件再进行计算。? 用字元件作目标操作数时,也不能对作为运算结果的64位数据进行成批监视,在这种场合下,建议 采用浮点运算。Z不能在32位运算中作为目标元件 的指定,只能在16位运算中作为目标元件的指定。 (四)二进制除法指令(Division)指令 名称 指令代 码位数 操作数范围 助记符S1(?) S2(?) D(?)程序步除法FNC 23 DIV (16/32) DIV(P)K、H、KnX、KnY、 KnM、KnS、T、C、D、 Z限16位KnY、KnM、 KnS、T、C、 DDIV、DIVP…7步 DDIV、 DDIVP…13步DIV除法指令是将指定的源元件中的二进制数相除, S1(?)为被除数,S2(?)为除数,商送到指定 的目标元件D(?)中去,余数送到目标元件D(?) +1的元件中。 S1?S2?D?S1?S2?D?X000FNC 23 DIVD0D2D4X001FNC 23 DDIVD0D2D4被除数 除数 商 余数 (D0)÷(D2)→(D4)…(D5) 16位 16位 16位 (a)被除数 除数 商 余数 (D1,D0)÷(D3,D2)→(D5,D4)…(D7,D6) 32位 32位 32位 (b)图8-53 二进制除法指令使用说明*商与余数的二进制最高位是符号位,0为正,1为负。 被除数或除数中有一个为负数时,商为负数。被除数 为负数时,余数为负数 (五)二进制加1指令(Increment)操作数范围 指令 名称 指令代码 位数 助记符 D(?) FNC 24 (16/32 ) INC INC(P ) INC、INCP…3步 DINC、DINCP…5步 程序步加1KnY、KnM、KnS T、C、D、V、ZD?16位运算时,+32767再加上1则变为-32768,但标志位 X000 FNC 24 不动作。同样,在32位运算时,+再加1就变 D10 INCP 为-,标志位不动作。 (D10)+1→(D10) (六)二进制减1指令(Decrement)指令 名称 指令代 码位数操作数范围 助记符 D(?) 减1 FNC 25 (16/32) DEC DEC(P) KnY、KnM、KnS T、C、D、V、Z DEC、DECP…3步 DDEC、DDECP…5步 程序步在16位运算时,-32768再减1就变为+32767,但标志 X001 FNC 25 D10 位不动作。同样,在32位运算时,-再减1 DECP 就变为+,标志位不动作。 (D10)-1→(D10)D? 应用例: (七)逻辑字与、或、异或(Exclusive Or)指令操作数范围 指令 名称 指令代码 位数 助记符 S1 (?) S2 (?) D(?) 程序步逻辑 字与FNC 26 (16/32 )(P) WAND (P) DWANDWAND、 WANDP…7步 、 DWAND、 DWANDP…13步 K、H、KnX 、 KnY、KnM、 KnS、T、C、D、 V、Z KnY、 KnM、KnS T、C、D、V 、Z WOR、 WORP…7步 DWOR 、 DWORP …13步逻辑 字或FNC 27 (16/32 )WOR (P) (P) DWOR逻辑 字异或FNC 28 WXOR (P) (16/32 ) DWXOR (P)WXOR、 WXORP…7步 DWXOR、 、 DWXORP …13步 S1?S2?D?S1?S2?D?X000FNC 26 WANDX001 D10 D12 D14FNC 27 WORD10D12D14(D10)∧(D12)→(D14) 按各位对应进行逻辑字与运算 1∧1=1 1∧0=0 0∧1=0 0∧0=0 (a)逻辑字与S1? S2? D?(D10)∨(D12)→(D14) 按各位对应进行逻辑字或运算 1∨1=1 1∨0=1 0∨1=1 0∨0=0 (b)逻辑字或X002FNC 28 WXORD10D12D14(D10)(D12)→(D14) 按各位对应进行逻辑字异或运算 11=0 10=1 01=1 00=0 (c)逻辑字异或 (八)求补码指令(Negation)操作数范围 指令名 称 指令代码 位数 助记符 D(? ) FNC 29 (16/32) NEG NEG(P) NEG、NEGP…3 步 DNEG 、 DNEGP…5步 程序步求补码KnY、KnM、KnS T、C、D、V、ZD?X000FNC 29 NEGD10(D10)+1→(D10) 二、算术及逻辑运算指令应用实例 (一)四则运算式的实现编程实现: 算式的运算。式中“X”代表输 入端口K2X000送入的二进制数,运算结果送输出口 K2Y000;X020为启停开关。其程序梯形图如图8-58 所示。 (二)彩灯正序亮至全亮、反序熄至全熄再循环控制 实现彩灯控制功能可采用加1、减1指令及变址寄 存器Z来完成的。彩灯有12盏,各彩灯状态变化的时间 单位为1s,用秒时钟M8013实现。梯形图见图8-59, 图中X001为彩灯控制开关,X001=OFF时,禁止输出 继电器M8034=1,使12个输出Y000~Y013为OFF。 M1为正、反序控制。45 X ?3 356 X020X020FNC 12 K2X000 FNC MOVP 12MOVP K2X000D0D0从X000~X007 输入X值送D0X001X001M8034M8034 RST RST=1,禁止输出继电器输出 =1,则输出口全部为OFF状态M D1常数45送入D1初始脉冲 初始脉冲FNC 12 K45 FNC 12 K45 MOVPMOVPZ0 ZZ清零 Z0清零D1M1 M1常数356送入D2MX001 X001FNC FNC 12 12 K356 K356 MOVP MOVPFNC 12 K3 FNC 12 K3 MOVPD2D2正序 秒脉冲 启动 正序 秒脉冲 启动 M8013FNC 24 K4Y0Z FNC 24 K4Y0Z0 INCP INCPFNC 24 FNC 24 INCP INCP Z0 Z Z0D3MOVPD3D1加数3送入D3D4X001X001M启动FNC 22 D0 MULP 22 FNC FNC 23 DIVP启动秒脉冲 反序秒脉冲 反序FNC 25 DECP DECPFNC 25ZMULPD0D1D2D4D5FNC 25 K4Y0Z0 DECP FNC 25Y013D4Y013Y000 M1SETM1K4Y0Z DECP 12号灯亮后M1= 12号灯亮后M1= 0号灯灭后进入 1,灯反序熄灭正序 1,灯反序熄灭FNC 23 FNC DIVP 20ADDPD4D5 D3D2D5K2Y000SETPLSM1M0Y000 M0 M0M1 PLS RST RST END M0 M1 M1FNC 20 ADDP ENDD5D3K2Y0000号灯灭后进入 M1=0,灯正序 正序 点亮 M1=0,灯正序 点亮图8-58 四则运算式实现程序 END图8-59 彩灯控制梯形图END图8-58 四则运算式实现程序图8-59 彩灯控制梯形图 (三)利用乘除运算指令实现移位(扫描)控制采用乘除法指令实现灯组的移位循环。有一组灯 15个接于Y000~Y016,要求:当X000为ON,灯正 序每隔1S单个移位,并循环;当X001为ON且Y000为 OFF时,灯反序每隔1S单个移位,直至Y000为ON, 停止。梯形图如图8-60所示,该程序是利用乘2、除2 实现目标数据中“1”移位的。 (四)指示灯的测试电路某机场装有十二盏指示灯,用于各种场合的指示, 接于K4Y000。一般情况下总是有的指示灯是亮的,有 的指示灯是灭的。但机场有时候需将灯全部打开,也 有时需将灯全部关闭。 现需设计一种电路,用一只开关打开所有的灯,用另 一只开关熄灭所有的灯。十二盏指示灯在K4Y000的 分布如图8-61(a)所示。梯形图如图8-61(b)。 程序是采用逻辑控制指令来完成这一功能的。先为所 有的指示灯设一个状态字,随时将各指示灯的状态存 入。再设一个开灯字,一个熄灯字。开灯字内Z1的位 和灯在K4Y000中的排列顺序相同。熄灯字内Z0的位 和K4Y000中灯的位Z相同。开灯时将开灯字和灯的 状态字相“或”,灭灯时将熄灯字和灯的状态字相 “与”,即可实现控制功能的要求。 X000MC M0 M M8013N0M0Y15 0 1 1 1 1 0 1 1 1 1 0 1 1 1 0Y0 1 Y0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0N0开灯字(K31709) Y15Y000置初值1×2=2;2×2=4;4×2=8…… 形成正序移位循环1关灯字(K33826)FNC 22 K4Y000 MULPK2K4Y000(a)指标灯在K4Y000的分布图MCRX001 MC M1 M MN0 N0 M1M8000FNC 12 K4Y000 K4M0 MOV FNC 27 K31709 WORPFNC 28 K33826 WANDPK4Y000的状态 字送入K4M0 K4Y000 全为1N0X000 Y017 置初值 X001 FNC 23 K4Y000 DIVPK4M0K4Y000K4M0K4Y000K4Y000 全为0K2K4Y000 END……8÷2=4;4÷2=2;2÷2=1 形成反序移位循环MCRENDN0 (b)指标灯测试电路梯形图图8-60 灯组的正反序移位循环控制梯形图图8-61 指标灯测试状态字及程序 第五节 循环与移位指令及其应用一、循环与移位控制类指令说明 (一)循环右移和循环左移指令 (Rotation Right、Rotation Left)指令名称 指令代码 位数 操作数范围 助记符 D(? ) ROR ROR(P)程序步 nROR、 RORP…5步 DROR 、 DRORP…9步循环右移FNC 30 (16/32) FNC 31 (16/32)循环左移ROL ROL(P)KnY、KnM、 KnS、T、C、 D、V、ZK、H 移位量 n≤16(16位) n≤32(32位)ROL、ROLP…5步 DROL 、 DROLP…9步 D?nX001 K415 1 1 进位 M 1 M8022 1 * 1 1 0 0 0 0D?nK4X000FNC 30 RORP循环右移D0FNC 31 ROLPD0循环左移15 1 111 11 11 n=400 000 0 0 0 0 * 进位 M802211 1 *1 110 n=40 000 0 0 0 0执行一次后 15 0 0 * 0 0 1 1 1 1 1 1 1 1执行一次后 0 0 0 0 0 1 1 1 1 *0 0 0 0 0 M8022 0 *(a) 循环右移(b) 循环左移图8-62 循环移位指令使用说明* (二)带进位循环右移、左移指令 (Rotation Right /Left with Carry)指令名称 指令代码 位数 操作数范围 助记符 D(? )RCR RCR(P) RCL RCL(P)程序步 n K、H 移位量 n≤16(16位) n≤32(32位)RCR、RCRP5步 DRCR 、 DRCRP…9步 RCL、RCLP5步 DRCL 、 DRCLP…9步带进位 循环右移 带进位 循环左移FNC 32 (16/32) FNC 33 (16/32)KnY、KnM、 KnS、T、C、 D、V、Z D?nX001 K4 FNC 33 RCLPD?nK4X000FNC 32 RCRPD0D0循环右移 15 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 * n=4 M8022 若M8022=ON 执行一次后 15 0 0 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 M8022 0 *循环左移 15 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 * n=4 M8022 若M8022=OFF 执行一次后 15 0 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 1 M8022 1 * (b) 循环左移(a) 循环右移 (三)位右移、位左移指令 (Shift Right/Left)指令名称指令代码 位数 操作数范围助记符S(?) D(?) SFTR SFTR(P) SFTL SFTL(P) X、Y、 M、S n1 n2程序步位右移FNC 34 (16) FNC 35 (16)位左移K、H Y、M、 n2≤n1≤102 S 4SFTR、SFTRP…9 步 SFTL、SFTLP…9 步位移位指令是对D(? )所指定的n1个位元件连 同S(? )所指定的n2个位元件的数据右移或左移n2 位 S?D?n1K16n2K4X010FNC 34 SFTRX000M 0①M 3~M 0→溢出 ②M 7~M 4→M 3~M 0 ③M11~M 8→M 7~M 4 ④M15~M12→M11~M 8 ⑤X003~X000→M15~M12X003 X002 X001 X000n2=4位右移⑤ M15 M14 M13 M12 M11 M10 M 9 M 8 M 7 M 6 M 5 M 4 M 3 M 2 M 1 M 0④③②①(a) 位右移指令使用说明S? D?n1K16n2K4X010FNC 35 SFTLX000M 0①M15~M12→溢出 ②M11~M 8→M15~M12 ③M 7~M 4→M11~M 8 ④M 3~M 0→M 7~M 4 ⑤X003~X000→M 3~M 0X003 X002 X001 X000n2=4位左移 ⑤ M 8 M15 M14 M13 M12 M11 M10 M 9 M 8 M 7 M 6 M 5 M 4 M 3 M 2 M 1 M 0①        ②③④(b) 位左移指令使用说明图8-64 位移位指令使用说明 (四)字右移、字左移指令 (Word Shift Right/Left)指令名 称 指令代码 位数 FNC 36 (16) FNC 37 (16) 操作数范围 助记符 S(?) WSFR WSFR(P ) WSFL WSFL(P ) D(?) n1 n2 WSFR、 WSFRP…9步 WSFL、 WSFLP…9步 程序步字右移字左移K、H KnX、KnY、 KnY、KnM、 KnM、KnS、T、 KnS、T、C、 n2≤n1≤51 C、D D 2字左移、右移位指令是对D(?) 所指定的n1个字元 件连同S(?)所指定的n2个字元件右移或左移n2个字 数据 S?D?n1K16n2K4X000FNC 36 WSFRPD0D10①D13~D10→溢出 ②D17~D14→D13~D10 ③D21~D18→D17~D14 ④D25~D22→D21~D18 ⑤D 3~D 0→D25~D22D 3D 2D 1D 0n2=4字右移 D17 D16 D15 D14 D13 D12 D11 D10⑤ D25 D24 D23 D22 D21 D20 D19 D18④③②①(a) 字右移指令使用说明S? D?n1K16n2K4X000FNC 37 WSFLPD 0D10①D25~D22→溢出 ②D21~D18→D25~D22 ③D17~D14→D21~D18 ④D13~D10→D17~D14 ⑤D 3~D 0→D13~D10D 3 D 2 D 1 D 0n2=4字左移 ⑤ D25 D18 M15 D24 D23 D22 D21 D20 D19 M 8 D17 D16 D15 D14 D13 D12 D11 D10①        ②③④(b) 字左移指令使用说明图8-65 字移位指令使用说明* (五)FIFO写入/读出指令 (Shift Register Write/Read)操作数 指令 名称 指令代码 位数 助记符 S(?) 先进先 出写入 FNC38 (16) SFWR SFWR (P) D(?) n 程序步K、H KnX KnY、KnM、KnS T、C、D、V、Z KnX、 KnX、 KnM、KnS T、C、DKnY、KnM KnS 、T C、D KnY、KnM、 KnS 、 T C、D、V、ZSFWR SFWRP…7步 K、H 2≤n≤512 SFRD、 SFRDP…7步先进先 出读出 FNC39 (16) SFRD SFRD (P)SFWR/RD指令是先进先出控制数据写入和读出指令 S?D?nK10将D1预选置为0X000FNC 38 SFWRPD0 n=10D1S?D0D10 D9D8D7D6D5D4 ③D3 ②D2 ①D1指针S?D?nK10将D1预选置为n-1D?X000FNC 39 SFRDPS?D1 n=10 D6 D5右移D20D10D9D8D7D4 ③D3 ②D2 ①D1指针D20 二、循环与移位指令应用(一)流水灯光控制某灯光招牌有L1~L8八个灯分别接于K2Y000端。要求: 当X000为ON时,灯先以正序每隔1S轮流点亮, 当Y007亮后,停2S; 然后以反序每隔1S轮流点 亮,当Y000再亮后,停2S,重复上述过程。当X001为ON时,停止工作。PLC的I/O点和内部器件分配如下表所示,梯形图如图8-67所示。 L2 1S 1S L1 Y0001S 1SL31S 1SL4 1S 1S L5 1S2S Y007 L81S 1S1S 1S L61SL7 输入接点分配 输入点编号 外接器件输出接点分配 输出点编号 外接器件内部器件分配 内部器件编号 功能说明X000 X001SBQ(启动) Y000 SBT(停止) Y001灯D1 灯D2M0 M1控制灯正序亮 灯正序停止逆序亮Y002Y003 Y004 Y005 Y006 Y007灯D3灯D4 灯D5 灯D6 灯D7 灯D8M2M100 T0 T1 M8013灯逆序停止正序亮置Y000=1初值 Y007=ON,延时2S Y000=ON,延时2S 秒脉冲发生器 X000 PLS M100 X000 M0 T1 M0 M8013 FNC 31 ROLP SET M1 T0 T0 M M2 K20 K4Y000 K1 循环再开始 K4Y000 M1 K1 正序移位,每 隔1秒左移一次 当Y007为ON, 正序停止循环 延时2秒 反序移位, 每隔1秒右移 一次 当Y000为ON, 反序停止循环 FNC 12 MOVP M1 M100 K1 X001 M0 K2Y000 Y007 0 0 0 左移 0 0 0 Y000 0 1置初值 右移 程序启动运行Y007FNC 30 RORPM1Y000T1 K20 M2T1 RST X001 X001 FNC 12 MOVP K0 END K2Y000 M1反序状态复位停止工作图8-67 灯组移位控制梯形图 (二)步进电机控制用位移位指令可以实现步进电机正反转和调速 控 制 。 以 三 相 三 拍 电 机 为 例 , 脉 冲 列 由 Y010 ~ Y012(晶体管输出)输出,作为步进电机驱动电源 功放电路的输入。Y010 Y011 Y012 PLC A A相驱动器 B C B相驱动器 C相驱动器 (a) (b步进电机脉冲分配方式 三相双三拍 CA通电顺序正转CB反转BA T246(D0)A(Y010) 1 B(Y011) 1 C(Y012) 0 1 正转 1 0 …… 1 0 反转 1 1 1 0 1 …… 0 1 1 0 0 1 1 …… 1 1 0 1t t t设X000为正反转切换开关(X000为OFF时,M 正转;X000为ON时,M反转),X002为启动按钮, X003为减速按钮,X004为增速按钮。接点分配如下 图所示。 程序设计分成三个模块:一个模块是采用1ms积算型定时器T246构成脉冲 发生器,它的设定值为K2~K500,可进行调整,即 定时为2ms~500ms可变,从面可使步进电机获得 500步/s~2步/s的变速范围。第二个模块采用位左移和位右移指令,实现步进 电机的三相双三拍通电脉冲顺序。 第三个模块是步进电机的加/减速调节,采用加1 和减1指令调节D0中的数值,就可实现调速功能。 梯形图如图8-68所示。 输入接点分配 输入点编号 X000 X002 外接器件 ON正转,OFF反 转 SBQ(启动)输出接点分配 输出点编号 Y010 Y011 功能说明 A相脉冲 B相脉冲内部器件分配 内部器件编号 M0 M1 功能说明 三相正序提供0或1值 三相逆序提供0或1值X003X004接减速按钮接增速按钮Y012C相脉冲M4M10 T0 T246 D0ON时,禁止调速。ON时,允许调速 频率调整时间限制 产生移位脉冲(1ms) 存放T246的定时数据 MX002(启)FNC 12 MOV RST T246 T246D0K500 T246 D0 M0 M0 M0 M1 M1 M1 D0 D0 K480D0设脉冲频率初值 T246产生 时钟脉冲D0T246形成脉冲列 K1M0X000 正转 Y010 X000 反转 Y011 X003 X004 X003 X004 T0 X003 X004 M10FNC 35 SFTLP SET RST FNC 34 SFTRP SET RST M4 M4 T0 FNC 24 INCP FNC 25 DECP T0Y010K3产生正序脉 冲列,正转 M0置初值 101 正转(左移) 110 011 CBAY011 T246D0Y012 Y011 Y010Y010M1K3K1产生反序脉 冲列,反转 M1置初值 101 110 反转(右移)正反序脉 冲列形成Y012 M0.1SY012 Y011 Y010011 CBAX003=ON, D0增大, 减速调整 X004=ON, D0减小, 增速调整 在48S内完成 频率调整 调节D0中 值,进行加 减速调整SET PLFM4 M10M4=ON,禁止调整 X003或X004接通后断开,M4复位 步进电机 101 旋转方向 正转(左移) 110 反转(右移)RST ENDM4011 CBA图8-68 步进电机控制梯形图及说明* (三)产品的进出库控制 先进先出控制指令可应用于边登记产品进库, 边按顺序将先进的产品出库登记。若产品地址号为4 位以下数字,最大库存量为99点以下,采用十六进 制。其程序梯形图如图8-69所示。当 入 库 按 钮 X020 按 下 时 , 从 K4X000 (X000~X017)输入口输入产品地址号到D256,并 以D257作为指针,存入从D258~D356的99个字元 件 组 成 的 堆 栈 中 ; 当 出 库 按 钮 X021 按 下 时 , 从 D257指针后开始的99个字元件组成的堆栈中取出 先 进 的 一 个 地 址 号 送 至 D375, 由 D375 向 输 出 口 K4Y000输出。 X020需要入 库按钮FNC 12 K4X000 D256 MOVPFNC 38 SFWRPS?从K4X000输入产品地址号到D256 以D257 作为指针,将99个产 品地址存入D258~D356字元 件组成的堆栈中 将D257预选置为0D256D257K100n=100D256D356 D355 D354 … D300 … D260 D259 D258 D257 ③ ② ①指针X021需要出库按钮FNC 39 SFRDPD257D375K100从D257 指针后D258中依次取 出99个字元件中最先进的产 品地址号送至 D375, 由 D375 向输出口 K4Y000 输出。 将D257预选置为99D?S?n=100 D300 …右移D356 D355 D354…D260 D259 D258 D257 ③ ② ①指针D375M8000RUN监视FNC 12 MOVD375K4Y000END 第六节 数据处理指令及其应用一、数据处理指令说明 (一)区间复位指令――成批复位指令 1.区间复位指令的使用说明(Zone Reset)指令代 码 位数 操作数范围 助记符 D1(?) D2(?) 程序步指令名 称区间复 位FNC 40 (16)ZRST ZRST(P )Y、M、S、T、C、D (D1元件号≤D2元件号)ZRST、ZRSTP…5 步 D1?D2?M8002初始脉冲FNC 40 ZRST FNC 40 ZRST FNC 40 ZRSTM500M599C235C255S0S127图8-70 区间复位指令的使用说明需要说明的是: ⑴两个目标操作数D1(?)和D2(?)指定的元件应为同类软 元件; ⑵D1(?)指定的元件号应小于等于D2(?)指定的元件号。 若D1(?)的元件号大于D2(?)的元件号,则只有D1(?) 指定的元件被复位。 ⑶该指令为16位处理指令,但是可以在D1(?)和D2(?)中 指定32位计数器。不过不能混合指定。也就是说,不能在D1(?) 中指定16位计数器,在D2(?)中指定32位计数器。 2.与其它复位指令的比较(1)采用RST指令只 能对位元件Y、M、S和字 元件T、C、D单独进行复 位,不能成批复位。 (2)也可以采用多点 传送指令FMOV(FNC 16) 将常数K0对KnY、KnM、 KnS、T、C、D软元件成批 复位。 这类指令的应用如图 8-71所示。X001 RST M0将M0复位RSTT1将T1当前值复位RST X002 FNC 16 FMOVD10将D10复位K0D0K100向D0~D99写入0图8-71 其它复位指令的使用 (二)解码指令 1.解码指令的使用说明(Decode)指令 名称 指令代 码位数 操作数范围 助记符 S(?) K、H、X、 Y、M、S、 T、C、D、 V、Z D(?) Y、M、 S T、C、 D n K、H 1≤n≤8 DECO、 DECOP…7步 程序步解码DECO FNC 41 DECO(P (16) ) (1)当D(?)是Y、M、S位元件时,解码指令 根据源S(?)指定的起始地址的n位连续的位元件 所表示的十进制码值Q,对D(?)指定的2n 位目 标元件的第Q位(不含目标元件位本身)Z1,其它 位Z0。使用说明如图8-72所示。若源数据Q=0, 则第0位(即M10)为1。 若n=0时,程序不操作;n在1~8以外时,出现 运算错误。若n=8时,D(?)的位数28=256。 驱动输入为OFF时,不执行指令,上一次解码输 出Z1的位保持不变。 (2)当D(?)是字元件时,DECO指令以源S (?)所指定字元件的低n位所表示的十进制码Q, 对D(?)指定的目标字元件的第Q位(不含最低 位)Z1,其他位Z0。说明如图8-72(b)所示, 当源数据为Q=0时,第0位为1。 若n=0时,程序不执行;n在1~4以外时,出 现运算错误。若n≤4时,则在D(?)的24=16位 范围解码。若n≤3时,在D(?)的23=8位范围 解码,高八位均为0。 驱动输入为OFF时,不执行指令,上一次解码 输出Z1的位保持不变。 若指令是连续执行型,则在各个扫描周期都会 执行,必须注意。 S?D?nK3X010FNC 41 DECOS(?) b7 0 M17 b6 0 M16 b5 0 M15X000X002 X001 X000M10 1 1b3 1 M13 b2 0 M120b4 0 M14Q=21 +20 =3 b1 0 M11 b0 0 M10D(?)2n图8-72(a)X010D?S?为位元件时, n≤8D?nK3n=3b0 1FNC 41 DECOD0D1b15 D0 0 10101010101001S?n≤3,所有位都为0D1000000000000102 1 +2 0 =3 b0 D? 0 0图8-72(b)D?2n 为字元件时, n≤4 2.解码指令的应用S? D?nK4n=4M8000FNC 41 DECOD0 D0M0S?b15 0 101010101001121 +2 0b0 01 =142 3 +2D?010000000 M700000M15 M14b0 0 M02 n =16 (三)编码指令(Encode)指令 名称指令代 码 位数操作数范围 助记符 S(?) ENCO ENCO( P) D(?) n K、H 1≤n≤8 ENCO、 ENCOP…7步 程序步编码FNC42 (16)X、Y、M、 T、C、D、 S、T、C、 V、Z D、V、Z ?使用说明: (1)当S(?)是位元件时,以源操作数S(?) 指定的位元件为首地址、长度为2n 的位元件中,指 令将最高Z1的位号存放到目标D(?)指定的元件 中,D(?)指定元件中数值的范围由n确定。使用 说明如图8-74(a)所示。 当源操作数的第一个(即第0位)位元件为1,则 D(?)中存放0。当源操作数中无1,出现运算错 误。 若n=0时,程序不执行;对源位元件,n&8时, 出 现 运 算 错 误 。 若 n=8 时 , S ( ? ) 中 位 数 为 28=256被占用。 (2)当S(?)是字元件时,在其可读长度为2n位, 最高Z1的位号被存放到目标D(?)指定的元件中, D(?)中位数的范围由n确定。使用说明如图874(b)所示。 当源操作数的第一个(即第0位)位元件为1, 则D(?)中存放0。当源操作数中无1,出现运算 错误。 若n=0时,程序不执行;对源字元件,n在1~ 4以外时,出现运算错误。若n=4时,S(?)的位 数为24=16。 驱动输入为OFF时,不执行指令,上次编码输 出保持不变。 若指令是连续执行型,则在各个扫描周期都执 行,必须注意。 S?D?nK3X005FNC 42 ENCOM10D10 2 n =8位S(?) b15 D(?) 0 0 0 0M17 0M16 0M15 0M14 0M13 1M12 0M11 0M10 0 b0000 都为0000000011n=3图8-74(a)S?为位元件,编码指令的使用 n≤8S? D?nK32 n =8 b3 0 1 b0 1 b0 1X006FNC 42 ENCO D00 1 0 1 0D0b7 0 0D1S?b15 0 1 b15 0 01001可忽略不计D10 0 0 0 0 都为0 0 0 0 0 0 0 0 1D?n=3 n≤4图8-74(b)s?为字元件时,编码指令的使用说明 二、数据处理指令应用1.用解码指令实现单按钮分别控制五台电动机 的启停按钮按n次,最后一次保持1s以上后,则电机编 号与按的n次数相同时运行,再按一次持续1s按钮, 该电机停止,现有五台电动机接于Y001~Y005。梯形图如图8-81所示。电机编号的输入按钮接 于X000,电机号数使用加1指令记录在K1M10中, 解码指令DECO则将K1M10中的数据解读并令 M1~M5中相应的位元件Z1,驱动对应电机运行。 T0用于输入数字确认,M9用于停车复位控制。 X 000FNC 41 DECOP FNC 24 INCP T0 FNC 24 INCPM 10M0S ?k3M 12 M 11 M 10 0 1 1 0 1 0 0 0 M0K 1 M 100 0 0 M7 0 0 1 0 M 11 M 10 M 9 M 8? DK1M8X000M9 T0K 10按最后一次或停车 , 保持1 S 以上才能确 定T0MC N0 M 14T0N 0 = M 14M1 M2 M3 M4 M5Y 001 Y 002 Y 003 Y 004 Y 005 MCR N0与按数相符 的电机运转M9 FNC 40 ZRSTP END M0 M 12复位 、 停止 七段码译码指令操作数 指令 名称 指令代码 位数助记符S(? ) D(? )程序步七段码 译码FNC 73 (16)SEGD K、H、KnX、 KnY、KnM、 SEGD、 KnY、KnM、 SEGD(P KnS、 T、C、 SEGD(P)…5 KnS、T、C、D、 ) D、V、Z 步 V、Z七段码译码指令是驱动1位七段码显示器显示16进 制数据指令。 S?D?X000FNC 73 SEGDD 0K2Y000图8-115所示中S(?)指定的软元件存储 待显示数据,该元件低4位(只用低四位)存放 的是待显示的十六进制数。译码后的七段码存于 D(?)指定元件的低8位中,高8位保持不变。 译码表见表8-67。表中B0是位元件的起始号(例如Y000) 或字元件的最后位。 表8-67 七段码译码表S (?) 16 进制 0 12 3 4 5 6 7 8 9 A B C D E F2进制 00 01017 段码 组合数字D D(?) B7 0 00 0 0 0显示B6 0 01 1 1 1 1 0 1 1 1 1 0 1 1 1B5 1 00 0 1 1 1 1 1 1 1 1 1 0 1 1B4 1 01 0 0 0 1 0 1 0 1 1 1 1 1 1B3 1 01 1 0 1 1 0 1 1 0 1 1 1 1 0B2 1 10 1 1 1 1 1 1 1 1 1 0 1 0 0B1 1 11 1 1 0 0 1 1 1 1 0 0 1 0 0B0 1 01 1 0 1 1 1 1 1 1 0 1 0 1 1数据B0 00 B4 11 10
0 0 0 0 0 0 0 B5 B1 B6 0 0 0 ?8-6 用CMP指令实现下面功能:X000为脉冲输 入,当脉冲数大于5时,Y001为ON;反之, Y000为ON。编写此梯形图。解: M8002FNC 12 MOVP FNC 40 ZRST K0 D0M 0M 2X000FNC 24 INCP FNC 10 CMPD0 K5 D0 M 0若要求脉冲数小于2 时Y000为ON,大 于等于2小于等于5 时Y001为ON,大 于5时Y002为ON, 用哪条指令。M 0 M 1 M 2Y000Y001END
第八章FX2N系列PLC应用指令及编程方法1―是一个在线免费学习平台、通过收集整理大量专业知识,职业资料、考试资料,考试复习指导,试题资料等给大家分享;同时提供学习互动交流;更好的帮助大家学习。

我要回帖

更多关于 ckm500is 的文章

 

随机推荐