发布于 2004-01-16 09:39:15
0楼
我先说一下我的应用环境吧。我用fm350-1配合omron的编码器测量一个设备的主轴转速和主轴的角度,这个设备的有很多开关量输出,这些DO点都要在主轴转动一周内根据不同的角度进行操作,由于主轴转速比较快,大概可以达到1000rpm,如果仅仅在主程序中对角度进行扫描,再来执行各个输出动作显然是来不及而且不准确的,所以我选用fm350的中断程序里对DO进行操作。
我需要fm350输出中断的角度在主轴转动一周的过程中也不是均匀分布的,在主轴90度到260度之间大概是平均分布的,大概每15度就需要一个中断。
我的主程序周期在3-10ms之间,中断程序只有21个network,只判断角度,然后置成不同的标志,退出中断之后在主程序中根据不同的标志进行输出处理。
现在的现象是主轴的快速转动过程中会有中断丢失的现象发生,也就是到达指定的角度而没有执行相应的动作,是因为我的中断程序太长造成的吗?但是这个中断程序已经不能再短了。
另外,我发现进入中断后,fm350读出的计数器值与给定的比较值还相差1度,比如说我设定的比较值为100度,那么有可能中断里我读出101,或者99。
哪位有类似的应用,能给我一个好点的建议吗,怎么才能对我的程序进行一些优化?谢谢各位了