发布于 2011-02-17 23:34:19
15楼
扫描周期由系统背景程序和用户程序扫描执行一次的时间和,可以简单的理解为本次执行网络1到下次再执行网络1之间的时间(实际上不严格如此),可以通过特殊寄存器smw22观察上一个扫描周期的毫秒值。
扫描周期比较短时(如10ms以下),一般不用关注它,如果扫描周期平均达到30ms以上,按键会感觉到有点迟滞,50ms以上时按键会感到明显迟滞。
扫描周期的长短跟程序的复杂性相关,但可以采用一些小技巧拉平扫描周期,如将多个周期性执行的任务分配到不同的扫描周期,避免程序“打嗝”(每隔一段时间出现一个较长的扫描周期,此时系统实时性下降)。比如多路模拟量周期性的采样与滤波计算,不要一个周期采样所有模拟口,将它们分散到不同的周期去。还有用PID向导生成多路PID调节,如果这些PID的采样周期都要同,向导生成的程序有个缺陷,它会在同一周期执行多个PID指令。可以在sm0.1对向导生成的符号变量 PIDx_D_Counter(可能是这个名字,拼写记不太清了)赋以不同的初值,这样多个PID不会在同一个周期内执行。
比如用向导生成8路
生命存在的方式只有两种:腐烂或燃烧