可以的,s7-200不能设为循环计数器也没关系,只要到到达一定的数值程序将计数器置0就可以了,相当于循环计数器了,如果要精确可以用中断处理这个置0指令,你这个项目就不需要了,直接在循环程序中处理就可以了。
s7-200中用&来间接寻址,用vw100做指针,程序上电时将vw100清零。
比如推第一个物料时计数器为1000,输送带长度为5000脉冲,那么推一个物料时执行
+d
hsc0
5000
vd88
if{
>d
vd88
100000
-d
vd88
100000}
movd
vd88
&vw100
+i
vw100
4
vw100
推第二个物料时计数器为2000,那么执行
+d
hsc0
5000
vd88
if{
>d
vd88
100000
-d
vd88
100000}
movd
vd88
&vw100
+i
vw100
4
vw100
在将高速计数器加5000后要判断一次是否大于你的高速计数器清零值(我假设的是100000),如果大于要将该值减去你的最大值后再保存,否则这个值永远也达不到,就会漏推出去物料。
你可以发现上面的程序是一样的,那么就可以将这段程序编成子程序,每次推物料时执行一次这个子程序,一定只能执行一遍。
再主程序中加入一个判断程序,判断vw100,如果vw100大于80,将其清零就可以实现位置只能保存在vd0-vd80之间了,也就是保存了21个位置,如果不够你可以修改指针大小,之道满足你的要求。
主程序中比较这个区域中的数值和hsc0,计数器大于任何一个数值时动作一次第二个电磁阀就可以,这个动作也需要用到微分指令。
很久没用s7-200了,很多指令记不住了,所以程序只能表达一下意思,不正确的。你自己根据这个意思修改一下就可以了。
1.计数器复位:是指计数器触点复位
2.计数器清零:是指将计数值清零西蒙子7-200
内含有6个高速计数器,最多有12种不同的控制模式,你可选某一个高速计数器(比如选HSC0),它有8种控制模式,选带有复位的控制模式,如选模式1,此时该计数器就是带有复位控制的,其I0.0输入端为时钟输入,I0.2即为复位控制端,PLC运行时,如I0.2=0,I0.0有高速脉冲信号输入,高速计数器就进行计数,如使I0.2置1,高速计数器被复位且停止计数,此时计数值被清0,当再使I0.2置0时,计数器复位结束,且从0开始计数。你就可以利用控制I0.2,来将计数器清0。