西门子plc s7-200常见问题故障及解决办法(三)
1、数字量输入/输出(di/do)响应速度有多快?能作高速输入和输出吗?
s7-200在cpu单元上设有硬件电路(芯片等)处理高速数字量i/o,如高速计数器(输入)、高速脉冲输出。这些硬件电路在用户程序的控制下工作,可以达到很高的频率;但点数受到硬件资源的限制。
s7-200cpu按照以下机制循环工作:
读取输入点的状态到输入映像区
执行用户程序,进行逻辑运算,得到输出信号的新状态
将输出信号写入到输出映像区
只要cpu处于运行状态,上述步骤就周而复始地执行。在**步中,cpu也执行通讯、自检等工作。
上述三个步骤是s7-200cpu的软件处理过程,可以认为就是程序扫描时间。
实际上,s7-200对数字量的处理速度受到以下几个因素的限制:
输入硬件延时(从输入信号状态改变的那一刻开始,到cpu刷新输入映像区时能够识别其改变的时间)
cpu的内部处理时间,包括:
读取输入点的状态到输入映像区
执行用户程序,进行逻辑运算,得到输出信号的新状态
将输出信号写入到输出映像区
输出硬件延时(从输出缓冲区状态改变到输出点真实电平改变的时间)
上述a,b,c三段时间,就是限制西门子plc处理数字量响应速度的主要因素。
一个实际的系统可能还需要考虑输入、输出器件的延时,如输出点外接的中间继电器动作时间等
以上数据都在《s7-200系统手册》中标明,这里只是列表比较。cpu上的部分输入点延时(滤波)时间可以在编程软件micro/win的“系统块”中设置,其缺省的滤波时间是6.4ms。
如果把容易受到干扰的信号接到cpu上可改变滤波时间的di点上,调整滤波时间可能改善信号检测的质量。
支持高速计数器功能的输入点在相应功能开通时不受此滤波时间约束。滤波设置对输入映像区的刷新、开关量输入中断、脉冲捕捉功能同样有效。
有些输出点要比其他点更快些,是因为它们可以用于高速输出功能,在硬件上有特殊设计。没有专门使用硬件高速输出功能时,它们只是和普通点一样处理
继电器输出开关频率为1hz。
2、s7-200处理快速响应信号的对策有那些?
使用cpu内置的高速计数器和高速脉冲发生器处理序列脉冲信号
使用部分cpu数字量输入点的硬件中断功能,在中断服务程序中处理;进入中断的延时可以忽略
s7-200拥有“直接读输入”和“直接写输出”指令,可以越过程序扫描周期的时间限制
使用部分cpu数字量输入点的“脉冲捕捉”功能捕捉短暂的脉冲
注意:s7-200系统中*小周期的定时任务为1ms。
所有实现快速信号处理的措施,都要考虑所有限制因素的影响。例如,为一个需要毫秒级响应速度的信号选择500μs输出延时的硬件,显然是不合理的。