目的:用plc和触摸屏(威纶通)控制8个指示灯。
要求:8个指示灯无序动作,也可以是4个指示灯无序动作,动作的顺序可以在触摸屏上设置,动作的时间间隔也可以设置。
示例:如果是8个灯动作,比如最常见的是1-2-3-4-5-6-7-8-1.这种是简单明显的,但是可以通过plc和触摸屏我可以把顺序控制成1-3-4-2-5-6-7-8,也可以5-6-7-1-2-3-4-8.。。。。。。。依次规律进行。如果是4个灯动作,顺序也是可以设置,动作如上规律。
回复:编程思路是这样:
在触摸屏内设置8个字节存储器:vb100~vb107和1个字存储器cw20,且与plc通讯。
1、其vb100~vb107这8个字节存储器分别作为8个灯泡的选中标志区:vb100为第1灯泡的选中标志区,vb101为第2个点亮灯泡的选中标志区,……vb107为第8个点亮灯泡的选中标志区。这8个灯的标志存储器的置数内容分别置数为0~7这8个数字(互不重复):旗置数=0的存储器对应的灯为第1个点亮,置数=1的存储器对应的灯为第2个点亮 ……置数=7的存储器对应的灯为第8个点亮。触摸屏可对vb100~vb107随意设定0~7这8个数,就可实现对这8个灯动作顺序的随意改变。
2、用定时器t101作自振荡器,其定时时间不设为具体数值,而用vw20代替,其vw20可由触摸屏设定,这样就可实现动作的时间间隔也可以随时设置的作用。
3、顺序随意控制的构思:为实现8个灯能按各自标示区(即vb100~vb107)置数的大小依次点亮,实现的办法是采用一个计数器(mb10),计数器由0开始,按给定的间隔进行加1计数,加到数=8立即请0,重新由0作加1计数。这样:mb10的值将在0~7这8个数字变化,在计数过程中,又时时用计数器的计数值(mb10)与vb100~vb107的值进行比较,与mb10值相等的标示区对应的灯亮,如:当mb10=0时,如vb103=0,则使vb103对应灯(q0.3)为第一个点亮,接着mb10=1,如 vb00=1,则使vb100对应灯(q0.0)为第二个点亮……从而实现按8个标示区的数由0、1、2…7,依次点亮。按上述2、3二点思路进行编程就是本程序的编程技巧之处。下面用s7-200编程如下,供你参考: