中断程序可能在任何时刻执行,如果此时主程序(或子程序)正在对中断程序使用的数据进行操作,其中间结果可能带入中断程序,造成计算结果的变化;同样地,在中断程序中产生数据也对主(子)程序中的计算有类似影响。
8. 中断服务程序看起来没有执行?
可以在中断程序中加一个测试程序段,如使用SM0.0(常为“1”)将一个输出点置位(使用Set指令),观察是否进入中断服务程序。中断程序不执行,多数原因是初始化(连接中断事件和中断程序)的问题,或者没有“开中断”。应该使用SM0.1(或沿触发)执行一次初始化,然后开中断。
高速计数器根据被定义的工作模式,按需要占用CPU上的数字量输入点。每一个计数器都按其工作模式占用固定的输入点。在某个模式下没有用到的输入点,仍然可以用作普通输入点;被计数器占用的输入点(如外部复位),在用户程序中仍然访问到。
11. 为什么高速计数器不能正常工作?
在程序中要使用初次扫描存储器位SM0.1来调用HDEF指令,而且只能调用一次。如果用SM0.0调用或者第二次执行HDEF指令会引起运行错误,而且不能改变次执行HDEF指令时对计数器的设定。