用S7-200编程的“时序控制程序”的解析
有一网友提出:“想在S7 200做个时序控制程序,就是每个时间段控制不同的设定值,做30个时间段,时间段和设定值是可设定的,我想的就是时间比较,在时间范围内赋值,但是PLC里30个时间段做起来也挺复杂的,能有什么更好更节约CPU资源的方法不?大家交流下,”
我的回复:由于你提出的时间段及其对应的控制参数没有固定规律,故没有可节约CPU资源的方法进行编程。这里我用S7 200编写的梯形图只设定5个时间段,其时间段的时间及对应控制参数都可设定。供你参考,你看懂后,就可扩展到30个时间段。不知你是否用上位计算机进行时间与参数设定,如果是,下面的梯形图只需的上半部分的左侧图就可以了。其5段时间设定值的存数区为:VW100 –VW108,对应这5段时间段的控制设定值区为:VW150—VW158.
如没有上位机,只用PLC来完成,我编写的下面的梯形图就可完成你的编程要求。在这个梯形图中,引用了我编写的“用S7-200编程的三个实例解析”中的二个实例,关于这一部分,本文就不做详细说明,如有不清楚的地方,可参看上文。本文选用PLC的8个输入口(I1.0—I1.7)和4个输出口(Q2.0-2.3),其定义为:I1.0---置数键;I1.1—移位键;I1.2—程序启动/停止键;I1.3—送数键;这四个键为不带自锁式的按键。I1.4—I1.7这四个键为带自锁的按键,它们代表送数值的地址。程序动作原理如下:
1、程序的启动运行与停止:PLC接通电源,由于SM0.1的作用,M3.0置0,故时序控制程序停止,按一下I1.2键,M3.0置1,由于M3.0=1,接通T102,延时VW100的时间,T102吸合,使T103得电,延时VW102时间,使T104得电,延时VW104时间,使T104得电,延时VW106时间,使T105得电,延时VW108时间,使T106得电,其常闭触点断开,使T102失电断开,使之T103—T106皆断电。由于T106失电断开,其常闭触电闭合,又使T102重新得电…开始第二次时控循环。当再按一下I1.2时,M3.0=0,整个程序停止运行。图中的M3.2—M3.6=1时,即为第一至第五个时间段出现的时间。这段程序中,按一下I1.2,使M3.0=1。再按一下I1.2,使M3.0=0的工作原理,详见“用S7-200编程的三个实例解析”中的例1说明。
2、置数与送数:
(1)、置数:如想设定第一时间段时间为2份20秒,应置数为“1400”,先点击一下“I1.3”键,使MW10清0,再点击一下“I1.0”键,使MW10=0001,再点击一下“I1.1”键,使MW10左移4位,使MW10=0010,再点击4下“I1.0”键,使MW10=0014,再点击2下“I1.1”键,使MW10左移8位,使MW10=1400,此时置数完毕(置数的工作原理,详见“用S7-200编程的三个实例解析”中的例2说明)。
(2)、送数:第一时间段的地址为:IB1=“####0000” 即I1.4—I1.7皆为常开状态,应确保I1.4—I1.7皆为抬起状态后,再点击一下I1.3键,此时置数值MW10送入VW100中,而MW10值请0。控制参数的置数与送数与之一样,只要送数地址正确即可。
上述梯形图对不用上位机或触摸屏的编程者或对只会PLC编程者是一个解决编程的办法,但需用8个PLC的输入端口及4个输出端口,而且操作繁琐,本人建议,如选用我写的“自制的PLC外围组件及应用”中的显示与打印组件和键盘组件,就可很好的完成,仅占用几个I/O口,不仅编程简单,操作简单,而且提供两路4位数字显示,且具有打印功能。使你的控制系统功能更加完善。如有需用者可与我联系,我的邮箱是:wyb2866255@163.com 谢谢!