引用引用第1楼zhangqi_1234于2022-03-29 18:25发表的 :严格地说,不能这样使用C251,C251是外部高速计数器,采用中断方式工作。普通的内部计数器可以这样使用
引用引用第5楼zhangqi_1234于2022-03-30 14:23发表的 :既然你认为C251这么用没问题,那么你只把这段程序拿出来是几个意思?
引用引用第6楼lijinniu于2022-03-30 15:18发表的 :XOX1有没有使用
引用引用第10楼zhangqi_1234于2022-03-30 19:45发表的 :我看你发的程序,我个人认为,程序设计者使用C251意思是:用它来接收X0和X1端的脉冲。当X0的脉冲超前X1脉冲90度时,进行加计数,当X0脉冲滞后X1脉冲90度时,进行减计数。当计数值等于1时,表明X0端和X1端各自输入了一个脉冲,两个脉冲相差90度,X0端超前X1端90度。然后C251常开触头闭合,C251闭合的第一个扫描周期使D31自加1,然后C251复位,C251常开触头断开。C251重新从零开始计数,计数值等于1又开始上述动作,如此周而复始。然后把D31转存D33,D33转换成实数存D55,D55又经过一系列实数运算,得出的结果可能是某零件的长度。那么你说的C251不断累加计数,而没有复位的这种故障,很有可能是X0端输入的脉冲不是超前X1端脉冲90度,而是滞后X1端90度,结果导致C251减计数,计数结果为负数,始终不等于1,无法实现复位。这个属于PLC的X0端和X1端接编码器的故障 ,不是PLC的故障。还有一种可能,就是这样编程使用C251有个前提条件:X0和X1端输入的脉冲周期不能小于PLC的扫描周期,否则会导致C251不断累加计数而不会复位。另外,需要指出的是,你开始只拿部分程序出来,而不说明PLC的X0和X1端接的什么,别人也很难作出判断。