西门子s7200plc计数器编程(看完秒懂西门子S7-200)

最近有很多人咨询有关西门子S7-200 PLC高速计数器的问题,所以今天来看一个程序案例应用吧,对这个案例,我们以两种方法来实现它。通过对高速计数器应用的练习,来更好的掌握高速计数器的内容。

1、用比较指令来实现正反转控制,按下启动按钮I0.3,Q0.0输出,电机正转,高速计数器计到50个脉冲后电机停止,过5秒后Q0.1输出,电机反转,计数器计到50个脉冲后电机停止,过5s后又开始电机的正转,如此循环。

主程序:

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(1)

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(2)

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(3)

子程序

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(4)

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(5)

以上的程序中,首先做一个高速计数器初始化的子程序,首先是定义控制字节,送16#F8到SMB37,定义为加计数更新当前值,这里写入初始值为0和预设值为50,定义的是高速计数器HSC0和HSC模式1,然后激活高速计数器。

因为控制要求是按下启动按钮I0.3,Q0.0输出,电机正转。首先就做个起保停程序,I0.3启动串联I0.4停止,来驱动输出Q0.0并做Q0.0的自锁,同时做一个用I0.3的上升沿来调用高速计数器初始化子程序,注意这里的起保停是有做正反转的互锁的。然后再用Q0.0常开触点串联一个HC0大于等于SMD42的比较指令来输出M0.0,并把M0.0的常闭触点串联在起保停程序中,作为高速计数器计到50个脉冲后电机停止。

电机停止过5秒后Q0.1输出,电机反转,那么我们就用M0.0来置位M0.1,再用M0.1常开触点来驱动来驱动定时器T37延时5秒,并用T37常开触点来驱动复位M0.1,这里是为了让定时器定时时间到时复位定时器。然后再用T37常开触点来驱动输出Q0.1并做Q0.1的自锁,同时也用T37的上升沿来调用高速计数器初始子程序。然后再用Q0.1常开触点串联一个HC0大于等于SMD42的比较指令来输出M0.2,并把M0.2的常闭触点串联在起保停程序中,作为高速计数器计到50个脉冲后电机停止。

电机停止过5s后又开始电机的正转,那么我们就用M0.2来置位M0.3,再用M0.3常开触点来驱动来驱动定时器T38延时5秒,并用T38常开触点来驱动复位M0.3,这里也是为了让定时器定时时间到时复位定时器。同时我们用T38常开触点并联在电机正转的控制程序上,这样可以实现循环。

2、用中断来实现正反转控制,按下启动按钮I0.3,Q0.0输出,电机正转,高速计数器计到50个脉冲后电机停止,过5秒后Q0.1输出,电机反转,计数器计到50个脉冲后电机停止,过5s后又开始电机的正转,如此循环。

主程序:

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(6)

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(7)

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(8)

子程序:

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(9)

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(10)

中断程序:

西门子s7200plc计数器编程(看完秒懂西门子S7-200)(11)

以上的程序中,首先做一个高速计数器初始化的子程序,首先是定义控制字节,送16#F8到SMB37,定义为加计数更新当前值,这里写入初始值为0和预设值为50,定义的是高速计数器HSC0和HSC模式1,然后激活高速计数器,还做了高速计数器中断,建立中断程序0和中断事件12的中断连接,并全局允许中断。

在主程序中,用SM0.1的上升沿调用高速计数器初始化子程序,因为控制要求是按下启动按钮I0.3,Q0.0输出,电机正转,就用I0.3常开触点来置位Q0.0,并用I0.3的上升沿激活高速计数器。控制还要求当高速计数器计到50个脉冲后电机停止,那么当计数当前值等于预设值50时就进入中断程序去执行,我们就可以在中断程序中编写用Q0.0常开触点串联Q0.1常闭触点来复位Q0.0并置位M0.0,那么当当前值等于预设值时复位Q0.0电机停止,并置位M0.0,然后又回到主程序进行执行。

电机停止过5秒后Q0.1输出,电机反转,在主程序中用M0.0常开触点驱动定时器T37延时5秒,并用T37常开触点来复位M0.0复位定时器和置位Q0.1,并用T37的上升沿激活高速计数器。当高速计数器计到50个脉冲后电机停止,那么当计数当前值等于预设值50时就进入中断程序去执行,我们就可以在中断程序中编写用Q0.1常开触点串联Q0.0常闭触点来复位Q0.1并置位M0.2,那么当当前值等于预设值时复位Q0.1电机停止,并置位M0.2,然后又回到主程序进行执行。

电机停止过5s后又开始电机的正转,那么我们就用M0.2来驱动来驱动定时器T38延时5秒,并用T38常开触点来驱动复位M0.2,这里也是为了让定时器定时时间到时复位定时器。同时我们用T38常开触点并联在电机正转的控制程序上,这样可以实现循环。

那么以上就是用了两种方法来实现正反转的控制,利用中断的方法可能会难理解一下,但是其实分析清楚执行过程也是不难的,对吗。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页