菜鸟:
224xp :使用HC0对O0.0输出的脉冲计数,每次脉冲发送前都对HC0清零,保存当次*后脉冲输出个数,实时将HCO赋值给VD0,plc上电后利用SM0.1将VD0赋值给VD4. 在HC0对VD0转存数据时,数据会有变化。
在脉冲发送中断电,每次VD0比HC0少5个脉冲,在脉冲发送完断电,每次HC0等于VD0,有大神能解释下吗?
斑竹:
执行断电保存与脉冲输出计数之间有时差,应该近似程序扫描周期的值。
若是固定差值,可以用条件语句修正。
菜鸟:
具体怎么执行呢?
侠士:
如果你每次发现都差5,那么在下次上电加上5就可以了。
发送中断电,我认为丢脉冲是正常的事,毕竟存在扫描周期,高数计数器比扫描周期可快多了,会造成虽然计数器计数了,但没有赋值给VD0。
一方面像楼上所说,对于这个时间差看有没有规律,加补偿。
另一方面,减少断电的次数,避免误差的产生。或者你直接读高速计数器就行了。
游民:
这样的话就无解了,每次丢的脉冲数根据脉冲周期值以及断电发生的时间有所不同,不是固定值。高速计数器上电后HC0直接清零了。
**上电先将HC0给VD0,再清HC0.
侠士:
HC0好像不能断电保持吧?