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个脉冲,同时高速计数器进行减计数。
那么对于这样一个例子,应用到了带参数的子程序调用、中断和高速计数器的内容,会不会比较难以理解呢,如果觉得有些模糊的话,可以回看一下前面中断和高速计数器的内容,这样可以加深印象呢。
来源:技成培训网,作者:蔡慧荥,未经授权请勿转载!回复:西门子全套 ,可领取西门子系列资料包!
一文带你了解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发烧友,作者:技成培训网-蔡慧荥,未经授权,请勿转载!
相关问答
plc怎么生成波形?
PLC可以通过控制数字量输入输出信号和模拟量采集转换信号来生成波形。具体实现方法可以采用PID控制算法和模拟输出模块,对输出信号进行连续的调节和控制,使输...
plc波形图怎么看?
您好,PLC波形图通常是在PLC编程软件中查看的。一般来说,您需要在编程软件中打开PLC程序,并选择相应的I/O模块或通道进行监视。然后,您可以在屏幕上看到I/O信...
博途v16如何看输出波形?
博途V16是一种PLC编程软件,可用于编写、测试和调试PLC程序。如果您想查看PLC的输出波形,需要使用适当的测试设备和连接方式,然后使用博途V16软件中的监视工具...
plc高频信号传输方式?
您好,PLC(ProgrammableLogicController,可编程逻辑控制器)高频信号传输方式有以下几种:1.高速计数器:通过计数器进行高速的计数和计时,实现高频信号的...
PLC里高速脉冲1秒钟多少脉冲-苏愿的回答-懂得
不同牌子的PLC,不完全一样,有的是10KHZ,有的是100K,200K的比较少老型号基本都是10K的不同牌子的PLC,不完全一样,有的是10KHZ,有的是100K,200K的比...
PLC里高速脉冲1秒钟多少脉冲-西安女娃爱吃肉的回答-懂得
不同牌子的PLC,不完全一样,有的是10KHZ,有的是100K,200K的比较少老型号基本都是10K的。脉冲通常是指电子技术中经常运用的一种象脉搏似的短暂起伏...
pLc输入和输出怎么检测好坏?
PLC输入和输出的好坏可以通过以下几个步骤进行检测:1.检查PLC输入和输出的连接:首先需要检查PLC输入和输出的连接是否正确,包括连接线是否插好、连接端口是...
plc常见的语言编程方法?
PLC的编程方法大体上有5种:经验法、解析法、图解法、技巧法及计算机辅助设计法。(1)经验法:运用已掌握的成功设计经验,结合实际的情况,选择与实际情...
plc有两种编程方式分别为?
常用的方法有梯形图法、波形图法及流程法。梯形图法是基本方法,无论是经验法还是解析法,若将PLC程序转化成梯形图后,就要用到梯形图法。波形图法适合于时间控...
旋转编码器与三菱FX2NPLC接线A相接x0B相接x1编码器5VPLC的输入COM与5V的地相接,为什么X0X1都亮?
编码器输出频率那么高你看不清楚,视觉上应该是常亮的,你看你的高速计数器值正不正常就可以了。按照ab两项的输出脉冲波形应该是有同时亮的时刻编码器输出频...