一文带你了解S7-200高速脉冲输出应用
关注“PLC发烧友 ”,一起涨知识!
前面学习了高速计数器的内容,紧接着我们就来学习一下高速脉冲输出的内容,高速脉冲输出一般是用在运动控制里面,用来控制步进或伺服,高速脉冲输出也是比较重要的一部分,我们必须得掌握好它。
在S7-200中有两个PTO/PWM高速脉冲发生器,可以产生高速脉冲串(PTO)或脉宽调制信号波形(PWM)。在S7-200中有脉冲输出指令PLS,它用来控制在高速脉冲输出(Q0.0和Q0.1)中提供的高速脉冲串输出(PTO)和脉宽调制(PWM)功能。
PTO/PWM与数字量输出过程映像区共用输出点Q0.0和Q0.1,当在Q0.0或Q0.1上激活了PTO/PWM功能时,是会禁止普通输出点功能的,这时Q0.0或Q0.1的输出波形是不受过程映像区状态、输出点强制值或者立即输出指令的影响的,我们使用状态表或趋势图是监控不了的。
要做高速脉冲输出,我们应该选用24VDC晶体管输出的CPU,而不能选用继电器输出的CPU,这是我们要注意的。高速脉冲输出一般是用在运动控制里面,用来控制步进或伺服。利用高速脉冲输出实现运动控制,除了有PTO、PWM,还有EM253定位模块,这三种方式都可以实现运动控制,不过要注意的是PTO和PWM可以使用脉冲输出指令PLS和向导来实现,而且PTO方式的甚至还可以使用运动控制库指令来实现,而使用EM253定位模块的话就只能通过向导来实现,而不能使用PLS指令或运动控制库指令。
我们先看一下脉冲串操作PTO,PTO是按照给定的脉冲个数和周期输出一串方波(占空比50%)。在使用时,我们要设定其脉冲个数和周期,我们要注意的是设定是周期数应该是偶数,如果设定的周期数为奇数的话,是会引起占空比失真的。而脉宽调制PWM,它是产生一个占空比变化周期固定的脉冲输出的,我们可以设定其周期和脉宽,我们要注意的是当设定的脉宽等于周期时,输出是一直为ON的,当设定的脉宽等于0时,输出是断开的。
一般来说,使用脉冲串PTO会比较多,所以后面学习时也是重点学习脉冲串PTO的。除此之外,我们还要学习脉冲输出指令PLS以及指令的应用,并且主要针对脉冲串PTO的学习,这是脉冲输出学习的重点,我们必须要掌握好它。
前面有说到脉冲输出指令PLS用于控制在高速脉冲输出(Q0.0和Q0.1)中提供的脉冲串输出PTO和脉宽调制PWM功能。在S7-200中有两个PTO/PWM发生器,而每台PTO/PWM发生器都有一个控制字节的,SMB67控制的是Q0.0的PTO/PWM发生器,而SMB77控制的是Q0.1的PTO/PWM发生器,这个我们要知道的。
脉冲输出指令是会从系统存储器SM(包括控制字节)中读取数据,从而控制PTO/PWM发生器,这样我们就可以通过修改控制字节,然后执行PLS指令,来更改PTO或PWM信号波形。以下就附上PTO/PWM控制寄存器的SM标志表和PTO/PWM控制字节参考表。
我们要注意的是,我们在使用PLS指令时一般是有步骤的。第一步,我们在使能PTO/PWM之前,要对Q0.0、Q0.1的过程映像区清零;第二步,定义控制字节,Q0.0对应SMB67,Q0.1对应SMB77。第三步,写入PTO/PWM相关寄存器的数据,比如SMW68对应的是PTO/PWM周期值(2-65525ms),SMD72对应的是PTO脉冲计数值。第四步,就是连接中断事件和中断程序,并允许中断这步是根据实际情况决定要还是不要的;第五步,执行PLS指令,激活某个脉冲输出,更新控制字节。
当然我们也可以禁止PTO/PWM波形,我们将控制字节的使能位(SMB67.7/
SMB77.7)清零,然后执行PLS指令就可以了。我们也可以对周期值、脉宽值和脉冲数进行修改,我们把相应的系统存储器位置1,然后再把修改数据写入到相应的系统存储器里,然后执行PLS指令就可以。
下面就举个PLS指令应用的例子,来更好的掌握PLS指令的使用。
主程序:
高速脉冲输出子程序:
高速计数器子程序:
以上的程序,在主程序的网络一中,首先用SM0.1首次扫描驱动高速计数器子程序进行高速计数初始化,同时对Q0.0的过程映像区清零。在高速计数器子程序中,首先传送16#F8到SMB47定义控制字节定义为更新当前值加计数,然后执行HEDF指令定义高速计数模式12和选择高速计数器0,最后是激活高速计数器,执行HSC指令。
在主程序的网络二中,用I0.2的上升沿才驱动高速脉冲输出子程序,用I0.2的下降沿来驱动一个传送指令,传送0到SMB67,并同时驱动一个PLS指令。在高速脉冲输出子程序中,首先传送16#85到SMB67中定义控制字节,这里选择的是PTO模式、单段、1us/周期、装入周期和脉冲数的情况(控制字节的定义可以参考PTO/PWM控制字节表),并传送100到SMW68中写入周期值,传送100到SMD72中写入脉冲数,最后执行PLS指令。
那么程序会在I0.2接通的上升沿执行周期为100us,100个脉冲数的高速脉冲输出,会在I0.2断开的下降沿禁止PTO波形的输出。
来源:PLC发烧友,作者:技成培训网-蔡慧荥,未经授权,请勿转载!
S7-200脉冲输出指令做电机正反转控制
关注“PLC发烧友”,一起涨知识!
通过上次的学习,我们应该已经知道可以通过修改SM存储区(包括控制字节),然后执行PLS指令来改变PTO或PWM波形。除了前面学习的使用步骤和一些使用要点,我们还要知道的就是PTO状态字节的空闲位(SM66.7或SM76.7),它标志着脉冲输出完成。另外,在脉冲输出完成时,我们还可以利用脉冲发送完成中断,使程序跳转到中断服务程序进行执行。那么就补充这几点内容。下面我们做利用一个脉冲输出指令做电机正反转控制的例子。
主程序:
高速计数器子程序:
高速脉冲输出子程序:
中断程序:
我们首先先做一个高速计数子程序和脉冲输出子程序,在高速计数器子程序中,首先是定义控制字节,送16#F8到SMB37,定义为加计数更新当前值,传送0到SMD38写入初始值,定义的是高速计数器HSC0和HSC模式12,然后激活高速计数器,还做了高速计数器中断,PTO0完成中断的事件为中断事件号19,我们建立中断程序0和中断事件19的中断连接,并全局允许中断。
而在高速脉冲输出子程序里面,我们定义一下接口,定义周期io_time为LW0,为IN类型的,定义脉冲数io_NO为LD2,也是为IN类型的,然后写子程序。首先传送16#85到SMB67中定义控制字节,这里选择的是PTO模式、单段、1us/周期、装入周期和脉冲数的情况(控制字节的定义可以参考PTO/PWM控制字节表),并传送LW0到SMW68中写入周期值,传送LD2到SMD72中写入脉冲数,最后执行PLS指令。那么这样是做了一个带功能参数的子程序,之后在主程序中可以对这个带功能参数的子程序进行调用。
然后我们编写主程序,在主程序的网络一中,首先用SM0.1首次扫描驱动高速计数器子程序进行高速计数初始化,同时对Q0.0的过程映像区清零,同时也对高速脉冲输出进行初始化。在网络中,我们用I0.2的上升沿来驱动立即置位指令,立即置位Q0.2,同时调用高速脉冲输出子程序,周期设为100us,脉冲为10000个,同时还要传送16#F8到SMB37并执行HSC指令进行加计数并更新当前值。那么就就是说当我们接通I0.2时,会在I0.2的上升沿立即置位Q0.2,电机正转,100us发10000个脉冲,同时高速计数器进行加计数。因为建立了脉冲完成中断,那么当脉冲发生完成时,会进入到中断程序进行执行。
那么我们就可以在中断程序中编写反转的控制,因为原来是正转,那么Q0.2是接通的,那么我们就用Q0.2的常开触点来驱动立即复位指令,立即复位Q0.2,同时调用高速脉冲输出子程序,周期设为200us,脉冲为10000个,同时还要传送16#B0到SMB67并执行HSC指令进行减计数并不更新当前值。那么就是说进入中断时会立即复位Q0.2,电机反转,200us发10000个脉冲,同时高速计数器进行减计数。
那么对于这样一个例子,应用到了带参数的子程序调用、中断和高速计数器的内容,会不会比较难以理解呢,如果觉得有些模糊的话,可以回看一下前面中断和高速计数器的内容,这样可以加深印象呢。
来源:技成培训网,作者:蔡慧荥,未经授权请勿转载!回复:西门子全套 ,可领取西门子系列资料包!
相关问答
三菱PLC安装ID?
是三菱PLC编程软件激活时需要输入的唯一标识符。安装ID通常是由三菱PLC编程软件根据计算机硬件信息和序列号等生成的一个字符串,可以通过以下步骤查看:1.打...
1200plc激活s485为什么激活?
对于1200PLC来说,激活S485是为了启用S485通信功能。S485是一种常用的串行通信接口,它可以连接PLC与外部设备进行数据传输和通信。激活S485可以使PLC具备通过S4...
plc输出为1什么状态?
在可编程逻辑控制器(PLC)中,输出为1通常表示输出设备处于激活状态。当输入信号满足程序的逻辑条件时,PLC将通过其输出信号激活相关设备或执行相应的操作。输...
西门子plc1200密钥激活步骤?
西门子PLC1200的密钥激活步骤如下:下载和安装PLC软件:根据用户购买的软件版本,在西门子官方网站或提供许可证的渠道下载并安装相应的PLC软件。导入许可证密...
s7-plcsimadvanced需要激活吗?
需要激活。因为s7-plcsimadvanced是西门子公司开发的一款PLC仿真软件,为了保护软件的版权和使用权益,用户在安装和使用s7-plcsimadvanced时需要进行激活操作。...
三菱PLC安装不能用,菜单都是灰色没有激活?
1三菱PLC安装无法使用,菜单无法激活,应该是安装或配置问题导致的。2可能是安装程序未正确安装或缺少必要的组件,也可能是配置文件出现问题导致的。这些问题...
intouch和S7之间通讯,现在有两个PLC被读取,我想知道如何设定INTOUCH去读取指定PLC?
你意思是DAServer激活了,但我在上位机上不想读取相应的PLC,既然这样,你就不用设置相应的访问名和标记名,他不就直接读不上来了。如果你在上位的相关配置都做...
西门子PLC的CPUstop灯一直亮,怎么处理?
应该是由于CPU的SF灯常亮,表示系统遇到了硬件错误,导致PLC处于停止状态,即STOP灯亮,楼主可以按照以下方法进行排查:首先格式化MMC卡。注意:CPU的STOP...
wincc7.4激活后通讯不上?
1.不充分2.WinCC7.4激活后通讯不上可能是因为激活过程中出现了错误或者激活后的软件设置不正确,导致与通讯设备无法正常连接。3.如果遇到这种情况,可以先...
plc电梯怎么处理多个信号?
PLC电梯要处理多个信号,通常采用以下方法:1.使用输入模块:PLC电梯可以使用输入模块来接收多个信号。每个信号都可以通过一个输入模块进行接收,然后通过编程...