S7-1200 PLC基本指令之脉冲类指令
S7-1200的位逻辑指令,这也是我们在学习PLC编程时最先接触到的指令,最基本的指令。
位逻辑运算指令是对二进制位进行操作的指令,数据类型是BOOL型,这其中又包括了触点指令与赋值指令、置位与复位指令、沿脉冲检测指令这三个部分。
在前面两篇文章中,我们介绍了触点与赋值指令、置位复位指令,那么这篇文章就介绍一下S7-1200 PLC的沿脉冲类指令。
什么是沿脉冲指令呢?
沿脉冲是指程序执行中只接通一个扫描周期时间,也可以理解为是一瞬间的很短的一个时间。我们的沿指令分为上升沿和下降沿,当信号从0变成1的时候称为上升沿,当信号从1变成0的时候称为下降沿。
S7-1200 PLC提供了四种沿脉冲指令,包括扫描操作数信号边沿指令、在信号边沿置位操作数指令、扫描RLO的信号边沿指令,以及检测信号边沿指令。下面我们就分别来学习一下这些指令吧。
一、扫描操作数信号边沿指令
触点中间带P的指令是扫描操作数上升沿指令,触点中间带N的指令是扫描操作数下降沿指令。我们看一下程序段1的程序,当检测到I0.0从0变为1时,那么Q0.0就置位为1,那指令下方的M0.0是什么意思呢?
如果有用过S7-200/200 SMART PLC的话,都知道在这些PLC里面的沿指令上方和下方是没有操作数的,这也是我们S7-200/200 SMART PLC与S7-1200 PLC的区别,大家要特别注意了。
其实指令下方的M0.0是边沿存储位,是用来存储上一次扫描循环时I0.0的状态的,PLC会通过对I0.0的当前状态和上一次循环状态的结果进行对比,判断是否有变化。
如果上一次循环状态为0,也就是M0.0为0的话,I0.0的当前状态为1,就说明产生了上升沿信号,这个触点就会接通,就可以置位Q0.0。同理,对于下降沿指令,如果上一次循环状态结果为1,也就是M0.1为1的话,I0.1的当前状态为0,就说明产生了下降沿。
二、在信号边沿置位操作数的指令
线圈指令中间带P的指令是在信号上升沿置位操作数指令,线圈指令中间带N的指令是在信号下降沿置位操作数指令。
同样的,这两个指令的下方也是有操作数的,比如下图程序中的M0.0和M0.1都是用来存储上一次的逻辑运算结果的。
如果上一次的逻辑运算结果是0,也就是M0.0为0的话,当I0.0从0变成1的时候(I0.3常闭为1),说明产生了上升沿,M10.0会接通一个扫描周期时间,同时将Q0.0置为1。这里需要注意的是,Q0.0的为1为0的状态是受前面的逻辑运算结果影响的,如果前面的逻辑运算结果为0,那么Q0.0就断开,如果前面的逻辑运算结果为1,那么Q0.0就接通。
同理,在信号下降沿置位操作数指令也是一样的,这里就不再赘述了。
三、扫描RLO的信号边沿指令
P_TRIG是扫描RLO的信号上升沿指令,N_TRIG是扫描RLO的信号下降沿指令。同样的,这两个指令的下方也是有操作数的,比如下图程序中的M0.0和M0.1都是用来存储上一次的逻辑运算结果的。
我们可以看到P_TRIG和N_TRIG指令还有一个管脚叫CLK,CLK是逻辑运算结果的输入端。
我们看下图的程序,如果前一个扫描周期的逻辑运算结果为0,也就是M0.0为0的话,当I0.0从0变成1的时候(I0.3常闭为1),说明产生了上升沿,M10.0会接通一个扫描周期时间,同时将Q0.0置位为1。
当扫描到前一个扫描周期的逻辑运算结果为1,也就是M0.1为1的话,当I0.3接通,常闭点断开,说明产生了下降沿,M0.1会接通一个扫描周期时间,同时将Q0.0复位为0。
四、检测信号边沿指令
R_TRIG是检测信号上升沿指令,F_TRIG是检测信号下降沿指令,这两个指令其实是FB块,我们在使用的时候是需要给它分配背景DB块的,调用的时候,也会自动弹出下图这个页面。
我们看下图的程序,CLK是逻辑运算结果的输入端,R_TRIG指令的上一次逻辑运算结果是存储在背景DB块的“Stat_Bit”这个变量中的。
如果前一个扫描周期的逻辑运算结果为0,也就是Stat_Bit为0的话,当前CLK输入端的逻辑运算结果为1时,那么Q管脚的输出M10.0会输出为1一个扫描周期的时间。
同理,F_TRIG检测信号下降沿指令也是一样的,这里就不再赘述了。
以上就是S7-1200 PLC基本指令中的脉冲类指令介绍,我们跟S7-200/200 SMART PLC对比,会发现S7-1200 PLC的脉冲类指令多了好几个,使用上也会相对复杂一些,不同的地方我们要重点分析和学习哦。
通过本文的讲解,不知道你学会了吗?
(技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)
⇩领取资料
脉冲输出指令,三菱入门必学知识点
相信大家对脉冲都有所耳闻,那么,脉冲是什么?说到脉冲,我们很容易就联想到人的脉搏。心跳有快有慢,例如看到心动的美人,心跳可能飙升到120。而脉冲,简单来说,就是类似心电图上脉搏跳动的电压或电流波形。
能产生脉冲信号的器件或设备有很多,而PLC更是个中翘楚,它可以产生不同频率、不同周期、甚至不同脉宽的脉冲信号。而这些信号的输出离不开脉冲输出指令的驱动。
在分享脉冲输出指令之前,我们先来了解一下脉冲输出的波形吧!
脉冲输出波形
如下图22-1所示为脉冲输出信号的波形及相关变量。脉冲输出是一个连续的周期性信号,其中t为每个脉冲导通时间,即脉冲宽度;T为脉冲周期;频率f为周期的倒数,含义是每秒产生的脉冲个数,所以1/T中的分子1其实是指1秒钟,而1/T就是指1秒含有多少个周期;占空比是指脉宽占周期的比例。
图22-1
PLC的高速脉冲输出信号按脉宽分有两种,一种是占空比为50%的固定脉宽的脉冲串,另一种是脉宽可调的脉冲串。显然,D=50%的脉冲信号,其ON导通时间(t)与OFF关闭时间相等,而脉宽可调,其实就是所谓的PWM。本文所讲述的脉冲输出指的是第一种。
另外,脉冲输出信号还有一个变量就是平均值,PLC输出的脉冲是电压波,其平均值与脉冲高电平、占空比有关,如下图22-2所示。
图22-2
PLC的脉冲输出一般用于控制步进电机或伺服电机的运转,在FX 2N中,其高速脉冲输出口规定只能为Y0、Y1,这些高速脉冲的输出由指令控制,然后直接控制驱动器,进而控制电机的运行,如下图所示,最终实现位置的控制。
另外,想要实现高速脉冲输出,就必须得选择晶体管型输出的PLC型号。而且PLC的脉冲输出是以中断方式输出的,不受扫描周期的影响,如相关指令的驱动条件断开,其脉冲的输出也会立即停止,直到驱动条件再次接通。
其实,PLC的脉冲输出与电机的定位控制还有其他方式,在这里我也就不展开讲解啦,大家感兴趣的自行搜索相关资料或直接观看课程视频哟。
了解了脉冲输出信号后,我们接下来继续看脉冲输出指令。
脉冲输出指令PLSY
几个脉冲输出指令中最简单的就是PLSY,其编程手册截图如下图22-3所示。PLSY指令可用于16位,也可用于32位,具体可根据脉冲数进行选择。这里要注意的是,该指令没有脉冲执行型。
图22-3
PLSY指令的梯形图形式亦如图22-3所示,其操作数有3个,源址S1、S2分别为输出脉冲频率或其存储地址、输出脉冲个数或其存储地址。终址D为指定的脉冲输出口,只能为Y0或Y1。当驱动条件成立时,执行PLSY指令,PLC从输出口D输出一个频率为S1、个数为S2,占空比为50%的高速脉冲。例如图22-3中的例子,当X0接通,PLC的Y0输出口输出频率为1000Hz、个数存储在寄存器D0中的脉冲波。
PLSY指令比较简单,三有一点值得注意的是,若脉冲个数为K0,不是指输出脉冲个数为0(S2=0),而是指脉冲的连续输出,即驱动条件接通,脉冲就一直输出,不计个数,直到驱动条件断开,如执行指令PLSY K1000 K0 Y1。
在PLC 2N中,脉冲频率和个数都是有相关规定的,PLSY指令所能指定的脉冲频率为2~20000Hz,脉冲个数用于16位时为1~32767,用于32位时为1~2147483647。
带加减速的脉冲输出指令PLSR
PLSR指令和PLSY指令的最大区别在于是否带加减速,所谓“加减速”,其实就是频率的加减,因为频率代表的就是速度的快慢,频率越大,脉冲周期就越短,每秒输出的脉冲个数就越多,控制电机的转速就越快。
PLSR指令的编程手册截图和梯形图形式如下图2-4所示。PLSR的操作数有4个,比PLSY多出一个S3,为加减速时间,单位是ms;而S1为脉冲的最高频率;S2为总的脉冲个数;D依然是输出口地址,只能为Y0或Y1。
图22-4
S1输出频率与频率个数的规定,于PLSR指令而言是10~20000Hz,而且设定值必须是10的整数倍,例如500Hz、1000Hz等,而不能是501Hz、1001Hz等。总输出脉冲数用于16位时为110~32767,用于32位时为110~2147483647,若(S2)<110,脉冲将不能正常输出。以图22-4为例,当驱动条件X10接通时,PLC将在Y0输出口输出最高频率为500Hz、脉冲总数为(D0)、加减速时间为3600ms、占空比为50%的脉冲串。
那么,S1的设定为什么是10的整数倍呢?这是因为在加减速期间,指令将频率设定值分为10个阶梯加减,每个阶梯对应频率增量为1/10×(S1)Hz,所以S1的值为10的整数倍才能够被10整除,如图22-5所示。
图22-5
从图22-5可以看到,加速时间和减速时间是相等的,均是由S3设定,而S3的设定并不是随意的,它也有相关的规定,如下图22-6所示。
图22-6
既然有了PLSY指令,为什么还要开发PLSR指令呢?也就是说,为什么要增加“加减速”这个功能?这就和步进电机的工作原理有关了。步进电机是将脉冲信号转变为角位移或线位移的开环控制元步进电机件,若PLC的输出脉冲很大,直接以该大频率脉冲驱动电机,电机在起动之初,其转速为0,不能一下子达到大的转速,从而造成失步现象。同理,电机在停转的时候若速度很快,也不能一下子就停止,很可能会造成过冲现象。所以,增加加减速时间可以让电机避免失步和过冲现象。
可变速脉冲输出指令PLSV
图22-7
PLSV指令的编程手册截图如上图22-7所示,有3个操作数,源址S为输出脉冲频率或其存储地址,用于16位时的取值范围为1~32767Hz和-1~-32767Hz,用于32位时的取值范围为1~100000Hz和-1~-100000Hz。D1为脉冲输出口,仍然是只能为Y0或Y1。D2为旋转方向信号输出地址,当D2=ON时为正转,D2=OFF时为反转。
以图22-7的梯形图为例,当驱动条件M0接通,PLC将在Y0输出口输出频率为10000Hz的脉冲串,若Y4=ON,表示输出频率为正值,若Y4=OFF,表示输出频率为负值。
和PLSY、PLSR指令不同,PLSV指令不能设定脉冲个数,所以它不能用于定位。虽然PLSV指令不能用于精确定位,但它在脉冲输出的过程中,可以自由改变输出脉冲的频率(S),用于电机控制时,就可以随时控制电机的转速和转向。
这里要注意的一点是,若脉冲频率S的值为0,脉冲输出将停止,而且是直接停止,而不是像PLSR那样有减速时间。
PLSY指令、PLSR指令或者是PLSV指令都是脉冲输出指令,它们的执行会涉及到几个特殊辅助继电器和特殊数据寄存器。
相关特殊软元件
如下图22-8所示为相关特殊辅助继电器列表。
图22-8
其中M8147、M8148为脉冲输出监控,若Y0或Y1有脉冲输出,对应辅助继电器将为ON。而M8145、M8146为脉冲输出停止,如果指令的驱动条件不能断开,就可以通过M8145、M8146来停止Y0或Y1的脉冲输出。M8029就不用我多说了,表格已经写明。
图22-9
上图22-9为相关特殊数据寄存器列表。各个数据寄存器的值不会自动更改,所以我们可以用DMOV指令进行清零。
PLSY指令、PLSR指令和PLSV指令的脉冲输出口都是Y0或Y1,所以,三个指令显然不可能同时使用,只能三选二或其中一个指令用两次,并在Y0和Y1输出口得到各自独立的脉冲输出。
以上就是这次所分享的学习内容了,内容比较多,虽然没有结合实际应用进行讲解,但总的来说还是比较简单,希望大家都能全部理解哟。
(来源:技成培训网原创,作者:杨思慧,未经授权不得转载,违者必究!)
相关问答
plc编程一秒的脉冲怎么编?
一秒的脉冲周期,需要编写定时器来生成脉冲信号。在PLC编程中,通常使用计数器和定时器来实现定时控制和生成脉冲信号。对于一秒的脉冲信号,可以编写一个计数器...
plc程序如何产生脉冲-懂得
下面是产生1秒的脉冲信号的方法:方法1:采用硬件组态中CPU属性下的MemoryClock,这样你会得到一个系统提供的定时脉冲.如果你设置的为MB100那么在程...
plc接收脉冲程序怎么写?
作为一名电气工程师很高兴能够回答您的问题,关于您的问题PLC接收脉冲的程序怎么写?那么我们来分析一下接收脉冲的来自哪些元器件以及前期准备哪些工作;最常用...
西门子SMARTPLC脉冲指令怎么写?
可以用向导来写或者PLS指令编程写龙丰自动化用脉动指令,写之前先要对脉冲参数进行设置可以用向导来写或者PLS指令编程写龙丰自动化用脉动指令,写之前先要对...
plc脉冲量输入编程实例?
控制脉冲紧急停止或者正常停止的程序脉冲输出的是Q0.0SM0.1触发脉冲使用包络0控制脉冲紧急停止或者正常停止的程序脉冲输出的是Q0.0SM0.1触发脉冲使用...
西门子PLC怎么编写脉冲程序?
西门子PLC编写脉冲程序的具体步骤取决于所使用的具体型号和软件版本。一般来说,您需要首先设置输入和输出模块,然后在PLC编程软件中创建一个新的脉冲程序。接...
西门子PLC肿么编写脉冲程序-ZOL问答
Y=X-6400/25600*100,你的程序就按照这条公式编程就行了。有用(0)回复baidu_chuiguoyan一般直接加上或者减去一个数即可,如果是个常数,直接在plc里编程。如.....
PLC脉冲如何输入?
回答如下:编程步骤如下:1.在程序中声明需要使用的输入点,例如I0.0表示使用I0口的0号输入点。2.在程序中设置需要使用的输入点的工作模式为脉冲输入模式,...
三菱PLCFXCPU脉冲发送编程办法?
输出指令步骤分析如下:1、在左母线右侧双击鼠标输入上升沿控制软元件X0,当X0接通时执行脉冲指令。2、在X0触点后输入前沿脉冲“PLSM0,前沿脉冲指当X0从关...
plc程序如何产生脉冲-9RiPV7Znrm的回答-懂得
用脉冲输出指令,设定好频率,脉冲个数,脉冲输出口,就可以了前提是你的PLC支持脉冲指令才行下面是产生1秒的脉冲信号的方法:方法1:采用硬件组态中CP...