S7-200在CPU单元上设有硬件电路(芯片等)处理高速数字量I/O,如高速计数器(输入)、高速脉冲输出。这些硬件电路在用户程序的控制下工作,可以达到很高的频率;但点数受到硬件资源的限制。
S7-200CPU按照以下机制循环工作:
读取输入点的状态到输入映像区
执行用户程序,进行逻辑运算,得到输出信号的新状态
将输出信号写入到输出映像区
只要CPU处于运行状态,上述步骤就周而复始地执行。在第二步中,CPU也执行通讯、自检等工作。
上述三个步骤是S7-200CPU的软件处理过程,可以认为就是程序扫描时间。
实际上,S7-200对数字量的处理速度受到以下几个因素的限制:
输入硬件延时(从输入信号状态改变的那一刻开始,到CPU刷新输入映像区时能够识别其改变的时间)
CPU的内部处理时间,包括:
读取输入点的状态到输入映像区
执行用户程序,进行逻辑运算,得到输出信号的新状态
将输出信号写入到输出映像区
输出硬件延时(从输出缓冲区状态改变到输出点真实电平改变的时间)
上述A,B,C三段时间,就是限制PLC处理数字量响应速度的主要因素。
一个实际的系统可能还需要考虑输入、输出器件的延时,如输出点外接的中间继电器动作时间等
表1.输入点硬件延时
以上数据都在《S7-200系统手册》中标明,这里只是列表比较。CPU上的部分输入点延时(滤波)时间可以在编程软件Micro/WIN的“系统块”中设置,其缺省的滤波时间是6.4ms。
如果把容易受到干扰的信号接到CPU上可改变滤波时间的DI点上,调整滤波时间可能改善信号检测的质量。
支持高速计数器功能的输入点在相应功能开通时不受此滤波时间约束。滤波设置对输入映像区的刷新、开关量输入中断、脉冲捕捉功能同样有效。
表2.CPU输出硬件延时
有些输出点要比其他点更快些,是因为它们可以用于高速输出功能,在硬件上有特殊设计。没有专门使用硬件高速输出功能时,它们只是和普通点一样处理
继电器输出开关频率为1Hz。
表3.扩展模块输出硬件延时
程序扫描时间与用户程序的大小成正比。
《S7-200系统手册》中有每个指令所需执行时间的数据。实际上很难事先预先精确计算出程序扫描时间,特别是还没有开始编程序时。
可以看出,常规的PLC处理模式不适合时间响应要求高的数字量信号。可能需要根据具体任务采用一些特别的方法。