三菱FX系列PLC的基本顺控指令说明12

更新时间:2023-11-19 00:38:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

三菱FX系列PLC的基本顺控指令说明(一)

触点类指令用来表示事件发生(输出)的条件。触点在梯形图中与其他触点及其他梯

形图符号的相互关联是组成梯形图的最主要内容,再用通俗语言简要介绍PLC的扫描周期。 示例图:

上图是一个简单的顺序控制,顺序控制则为顺序执行,其执行顺序为:

1、扫描输入点,假设在扫描期间X003,X005为吸合状态。

2、顺序执行程序,执行结果为Y1吸合,此时只是将Y1状态存入映像区并没有实际输出。

3、输出刷新,将Y1的吸合状态才是真正输出。

一、逻辑运算开始触点:LD,LDI,LDP,LDF LD:逻辑运算开始与左母线连接的动合触点 LDI:逻辑运算开始与左母线连接的动断触点 LDP:逻辑运算开始与左母线连接的上升沿检测

LDF:逻辑运算开始与左母线连接的下降沿检测

二、逻辑运算串联触点:AND,ANDI,ANDP,ANDF AND:串联连接动合触点 ANI:串联连接动断触点 ANP:串联连接上升沿检测

ANF:串联连接下降沿检测

三、逻辑运算并联触点:OR,ORI,ORP,ORF ORD:并联连接动合触点 ORI:并联连接动断触点 ORP:并联连接上升沿检测 ORF:并联连接下降沿检测 四、线圈驱动指令:OUT

PLC扫描周期的概念:

我们在观察PLC运行时,感觉只要输入点变化了,其控制的输出点马上变化,那是因为PLC的运算速度非常快,如上面的小程序,扫描周期不到一毫秒。如果我们假设扫描周期非常长,那么结果就如下所述:

1、在顺序执行程序期间,输入点X000,X004吸合并不能改变Y000的状态,因为PLC需要在下次扫描输入点时才获得X000,X004的状态。假如PLC的扫描时间为一个小时,而输入点X000,X004的吸合状态只保持了半小时,进入下一次扫描输入点阶段时,X000,

1

X004已经断开,则它们俩的吸合也就做了无用功。

2、假设扫描周期为半小时的话,当程序执行完第7步,Y1吸合。但是要等到半小时后,到达输出刷新阶段,Y1才能真正输出去控制PLC的外部电元件。

三菱FX系列PLC的基本顺控指令说明(二)

上升沿检出指令PLS及下降沿检出指令PLF用于检出信号的变化成分。当能流到达PLS指令时,PLS指令操作数所对应的存储单元接通一个扫描周期。当能流失去时,PLF指令使它的操作数对应的存储单元接通一个扫描周期。再说说双线圈错误的理解。 示例图:

上图所示

1、如果在第一次扫描开始时,执行到第0步M0是断开状态,而第二次扫描到第0步时M0为闭合状态,则PLC检测到一个上升沿,Y0则闭合.但是不管M0能够接通多长时间,Y0也只接通两毫秒的时间(这里假设PLC程序的扫描周期为两毫秒)。也就是说,当PLC第三次扫描到第0步时,虽然M0还是闭合状态,但是Y0还是断开了。

2、程序执行到第3步时,PLC检测到Y0的闭合,于是能流到达SET指令,运用SET指令,Y1置1。当第二次扫描到第3步时,尽管Y0已经断开(如第一点所述),Y1继续保持接通状态。

3、如果在第一次扫描开始时,执行到第5步M0是闭合状态,而第二次扫描到第5步时M0为断开状态,则PLC检测到一个下降沿,Y2则闭合.Y2也是只接通两毫秒的时间(这里还是假设PLC程序的扫描周期为两毫秒)。也就是说,当PLC第三次扫描到第5步时,但是Y2断开了。

4、程序执行到第8步时,PLC检测到Y2的闭合,于是能流到达RST指令,运用RST指令,Y1置0进入断开状态。如果未检测到Y2闭合,当Y1继续保持原有状态。这即是RST与OUT指令的区别所在! SET:线圈接通保持指令

RST:线圈接通清除指令

SET指令及RST指令这置位、复位指令,它们的作用时,当能流到达SET时,该指令操作数对应的存储单元置1,能流消失时,该存储单元保持置1。必须有能流到达复位该存储单元的复位指令时,才复位置0。 PLS:上升沿微分输出指令

PLF:下降沿微分输出指令

上升沿检出指令PLS及下降沿检出指令PLF用于检出信号的变化成分。当能流到达PLS指令时,PLS指令操作数所对应的存储单元接通一个扫描周期。当能流失去时,PLF指令使它的操作数对应的存储单元接通一个扫描周期。

2

双线圈错误:

上图中两次出现Y1,虽然在程序错误检测时提示违反双线圈错误,却可以正常运行,也就是说这是一个正常的程序。但是如果把SET Y1与RST Y1都换成OUT Y1,则就是一个标准的双线圈错误。

理解此错误,还得再提PLC程序的扫描周期概念,(把SET Y1与RST Y1都换成OUT Y1)如果Y2永远是断开状态,那么尽管执行到第3步令Y1闭合,但是由于PLC尚未进入输出刷新阶段,所以Y1并没有形成真正的输出,而执行到8步时,由于Y2的断开状态,又令Y1线圈断开。所以当进入输出刷新状态时,Y1是以断开状态输出。也就是说第3步的程序是失效没用的!

三菱FX系列PLC的基本顺控指令说明(三)

主控指令含主控触点指令(MC)及主控触点复位指令(MCR),客观存在们的功能与栈指令有许多相似之处,都是一个触点实现对一片梯形图区域的控制。一句话介绍一下运算结果反转指令INV,再说说FX系列PLC的相关软件(编程软件与学习软件)

上图中M100为主控触点,该触点是“能流”到达触点后梯形图区域的“关卡”。因而称为“主控”。也就是说,当X000接通时,将执行从MC到MCR之间的指令。MC、MCR指令需要成对使用,MC指令建立新母线,MCR指令则回复到原母线。MC指令可以嵌套8层。MC指令中的“N0”为主控触点的嵌套编号(0---7)。当不嵌大庆时,编号都可以使用N0,N0有使用次数没有限制。

运算结果反转指令:INV

INV指令是将INV指令执行前的运算结果取反的指令,上图中当X0断开时,Y0吸合

FX系列PLC的编程电缆型号:SC-09

FX系列PLC的相关软件(编程环境):

1、FX系列PLC的专用版编程软件:FX-PCS/WIN-C

中文软件,适用于FX1S,FX1N,FX2N,FX1NC,FX2NC,FX0,FX0S,FX0N,FX1,FX2,FX2C。很多网页提供免费下载,百度搜索很容易找到.

2、三菱全系列PLC编程软件:GX-Developer(型号:SW7D5C-GPPW)

中文软件,适用三菱PLC FX/A/QNA/Q系列。软件很大,所以现在提供免费下载的不多,可以在购买PLC时向供应商索取,供应商非常乐意提供此软件。

3

3、FX系列PLC的学习软件:FX-TRN-BEG,FX-TRN-DATA 中文软件,可进行程序模拟。

FX-TRN-BEG:基本命令学习软件(ON/OFF控制,计数器控制,定时控制)网上可找到免费下载。

FX-TRN-DATA:应用指令学习软件(四则运算,数值/数据处理),

三菱FX系列PLC的基本顺控指令说明(四)定时器 FX系列PLC定时器均为接通延时定时器,即当定时器的线圈得电时,定时器开始计时,定时器计时时间到达设定值时,定时的动合触点接通,动断触点断开。再谈谈NOP指令。 FX系列PLC定时器分为累计型与非累计型两种,如上图所示 为非累计型定时器,当M0闭合后,T0开始计时,如果M0闭合时间能保持10秒以上,则T0计时到10秒时,T0的动合触点吸合,Y0,Y1得电,M0断开,则T0复位。如果在10秒内MO断开,则T0的计时清零,M0再得电重新开始计时。

如果为累计型定时器(假设T0为累计型,实际请看下面的注解),当M0闭合后,T0开始计时,如果M0闭合时间能保持10秒以上,则T0计时到10秒时,T0的动合触点吸合,Y0,Y1得电,M0断开,则T0复位。如果在5秒时MO断开,则T0的计时保持,M0再得电重新开始计时,再计时5秒,T0的动合触点闭合。

注解:定时器的地址不一样,其计时的单位与也不同,以FX2N为例: T0---T199为100毫秒计时一次。设定值为100,则是10秒。(非累计型) T200---T245为10毫秒计时一次。设定值为100,则是1秒。(非累计型) T246---T249为1毫秒计时一次。设定值为100,则是0.1秒。(累计型) FX系列PLC定时器的精度:

在定时器线圈得电后,定时器开始计时,在计时完了后的最初的线圈执行时,输出触点动作。

此段文字意思为:假如第八次扫描到第3步OUT T0 K100时,计时到达10秒。此时T0并不吸合,第九次扫描到第3步OUT T0 K100时,T0才吸合。第6步的T0才闭合,Y0得电输出。而第十次扫描到第0步时,Y1也会得电输出。

所以扫描周期越长,定时器的误差越大,而定时器的触点放在定时器线圈指令的上方明显比放在定时器线圈指令的下方误差要大。

如果定时器的设定值为0,则是在扫描到定时器线圈指令后的下一次扫描到定时器线圈指令后吸合。

NOP指令的作用?

答:PLC无视NOP指令,其不会产生执行时间,所以没用! NOP指令在用手持编码器输入程序时代还有点用处,用于减少程序步号的变化(那时没有编程软件,检查程序执行结果,主要是靠在PLC上查找程序步号,步号变了,就需要重新改写字张或是文档上的程序步号).

三菱FX系列PLC的基本顺控指令说明(五)计时器

当FX系列PLC的十六位计数器到达设定值后触点闭合,其计数值不再变化。而三十二位计数器到达设定值后,计数值继续变化。再谈谈END指令的作用。

4

FX系列PLC的计数器分为停电保持型计数器与一般计数器两种。PLC断电,则一般计数器的计数值被清零,而停电保持计数器则可以保持停电前的计数值,PLC上电后,在原有值的基础上继续计数。

FX系列PLC的计数器编程方法如上图所示

X1由OFF--ON变化时,C20计数一次。当计数值到达20时,C20闭合,Y0得电输出。 在C20计数期间或是C20计数到达吸合期间。X0得电,则C20复位,其动合触点断开,Y0失电。

上面所讲是针对十六位计数器,三十二位计数器的工作状态又有所不同,其工作状态读者可参考编程手册。(许多网站免费提供FX系列PLC编程手册下载)

需要注意的是:FX系列PLC的计数器是对PLC的X,Y,M等触点的动作进行循环扫描并计数,所以触点的断开和接通的持续时间必须比PLC的扫描周期时间长。如X1触点在PLC运行程序期间(没有执行到输入扫描阶段)有一次OFF--ON的变化,而ON状态并没有保持到PLC进入输入刷新阶段,也就是说PLC并没有接收到X1的此次状态变化,那么C20就丢失了一次计数。

END的作用:

1、PLC不执行END指令以后的程序,所以可在任意地方插入用END指令来分阶段调试程序。

2、执行END指令时,PLC刷新监视定时器的数值

3、执行到END指令后,PLC开始进行通讯处理,也就是说您用触摸屏或是其他上位机对PLC的字元件或是位元件进行操作时,其数值或是状态的变化只要执行到END指令时,PLC才能接收到!

中断程序实例---三菱FX系列PLC应用指令

中断很好理解,就是中断当前正在执行的指令,执行要求快速反应的一段程序!本节以三菱FX系列PLC输入中断为例,简单介绍一下中断的应用。再谈谈主程序结束指令FEND

1、中断返回指令:IRET 2、禁止中断指令:DI 3、允许中断指令:EI

4、主程序结束指令:FEND

PLC平时是处于中断禁止状态,所以要想应用中断功能,则必须EI指令允许中断。 中断用指针必须在主程序结束指令FEND指令后作为标记编程,什么是中断指针呢?编程时可能会用到两个以上的中断,某一个中断信号到来执行那一段中断程序就需要用中断指针来明确。

三菱FX系列PLC可以允许六个输入中断,它是采用X0---X5的输入信号,中断通常的顺控程序,优先执行中断例行程序。

如果输入信号依次发生时,以先发生的为优先执行,如果同时到来,则以X0,X1,...X5的顺序优先执行。

虽然中断是采用硬件扫描输入的方式,但也需要执行时间。我们可以把输入采集理解为一个小电容的充放电过程,充放电是需要时间的,如果在充放电未结束时输入信号消失,

5

那么PLC就采集不到此次的输入信号。

三菱FX系列PLC要求的输入脉宽还是很低的: FX2N-------X0,X1:20μs以上 X2--X5: 50μs以上 FX1S,FX1N--X0,X1:10μs以上 X2--X5: 50μs以上

这个要求与S7-200比起来还是不错的,S7-200的最低要求也是200μs

中断脉宽要求越低,PLC响应中断的速度越快,精度越好!当然抗干扰也稍差了。 下图是一个简单的输入中断例子与输入中断指针点的编号

上图是一个X0的上升沿中断,所以中断指针为I1.也就是当XO闭合时,执行指针I1下面的程序.

1、中断程序请用常闭点M8000,不然会受到扫描时间影响 2、中断等程序是在主程序结束指令FEND指令后编写

3、REF是将运算结果立即输出指令,中断程序虽然是快速响应输入信号,但是其运算结果还是要等到FEND指令时才能真正输出,也就是说其运算的结果还会受到程序扫描时间影响,失去了中断的快速意义,所以要用REF指令将运算结果实现立即输出。

监视定时器WDT---三菱FX系列PLC应用指令

在顺控程序中,执行监视用定时器刷新的指令是监视定时器WDT指令

在PLC的运算周期(0--END及FEND指令执行时间)超过200ms时,可编程控制器CPU的出错指示灯点亮同时停止工作,因此在编程过程插入监视定时器WDT指令是有必要的。

通过改写D8000(监视定时器时间)的内容,可改变监视定时器的检出时间。如下:

LD M8002

MOV K300 D8000

WDT

将监视定时器时间改写为300ms 监视定时器有可能出错的原因:

1、扩展模拟量等特殊模块时,PLC运行时进行的缓冲存储器初始化时间会延长从而使扫描时间延迟。

2、在执行多条FROM/TO指令,或向多个缓冲存储区传送数据时,扫描时间也会延迟。 条件跳转CJ---三菱FX系列PLC应用指令

应用跳转指令可以缩短PLC的运算周期,应用跳转指令允许双线圈使用,双线圈的允

6

许令程序更加清晰明了

FX系列PLC的跳转指针规定如下: FX1S:P0----P63

FX1N,FX2N,FX2NC:P0---P127

*P63是向END跳转专用!并且不用标记P63。如果标记了P63,则PLC显示错误码6507,并停止工作.

求例程序如下:

如果X0闭合,则跳转到P8步执行(只要X0闭合,每个扫描周期都执行跳转) 如果X1闭合,则跳转到P9步执行(因是CJP指令,不管X1闭合多长时间,PLC只执行一次跳转)

程序中出现两次Y1、Y2,这样却不是双线圈现象,所以应用跳转指令都让我们更某个线圈的执行条件更加清晰明了。

比较指令CMP与区域比较指令ZCP---三菱FX系列PLC应用指令

比较指令与区域比较指令有16位指令与32位指令的区分,本节再介绍一下FX系列PLC32位寄存器的地址分配。

比较指令:

CMP:16位连续型比较指令 CMPP:16位脉冲型比较指令 DCMP:32位连续型比较指令 DCMPP:32位脉冲型比较指令 举例:

LD X000

CMP K100 D100 M0 当X0闭合时:

如果寄存器D100的值小于100时,则M0闭合 如果寄存器D100的值等于100时,则M1闭合

如果寄存器D100的值大于100时,则M2闭合

1、比较指令可以控制例中M0,M1,M2三个位元件的状态。

2、当X0断开时,M0,M1,M2仍保持在X0闭合时的运算结果,如果想清除CMP比较指令的运算结果则需要用复位指令。

区域比较指令:

ZCP:16位连续型区域比较指令 ZCPP:16位脉冲型区域比较指令

DZCP:32位连续型区域比较指令 DZCPP:32位脉冲型区域比较指令

7

举例:

LD X000

ZCP K100 K200 D100 M10 当X0闭合时:

如果寄存器D100的值小于100时,则M10闭合

如果寄存器D100的值大于100,小于200时,则M11闭合 如果寄存器D100的值大于200时,则M12闭合

1、区域比较指令可以控制例中M10,M11,M12三个位元件的状态。

2、当X0断开时,M10,M11,M12仍保持在X0闭合时的运算结果,如果想清除ZCP区域比较指令的运算结果则需要用复位指令。

FX系列PLC32位寄存器的地址分配:

32位寄存器是占用两个16位寄存器地址,比如说:D0用到32位指令里,则D0,D1这两个寄存器被占用。D0为数据低位,D1为数据高位。

如果23位寄存器D0的值为16,则D1的值为0,D0的值为16

如果23位寄存器D0的值为70000,则D1的值为1,D0的值为4464。

(4464的十六进制值为1170,1十六进制值仍为1。D0,D1组个在一起的十六进制值为11170,十六进制值11170的十进制值为70000)

*不用的PLC,32位寄存器的数据高位与低位分配是不一样的,比如西门子S7-200的32位寄存器则正好与FX系列PLC相反。

传送指令M0V---三菱FX系列PLC应用指令

传送指令MOV可以用来读取计数器、定时器的当前值,也可以用来改变计数器、定时器设定值.再谈谈如何理解MOV K1X0 K1Y1.

传送指令比较简单,如下:

LD X0000 MOV D0 D1 MOV T0 D100 MOV K100 D20

OUT T10 D20 当X0闭合时:

1、将D0的值传送给寄存器D1,寄存器D0的值不变。

2、当定时器T0的当前值传送给寄存器D100

3、设定定时器的延时时间为10秒(因为T20设定值的单位为100毫秒)

运算结果以32位输出的应用指令(MUL等)、32位数值或32位软件元件的高速计数器当前值等数据的传送,必须使用DMOV指令。如:

DMOV C235 D20

因为高速计数器C235为32位软元件。 传送指令MOV有一种很方便的应用,如下:

左边的顺控程序可以用右边的一条指令MOV K1X0 K1Y1来实现。

成批传送

8

BMOV---三菱FX系列PLC应用指令

将以源指定的软元件为开头的n点数据向以目标指定的软件元件为开头的n点软元件成批传送。通俗地讲就是一次传送多个寄存器的值给另一批寄存器。

BMOV:连续执行型成批传送指令

BMOVP:脉冲执行型成批传送指令

BMOV D10 D20 K4

这条指令的执行结果是将:

D10--->D20寄存器D10的值送给寄存器D20 D11--->D21寄存器D11的值送给寄存器D21 D12--->D22寄存器D12的值送给寄存器D22 D13--->D23寄存器D13的值送给寄存器D23

BMOV K1M10 K1Y10 K2

这条指令的执行结果是将M10---M17这八个位元件的状态传送给Y0---Y17。 M10--->Y10 M11--->Y11 M12--->Y12 M13--->Y13 M14--->Y14

M15--->Y15 M16--->Y16 M17--->Y17

触点比较指令---三菱FX系列PLC应用指令

触点比较指令比较简单,用于寄存器,计数器等与某个数值比较。根据比较条件来控制后段的指令。

LD= K200 D20 OUT Y1

当D20的值等于200时,Y1线圈得电。

LD M0

AND> D100 K300 OUT Y2

当M0闭合,且D100的值大于300时,Y2线圈得电。 LD M100

OR<> D30 K100 OUT Y3

当M100闭合或是D30的值不等于100时,Y3线圈得电。

位传送指令SMOV---三菱FX系列PLC应用指令

BCD码是用4位二进制码的组合表示十进制数,如8572的BCD码为:1000,0101,0111,0010

位传送指令SMOV的编程格式:

SMOV D10 K4 K2 D20 K3

*D10:传送源寄存器,可以是T,C,D或是位元件的组合如:K4X0 *K4:源寄存器D10传送的起始位,只能是十进制数或是十六进制数。

9

*K4:源寄存器D10传送的位数,只能是十进制数或是十六进制数。

*D10:传送目标寄存器

*K4:目标寄存器接收的起始位,只能是十进制数或是十六进制数。

*SMOV指令执行前是先把源寄存器的值转换为BCD码,再按照指令规定的位数转送给目标寄存器,目标寄存器接收后将BCD码转换为十进制

*源寄存器的值在传送后并不改变,目标寄存器没有接收数据的位状态并不改变。 假如:D10的值为200,D20的值为1

执行SMOV D10 K4 K2 D20 K3的结果为:D10的值为200,D20的值为21。 解释如下:

D10的值为200,转换为BCD为:0000 0010 0000 0000 D20的值为1,转换为BCD为:0000 0000 0000 0001

源寄存器D10从第4位开始的2位(0000 0010)传送给目标寄存器D20的第3位开始的2位

目标寄存器D20变为(BCD码):0000 0000 0010 0001,转换为十进制则是21。

如果将M8168置位,则执行SMOV时不转换成BCD码,直接按原位数转换 如D10=2000 D20=1

执行SMOV D10 K4 K2 D20 K3的结果为:D10的值为2000,D20的值为113。 D10=2000的十六进制为07D0 D20=1的十六进制为0001 传送结果D20的十六进制值为0071,其十进制为113。

SMOV指令可以应用在将不连续的输入点状态,组合在一起,方便运算。 加(减)法运算指令ADD(SUB)---三菱FX系列PLC应用指令

ADD,ADDP,SUB,SUBP:16位指令 DADD DADDP,DSUB,DSUBP:32位指令 加法指令的编程格式如下:

ADD D10 D20 D30

寄存器D10的值与寄存器D20的值相加,运算结果传递给D30. 减法指令的编程格式如下:

SUB D10 D20 D30

寄存器D10的值与寄存器D20的值相减,运算结果传递给D30. *D10,D20:可以是数值,寄存器,T,C或是位元件的组合如K4X0 ADDP D100 K1 D100

这样的用法也是可以的,运算结果就是每个扫描周期,D0的值都加1 相关标志:

零标志:M8020,加减运算结果为0时闭合,不为0时自动断开

借位标志:M8021,减法运算的结果小于-32768时闭合,大于-32768时自动断开 进体:M8022,加法运算结果发生进位时闭合。运算结果没有进位自动断开. FX系列PLC的逻辑与WAND,逻辑或WOR,逻辑异或WXOR指令

0与任何数相与结果为0,1与任何数相或结果为1,两个相同的数异或结果为0、两个不相同的数异或结果为1。

WAND,WANDP,WOR,WORP,WXOR,WXORP:16位指令

DAND,DANDP,DOR,DORP,DXOR,DXORP:32位指令(*32位指令没有“W”) 逻辑与,逻辑或,逻辑异或的编程格式如下

WAND D10 D20 D30 (D10和D20相与,运算结果传递给D30) WOR D10 D20 D30 (D10和D20相或,运算结果传递给D30) WXOR D10 D20 D30 (D10和D20相异或,运算结果传递给D30)

10

源寄存器D10,D20:可以为数值,寄存器,T,C或是位元件组合如K4X0 目标寄存器D10,D20:可以为寄存器,T,C或是位元件组合如K4M0,K4Y0(不允许KnX)

实例:

D10=1 0000 0000 0000 0001 D20=101 0000 0000 0110 0101

WAND D10 D20 D30

D30=1 0000 0000 0000 0001 WOR D10 D20 D30

D30=101 0000 0000 0110 0101 WXOR D10 D20 D30

D30=100 0000 0000 0110 0100 求补指令NEG---三菱FX系列PLC应用指令

求补:将各位先取反(0--->1 1--->0),然后再加1。运用这个指令可以得到与负数相对应的绝对值。

NEG,NGEP:16位指令 DNEG,DNGEP:32位指令 求补指令编程格式如下:

NEG D10

*D10:可以为寄存器,T,C或是位元件的组合K4Y0,K4M0,K4S0(不允许KnX) 实例:

假设D10为-2 1111 1111 1111 1110

NEG D10

先取反结果为:0000 0000 0000 0001

再加1结果为: 0000 0000 0000 0010(D10=2) *本指令只适用于FX2N,FX2NC。

位右移SFTR与位左移SFTL指令---三菱FX系列PLC应用指令

还是建议用脉冲型指令,除非您的程序要求每次扫描都进行一次右移或是左移。 SFTR,SFTL:连续执行型指令 SFTRP,SFTLP:脉冲执行型指令 位右移SFTR与位左移SFTL指令编程方式如下:

SFTRP M0 M20 K16 K4 SFTLP M0 M20 K16 K4

*M0:源位元件起始地址,只能是位元件(X,Y,M,S) *M20:目标位元件起始地址,只能是位元件(Y,M,S)

*K16:目标位元件个数,只能是数值 *K4:移动的个数,只能是数值 实例:

假设M0=ON,M1=ON,M2=OFF,M3=ON M20---M23都为ON,M24---M27都为OFF,M28---M31都为ON,M32---M35都为OFF

SFTRP M0 M20 K16 K4(M20---M35以四个位为单位向右移动,M20---M23溢出) 执行的结果为:

M20---M23都为OFF,M24---M27都为ON,M28---M31都为OFF,M32=ON(等于M0),M33=ON(等于M1),M34=OFF(等于M2),M35=ON(等于M3)

11

SFTLP M0 M20 K16 K4(M20---M35以四个位为单位向左移动,M32---M35溢出) 执行的结果为:

M20=ON(等于M0),M21=ON(等于M1),M22=OFF(等于M2),M23=ON(等于M3),M24---M27都为ON,M28---M31都为OFF,M32---M35都为ON 字右移WSFR与字左移WSFL指令---三菱FX系列PLC应用指令 请慎重使用连续型字右移和字左移指令,脉冲型指令:当驱动输入在ON时只执行一次移动!WSFR,WSFL:连续执行型指令 WSFRP,WSFLP:脉冲执行型指令

字右移与字左移指令编程方式如下: WSFRP D10 D20 K16 K4

WSFLP D10 D20 K16 K4

*D10:源寄存器起始地址,可以是寄存器,T,C或是位元件组合,如K4X0 *D20:目标寄存器起始地址,可以是寄存器,T,C或是位元件组合,如K4Y0(不允许输入X组合)

*K16:从D20起始地址开始参预移动的个数,只能是数值。

*K4:移动的个数,每次移动的个数,只能是数值。 实例:

LD M0

WSFRP D20 D30 K4 K2

假设指令执行前 D20=4,D21=5

D30=10 D31=11 D32=12 D33=13

执行一次字右移WSFRP指令的结果是: D20,D21的值不变。

D30=原D32 D31=原D33 D32=D20 D33=D21

(D30=12 D31=13 D32=4 D33=5) 特例:

移位写入SFWR与移位读出SFRD指令---三菱FX系列PLC应用指令

移位写入SFWR与移位读出SFRD指令可应用于货物编号存放与输出,并记录货物存放与输出的个数,先进先出.

SFWR,SFRD:连续执行型移位写入与移位读出指令

SFWRP,SFRDP:脉冲执行型移位写入与移位读出指令

移位写入SFWR与移位读出SFRD指令编程格式如下:

SFWR D10 D20 K10 SFRD D10 D20 K10

*D10:准备写入或存放读出的数据寄存器,可以是D、T、C、数值或是位元件组合如K4X0

*D20:写入或读出的目标寄存器组起始地址,可以是D、T、C或是位元件组合如K4Y0(不允许位元件X组合)

*K10:只能是数值

实例:

移位写入(假设D10初始值为0,D20--D24的初始值为0) LD M0

12

ADD D10 K2 D10

SFWRP D10 D20 K5

当M0第一次从OFF-->ON时,

D10-->D21 结果为:D10=2 D20=1 D21=2 D22=0 D23=0 D24=0 当M0第二次从OFF-->ON时,

D10-->D22 结果为:D10=4 D20=2 D21=2 D22=4 D23=0 D24=0 当M0第三次从OFF-->ON时,

D10-->D23 结果为:D10=6 D20=3 D21=2 D22=4 D23=6 D24=0 当M0第四次从OFF-->ON时,

D10-->D24 结果为:D10=8 D20=4 D21=2 D22=4 D23=6 D24=8 *D20:每次指令执行时加1,记录存放的个数。

移位读出

假设初始值为:D30=4 D31=2 D32=4 D33=6 D34=8

LD M0

SFRDP D30 D20 K5

当M0第一次从OFF-->ON时,

D31-->D20 结果为:D20=2 D30=3 D31=4 D32=6 D33=8 D34=8 当M0第二次从OFF-->ON时,

D31-->D20 结果为:D20=4 D30=2 D31=6 D32=8 D33=8 D34=8 当M0第三次从OFF-->ON时,

D31-->D20 结果为:D20=6 D30=1 D31=8 D32=8 D33=8 D34=8 当M0第四次从OFF-->ON时,

D31-->D20 结果为:D20=8 D30=0 D31=8 D32=8 D33=8 D34=8 *D30:每次指令执行时减1,记录余下的存放个数。

*注意D30存放的数据要与要移动的数据(K4)配合好,小于K4(K5-1)则少移动数据,大于K4(K5-1)呢?如D30=10

当M0第五次从OFF-->ON时,

D31-->D20 结果为:D20=8 D30=5 D31=8 D32=8 D33=8 D34=8 .....

当M0第十次从OFF-->ON时,(如 SFRDP D30 D20 K10)

D31-->D20 结果为:D20=8 D30=0 D31=8 D32=8 D33=8 D34=8 结果是D20,D31---D34的值永远不变了。

全部复位ZRST指令---三菱FX系列PLC应用指令

PLC程序经常要复位很多位元件,重复使用RST指令是很烦琐的,如果养成一个良好的习惯:将使用的位元件地址连续编制,就可以使用全部复位指令ZRST,一次性复位很多位元件

ZRST:连续执行型全部复位指令 ZRSTP:脉冲执行型全部复位指令 全部复位指令ZRST的编程格式:

ZRST M500 M599

*M500:复位元件的起始地址,可以是T,C,D或位元件组合如K4M0(只能是Y,M,S)

*M599:复位元件的终止地址,可以是T,C,D或位元件组合如K4M0(只能是Y,M,S)

13

注意:

1、M500,M599这两个操作数必须指定为同一种类型元件, ZRST M500 D300是错误的。

2、起始地址(M500)要小于终止地址(M599),如果起始地址大于终止地址,则只对起始地址进行复位。

ZRST M10 M0 执行此指令则只复位M10

ZRST D10 D20

将D10----D20的十一个寄存器全部清零 也可以使用

比较指令DECO---三菱FX系列PLC应用指令

比较指令DECO可用于将寄存器(如D100)的值以相应编号的位元件转为闭合状态。如:DECO D100 M0 K4(D100=14,令M14闭合。)

DECO:连续执行型比较指令 DECOP:脉冲执行型比较指令

比较指令DECO的编程方式:

DECO X0 D0 K4

*X0:源地址,可以是数值,T,C,D或是位元件X,Y,M,S *D0:目标地址,可以是T,C,D或是位元件Y,M,S *K4:位数,只能是数值

比较指令DECO工作过程解释:

DECO M0 D0 n

从M0开始的n个位元件相加,如n=3,则是M0,M1,M2参预计算。 假设M0=ON,M1=OFF,M2=ON, M2 M1 M0 1 0 1

则计算结果为5。

将目标地址的5(上面的计算结果)位置为1,其他位置0

D0=32(b0位的数值为2的0次方,b1位的数值为2的1次方,b5位的数值为2的5次方)

b15.....b6 b5 b4 b3 b2 b1 b0 0.......0 1 0 0 0 0 0 则D0=32

注:目标地址为位元件时(Y,M,S),n<=8

目标地址为字元件时(T,C,D),n<=4

目标地址为位元件时,DECO指令占用的位数为2的n次方个位数 如DECO D10 M0 K6

2的6次方为64,故此指令占用M0-----M63

目标地址为字元件时,因n<=4,故占用位数为16(2的4次方)个,一个字就够了。

下图为一些例子,读者可以分析图中的运算结果,根本搞懂比较指令DECO

14

编码指令ENCO---三菱FX系列PLC应用指令

编码指令ENCO与比较指令DECO是相反指令,理解了比较DECO指令就不难理解编码指令ENCO

先请看一下比较指令DECO:http://www.gk528.com/gplc/2008/10/20081023210117.asp ENCO:连续执行型编码指令 ENCOP:脉冲执行型编码指令 编码指令ENCO的编程格式:

ENCO M10 D10 n

*M10:源地址,可以是T,C,D或是位元件(X,Y,M,S) *D10:目标地址,可以是T,C,D *n:位数,只能是数值如K3或是H2 注:

源地址内多个位是1时忽略低位侧,只计算最高位 当源地址为位元件时,n<=8 当源地址为字元件时,n<=4

n的含义:源地址从左边起的2的n次方个位参预计算 解释如下:

1、源地址内多个位是1时忽略低位侧,只计算最高位 ENCO D10 D30 K4 如:D10=515

b15......b10 b9 b8.....b2 b1 b0

0........0 1 0......0 1 1

指令只计算高位b9,运算结果是:D30=9 2、当源地址为位元件时,n<=8

ENCO M0 D30 K7

只指令是M0----M127(2的7次方等于128)参预运算。 如M127........M120 M119 M118........M1 M0 0...........0 1 0.........0 1

指令只计算高位M119,运算结果是:D30=119

15

3、当源地址为字元件时,n<=4

编码指令是16位指令,16位寄存器当然就是不能超过2的4次方(16) 实例看第一个。

4、n的含义:源地址从左边起的2的n次方个位参预计算

如第一个例子,n=4,所以是D10的16个位都参预计算。如果b14=1,那么第一个 例子的计算结果是D30=14。

如第二个例子,n=7,所以是128个位(M0---M127)参预计算,如果M127=1,那么第二个例子的计算结果是D30=127

ON位数指令SUM---三菱FX系列PLC应用指令

将源地址中的为1的位的个数存入目标地址中,有16位和32位指令区别 SUM,SUMP:16位的连续型和脉冲型ON位数指令 DSUM,DSUMP:32位的连续型和脉冲型ON位数指令

ON位数指令SUM编程格式: SUM D0 D1

*D0:源地址,可以是D,T,C,数值或是位元件组合如K4X0

*D1:目标地址,可以是D,T,C或是位元件组合如K4M0(X除外)

实例: LD M0

SUMP D0 D1

假设指令执行前D0=23

b15....b5 b4 b3 b2 b1 b0 0......0 1 0 1 1 1 指令结束后D1的值为4

同样,SUM K23 D1的执行结果D1=4

注,如果用32位指令如DSUMP D0 D2,则D2存入D0为1的个数,D3为0 相关标志位:M8020

当源地址中为1的个数为0时,M8020置位闭合,源地址中为1的个数不为0时,M8020自动复位。

ON位数判断指令BON---三菱FX系列PLC应用指令

ON位数判断指令BON的作用:判断位数指定的源地址位数状态置/复位相应的位元件 BON,BONP:16位连续执行或是脉冲执行指令 DBON,DBONP:32位连续执行或是脉冲执行指令 ON位数判断指令BON编程格式:

BON D0 M0 n

*D0:源地址,可以是T,D,C,数值或位元件组合如K4X0 *M0:目标地址,只能是Y,M,S

*n:指定判断的相应位数,只能是数值。16位指令是范围是0--15,32位指令的范围是0--31

实例: LD M0

BONP D0 Y0 K4 假设D0=31

b15......b5 b4 b3 b2 b1 b0

16

0.......0 1 1 1 1 1

因为b4位为1,所以执行结果Y0置位闭合。 注:M0闭合时,当b4变为0时Y0复位。如果在b4保持为1的情况下,M0断开,Y0保持置位状态。

三菱PLC比较置位指令DHSCS和复位指令DHSCR(高速计数器用)

FXPLC比较置位指令DHSCS和复位指令DHSCR是对高速计数器的计数值进行比较,并将比较结果实现立即输出,不受扫描周期的影响。

注:比较置位指令DHSCS和复位指令DHSCR只有32位连续执行型指令,其编程格式如下:

LD M8000

DHSCS K100 C255 Y0 DHSCR K100 C255 Y0

*K100,要进行比较的数值,可以是T,C,D,数值或是位元件的组合如K4X0 *C255,要参预比较的高速计数器地址编号,范围C235---C255

*Y0,指令运算结果要控制的位元件,可以是Y,M,S 解释:

当高速计数器C255的当前计数值变化到100时,Y0置位闭合(复位断开),并立即实现输出。

注意到上面的变化到是用的红字,是重点提醒。如果您用MOV指令人为到使用C255与第一操作数K100相等,并不能置位(复位)Y0。

比较:

LD M8000

OUT C255 K100 LD C255 OUT Y10

LD M8000

DHSCS K100 C255 Y10

上面两段程序工作过程都是当高速计数器C255的计数值等于100时,Y10闭合。 但第一个程序要受到PLC扫描周期的影响。 DHSCS与DHSCR实用到中断编程方式:

DHSCS K100 C255 I010 DHSCR K100 C255 I010 其中I0x0:x的范围是1--6

FXPLC区间比较指令DHSZ(高速计数器用)

区间比较指令DHSZ与区域比较指令ZCP的不同点就在于,ZCP指令的输出受程序扫描周期影响,而DHSZ则不受扫描周期的影响实现立即输出。

区间比较指令DHSZ只有32位连续执行型指令,其编程格式为:

DHSZ K100 K200 C255 Y0

*K100:参预比较的下限值,可以是T,C,D,数值或是位元件的组合如K4X10 *K200:参预比较的上限值,可以是T,C,D,数值或是位元件的组合如K4X10 *C255:参预比较的高速计数器地址编号,范围:C235--C255 *Y0:比较的输出结果起始地址编号,可以是Y,M,S 解释:

C255当前值<下限值 Y0=ON

17

下限值<=C255当前值<=上限值 Y1=ON

上限值 注意:上述的解释只是在高速计数器外接输入端子发生OFF--->ON变化时才生效,在外部输入端子没有脉冲输入时,即使用MOV指令改变C255的当前值,也不会令Y0,Y1或Y2状态改变。

因此为了在C255的当前值小于下限值时Y0闭合可以采用下述编程方式:

LD M8000 OUT C255 K10000

LD M0

DZCPP K1000 K2000 C255 Y0 DHSZ K1000 K2000 C255 Y0

三菱PLC特殊定时器STMR指令

可利用特殊定时器STMR指令形成延时定时器,单触发定时器,闪烁定时器 特殊定时器STMR指令只有16位连续执行型指令,其编程方式: STMR T0 K100 M0

*T0:只能用T,范围是T0--T199的100毫秒定时器 *K100:只能是数值,范围1---32767 *M0:可以是Y,M,S 其动作原理图如下:

18

本文来源:https://www.bwwdw.com/article/kw5v.html

Top