欢迎回到技成培训网
技成培训网
电工题库宝典
技成电工课堂
PLC练习题
技成PLC课堂
变频器故障查询
技成PLC学吧
伺服驱动故障查询
技成PLC网校
手机扫码下载
黄金会员
权益加码,给自己多一个选择!
白金会员
金钻会员
10年会员服务,10000+精品视频任意学!
搜索
热门课程
当前位置:技成首页 > 文章中心 > 西门子PLC > 【跟着我一起来学习s7-200】47脉冲输出指令2
前面学习了脉冲输出指令的使用,那么今天还是继续学习一下脉冲输出指令的使用与应用。 通过上次的学习,我们应该已经知道可以通过修改SM存储区(包括控制字节),然后执行PLS指令来改变PTO或PWM波形。除了前面学习的使用步骤和一些使用要点,我们还要知道的就是PTO状态字节的空闲位(SM66.7或SM76.7),它标志着脉冲输出完成。另外,在脉冲输出完成时,我们还可以利用脉冲发送完成中断,使程序跳转到中断服务程序进行执行。那么就补充这几点内容。 下面我们做利用一个脉冲输出指令做电机正反转控制的例子。 主程序: 2014-12-1 10:21 上传 下载附件 (6.79 KB) 2014-12-1 10:22 上传 下载附件 (9.22 KB) 高速计数器子程序: 2014-12-1 10:22 上传 下载附件 (9.89 KB) 2014-12-1 10:22 上传 下载附件 (5.64 KB) 高速脉冲输出子程序: 2014-12-1 10:22 上传 下载附件 (8.21 KB) 2014-12-1 10:22 上传 下载附件 (9.04 KB) 中断程序: 2014-12-1 10:22 上传 下载附件 (8.67 KB) 我们首先先做一个高速计数子程序和脉冲输出子程序,在高速计数器子程序中,首先是定义控制字节,送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-200PLC从入门到精通
西门子S7-200PLC高速脉冲及定位篇
若有收获,就点个赞吧!
微信扫一扫分享
阅读与本文标签相同的文章
S7-200入门连载 PLC
上一篇:【跟着我一起来学习s7-200】46脉冲输出指令
下一篇:【S7-300使用指南】7.Step 7重新布线功能【软件使用】