今天看到一个横切机控制程序,是利用200的高速计数器来反映编码器的脉冲数的。
编码器是用来测量加工长度(VW16)的,已知编码器的分辨率是一圈600个脉冲,转子的周长是300毫米,即一毫米2个脉冲,他是利用HSC3的模式0,但是这里有点不明白,他是先在一个中断程序里把计数器的预置值设为VD36其中VD36=VW16*2/600,然后再在另一个中断程序里把预置值设为600。然后两个中断程序相互嵌套执行横切。但是这里为什么要除以600呢??计数器不是只能计脉冲数吗?怎么他是先计VD36呢,VD36应该是转子的圈数吧?为什么不直接让VD36=VW*2呢??不明白两个中断程序是怎么实现横切命令的??
请教大侠指教!!!
通常高速计数器当CV=PV即当前值==预设值时,PLC会产生一个中断事件
然后我们可以利用这个中断去执行一些程序或者动作
HSC3 0模式对应的是状态位SM146.6和SM146.7
事件是由高速计数器中断产生的,因此你重点要看这个中断程序的内容并尽可能结合工艺搞清他的用意
你所说的这两个中断程序又是怎么来的呢,我想是不是就是高速计数器产生的中断事件呢
一般情况下如果高速计数器只用来测量长度,那么这些中断使用的目的也就是位置校准(包含位置记忆和找寻参考点)
也就是仅对SMD138高速计数器当前值赋值
我怀疑并不是所有的程序都是有用的,你可以把VD36=VW16*2/600修改成VD36=VW*2试试
看别人的程序是很累的事情,但有时候费了很久看不明白的那部分程序或许就是没有意义的东西
这与有些人的编程风格有关吧