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的脉冲类指令多了好几个,使用上也会相对复杂一些,不同的地方我们要重点分析和学习哦。
通过本文的讲解,不知道你学会了吗?
(技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)
⇩领取资料
西门子脉冲输出的几种方式有什么区别?如何应用?理解全面的人不多
序: PTO和PMW的在应用上的区别为:
PTO为脉冲控制模式,而PWM为模拟量控制模式。
当设备对位置有精确要求时选用PTO,而当设备对转速和力矩有精确要求时选用PWM。
根据设备的需要选择伺服设备的类型,再选择用哪种控制方式。
PWM是通过高速计数器将输入信号模拟为恒定的电压输出,通过控制电压的变化来控制电机转速的变化。
一 西门子PLC高速脉冲输出的几个概念
1 高速脉冲输出的形式
A 高速脉冲串输出 PTO : ( Pulse Train Output )
输出指定数量,占空比为50% 的方波脉冲串。
B 宽度可调脉冲输出 PWM : ( Pulse Width Modulation )
输出数量不限,占空比可调的脉冲串信号。
2 高速脉冲输出端子
西门子S7-200CPU可以提供 2 个高速脉冲发生器
● PTO/PWM 发生器0 的输出端子是 Q0.0
● PTO/PWM 发生器1 的输出端子是 Q0.1
3 高速脉冲输出优先权
有PTO/PWM 输出时,CPU 把输出端子Q0.0、Q0.1 控制权交给 PTO/PWM 发生器,禁止普通逻辑输出。
输出映像寄存器 Q 的状态会影响PTO/PWM波形的起始电平, 高速脉冲输出前要先把Q0.0、 Q0.1的状态清零。
4 高速脉冲输出适用机型
输出高频脉冲信号时,应选用晶体管输出型 PLC。
二 高速脉冲输出指令及特殊寄存器
1 高速脉冲输出指令( Pulse )
指令功能:EN 有一个上升沿时,激活PLS,控制PLC从 Q0.0 或 Q0.1 输出高速脉冲。
PLS指令可以输出:
※ 高速脉冲串 PTO
※ 宽度可调的脉冲信号 PWM
数据类型:
※ 操作数Q0.X:X必须是常数 0 或 1。
※ EN:只接通一个扫描周期的短信号。
2 特殊寄存器
每个 PTO/PWM 都有一组配套参数:
● 1个 8位的控制字节
● 1个 8位的状态字节
● 1个 16位的周期值
● 1个 16位的脉宽值
● 1个 32位的脉冲数量
对于多段 PTO,还有
● 1个 8位的段字节
● 1个 16位包络表起始地址
这些参数存放在系统指定的特殊标志寄存器中
状态字节
PTO 方式下运行时,系统根据运行状态使相应位置位。
控制字节
通过设置字节中各控制位,来定义高速脉冲输出的特性.
控制字节中各控制位的功能
三 高速脉冲串输出PTO
特点:高速脉冲串输出(PTO)方式下,只能改变脉冲的周期值和脉冲数。
1 周期和脉冲数
●周期:单位:μs或ms。周期值为16位无符号整数。变化范围:50~65535 μs或 2~65535 ms。
脉冲数:是一个32位的无符号整数,取值范围:1~4294967295。
2 高速脉冲串输出中断
PTO 方式下,当输出完指定数量的脉冲后,产生高速脉冲串输出中断。
● PTO/PWM 0 的中断事件号是19
● PTO/PWM 1 的中断事件号是20
高速脉冲串输出时,CPU自动将PTO空闲位SM66.7(或SM76.7)置1。
3 PTO的种类
PTO方式下,要输出多段脉冲串时,允许脉冲串排队。PTO输出多段脉冲的方式有两种:
●单段PTO:定义一个脉冲串,输出一个脉冲串 (特性参数通过特殊寄存器分别定义) 。
●多段PTO:集中定义多个脉冲串,按顺序输出多个脉冲串(特性参数通过包络表集中定义)
单段PTO 实现的方法
用指定的特殊标志寄存器定义脉冲串特性参数(每次定义一个脉冲串)。一个脉冲串输出完成后,产生中断。在中断服务程序中再为下一个脉冲串更新参数,输出下一个脉冲串。
优点: 各脉冲段可以采用不同的时间基准。◎缺点:单段PTO输出多段高速脉冲串时,编程复杂,且参数设置不当会造成脉冲串之间的不平滑转换。
多段PTO 操作
多段PTO:集中定义多个脉冲串,并把各段脉冲串的特性参数按照规定的格式写入变量存储区用户指定的缓冲区中--称为包络表
包络表说明:
● 包络表由包络段数和各段构成。
● 第一个字节为需要输出的脉冲串总段数,范围:1~255 ;
● 定义一段脉冲串的特性参数需要8个字节
※ 2个字节存放脉冲串的起始周期值
※ 2个字节定义脉冲串的周期增量
※ 4个字节存放该段脉冲串的脉冲数
包络表中的周期单位可以为 ms 或 μs,
但表中所有周期单位必须一致。
● 周期增量的计算公式:
多段PTO操作时,需把包络表的起始地址装入标志寄存器 SMW168(或SMW178)中。
● PTO指令执行时,当前输出段的段号由系统填入 SMB166 或 SMB176 中。
多段PTO的优点:
编程简单,且在同一段脉冲串中其周期可以均匀改变。
多段 PTO 编程方法及步骤:
A. 初始化操作(以PTO/PWM 0为例):
a. 将 PTO 的输出点 Q0.0 复位;
b. 调用初始化子程序SBR-0,完成下列任务:
设置控制字节SMB67 ,按照控制要求按位填写:如使SMB67=16#A0。
将包络表的起始地址写入 SMW168;
● 填写包络表中各段脉冲串的特性参数;
建立中断连接:用ATCH指令建立脉冲输出完成中断事件与中断程序的联系。当PLS指令输出完指定数量的脉冲串时,产生中断。
● 用ENI全局开放中断;
B. 有启动信号时,执行高速脉冲输出指令PLS,按顺序输出多段脉冲串。
C. 有停止信号时,停止高速脉冲串输出。
停止 PTO 输出的方法
PLS指令一经激发,就能完成指定脉冲串的输出,故要停止PTO输出,必须先在控制字节中禁止PTO输出,且执行PLS指令。
多段PTO应用实例
已知步进电机的起动频率为2 kHz(A点),经过400个脉冲加速后频率上升到10 kHz(B点和C点),恒速转动的脉冲数为4000个,减速过程脉冲数为200个,频率降为2 kHz(D点),其频率特性如图所示。
解:● 确定脉冲发生器及工作模式
要求PLC输出三段串脉冲。故采用多段PTO输出方式。选择输出端为 Q0.0。
● 填写控制字节SMB67:使SMB67=16#A0
将包络表首地址装入SMW168中。
● 填写包络表。
参数换算:
起始频率:2 kHz ,起始周期值:500μs,
运行频率为10 kHz,运行周期值:100μs。
输出3段脉冲串,时基取μs,定义三段脉冲串特性参数的包络表为:
中断连接:高速脉冲输出完成时,产生中断事件19,用ATCH指令将与中断事件与中断服务程序INT0连接起来,并全局开中断(ENI)。
● 执行PLS指令。
采用多段PTO,脉冲串连续输出期间,按启动按钮I0.0不起作用,不会出现脉冲串重复排队输出的现象,脉冲串能够按照规定的顺序输出完后,停止输出。
四 宽度可调的脉冲输出PWM
特点: PWM方式下,用户可以改变脉冲的周期值 和 脉宽值 ,脉冲数不受限制。
1 周期值和脉宽值
周期值:是一个16位无符号数据,单位:μs或ms;变化范围:50~65535μs或2~65535 ms。
脉冲宽度:是一个16位无符号整数,单位:μs或ms;变化范围是0~65535 μs或ms。即占空比在0%~100%之间变化。
2 PWM 更新方式
● 同步更新:在改变脉冲周期值和脉宽值时,不改变时间基准。特点:同步更新时,波形的变化发生在周期的边缘,输出波形进行平滑转换。
异步更新:在改变脉冲周期值和脉宽值时,改变时间基准。特点:采用异步更新会使高速脉冲输出功能被瞬时禁止,这时输出端交由输出映像寄存器Q控制,可能使 PWM 的波形不连续,引起被控制设备的振动。
结论:改变 PWM 波形的特性时应尽量采用同步更新。
3 PWM的编程方法及步骤
A.确定脉冲发生器:
※ 选择高速脉冲输出端(发生器);
※ 选择工作模式为PWM。
B. PWM的初始化
a. 将PWM的输出点(Q0.0或Q0.1)复位;
b. 调用初始化子程序SBR-0,它所完成的任务:
按位填写控制字节(如SMB67):SMB67=16#DB
向SMW68写入第一个脉冲串的周期值;
●向SMW70写入第一个脉冲串的脉宽值 ;
●执行PLS指令,输出指定宽度的脉冲信号。修改脉冲串宽度的方法
● 改写控制字节SMB67,将允许改脉宽值位置1 ,其它位不变。
● 向SMW70写入新的脉冲宽度值
● 执行PLS,输出指定宽度的脉冲信号。
PWM 输出举例
要求 PWM0的脉冲周期是 T=10000ms,开始时输出占空比为 10%的脉冲,当 I0.0=1时,输出占空比为 50%的脉冲 ,当 I0.2=1时,停止输出脉冲。
相关问答
plc给驱动器发的脉冲需要用屏蔽线么?
进去发动脉冲,需要用屏蔽线吗?应该是需要厂家就是这么设计的进去发动脉冲,需要用屏蔽线吗?应该是需要厂家就是这么设计的
plc输出暂停功能停止脉冲吗?
不能的,脉冲信号是一直有输出的。即使有暂停功能也不能停上脉冲,但是不能驱动负载。不能的,脉冲信号是一直有输出的。即使有暂停功能也不能停上脉冲,但是不能...
汇川plc发脉冲怎么暂停再继续启动?
要想暂停汇川PLC发脉冲,可以通过修改程序中的控制语句,将脉冲生成的部分暂时注释掉或者将输出信号置为0,从而停止脉冲输出。如果需要继续启动脉冲,只需恢复相...
plc的脉冲使用方法?
PLC是通过控制发送的脉冲来控制伺服电机的,用物理方式发送脉冲,也就是使用PLC的晶体管输出是最常用的方式,一般是低端PLC采用这种方式。而中高端PLC是通过通讯...
松下plc强制脉冲停止但是脉冲计数不清零怎么做?
控制后面的驱动器,伺服的话有一个禁止脉冲输入(或接急停输入),步进电机可以控制使能端,但你恢复后要控制好逻辑,不然可能会对设备或人有安全隐患控制后面的驱...
三菱plcplc没有发脉冲了,为什么?
FX3U我没有使用过,都使用的是FX2N的,在FX2N中PLC是不需要做任何设定的,只需编个脉冲输出指令就行了,FX3U我没有使用过,都使用的是FX2N的,在FX2N中PLC是不需要...
plc程序如何产生脉冲-185****3044的回答-懂得
{y1}------plsyk500k600y0y0脉冲发生口接步进电机驱动器K500是频率也就是速度根据你的需要修改数值K600是脉冲数也就是脉冲个数你可以设成99...
伺服驱动器可以不走脉冲控制吗?
这个做不到。PLC控制伺服电机的位置由发送给伺服电机的脉冲量确定,控制伺服电机的速度由发送给伺服电机的脉冲速度确定。PLC使用高速脉冲输出端口,向伺服电...
问一下大家,在PLC里面,脉冲什么什么意思?什么时候才可以用到脉冲?它有什么用?求解?
脉冲就是指相同时间内发出波形,比如方波与三角形,都是脉冲。比如,工频电流可以理解1秒发50个脉冲,50就是脉冲频率,不可以PLC脉冲可以发出频率更高的脉冲,而...
西门子plc采用pto脉冲向导,如何让让电机感应到某个信号时候,立即停止运动?
当此输入为低时,PTO功能会正常工作。当此输入变为高时,PTO会产生将电机减速至停止的脉冲串。“完成”输出:开关量输出。当“完成”位被设置为高时,它表明上...
扫一扫微信交流