第6章 可编程控制器的指令

54
6 6 第第第第第第第第第 第第第第第第第第第 6 6 1 1 概概 概概 6 6 2 2 概概概概概概 概概概概概概 6 6 3 3 概概概概概概 概概概概概概 6 6 4 4 概概概概概概 概概概概概概

description

第6章 可编程控制器的指令. 6.1 概述 6.2 基本逻辑指令 6.3 步进顺控指令 6.4 功能指令简介. 第6章 可编程控制器的指令. 6.1 概述 用户程序的三种形式: 梯形图、指令表和状态转移图( SFC)。 1. 梯形图语言 在继电器控制系统中常用的接触器、继电器梯形图的基础上演变而来,与继电器控制系统原理图相呼应。 PLC 梯形图使用的内部继电器、定时/计数器等,都由软件实现。主要特点是使用方便、修改灵活,是传统继电器控制系统梯形图的硬件接线所无法比拟的。 典型的梯形图见图6-1。 左右两条垂直线称作左母线和右 母线。在左、右两母线之间,触 - PowerPoint PPT Presentation

Transcript of 第6章 可编程控制器的指令

Page 1: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

66 .. 1 1 概述概述 66 .. 2 2 基本逻辑指令基本逻辑指令 66 .. 3 3 步进顺控指令步进顺控指令 66 .. 4 4 功能指令简介功能指令简介

Page 2: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 6.1 6.1 概述概述 用户程序的三种形式:用户程序的三种形式:梯形图、指令表和状态转移图梯形图、指令表和状态转移图 ((SFC)SFC) 。。 1.1. 梯形图语言梯形图语言 在继电器控制系统中常用的接触器、继电器梯形图的基础上演变而来,在继电器控制系统中常用的接触器、继电器梯形图的基础上演变而来,

与继电器控制系统原理图相呼应。与继电器控制系统原理图相呼应。 PLCPLC 梯形图使用的内部继电器、定时/计数器等,都由软件实现。主梯形图使用的内部继电器、定时/计数器等,都由软件实现。主

要特点是使用方便、修改灵活,是传统继电器控制系统梯形图的硬件要特点是使用方便、修改灵活,是传统继电器控制系统梯形图的硬件接线所无法比拟的。接线所无法比拟的。

典型的梯形图见图典型的梯形图见图 6-16-1 。。 左右两条垂直线称作左母线和右左右两条垂直线称作左母线和右 母线。在左、右两母线之间,触母线。在左、右两母线之间,触 点在水平线上相串联,相邻的线点在水平线上相串联,相邻的线 也可以用一条垂直线连接起来,也可以用一条垂直线连接起来, 作为逻辑的并联作为逻辑的并联。。 图图 6-1 6-1 典型的梯形图典型的梯形图

Page 3: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 ““ 能流”概念能流”概念 :: 图图 6-16-1 中,把左母线假想为电源“相线”,而把右中,把左母线假想为电源“相线”,而把右

母线假想为电源“零线”。如果有“能流”从左至右流向线圈,则母线假想为电源“零线”。如果有“能流”从左至右流向线圈,则线圈被激励。如没有“能流”,则线圈未被激励线圈被激励。如没有“能流”,则线圈未被激励。。

强调强调 :: 引入“能流”概念,仅用于说明如何理解梯形图各输出点的引入“能流”概念,仅用于说明如何理解梯形图各输出点的动作动作 ,, 实际并不存在这种“能流”。实际并不存在这种“能流”。

2.2. 指令表语言指令表语言 类似于计算机的助记符语类似于计算机的助记符语 言,可编程控制器最基础言,可编程控制器最基础 的编程语言的编程语言。。 指令表编程:指令表编程:用一个或几用一个或几 个容易记忆的字符来代表个容易记忆的字符来代表 可编程控制器的某种操作可编程控制器的某种操作 功能。功能。 指令表编程举例见图指令表编程举例见图 6-26-2 示示 .. 图图 6-2 6-2 基本指令应用举例基本指令应用举例

Page 4: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 3.3. 状态转移图状态转移图 (( 即顺序功能流程图即顺序功能流程图 )) 语言语言 一种较新的编程语言。用顺序功能流程图来表达一个顺序控制过程。一种较新的编程语言。用顺序功能流程图来表达一个顺序控制过程。 用状态转移图实现钻孔顺控举例见图用状态转移图实现钻孔顺控举例见图 6-36-3 示示 ..

图图 6-3 6-3 状态转移图编程例状态转移图编程例 图中图中 ,, 每一方框表示一个状态,方框中的数字代表顺序步,每一状态对每一方框表示一个状态,方框中的数字代表顺序步,每一状态对

应于一个控制任务,每个状态的转移条件以及每个状态执行的功能可以应于一个控制任务,每个状态的转移条件以及每个状态执行的功能可以写在方框右边。写在方框右边。

Page 5: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 6.2 6.2 基本逻辑指令基本逻辑指令 6.2.1 6.2.1 逻辑取指令和输出指令(逻辑取指令和输出指令( LDLD // LDILDI // OUTOUT )) 符号、名称、功能、梯形图、可用软元件见表符号、名称、功能、梯形图、可用软元件见表 6-16-1 (( P199P199 ))。。 LDLD ::从输入公共线(左母线)开始,取用常开触点。从输入公共线(左母线)开始,取用常开触点。 LDILDI ::从输入公共线(左母线)开始,取用常闭触点。从输入公共线(左母线)开始,取用常闭触点。 OUTOUT ::用于对用于对 YY 、、 MM 、、 SS 、、 TT 、、 CC 的线圈的驱动指令,不能用于的线圈的驱动指令,不能用于 XX 。。 例:应用如图例:应用如图 6-46-4 示示 ..

图图 6-4 6-4 LDLD 、、 LDILDI 、、 OUTOUT 指令的应用指令的应用 说明:说明: 11 、、 LDLD 、、 LDILDI 指令用于输入公共线相连之触点,也可与指令用于输入公共线相连之触点,也可与 ANBANB 、、 ORBORB 指指

令配合用于分支回路开头。令配合用于分支回路开头。

Page 6: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 2. 2. OUTOUT 指令用于输出继电器、辅助继电器、定时器及计数器。不能用指令用于输出继电器、辅助继电器、定时器及计数器。不能用

于输入继电器。于输入继电器。 33 .串联的.串联的 OUTOUT 指令可连续使用任意次。指令可连续使用任意次。 44 .对定时器、计数器使用.对定时器、计数器使用 OUTOUT 指令之后,必须跟常数指令之后,必须跟常数 KK 。。 66 .. 22 .. 2 2 触点串联指令(触点串联指令( ANDAND // ANIANI )) 符号、名称、功能、梯形图、可用软元件见表符号、名称、功能、梯形图、可用软元件见表 6-26-2 (( P200P200 )。)。 ANDAND ::用于单个常开触点的串联。用于单个常开触点的串联。 ANIANI ::用于单个常闭触点的串联。用于单个常闭触点的串联。 例:指令应用见图例:指令应用见图 6-56-5 示示。。

图图 6-5 6-5 ANDAND 、、 ANIANI 指令的应用指令的应用

Page 7: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 说明:说明: 11 .. ANDAND 、、 ANIANI 是单个触点串联连接指令,可连续使用。是单个触点串联连接指令,可连续使用。 22 .若需串联由多个触点组合回路(如并联回路),须用.若需串联由多个触点组合回路(如并联回路),须用 ANBANB ((与块)与块)

指令。指令。 33 .如电路设计正确,可任意次重复使用.如电路设计正确,可任意次重复使用 OUTOUT 指令。指令。 44 .串联触点个数原则上无限制,但在使用图形编程器和打印机时,每.串联触点个数原则上无限制,但在使用图形编程器和打印机时,每

行触点个数应少于行触点个数应少于 1010 个。连续输出不超过个。连续输出不超过 2424 行。行。 66 .. 22 .. 3 3 触点并联指令(触点并联指令( OROR // ORIORI )) 符号、名称、功能、梯形图、可用软元件见表符号、名称、功能、梯形图、可用软元件见表 6-36-3 (( P201P201 )。)。 OROR ::用于单个常开触点并联。用于单个常开触点并联。 ORIORI ::用于单个常闭触点并联。用于单个常闭触点并联。 例:指令应用见图例:指令应用见图 6-66-6 示示。。 说明:说明: 11 .只能作为一个接点的并联联接指令,紧接在.只能作为一个接点的并联联接指令,紧接在 LDLD 、、 LDILDI 指令后使指令后使 用,可连续使用。用,可连续使用。 22 .将二个以上触点的串联回路与其它回路并联时,须用.将二个以上触点的串联回路与其它回路并联时,须用 ORBORB ((或块)或块)

指令。 指令。

Page 8: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-6 6-6 OROR 、、 ORIORI 指令的应用指令的应用 66 .. 22 .. 4 4 串联电路块并联指令(串联电路块并联指令( ORBORB )) 符号、名称、功能、梯形图见表符号、名称、功能、梯形图见表 6-46-4 (( P202P202 )。)。 用于串联电路块(回路)的并联联接。用于串联电路块(回路)的并联联接。 例:指令应用见图例:指令应用见图 6-76-7 示示。。 说明:说明: 11 .几个串联回路并联时,支路起点以.几个串联回路并联时,支路起点以 LDLD 、、 LDILDI 开始,支路终点用开始,支路终点用 ORBORB

指令。指令。 22 .如需多个回路并联,在每一回路后面加.如需多个回路并联,在每一回路后面加 ORBORB 指令。指令。

Page 9: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-7 6-7 ORBORB 指令的应用指令的应用 33 .也可将所有要并联的回路全部写出,再连续使用与支路个数相同的.也可将所有要并联的回路全部写出,再连续使用与支路个数相同的

ORBORB 指令,但不得超过指令,但不得超过 88 次。次。 66 .. 22 .. 55 并联电路块串联指令(并联电路块串联指令( ANBANB )) 符号、名称、功能、梯形图见表符号、名称、功能、梯形图见表 6-56-5 (( P202P202 )。)。 用于并联电路块(回路)的串联联接。用于并联电路块(回路)的串联联接。 例:指令应用见图例:指令应用见图 6-86-8 示示。。 说明:说明: 11 .各并联回路区段的开头,使用.各并联回路区段的开头,使用 LDLD 或或 LDILDI 指令;构成各并联回路区段指令;构成各并联回路区段

后,再用后,再用 ANBANB 指令与前面回路串联指令与前面回路串联 ..

Page 10: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-8 6-8 ANBANB 指令的应用指令的应用 22 .如有多个并联回路区段,可顺次用与块指令与前面回路联接,回路.如有多个并联回路区段,可顺次用与块指令与前面回路联接,回路

数量无限制。但连续使用与块指令,不得超过数量无限制。但连续使用与块指令,不得超过 88 次。次。 若将图若将图 6-86-8(( aa ))改成图改成图 6-86-8(( bb ))形式,梯形图功能不变,但可减少形式,梯形图功能不变,但可减少

指令条数。指令条数。 ANBANB 、、 ORBORB 指令的混合使用见图指令的混合使用见图 6-96-9 示。示。

Page 11: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-9 6-9 ANBANB 、、 ORBORB 指令的混合使用指令的混合使用 66 .. 22 .. 6 6 多重输出电路指令(多重输出电路指令( MPSMPS // MRDMRD // MPPMPP )) 符号、名称、功能、梯形图见表符号、名称、功能、梯形图见表 6-66-6 (( P204P204 )。)。 MPSMPS ::进栈进栈 MRDMRD ::读栈 作用:将联接点先存贮,用于连接后面的电路。读栈 作用:将联接点先存贮,用于连接后面的电路。 MPPMPP ::出栈出栈 PLCPLC 中有中有 1111 个用于存贮运算中间结果的栈存贮器个用于存贮运算中间结果的栈存贮器。。 说明:说明:

Page 12: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 11 )使用一次)使用一次 MPSMPS 指令,该时刻运算结果就推入栈的第一段;再次使用指令,该时刻运算结果就推入栈的第一段;再次使用

MPSMPS ,,当时的运算结果推入栈的第一段,先推入的数据依次向栈的下一当时的运算结果推入栈的第一段,先推入的数据依次向栈的下一段推移。段推移。

22 )使用)使用 MPPMPP 指令,各数据依次向上段压移,最上段的数据在读出后从指令,各数据依次向上段压移,最上段的数据在读出后从栈内消失。栈内消失。

3) MRD3) MRD 是最上段所存最新数据的读出专用指令,栈内数据不发生下压是最上段所存最新数据的读出专用指令,栈内数据不发生下压或上托。或上托。

例:指令应用见图例:指令应用见图 6-106-10 示示。。

图图 6-10 6-10 MPSMPS 、、 MRDMRD 、、 MPPMPP 指令的应用指令的应用

Page 13: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 66 .. 22 .. 7 7 主控触点指令(主控触点指令( MCMC // MCRMCR )) 符号、名称、功能、梯形图见表符号、名称、功能、梯形图见表 6-76-7(( P205P205 )。)。 MCMC ::主控指令(主控电路块起点)主控指令(主控电路块起点) MCRMCR ::主控复位(主控电路块终点) 成对使用主控复位(主控电路块终点) 成对使用 例:指令应用见图例:指令应用见图 6-116-11 示示。。

图图 6-11 6-11 MCMC 、、 MCRMCR 指令的应用指令的应用

Page 14: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 说明:说明: 11 .输入.输入 X000X000 接通时,执行接通时,执行 MCMC 与与 MCRMCR 间指令;间指令; X000X000 断开时,从断开时,从

MCMC 到到 MCRMCR 间的指令无效。此时若触点间的指令无效。此时若触点 X001X001 、、 X002X002 闭合,线圈闭合,线圈Y000Y000 、、 T0T0均不得电,线圈均不得电,线圈 Y002Y002 也不会在也不会在 11ss 后得电。后得电。

22 .. MCMC 指令后,母线(指令后,母线( LDLD 、、 LDILDI ))移至移至 MCMC 触点之后,返回原来触点之后,返回原来母线的指令是母线的指令是 MCRMCR 。。 MCMC 、、 MCRMCR 必须成对使用。必须成对使用。

33 .使用不同的.使用不同的 YY 、、 MM 元件号,可多次使用元件号,可多次使用 MCMC 指令。特殊辅助继电指令。特殊辅助继电器不能用作器不能用作 MCMC 的操作元件。的操作元件。

4. 4. 在在 MCMC 指令内再使用指令内再使用 MCMC 指令时,嵌套级指令时,嵌套级 NN 的编号顺次增大,返的编号顺次增大,返回时用回时用 MCRMCR 指令,从大的嵌套级开始解除。指令,从大的嵌套级开始解除。

嵌套举例:见图嵌套举例:见图 6-126-12 示示。。 注:最大嵌套层数为注:最大嵌套层数为 88 层(层( 00-7).-7). 66 .. 22 .. 88 自保持与解除指令(自保持与解除指令( SETSET // RSTRST )) 符号、名称、功能、梯形图和可用软元件见表符号、名称、功能、梯形图和可用软元件见表 6-86-8(( P207P207 )。)。 SETSET ::置位,令元件自保持置位,令元件自保持 ONON ;; RSTRST ::复位,清除动作保持复位,清除动作保持 ,,寄存器清零。寄存器清零。 用于输出继电器用于输出继电器 YY 、、状态器状态器 SS 、、辅助继电器辅助继电器 MM 等作置位和复位操作。等作置位和复位操作。 例:指令应用见图例:指令应用见图 6-136-13 示示。。

Page 15: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-12 6-12 含有嵌套的含有嵌套的 MCMC 、、 MCRMCR 指令的应用指令的应用

Page 16: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-13 6-13 自保持与解除指令的应用自保持与解除指令的应用 说明:说明: 11 .. X000X000 一接通,即使再断开,一接通,即使再断开, Y000Y000 也保持接通;也保持接通; X001X001 接通后,即使接通后,即使再断开,再断开, Y000Y000 也保持断开,对也保持断开,对 MM 、、 SS 也同样。也同样。

22 .对同一元件可多次使用.对同一元件可多次使用 SETSET 、、 RSTRST 指令,但最后执行的一条才有效。指令,但最后执行的一条才有效。 33 .. RSTRST 指令也可使数据寄存器指令也可使数据寄存器 DD 、、变址寄存器变址寄存器 VV 、、 ZZ 的内容清零。的内容清零。 66 .. 22 .. 99 定时器、计数器指令(定时器、计数器指令( OUTOUT // RSTRST )) 符号、名称、功能、梯形图和可用软元件见表符号、名称、功能、梯形图和可用软元件见表 6-9(6-9(P207)P207) 。。 OUTOUT ::驱动定时器、计数器线圈;驱动定时器、计数器线圈; RSTRST ::复位输出触点,并将当前数据清“复位输出触点,并将当前数据清“ 0”0” 。。 1.1. 定时器的应用定时器的应用 图图 6-146-14 中,中, T0T0 是普通定时器,当触点是普通定时器,当触点 X000X000 闭合后,定时器闭合后,定时器 T0T0 开始计时,开始计时,

1010ss 后触点后触点 T0T0 闭合,线圈闭合,线圈 Y000Y000 得电;若触点得电;若触点 X000X000 断断开,不论在定时中开,不论在定时中途,途,

Page 17: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 还是在定时时间到后,定时器还是在定时时间到后,定时器 T0T0均被复位。均被复位。 T250T250 是积算型定时器,当是积算型定时器,当

触点触点 X001X001 闭合后,定时器闭合后,定时器 T250T250 开始计时,在计时过程中,即使触点开始计时,在计时过程中,即使触点X001X001断开或停电,定时器断开或停电,定时器 T250T250仍保持已计时的时间。当触点仍保持已计时的时间。当触点 X00lX00l再再次闭合后,定时器次闭合后,定时器 T250T250 在原计时时间的基础上继续计时,直到在原计时时间的基础上继续计时,直到 1010ss 时间时间到。当触点到。当触点 X002X002 闭合,定时器闭合,定时器 T250T250 被复位。被复位。

图图 6-14 6-14 定时器的应用定时器的应用 2.2. 计数器的应用计数器的应用 图图 6-156-15 中,中, C0C0 是普通计数器,利用触点是普通计数器,利用触点 X011X011 从断开到闭合的变化,驱从断开到闭合的变化,驱

动动

Page 18: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 计数器计数器 C0C0 计数。触点计数。触点 X0llX0ll 闭合一次,计数器闭合一次,计数器 C0C0 的当前值加的当前值加 ll ,,直直到到

其当前其当前 值为值为 55 ,触点,触点 C0C0 闭合。以后即使继续有计数输入,计数器的当前值不变。闭合。以后即使继续有计数输入,计数器的当前值不变。当触点当触点 X010X010 闭合,执行闭合,执行 RST C0RST C0 指令,计数器指令,计数器 C0C0 被复位,当前值为被复位,当前值为 00 ,,触点触点 C0C0 断开,输出继电器线圈断开,输出继电器线圈 Y001Y001 失电。失电。

普通计数器与停电保持计数器区别:普通计数器与停电保持计数器区别: PLCPLC 掉电后,普通计数器的当前值掉电后,普通计数器的当前值被清除,而停电保持用计数器则可存储计数器在停电前的计数值。当恢被清除,而停电保持用计数器则可存储计数器在停电前的计数值。当恢复供电后,停电保持用计数器可在上一次保存的计数值上累计计数。复供电后,停电保持用计数器可在上一次保存的计数值上累计计数。

图图 6-15 6-15 计数器的应用计数器的应用 66 .. 22 .. 1010 脉冲输出指令(脉冲输出指令( PLSPLS // PLFPLF )) 符号、名称、功能、梯形图和可用软元件见表符号、名称、功能、梯形图和可用软元件见表 6-106-10 (( P209P209 )。)。

Page 19: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 又称微分输出指令。用于输出继电器又称微分输出指令。用于输出继电器 YY 、、辅助继电器辅助继电器 MM ((特殊继电器特殊继电器除外)的短时间的脉冲输出。除外)的短时间的脉冲输出。

PLSPLS ::上升沿微分输出;上升沿微分输出; PLFPLF ::下降沿微分输出。下降沿微分输出。 例:指令应用见图例:指令应用见图 6-166-16 示示 ..

图图 6-16 6-16 脉冲输出指令的应用脉冲输出指令的应用 说明说明 :: 11 )) PLSPLS 、、 PLFPLF 指令作用:将脉宽较宽的输入信号变成脉宽等于指令作用:将脉宽较宽的输入信号变成脉宽等于 PCPC扫描周期的触发脉冲信号,而信号周期不变。扫描周期的触发脉冲信号,而信号周期不变。

2)2) 为积算定时器、计数器等提供复位脉冲信号,避免因脉冲过宽为积算定时器、计数器等提供复位脉冲信号,避免因脉冲过宽(对计数器而言,可能屏蔽掉正常输入信号)或过窄(不能可靠复(对计数器而言,可能屏蔽掉正常输入信号)或过窄(不能可靠复位)等问题。 位)等问题。

Page 20: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 6.2.11 6.2.11 脉冲式触点指令脉冲式触点指令 符号、名称、功能、梯形图和可用软元件见表符号、名称、功能、梯形图和可用软元件见表 6-116-11 (( P209P209 )。)。 说明说明 :: 一组与一组与 LDLD 、、 ANDAND 、、 OROR 指令相对应的脉冲式触点指令。指令中指令相对应的脉冲式触点指令。指令中 PP 代表代表

上升沿检测,它表示在指定的软元件触点闭合上升沿检测,它表示在指定的软元件触点闭合 (( 上升沿上升沿 )) 时,被驱动的时,被驱动的线圈得电一个扫描周期线圈得电一个扫描周期 TT ;; FF 代表下降沿检测,它表示在指定的软元代表下降沿检测,它表示在指定的软元件触点断开件触点断开 (( 下降沿下降沿 )) 时,被驱动的线圈得电一个扫描周期时,被驱动的线圈得电一个扫描周期 TT 。。

脉冲检测指令可用图脉冲检测指令可用图 6-176-17 (( P210P210 ))形象地说明。波形图中的高电平形象地说明。波形图中的高电平表示触点闭合。表示触点闭合。

图图 6-17 6-17 脉冲检测指令的应用脉冲检测指令的应用 6.2.12 6.2.12 逻辑运算结果取反指令逻辑运算结果取反指令 符号、名称、功能、梯形图、可用软元件见表符号、名称、功能、梯形图、可用软元件见表 6-126-12 (( P210P210 )。)。

Page 21: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 说明:说明: 11 .. INVINV 指令是把指令所在位置当前逻辑运算结果取反,取反后的结果仍可指令是把指令所在位置当前逻辑运算结果取反,取反后的结果仍可

继续运算。继续运算。 INVINV 指令无操作元件。指令无操作元件。 22 .使用.使用 INVINV 指令,在指令,在 ANDAND 或或 ANIANI ,, ANDPANDP ,, ANDFANDF 指令的相同位置处编指令的相同位置处编

程。程。 33 .不能象.不能象 OROR ,, 0RI0RI ,, ORPORP ,, ORFORF 指令那样单独使用,也不能象指令那样单独使用,也不能象

LDLD ,, LDILDI ,, LDPLDP ,, LDFLDF那样与母线单独连接。那样与母线单独连接。 INVINV 指令的应用如图指令的应用如图 6-186-18(( P211P211 ))示。示。 在图在图 6-186-18中,如果中,如果 X0X0断开,则断开,则 Y0Y0 接通;如果接通;如果 X0X0 接通,则接通,则 Y0Y0断开。断开。

图图 6-18 6-18 INVINV 指令的应用指令的应用 66 .. 22 .. 13 13 空操作指令(空操作指令( NOPNOP )) 符号、名称、功能、梯形图、可用软元件见表符号、名称、功能、梯形图、可用软元件见表 6-136-13 (( P211P211 )。 )。

Page 22: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 NOPNOP ::空操作,无具体动作,用于程序修改。空操作,无具体动作,用于程序修改。 例:指令应用指令见图例:指令应用指令见图 6-196-19 示示。。         

图图 6-19 6-19 NOPNOP 指令的应用指令的应用 说明:说明: 11 、在修改或增加程序时,插入、在修改或增加程序时,插入 NOPNOP 指令,可使步序号的改变减到最少。指令,可使步序号的改变减到最少。 22 、用、用 NOPNOP 取代已写入的指令,可改变电路。取代已写入的指令,可改变电路。 33 .若将.若将 LDLD 、、 LDILDI 、、 ANBANB 、、 ORBORB 等指令改为等指令改为 NOPNOP ,,程序构成会发生很大程序构成会发生很大

变化。变化。 44 .执行程序全清操作后,全部指令都变成.执行程序全清操作后,全部指令都变成 NOPNOP 。。 66 .. 22 .. 14 14 程序结束指令(程序结束指令( ENDEND )) 符号、名称、功能、梯形图、可用软元件见表符号、名称、功能、梯形图、可用软元件见表 6-146-14 (( P212P212 )。)。 ENDEND ::用于程序结束,返回第“用于程序结束,返回第“ 0”0” 步。步。

Page 23: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 说明:说明: 11 .. PLCPLC 的用户程序存贮区很大,若在的用户程序存贮区很大,若在 程序最后写入程序最后写入 ENDEND 指令,对指令,对 ENDEND 后面的后面的 程序步不再执行。如无程序步不再执行。如无 ENDEND 指令,指令, PLCPLC 扫描整个存贮区,程序运行周期加长。扫描整个存贮区,程序运行周期加长。 22 .调试程序时,将.调试程序时,将 ENDEND 指令插入各程指令插入各程 序段,便于查找故障和调试。序段,便于查找故障和调试。 不同型号不同型号 PLCPLC ,,指令系统有差异。指令系统有差异。 PLCPLC 功能越强,指令越丰富。功能越强,指令越丰富。 6.3 6.3 步进顺控指令步进顺控指令 利用利用 IECIEC标准的流程图标准的流程图 ((SFC)SFC) 语言编制步进控制程序,初学者很容易编语言编制步进控制程序,初学者很容易编

写复杂的步进控制程序,工作效率大大提高。写复杂的步进控制程序,工作效率大大提高。 SFCSFC 语言语言 :: 一种通用的流程图语言。三菱小型一种通用的流程图语言。三菱小型 PLCPLC 在基本逻辑指令之外在基本逻辑指令之外增加两条简单的步进梯形指令增加两条简单的步进梯形指令 ((STLSTL ,, RET)RET) ,,同时辅之以大量状态元件,同时辅之以大量状态元件,就可用类似于就可用类似于 SFCSFC 语言的状态转移图方式编程。语言的状态转移图方式编程。

步进梯形指令步进梯形指令 ((STL):STL):利用内部软元件进行工序步进式控制的指令。利用内部软元件进行工序步进式控制的指令。 返回指令返回指令 ((RET):RET): 指状态指状态 ((S)S) 流程结束,用于返回主程序流程结束,用于返回主程序 ((母线母线 ))的指的指

令。令。

Page 24: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 6.3.1 6.3.1 状态转移图状态转移图 11 .状态转移图的基本概念.状态转移图的基本概念 又称功能图或功能流程图,一种描述顺序控制系统的图形表示方法,专用又称功能图或功能流程图,一种描述顺序控制系统的图形表示方法,专用

于工业顺序控制程序设计的一种功能性说明语言。于工业顺序控制程序设计的一种功能性说明语言。 主要由“状态”、“转移条件”、“转移方向”、等元素组成。主要由“状态”、“转移条件”、“转移方向”、等元素组成。 (( 11 )状 态)状 态 状态的符号如图状态的符号如图 6-216-21 示。矩形框中可写上该状态的编号或代码。示。矩形框中可写上该状态的编号或代码。 ①① 初始状态 初始状态 功能图运行的起点,一个控制系统至少有一个初始状态。图形符号为双线功能图运行的起点,一个控制系统至少有一个初始状态。图形符号为双线

的矩形框,如图的矩形框,如图 6-226-22 示示 ..

图图 6-21 6-21 状态的图形符号 图状态的图形符号 图 6-22 6-22 初始状态的图形符号初始状态的图形符号 ②② 工作状态工作状态 根据系统是否运行,状态可分为动态和静态两种。动状态是指当前正在根据系统是否运行,状态可分为动态和静态两种。动状态是指当前正在

Page 25: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 运行的状态,静状态是没有运行的状态。运行的状态,静状态是没有运行的状态。 ③③ 与状态对应的动作 与状态对应的动作 表示方法如图表示方法如图 6-236-23 示。示。 (( 22 )转 移)转 移 用一个有向线段表示转移的方向。两个状态之间的有向线段上再用一段用一个有向线段表示转移的方向。两个状态之间的有向线段上再用一段横线表示这一转移。转移的符号如图横线表示这一转移。转移的符号如图 6-246-24 示示 ..

图图 6-23 6-23 状态下动作的表示 图状态下动作的表示 图 6-24 6-24 转移符号转移符号 转移条件转移条件 :: 指使系统从一个状态向另一个状态转移的必要条件,通常用指使系统从一个状态向另一个状态转移的必要条件,通常用文字、逻辑方程及符号来表示。文字、逻辑方程及符号来表示。

22 .状态的功能.状态的功能 称为“状态”的软元件是构成状态转移图的重要元素。称为“状态”的软元件是构成状态转移图的重要元素。 FX2NFX2N 系列可编程系列可编程

控制器的软元件中有控制器的软元件中有 900900 点状态点状态 ((S0-S899)S0-S899) 可用于构成状态转移图。可用于构成状态转移图。

Page 26: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 每个状态具有驱动负载、指定转移方向以及指定转移条件三个功能。每个状态具有驱动负载、指定转移方向以及指定转移条件三个功能。 图图 6-256-25 中:中:①状态①状态 S20S20 有效时,输出有效时,输出 Y0Y0 ,, Y1Y1 动作,程序等待转移条件动作,程序等待转移条件

X10X10 动作。②动作。② X10X10瞬时接通,动作状态就从瞬时接通,动作状态就从 S20S20 向向 S2lS2l 转移,同时转移,同时 S20S20自自动断开。③动断开。③ S20S20 转到转到 S2lS2l ,,使使 Y0 Y0 置置 OFFOFF ,, Y2Y2置 置 ONON 。。在上一状态中由在上一状态中由SETSET 指令驱动的指令驱动的 Y1Y1保持接通。状态转移图、步进顺控图和助记符指令如图保持接通。状态转移图、步进顺控图和助记符指令如图 6-6-2525 示。示。

编程顺序编程顺序 ::先进行负载的驱动处理,接着进行转移处理。先进行负载的驱动处理,接着进行转移处理。

图图 6-25 6-25 状态的功能状态的功能 33 .状态转移图的构成规则.状态转移图的构成规则 (1)(1)状态与状态不能相连,必须用转移分开;状态与状态不能相连,必须用转移分开; (2)(2) 状态与转移、转移与状态之间的连接采用有向线段,从上向下画时,可以状态与转移、转移与状态之间的连接采用有向线段,从上向下画时,可以省略箭头;当有向线段从下向上画时,必须画上箭头,以表示方向;省略箭头;当有向线段从下向上画时,必须画上箭头,以表示方向;

(3)(3)一个状态转移图至少要有一个初始状态。一个状态转移图至少要有一个初始状态。

Page 27: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 举例举例 :: 某冲压机状态转移图。某冲压机状态转移图。 工作顺序分为三个状态:工作顺序分为三个状态:初始、初始、 下冲和返回。下冲和返回。 初始位置是冲头抬起,处于高位;初始位置是冲头抬起,处于高位; 按动启动按钮时,冲头向工件冲按动启动按钮时,冲头向工件冲 击;到最低位置时,触动低位行击;到最低位置时,触动低位行 程开关;然后冲头抬起,回到高程开关;然后冲头抬起,回到高 位,触动高位行程开关,停止运位,触动高位行程开关,停止运 行。 图行。 图 6-26 6-26 冲压机状态转移图冲压机状态转移图 注意注意 ::初始状态到下冲状态的转移须满足启动信号初始状态到下冲状态的转移须满足启动信号 X0X0 和高位行程开关信和高位行程开关信

号号 X2X2同时为同时为 ONON;从下冲状态到返回状态,须满足低位行程开关;从下冲状态到返回状态,须满足低位行程开关 X1X1 为为 ONON 。。 6.3.2 6.3.2 编程方法编程方法 11 .单序列状态转移图的编程方法.单序列状态转移图的编程方法 图图 6-276-27中,旋转工作台用凸轮和限位开关实现运动控制。初始状态时,左中,旋转工作台用凸轮和限位开关实现运动控制。初始状态时,左

限位开关限位开关 X3X3 为为 ONON ,,按下启动按钮按下启动按钮 X0X0 ,, Y0Y0 变为变为 ONON ,,电机驱动工作台沿电机驱动工作台沿顺时针正转,转到右限位开关顺时针正转,转到右限位开关 X4X4 所在位置时暂停所在位置时暂停 55s(s( 用用 T0T0 定时定时 )),定时,定时时间到时时间到时 Y1Y1 变为变为 ONON ,,工作台反转,回到限位开关工作台反转,回到限位开关 X3X3 所在的初始位置时所在的初始位置时停止转动,系统回到初始状态。 停止转动,系统回到初始状态。

Page 28: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-27 6-27 状态转移图与步进梯形图状态转移图与步进梯形图 工作台一个周期的运动由图中自上而下的工作台一个周期的运动由图中自上而下的 44 个状态组成,它们分别对应个状态组成,它们分别对应

于于 S0S0 ,, S20S20 ~~ S22S22 ,, S0S0 是初始状态。 是初始状态。

Page 29: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 使用使用 STLSTL 指令应注意:指令应注意: (1)(1)与与 STLSTL 触点相连的触点应使用触点相连的触点应使用 LDLD 或或 LDILDI 指令指令 .. (2)(2)STLSTL 触点可以直接驱动或通过别的触点驱动触点可以直接驱动或通过别的触点驱动 YY ,, MM ,, SS ,, TT 等元件等元件

的线圈和应用指令的线圈和应用指令 .. (3)(3) 由于由于 PLCPLC 只执行活动状态对应的电路块,使用只执行活动状态对应的电路块,使用 STLSTL 指令时允许双线指令时允许双线

圈输出圈输出 .. (4)(4) 在活动状态转移过程中,相邻的两个状态元件会同时在活动状态转移过程中,相邻的两个状态元件会同时 ONON 一个扫描周一个扫描周期,可能会引发瞬时的双线圈问题。期,可能会引发瞬时的双线圈问题。

(5)(5)OUTOUT 指令与指令与 SETSET 指令均可用于活动状态的转移指令均可用于活动状态的转移 . . 在在 STLSTL 区内的区内的 OUTOUT 指令用于状态转移图中的跳转。如果想跳回已经处理指令用于状态转移图中的跳转。如果想跳回已经处理

过的步,或向前跳过若干步,可对状态继电器使用过的步,或向前跳过若干步,可对状态继电器使用 OUTOUT 指令指令 (( 见图见图 6-26-28)8)。。 OUTOUT 指令还可以用于远程跳转,即从状态转移图中的一个序列跳到指令还可以用于远程跳转,即从状态转移图中的一个序列跳到另外一个序列另外一个序列 (( 见图见图 6-29)6-29) 。。

(6)(6)STLSTL 指令不能与指令不能与 MC/MCRMC/MCR 指令一起使用。指令一起使用。 (7)(7) 并行序列或选择序列中分支处的支路数不能超过并行序列或选择序列中分支处的支路数不能超过 88 条,总的支路数条,总的支路数

不能超过不能超过 1616 条。条。 (8)(8) 在转移条件对应的电路中,不能使用在转移条件对应的电路中,不能使用 ANBANB ,, ORBORB ,, MPSMPS ,, MRDMRD 和和

MPPMPP 指令。 指令。

Page 30: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-28 6-28 状态转移图中的跳转 图状态转移图中的跳转 图 6-29 6-29 远程跳转远程跳转 (9)(9) 与条件转移指令与条件转移指令 ((CJ)CJ) 类似,类似, PLCPLC 不执行处于断开状态的不执行处于断开状态的 STLSTL 触触

点驱动的电路块中的指令点驱动的电路块中的指令 .. (10)(10)M2800M2800 ~~ M3071M3071 是单操作标志,当图是单操作标志,当图 6-306-30 中中 M2800M2800 的线圈通的线圈通

电时,只有它后面第一个电时,只有它后面第一个 M2800M2800 的边沿检测触点的边沿检测触点 (2(2 号触点号触点 )) 能工作,能工作,而而 M2800M2800 的的 11 号和号和 33 号脉冲触点不会动作。号脉冲触点不会动作。 M2800M2800 的的 44 号触点是使号触点是使用用 LDLD 指令的普通触点,指令的普通触点, M2800M2800 的线圈通电时,该触点闭合。的线圈通电时,该触点闭合。

借助单操作标志可用一个转移条件实现多次转移借助单操作标志可用一个转移条件实现多次转移。图。图 6-316-31 中,当中,当S20S20 为活动状态,为活动状态, X0X0 的常开触点闭合时,的常开触点闭合时, M2800M2800 的线圈通的线圈通电,电, M2800M2800 的第一个上升沿检测触点闭合一个扫描周期,实现状态的第一个上升沿检测触点闭合一个扫描周期,实现状态S20S20 到状态到状态 S21S21 的转移。 的转移。 X0X0 的常的常

Page 31: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 开触点下一次由断开变为接通时,因为开触点下一次由断开变为接通时,因为 S20S20 是不活动状态,没有执行图中是不活动状态,没有执行图中

的第一条的第一条 LDP M2800LDP M2800 指令,指令, S21S21 的的 STLSTL 触点之后的触点之后的 M2800M2800 触点闭合一触点闭合一个扫描周期,系统由状态个扫描周期,系统由状态 S21S21 转移到状态转移到状态 S22S22 。。

图图 6-30 6-30 单操作标志 图单操作标志 图 6-31 6-31 单操作标志的使用单操作标志的使用 66 .. 33 .. 33 选择序列的编程方法选择序列的编程方法 复杂控制系统的状态转移图由单序列、选择序列和并行序列组成,掌握选复杂控制系统的状态转移图由单序列、选择序列和并行序列组成,掌握选择序列和并行序列的编程方法,可将复杂的状态转移图转换为梯形图。择序列和并行序列的编程方法,可将复杂的状态转移图转换为梯形图。

自动门控制系统的状态转移图和梯形图见图自动门控制系统的状态转移图和梯形图见图 6-326-32 。。 工作过程工作过程 :: 人靠近自动门时,感应器人靠近自动门时,感应器 X0X0 为为 ONON ,, Y0Y0 驱动电机高速开门,驱动电机高速开门,碰到开门减速开关碰到开门减速开关 X1X1 时,变为低速开门。碰到开门极限开关时,变为低速开门。碰到开门极限开关 X2X2 时电机停时电机停转,开始延时。若在转,开始延时。若在 0.50.5ss 内感应器检测到无人,内感应器检测到无人, Y2Y2 起动电机高速关门。起动电机高速关门。碰到碰到

Page 32: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 关门减速开关关门减速开关 X4X4 时,改为低速关门,碰到关门极限开关时,改为低速关门,碰到关门极限开关 X5X5 时电机停转。时电机停转。 在关门期间若感应器检测到有人,停止关门,在关门期间若感应器检测到有人,停止关门, T1T1 延时延时 0.50.5ss 后自动转换后自动转换

为高速开门。为高速开门。

图图 6-32 6-32 自动门控制系统梯形图自动门控制系统梯形图

Page 33: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 11 .选择序列分支的编程方法.选择序列分支的编程方法 图图 6-326-32 中状态中状态 S23S23 之后有一个选择序列的分支。当状态之后有一个选择序列的分支。当状态 S23S23 是活动状是活动状

态态 ((S23S23 为为 ON)ON) 时,如果转移条件时,如果转移条件 X0X0 为为 ON(ON( 检测到有人检测到有人 )) ,将转移到,将转移到状态状态 S25S25 ;;如果转移条件如果转移条件 X4X4 为为 ONON ,,将进入状态将进入状态 S24S24 。。

如果某一状态的后面有如果某一状态的后面有 NN 条可选择的分支序列,则该状态的条可选择的分支序列,则该状态的 STLSTL 触点触点开始的电路块中应有开始的电路块中应有 NN 条分别指明各转移条件和转移目标的并联电路。条分别指明各转移条件和转移目标的并联电路。

22 .选择序列的合并的编程方法.选择序列的合并的编程方法 图图 6-326-32 中状态中状态 S20S20 前有一个由两条支路组成的选择序列的合并,当前有一个由两条支路组成的选择序列的合并,当 S0S0

为活动状态,转移条件为活动状态,转移条件 X0X0 得到满足,或者状态得到满足,或者状态 S25S25 为活动状态,转移为活动状态,转移条件条件 T1T1 得到满足,都使状态得到满足,都使状态 S20S20 变为活动状态,同时系统程序将状态变为活动状态,同时系统程序将状态S0S0 或状态或状态 S25S25 复位为不活动状态。复位为不活动状态。

设计梯形图时,只要正确确定每一步的转移条件和转移目标,就能“自设计梯形图时,只要正确确定每一步的转移条件和转移目标,就能“自然地”实现选择序列的合并。然地”实现选择序列的合并。

6.3.4 6.3.4 并行序列的编程方法并行序列的编程方法 举例举例 :: 某专用钻床加工圆盘状工件上均匀分布孔示意图见图某专用钻床加工圆盘状工件上均匀分布孔示意图见图 6-33(6-33(a)a) 示示 ,,

控制系统状态转移图见图控制系统状态转移图见图 6-33(6-33(b)b) 。 。

Page 34: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-33 6-33 组合钻床的状态转移图组合钻床的状态转移图 工作过程工作过程 ::放好工件后,按下启动按钮放好工件后,按下启动按钮 X0X0 ,, Y0Y0 变为变为 ONON ,,工件被夹紧,夹工件被夹紧,夹

紧后压力继电器紧后压力继电器 X1X1 为为 ONON ,, Y1Y1 和和 Y3Y3 使两只钻头同时开始向下进给。大钻使两只钻头同时开始向下进给。大钻头钻到由限位开关头钻到由限位开关 X2X2 设定的深度时,设定的深度时, Y2Y2 使它上升,升到由限位开关使它上升,升到由限位开关 X3X3 设设定的定的

Page 35: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 起始位置时停止上升。小钻头钻到由限位开关起始位置时停止上升。小钻头钻到由限位开关 X4X4 设定的深度时,设定的深度时, Y4Y4 使它使它

上升,升到由限位开关上升,升到由限位开关 X5X5 设定的起始位置时停止上升,同时设定值为设定的起始位置时停止上升,同时设定值为 33的计数器的计数器 C0C0 的当前值加的当前值加 11 。两个都到位后,。两个都到位后, Y5Y5 使工件旋转使工件旋转 120120OO,,旋转旋转到位时到位时 X6X6 为为 ONON ,,旋转结束后又开始钻第二对孔。旋转结束后又开始钻第二对孔。 33 对孔都钻完后,计数对孔都钻完后,计数器的当前值等于设定值器的当前值等于设定值 33 ,转移条件,转移条件 C0C0 满足。满足。 Y6Y6 使工件松开,松开到位使工件松开,松开到位时,限位开关时,限位开关 X7X7 为为 ONON ,,系统返回初始状态。系统返回初始状态。

注意注意 :: 状态状态 S2lS2l 之后,有一个选择序列的合并,还有一个并行序列的分支。之后,有一个选择序列的合并,还有一个并行序列的分支。在状态在状态 S29S29 之前,有一个并行序列的合并,还有一个选择序列的分支。在之前,有一个并行序列的合并,还有一个选择序列的分支。在并行序列中,两个子序列中的第一个状态并行序列中,两个子序列中的第一个状态 S22S22 和和 S25S25 是同时变为活动状是同时变为活动状态的,两个子序列中的最后一个状态态的,两个子序列中的最后一个状态 S24S24 和和 S27S27 不是同时变为不活动状不是同时变为不活动状态的。态的。

图图 6-33(6-33(b)b) 中,当状态中,当状态 S21S21 是活动状态,并且转移条件是活动状态,并且转移条件 X1 ONX1 ON 时,状态时,状态S22S22 和和 S25S25同时变为活动状态,两个序列开始同时工作。在梯形图中,用同时变为活动状态,两个序列开始同时工作。在梯形图中,用S21S21 的的 STLSTL 触点和触点和 X1X1 的常开触点组成的串联电路来控制的常开触点组成的串联电路来控制 SETSET 指令对指令对 S22S22和和 S25S25同时置位,系统程序将前级状态同时置位,系统程序将前级状态 S2lS2l 变为不活动状态。变为不活动状态。

图图 6-33(6-33(b)b) 中并行序列合并处的转移有两个前级状态中并行序列合并处的转移有两个前级状态 S24S24 和和 S27S27 ,,根据根据转移实现的基本规则,当它们均为活动状态并且转移条件满足,将实现并转移实现的基本规则,当它们均为活动状态并且转移条件满足,将实现并行序列的合并。 行序列的合并。

图图 6-346-34 是用是用 STLSTL 指令编制的步进梯形图。指令编制的步进梯形图。

Page 36: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-34 6-34 组合钻床的步进梯形图组合钻床的步进梯形图 图图 6-346-34 中,中, S27S27 的的 STLSTL 触点出现了两次,如果不涉及并行序列的合并,触点出现了两次,如果不涉及并行序列的合并,同一状态继电器的同一状态继电器的 STLSTL 触点只能在梯形图中使用一次。串联的触点只能在梯形图中使用一次。串联的 STLSTL 触点触点的个数不能超过的个数不能超过 88 个,即一个并行序列中的序列数不能超过个,即一个并行序列中的序列数不能超过 88 个。个。

6.4 6.4 功能指令简介功能指令简介 66 .. 44 .. 1 1 FXFX 系列系列 PLCPLC 功能指令的表示方法与数据结构功能指令的表示方法与数据结构 11 .功能指令的表示方法.功能指令的表示方法

Page 37: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 FXFX 系列系列 PLCPLC采用计算机通用的助记符形式表示功能指令。一般用指令的采用计算机通用的助记符形式表示功能指令。一般用指令的英文名称或缩写作为助记符英文名称或缩写作为助记符 .. 例如例如 ,, 图图 6-356-35 中的中的 BMOVBMOV 表示数据块传送表示数据块传送指令。指令。

图图 6-35 6-35 功能指令示例功能指令示例 图中图中 ,[,[S]S] 表示源操作数,表示源操作数, [[D]D] 表示目标操作数。源操作数或目标操作数表示目标操作数。源操作数或目标操作数

不止一个时,可表示为不止一个时,可表示为 [[S1]S1] ,, [S2][S2] ,, [Dl][Dl] ,, [D2][D2] 等。等。 nn 或或 mm 表示表示其它操作数,它们常用来表示常数,或源操作数和目标操作数的补充说明。其它操作数,它们常用来表示常数,或源操作数和目标操作数的补充说明。

指令助记符占一个程序步,每一个指令助记符占一个程序步,每一个 1616位操作数和位操作数和 3232位操作数分别占位操作数分别占 22 个个和和 44 个程序步。个程序步。

图中给出了应用指令图中给出了应用指令 BMOVBMOV 的指令表和步序号,指令中的的指令表和步序号,指令中的 SPSP 表示在用编表示在用编程器输入时,在两个操作数之间要按标有“程器输入时,在两个操作数之间要按标有“ SP”SP” 的空格键。的空格键。

指令功能指令功能 ::常开触点常开触点 X0X0 接通时,将接通时,将 33 个个 ((n=3)n=3) 数据寄存器数据寄存器 D10D10 ~~ D12D12中的数据传送到中的数据传送到 D20D20 ~~ D22D22 中去。 中去。

Page 38: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 22 .. 3232 位指令与脉冲执行指令位指令与脉冲执行指令 (1)32(1)32 位指令 位指令 图图 6-356-35 中中 ,, 助记符助记符 MOVMOV 之前的“之前的“ D”D” 表示处理表示处理 3232位位 ((bit)bit) 数据,这时相数据,这时相

邻的两个数据寄存器组成数据寄存器对,该指令将邻的两个数据寄存器组成数据寄存器对,该指令将 D11D11 ,, D10D10 中的数据中的数据传送到传送到 D13D13 ,, D12D12 中去,中去, D10D10 中为低中为低 1616位数据,位数据, D11D11 中为高中为高 1616位数据。位数据。

处理处理 3232位数据时,为避免出现错误,建议使用首地址为偶数的操作数。位数据时,为避免出现错误,建议使用首地址为偶数的操作数。没有“没有“ D”D” 时表示处理时表示处理 1616位数据。位数据。

(2)(2) 脉冲执行指令脉冲执行指令 图图 6-356-35 中中 ,,MOVMOV 后面的“后面的“ P”P” 表示脉冲执行,即仅在表示脉冲执行,即仅在 X1X1 由由 OFF→ONOFF→ON 状态状态

时执行一次。如果没有“时执行一次。如果没有“ P”P” ,,在在 X1X1 为为 ONON 的每一扫描周期指令都要被执的每一扫描周期指令都要被执行,称为连续执行。行,称为连续执行。 INC(INC( 加加 1)1)、、 DEC(DEC( 减减 1)1)和和 XCH(XCH( 数据交换数据交换 ))等指等指令一般应使用脉冲执行方式。令一般应使用脉冲执行方式。

(3)(3) 数据格式数据格式 ① ① 位元件与位元件的组合位元件与位元件的组合 位元件用来表示开关量的状态,如常开触点的通、断,线圈的通电和断电,位元件用来表示开关量的状态,如常开触点的通、断,线圈的通电和断电,

分别用二进制数分别用二进制数 11 和和 00 表示,或称为该编程元件处于表示,或称为该编程元件处于 ONON 或或 OFFOFF 状状态。态。 XX ,, YY ,, MM 和和 SS 为位元件。为位元件。

Page 39: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 功能指令中的操作数可取功能指令中的操作数可取 K(K( 十进制常数十进制常数 )) ,, H(H( 十六进制常数十六进制常数 )) ,如,如

KnXKnX ,, KnYKnY ,, KnMKnM ,, KnSKnS ,, TT ,, CC ,, DD ,, VV 和和 ZZ 。。 ② ② 字元件字元件 一个字由一个字由 1616 个二进制位组成,字元件用来处理数据个二进制位组成,字元件用来处理数据 .. 例如例如 ,, 定时器和计数器的设定值寄存器、当前值寄存器和数据寄存器定时器和计数器的设定值寄存器、当前值寄存器和数据寄存器 DD

都是字元件,位元件都是字元件,位元件 XX ,, YY ,, MM ,, SS 等也可组成字元件进行数据处理。等也可组成字元件进行数据处理。 (4)(4) 变址寄存器变址寄存器 VV ,, ZZ 在传送、比较指令中,变址寄存器在传送、比较指令中,变址寄存器 VV ,, ZZ 用来修改操作对象的元件号,用来修改操作对象的元件号,

在循环程序中常使用变址寄存器。在循环程序中常使用变址寄存器。 对于对于 3232 位指令位指令,, VV 为高为高 1616 位,位, ZZ 为低为低 1616 位。位。 3232 位指令中位指令中 VV ,, ZZ 自动组对使用。这时变自动组对使用。这时变 址指令只需指定址指令只需指定 ZZ ,, ZZ 就能代表就能代表 VV 和和 ZZ 的组的组 合。合。 变址寄存器的使用见图变址寄存器的使用见图 6-366-36.. 各触点接各触点接 通时,常数通时,常数 1010 送到送到 V0V0 ,,常数常数 2020 送到送到 Z1Z1 ,, ADD(ADD( 加法加法 )) 指令完成运算指令完成运算 ((D5V0)+(D15Z1)D5V0)+(D15Z1) →→(D40Z1)(D40Z1) ,,即即 ((D15)+(D35)→(D60)D15)+(D35)→(D60) 。 。 图图 6-36 6-36 变址寄存器变址寄存器

的使用的使用

Page 40: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 6.4.2 6.4.2 程序流控制指令程序流控制指令 11 .条件跳转指令.条件跳转指令 ((FNC00) FNC00) 指针指针 PP 用于分支和跳转程序。在梯形图中,指针放在左侧母线的左用于分支和跳转程序。在梯形图中,指针放在左侧母线的左

边。边。 FX2NFX2N 系列有系列有 6464 点分支用指针(点分支用指针( P0P0 ~~ P63P63 )。)。 条件跳转指令条件跳转指令 CJCJ 用于跳过顺序程序中的某一部分,以控制程序的流程。用于跳过顺序程序中的某一部分,以控制程序的流程。 图图 6-376-37 中中 ,,X0X0 为为 ONON 时,程序跳到指针时,程序跳到指针 P8P8 处处 ; ; 如果如果 X0X0 为为 OFFOFF ,,不执不执

行跳转,程序按原顺序执行。跳转时,不执行被跳过的那部分指令。行跳转,程序按原顺序执行。跳转时,不执行被跳过的那部分指令。 22 .子程序调用与子程序返回指令.子程序调用与子程序返回指令 子程序调用指令子程序调用指令 CALL(FNC01)CALL(FNC01) 的操作数为的操作数为 PP ,,子程序返回指令子程序返回指令

SRET(FNC02)SRET(FNC02) 无操作数。无操作数。

图图 6-37 6-37 CJCJ 指令的应用 图指令的应用 图 6-38 6-38 子程序调用子程序调用

Page 41: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 图图 6-386-38 中中 ,,X10X10 为为 ONON 时,时, CALLCALL 指令使指令使 程序跳到指针程序跳到指针 P8P8 处,子程序被执行,处,子程序被执行, 执行完执行完 SRETSRET 指令后返回到指令后返回到 104104 步。步。 子程序中调用子程序称为嵌套调用子程序中调用子程序称为嵌套调用,, 最多可嵌套最多可嵌套 55 级。图级。图 6-396-39 中的中的 CALL(P)CALL(P) P11P11 指令仅在指令仅在 X0X0 由由 OFFOFF 变为变为 ONON 时执行一时执行一 次。在执行子程序次。在执行子程序 11 时,如果时,如果 X1X1 为为 ONON ,, CALL P12CALL P12 指令被执行,程序跳到指令被执行,程序跳到 P12P12 处,嵌套执行子程序处,嵌套执行子程序 22 。执行第二条。执行第二条 SRETSRET 指令后,返回子程序指令后,返回子程序 11 中中 CALL CALL P12P12 指令的下一条指令,执行第一条指令的下一条指令,执行第一条 SRETSRET 指令后返回主程序中指令后返回主程序中 CALL P11CALL P11 指令的下一条指令。 图指令的下一条指令。 图 6-39 6-39 子程序的嵌套调用子程序的嵌套调用 33 ..中断指令 中断指令 FX2NFX2N 系列系列 PLCPLC 的中断事件包括输入中断、定时中断和高速计数器中断的中断事件包括输入中断、定时中断和高速计数器中断 ..发生中断时,发生中断时, CPUCPU 停止执行当前的工作,立即执行预先写好的相应的中停止执行当前的工作,立即执行预先写好的相应的中断程序断程序 ..

Page 42: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 中断返回指令中断返回指令 IRETIRET 、、允许中断指令允许中断指令 EIEI 和禁止中断指令和禁止中断指令 DIDI 的指令编号的指令编号

分别为分别为 FNC03FNC03 ~~ FNC05FNC05 ,,均无操作数,分别占用一个程序步。均无操作数,分别占用一个程序步。 PLCPLC 通常处于禁止中断状态,指令通常处于禁止中断状态,指令 EIEI 和和 DIDI 之间的程序段为允许中断的之间的程序段为允许中断的区间,当程序执行到该区间时,如果中断源区间,当程序执行到该区间时,如果中断源

产生中断,产生中断, CPUCPU 将停止执行当前程序,将停止执行当前程序, 转去执行相应的中断子程序,执行到转去执行相应的中断子程序,执行到 中断子程序中的中断子程序中的 IRETIRET 指令时,返回原指令时,返回原 断点,继续执行原来的程序。断点,继续执行原来的程序。 如有多个中断信号依次发出,则优先如有多个中断信号依次发出,则优先 级按发生的先后为序级按发生的先后为序 .. 若同时发生多个若同时发生多个 中断信号,则中断指针号小的优先中断信号,则中断指针号小的优先 .. 图图 6-40 6-40 中断指令的使用中断指令的使用 44 .主程序结束指令.主程序结束指令 ((FNC06)FNC06) 主程序结束指令主程序结束指令 FENDFEND 无操作数,占用一个程序步,表示主程序结束和无操作数,占用一个程序步,表示主程序结束和子程序区的开始。执行到子程序区的开始。执行到 FENDFEND 指令时,指令时, PLCPLC 进行输入输出处理、监控进行输入输出处理、监控定时器刷新,完成后返回第定时器刷新,完成后返回第 00 步。 步。

Page 43: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 55 .监控定时器指令.监控定时器指令 ((FNC07)FNC07) 监控定时器指令监控定时器指令 WDTWDT 无操作数,占用一个程序步。无操作数,占用一个程序步。 监控定时器又称看门狗,监控定时器又称看门狗,在执行在执行 FENDFEND 和和 ENDEND 指令时,监控定时器被刷新指令时,监控定时器被刷新((复位复位 ).).PLCPLC 正常工作时扫描周期正常工作时扫描周期 ((从从 00 步到步到 FENDFEND 或或 ENDEND 指令的执行时指令的执行时间间 )) 小于它的定时时间。如外部干扰使小于它的定时时间。如外部干扰使 PLCPLC偏离正常的程序执行路线,监偏离正常的程序执行路线,监控定时器不再被复位,定时时间到时,控定时器不再被复位,定时时间到时, PLCPLC 将停止运行,将停止运行, CPU-ECPU-E 发光二极发光二极管点亮管点亮 ..

66 ..循环指令循环指令 FOR(FNC08)FOR(FNC08) 指令指令用来表示循环区的起点,它的源操作数用来表示循环区的起点,它的源操作数 NN 用来表示循环用来表示循环

次数次数 ((N=1N=1 ~~ 32767)32767) ,,可以取任意的数据格式。如果可以取任意的数据格式。如果 NN 为负数,当作为负数,当作N=1N=1处理,循环可嵌套处理,循环可嵌套 55层。层。

NEXT(FNC09)NEXT(FNC09) 是循环区终点指令,无操作数。是循环区终点指令,无操作数。 FORFOR 与与 NEXTNEXT 之间的程序被反复执行,执行次之间的程序被反复执行,执行次 数由数由 FORFOR 指令的源操作数设定。执行完后,指令的源操作数设定。执行完后, 执行执行 NEXTNEXT 后面的指令。后面的指令。 图图 6-41:6-41:外层循环程序外层循环程序 AA 嵌套了内层循环嵌套了内层循环 BB ,, 循环循环 AA 执行执行 55 次,每执行一次循环次,每执行一次循环 AA ,,就要执 图就要执 图 6-41 6-41 循环程序 循环程序

Page 44: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 行行 1010 次循环次循环 BB ,,因此循环因此循环 BB 一共要执行一共要执行 5050 次。利用循环中的次。利用循环中的 CJCJ 指令可跳出指令可跳出

FOR-NEXTFOR-NEXT 之间的循环区。之间的循环区。 FORFOR 与与 NEXTNEXT 指令总是成对使用的,指令总是成对使用的, FORFOR 指令应放在指令应放在 NEXTNEXT 的前面的前面 .. 6.4.3 6.4.3 传送、比较指令传送、比较指令 11 .比较指令.比较指令 比较指令包括比较指令包括 CMP(CMP( 比较比较 ))和和 ZCP(ZCP(区间比较区间比较 )),比较结果用目标元件的状态,比较结果用目标元件的状态

表示。待比较的源操作数表示。待比较的源操作数 [[S1]S1] ,, [S2][S2] 和和 [[S3](CMPS3](CMP 只有两个源操作数只有两个源操作数 ))可可取任意的数据格式,目标操作数取任意的数据格式,目标操作数 [[D]D] 可取可取 YY ,, MM 和和 SS ,,占用连续的占用连续的 33 个元件。个元件。

(1)(1) 比较指令比较指令 ((FNCl0)FNCl0) 比较指令比较指令 CMPCMP 比较源操作数比较源操作数 [[S1]S1] 和和 [[S2]S2] ,, 比较的结果送到目标操作数比较的结果送到目标操作数 [[D]D] 中。中。图图 6-426-42 中的比较指令将十进制常数中的比较指令将十进制常数 100100 与与 计数器计数器 C10C10 的当前值比较,比较结果送的当前值比较,比较结果送 到到 M0M0 ~~ M2M2 。。 图图 6-42 6-42 比较指令的使比较指令的使

用用 (2)(2) 区间比较指令区间比较指令 ((FNCll)FNCll) 区间比较指令的助记符为区间比较指令的助记符为 ZCP.ZCP. 图图 6-436-43 中的中的 X2X2 为为 ONON 时,执行时,执行 ZCPZCP 指令,将指令,将

T3T3 的当前值与常数的当前值与常数 100100 和和 150150 相比较,比较结果送到相比较,比较结果送到 M3M3 ~~ M5M5 ,,源数据源数据[[S1]S1] 不能大于不能大于 [[S2]S2] 。。

Page 45: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-43 6-43 区间比较指令的使用区间比较指令的使用 (3)(3) 触点型比较指令触点型比较指令 ((FNC224FNC224 ~~ FNC246)FNC246) 触点型比较指令相当于一个触点,执行时比较源操作数触点型比较指令相当于一个触点,执行时比较源操作数 [[S1]S1] 和和 [[S2]S2] ,,满足比较条件则触点闭合,源操作数可取所有的数据类型。满足比较条件则触点闭合,源操作数可取所有的数据类型。

图图 6-44:6-44:C10C10 的当前值等于的当前值等于 2020 时,时, Y10Y10 被驱动,被驱动, D200D200 的值大于的值大于 -30-30 且且X0X0 为为 ONON 时,时, Y11Y11 被被 SETSET 指令置位。指令置位。

图图 6-45:6-45:M27M27 为为 ONON 或或 C20C20 的值等于的值等于 146146 时,时, M50M50 的线圈通电的线圈通电 ..

图图 6-44 6-44 LDLD 触点型比较指令 图触点型比较指令 图 6-45 6-45 AND/ORAND/OR 触点型比较指触点型比较指令令

Page 46: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 22 .传送指令.传送指令 ((FNC12FNC12 ~~ FNCl6)FNCl6) 传送指令包括传送指令包括 MOV(MOV( 传送传送 ))、、 SMOV(BCDSMOV(BCD码移位传送码移位传送 ))、、 CML(CML( 取反传送取反传送 ))、、

BMOVBMOV(( 数据块传送数据块传送 ))和和 FMOVFMOV(( 多点传送多点传送 ))以及以及 XCHXCH(( 数据交换数据交换 ))指令。指令。 MOVMOV 和和 CMLCML 指令的源操作数可取所有的数据类型,指令的源操作数可取所有的数据类型, SMOVSMOV 指令可取除指令可取除

KK ,, HH 以外的其它类型的操作数。它们的目标操作数可取以外的其它类型的操作数。它们的目标操作数可取KnYKnY ,, KnMKnM ,, KnSKnS ,, T,CT,C ,, DD ,, VV 和和 ZZ 。。

(1)(1) 传送指令传送指令 ((FNCl2)FNCl2) 传送指令传送指令 MOVMOV 将源数据传送到指定目标将源数据传送到指定目标 .. 图图 6-46:6-46:X1X1 为为 ONON 时常数时常数 100100 被传送到被传送到 D10D10 ,,并自动转换为二进制数。并自动转换为二进制数。

图图 6-46 6-46 传送指令与块传送指令传送指令与块传送指令 (2)(2) 移位传送移位传送 ((FNCl3)FNCl3)

Page 47: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 移位传送指令移位传送指令 SMOVSMOV 将将 44位十进制源数据位十进制源数据 [[S]S] 中指定位数的数据,传送到中指定位数的数据,传送到 44位位十进制目的操作数中指定的位置。十进制目的操作数中指定的位置。

(3)(3) 取反传送指令取反传送指令 ((FNCl4)FNCl4) 取反传送指令取反传送指令 CMLCML 将源元件中的数据逐位取反将源元件中的数据逐位取反 (1→0,0→1),(1→0,0→1), 并传送到指定目并传送到指定目标。标。

(4)(4) 块传送指令块传送指令 ((FNCl5)FNCl5) 块传送指令块传送指令 BMOVBMOV 的源操作数可取的源操作数可取

KnXKnX ,, KnYKnY ,, KnMKnM ,, KnSKnS ,, TT ,, CC ,, DD ,, VV ,, ZZ 和文件寄存器,目标操作数和文件寄存器,目标操作数可取可取 KnYKnY ,, KnMKnM ,, KnSKnS ,, TT ,, CC ,, DD ,, VV ,, ZZ 和文件寄存器。该指令将源操和文件寄存器。该指令将源操作数指定的元件开始的作数指定的元件开始的 nn 个数据组成的数据块传送到指定的目标,个数据组成的数据块传送到指定的目标, nn 可取可取KK ,, HH 和和 DD 。。

传送顺序见图传送顺序见图 6-466-46 示。示。 (5)(5) 多点传送指令多点传送指令 ((FNCl6)FNCl6) 多点传送指令多点传送指令 FMOVFMOV 将单个元件中的数据传送到指定目标地址开始的将单个元件中的数据传送到指定目标地址开始的 nn 个元件个元件

中,传送后中,传送后 nn 个元件中的数据完全相源操作数可取所有的数据类型,目标操作个元件中的数据完全相源操作数可取所有的数据类型,目标操作数可取数可取 KnYKnY ,, KnMKnM ,, KnSKnS ,, TT ,, CC ,, DD ,, VV 和和 ZZ ,, nn 为常数,为常数, n≤512n≤512 。。

图图 6-47:6-47:X2X2 为为 ONON 时将常数时将常数 00送到送到 D5D5 ~~ D14D14 这这 1010 个个 ((n=10)n=10) 数据寄存器中。数据寄存器中。

Page 48: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-47 6-47 多点数据传送与数据交换多点数据传送与数据交换 (6)(6) 数据交换指令数据交换指令 ((FNCl7)FNCl7) 执行数据交换指令执行数据交换指令 XCHXCH 时,数据在指定的目标元件之间交换,一般采用时,数据在指定的目标元件之间交换,一般采用脉冲执行方式脉冲执行方式 (( 见图见图 6-47)6-47) 。。

目标操作数可取目标操作数可取 KnYKnY ,, KnMKnM ,, KnSKnS ,, L CL C ,, DD ,, VV 和和 ZZ 。。 33 .数据变换指令.数据变换指令 数据变换指令包括数据变换指令包括 BCD(BCD( 二进制数转换成二进制数转换成 BCDBCD 码并传送码并传送 ))和和 BIN(BCDBIN(BCD 码码

转换为二进制数并传送转换为二进制数并传送 )) 指令指令 (( 见图见图 6-48)6-48) 。源操作数可取。源操作数可取KnXKnX ,, KnYKnY ,, KnMKnM ,, KnSKnS ,, TT ,, CC ,, DD ,, VV 和和 ZZ ,,目标操作数可取目标操作数可取KnYKnY ,, KnMKnM ,, KnSKnS ,, TT ,, CC ,, DD ,, VV 和和 ZZ 。。

(1)(1)BCDBCD 变换指令变换指令 ((FNCl8)FNCl8) BCDBCD 变换指令将源元件中的二进制数转换为变换指令将源元件中的二进制数转换为 BCDBCD 码并送到目标元件中。码并送到目标元件中。 可以用可以用 BCDBCD 指令将二进制数变换为指令将二进制数变换为 BCDBCD 数后输出到数后输出到 77 段显示器。段显示器。 M8032M8032 为为 ONON 时,双字将被转换为科学计数法格式。时,双字将被转换为科学计数法格式。

Page 49: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 (2)(2)B1NB1N 变换指令变换指令 ((FNCl9)FNCl9) 将源元件中的将源元件中的 BCDBCD 码转换为二进制数码转换为二进制数 后送到目标元件中。后送到目标元件中。 可以用可以用 BINBIN 指令将指令将 BCDBCD 数字拨码开关提数字拨码开关提 供的设定值输入到供的设定值输入到 PLC.M8032PLC.M8032 为为 ONON 时,时, 将科学计数法格式的数转换为浮点数。 图将科学计数法格式的数转换为浮点数。 图 6-48 6-48 BCDBCD 变换与变换与 BINBIN

变换变换 6.4.4 6.4.4 循环移位、移位指令循环移位、移位指令 11 .循环移位指令.循环移位指令 (1)(1) 右、左循环移位指令右、左循环移位指令 右、左循环移位指令分别为右、左循环移位指令分别为 ROR(FNC30)ROR(FNC30) 和和 ROL(FNC31)ROL(FNC31) 。。它们只它们只

有目标操作数,可取有目标操作数,可取 KnYKnY ,, KnMKnM ,, KnSKnS ,, TT ,, CC ,, DD ,, VV 和和 Z.Z. 执行这两条指令时,各位数据向右执行这两条指令时,各位数据向右 (( 或向左或向左 )) 循环移动循环移动 nn 位位 ((nn 为常为常

数数 )) ,, 1616 位指令和位指令和 3232 位指令中位指令中 nn 应分别小于应分别小于 1616 和和 3232 ,每次移出来,每次移出来的那一位同时存入进位标志的那一位同时存入进位标志 M8022M8022 中中 (( 见图见图 6-496-49 和图和图 6-50)6-50) 。。

若在目标元件中指定位元件组的组数,只有若在目标元件中指定位元件组的组数,只有 K4(16K4(16 位指令位指令 ))和和K8(32K8(32 位指令位指令 )) 有效,例如有效,例如 K4Y10K4Y10 和和 K8M0K8M0 。。

Page 50: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令

图图 6-49 6-49 右循环 图右循环 图 6-50 6-50 左循环左循环 (2)(2) 带进位的循环移位指令带进位的循环移位指令 带进位右、左循环移位指令的指令代码分别为带进位右、左循环移位指令的指令代码分别为 RCR(FNC32)RCR(FNC32) 和和

RCL(FNC33)RCL(FNC33) 。。目标操作数、程序步数和目标操作数、程序步数和 nn 的取值范围与循环移位指令相的取值范围与循环移位指令相同同 ..

执行这两条指令时,各位数据与进位位执行这两条指令时,各位数据与进位位 M8022M8022 一起一起 (16(16位指令时共位指令时共 1717 位位 ))向右向右 (( 或向左或向左 )) 循环移动循环移动 nn 位。在循环中移出的位送入进位标志,后者又位。在循环中移出的位送入进位标志,后者又被送回到目标操作数的另一端。被送回到目标操作数的另一端。

22 .移位指令.移位指令 (1)(1) 位右移和位左移指令位右移和位左移指令 位右移位右移 SFTR(FNC34)SFTR(FNC34) 与位左移与位左移 SFTL(FNC35)SFTL(FNC35) 指令使位元件中的状态成指令使位元件中的状态成

组地向右或向左移动,由组地向右或向左移动,由 n1n1 指定位元件组的长度,指定位元件组的长度, n2n2 指定移动的位数,指定移动的位数,常数常数 n2≤n1≤1024n2≤n1≤1024 。。

(2)(2) 字右移和字左移指令字右移和字左移指令

Page 51: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 字右移字右移 WSFR(FNC36)WSFR(FNC36) 、、字左移字左移 WSFL(FNC37)WSFL(FNC37) 指令将指令将 n1n1 个字成组地个字成组地

右移或左移右移或左移 n2n2 个字个字 ((n2≤n1≤512)n2≤n1≤512) 。。 (3)(3) 移位寄存器写入与读出指令移位寄存器写入与读出指令 移位寄存器又称为移位寄存器又称为 FIFO(FIFO( 先入先出先入先出 )) 堆栈,堆栈长度范围为堆栈,堆栈长度范围为 22 ~~ 512512 个个

字。写入指令字。写入指令 SFWR(FNC38)SFWR(FNC38) 和读出指令和读出指令 SFRD(FNC39)SFRD(FNC39) 用于用于 FIFOFIFO 堆堆栈的读写,先写入的数据先读出。栈的读写,先写入的数据先读出。

6.4.5 6.4.5 数据处理指令数据处理指令 11 .区间复位指令.区间复位指令 ((FNC40)FNC40) 区间复位指令区间复位指令 ZRSTZRST 将将 [[D1]D1] ,, [D2][D2] 指定的指定的 元件号范围内的同类元件成批复位元件号范围内的同类元件成批复位 (( 见见 图图 6-51)6-51) ,目标操作数可取,目标操作数可取 TT ,, CC 和和 D(D( 字字 元件元件 ))或或 YY ,, MM ,, S(S( 位元件位元件 ).). 22 .解码与编码指令.解码与编码指令 图 图 6-51 6-51 区间复位与解码、编码指令区间复位与解码、编码指令 设图设图 6-516-51 的解码指令的解码指令 DECO(FNC41)DECO(FNC41) 的源操作数的源操作数 X2X2 ~~ X0X0 组成的二进组成的二进

制数为制数为 NN ,,该指令将该指令将 M10M10 开始的目标操作数开始的目标操作数 M10M10 ~~ M17(M17( 共共 88 位,位, 22nn = 8)= 8) 中的第中的第 NN 位置为位置为 ll ,,其余各位置其余各位置 00 ,相当于数字电路中译码电路,相当于数字电路中译码电路的功能。的功能。

Page 52: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 图图 6-51:6-51: 编码字指令编码字指令 ENCO(FNC42)ENCO(FNC42) 将源操作数将源操作数 M20M20 ~~ M27(M27( 共共 88 位,位, 22nn = =

8)8) 中为中为 ONON 的最高位的位数的最高位的位数 ((二进制二进制 ))存放在目标元件存放在目标元件 D10D10 的低的低 33位位中,中, n=1n=1 ~~ 44 。。

33 .求置.求置 ONON 位总数与位总数与 ONON 位判别指令位判别指令 求置求置 ONON位总数指令位总数指令 SUM(FNC43)SUM(FNC43) 统计源操作数中为统计源操作数中为 ONON 的位的个数,并将它的位的个数,并将它送入目标操作数。送入目标操作数。

ONON位判别指令位判别指令 BON(FNC44)BON(FNC44) 用来检测指定元件中的指定位是否为用来检测指定元件中的指定位是否为 ONON 。。若为若为ONON ,,则位目标操作数变为则位目标操作数变为 ON.ON.

44 .报警器置位复位指令.报警器置位复位指令 应用指令应用指令 ANS(ANS( 信号报警器置位信号报警器置位 )) 和和 ANR(ANR( 信号报警器复位信号报警器复位 )) 时,状态标志时,状态标志

S900S900 ~~ S999S999 可用作外部故障诊断的输出。可用作外部故障诊断的输出。 (1)(1) 报警器置位指令报警器置位指令 ANS(FNC46)ANS(FNC46) ANSANS 的源操作数为的源操作数为 T0T0 ~~ T199T199 ,,目标操作数为目标操作数为 S900S900 ~~ S999S999 ,, n=1n=1 ~~

32767(32767( 定时器以定时器以 100100msms 为单位的设定值为单位的设定值 ))。。 图图 6-52:6-52:M8000M8000 的常开触点一直接通,使的常开触点一直接通,使 M8049M8049 的线圈通电,特殊数据寄存的线圈通电,特殊数据寄存

器器 D8049D8049 的监视功能有效,的监视功能有效, D8049D8049 用来存放用来存放 S900S900 ~~ S999S999 中处于活动状态中处于活动状态且元件号最小的状态继电器的元件号。且元件号最小的状态继电器的元件号。

第一条第一条 ANSANS 指令可实现如下功能:在驱动工作台前进的输出继电器指令可实现如下功能:在驱动工作台前进的输出继电器 Y0Y0 变为变为

Page 53: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 ONON 后,后, 100100msms 定时器定时器 T0T0 开始定时,如果检测前进的限位开关开始定时,如果检测前进的限位开关 X0X0 在在 1010ss 内未内未

动作动作 ((n = 100)n = 100) ,, S900S900 变为变为 ONON 。。如果如果 S900S900 ~~ S999S999 中任意一个的状态为中任意一个的状态为ONON ,,特殊辅助继电器特殊辅助继电器 M8048M8048 为为 ONON ,,使指示故障的输出继电器使指示故障的输出继电器 Y10Y10 变为变为ONON 。。

若第一条若第一条 ANSANS 指令的输入电路断开,定时器指令的输入电路断开,定时器 T0T0 复位,而复位,而 S900S900仍保持为仍保持为 ON.ON.

(2)(2) 报警器复位指令报警器复位指令 ANR(FNC47)ANR(FNC47) ANRANR 无操作数,图无操作数,图 6-526-52 中用故障复位按钮中用故障复位按钮 X5X5 和和 ANRANR 指令将用于故障诊断的指令将用于故障诊断的

状态继电器复位,每按一次复位按钮,按元件号递增的顺序将—个故障报警器状态继电器复位,每按一次复位按钮,按元件号递增的顺序将—个故障报警器状态复位。状态复位。

55 .平均值指令.平均值指令 MEAN(FNC45)MEAN(FNC45) MEANMEAN 用来求用来求 11~~ 6464 个源操作数的代数和被个源操作数的代数和被 nn 除的商,余数略去除的商,余数略去 ((见图见图 6-53).6-53).

图图 6-52 6-52 信号报警器置位与复位指令 图信号报警器置位与复位指令 图 6-53 6-53 MEANMEAN 、、 SQRSQR 、、 FLTFLT 指令指令

Page 54: 第6章   可编程控制器的指令

第第 66 章 章 可编程控制器的指令可编程控制器的指令 66 .二进制平方根指令.二进制平方根指令 SQR(FNC48)SQR(FNC48) SQRSQR 的源操作数的源操作数 [[S]S] 应大于零,可取应大于零,可取 KK ,, HH ,, DD ,,目标操作数为目标操作数为 DD 。。图图

6-536-53 中的中的 X2X2 为为 ONON 时,将存放在时,将存放在 D45D45 中的数开平方,结果存放在中的数开平方,结果存放在 D123D123内内 ..

计算结果舍去小数,只取整数。计算结果舍去小数,只取整数。 M8023M8023 为为 ONON 时,将对时,将对 3232位浮点数开方,位浮点数开方,结果为浮点数。结果为浮点数。

源操作数为整数时,将自动转换为浮点数。如果源操作数为负数,运算错源操作数为整数时,将自动转换为浮点数。如果源操作数为负数,运算错误标志误标志 M8067M8067 将会将会 ONON 。。

77 .二进制整数与浮点数转换指令.二进制整数与浮点数转换指令 FLT(FNC49)FLT(FNC49) FLTFLT 的源操作数和目标操作数均为的源操作数和目标操作数均为 DD 。。 图图 6-53:6-53:X4X4 为为 ONON ,,且且 M8023(M8023(浮点数标志浮点数标志 ))为为 OFFOFF 时,该指令将存放时,该指令将存放

在源操作数在源操作数 D10D10 中的数据转换为浮点数,并将结果存放在目标寄存器中的数据转换为浮点数,并将结果存放在目标寄存器D13D13 和和 D12D12 中。中。

M8023M8023 为为 ONON 时,将浮点数转换为整数。时,将浮点数转换为整数。 用于存放浮点数的目标操作数应为双整数,源操作数可以是整数或双整数。用于存放浮点数的目标操作数应为双整数,源操作数可以是整数或双整数。