数字量输入/输出(DI/DO)响应速度

这些问题都是关于S7-200 PLC在处理开关量(数字量)信号时的快速响应能力。只有在控制任务对数字量信号的处理速度要求很高时才需要考虑。

S7-200可以采用两种方式处理数字量信号:

 

S7-200处理DI/DO的限制因素

典型的数字量信号处理包括从输入信号变化,到S7-200识别、进行逻辑运算得到结果并输出,最后输出信号状态实际改变的整个过程。

S7-200 CPU按照以下机制循环工作:

  1. 读取输入点的状态到输入映像区
  2. 执行用户程序,进行逻辑运算,得到输出信号的新状态
  3. 将输出信号写入到输出映像区

只要CPU处于运行状态,上述步骤就周而复始地执行。在第二步中,CPU也执行通信、自检等工作。

上述三个步骤是S7-200 CPU的软件处理过程,可以认为就是程序扫描时间。

实际上,S7-200对数字量的处理速度受到以下几个因素的限制:

  1. 输入硬件延时(从输入信号状态改变的那一刻开始,到CPU刷新输入映像区时能够识别其改变的时间)
  2. CPU的内部处理时间,包括:
    1. 读取输入点的状态到输入映像区
    2. 执行用户程序,进行逻辑运算,得到输出信号的新状态
    3. 将输出信号写入到输出映像区
  3. 输出硬件延时(从输出缓冲区状态改变到输出点真实电平改变的时间)

上述A,B,C三段时间,就是限制PLC处理数字量响应速度的主要因素。

一个实际的系统可能还需要考虑输入、输出器件的延时,如输出点外接的中间继电器动作时间等,不在这里讨论。

 

输入硬件延时

表1. 输入点硬件延时

输入点类型 CPU集成输入点(部分) 扩展模块输入点
24VDC 120/230VAC
输入延时 0.2 - 12.8ms(可选) 4.5ms 15ms

以上数据都在《S7-200系统手册》中标明,这里只是列表比较。CPU上的部分输入点延时(滤波)时间可以在编程软件Micro/WIN的“系统块”中设置,其缺省的滤波时间是6.4ms。

如果把容易受到干扰的信号接到CPU上可改变滤波时间的DI点上,调整滤波时间可能改善信号检测的质量。

支持高速计数器功能的输入点在相应功能开通时不受此滤波时间约束。滤波设置对输入映像区的刷新、开关量输入中断、脉冲捕捉功能同样有效。

 

输出硬件延时

表2. CPU输出硬件延时

输出点类型 24VDC晶体管 24VDC(CPU224 XP)晶体管 继电器
输出延时 OFF - ON 2μs(Q0.0, Q0.1), 15μs(其他) 0.5μs (Q0.0, Q0.1), 15μs(其他) -
ON - OFF 10μs(Q0.0, Q0.1), 130μs(其他) 1.5μs(0.0, Q0.1), 130μs(其他) -
开关 - - 10ms

有些输出点要比其他点更快些,是因为它们可以用于高速输出功能,在硬件上有特殊设计。没有专门使用硬件高速输出功能时,它们只是和普通点一样处理

继电器输出开关频率为1Hz。

表3. 扩展模块输出硬件延时

输出点类型 24VDC 继电器 120/230VAC
0.75A 5A 2A 10A
输出延时 OFF - ON 50μs 500μs - - 0.2ms + 1/2AC周期
ON - OFF 200μs
开关 - - 10ms 15ms -
最大开关频率 - 1Hz 10Hz

上述数据来自《S7-200系统手册》。

 

S7-200程序扫描时间

程序扫描时间与用户程序的大小成正比。

《S7-200系统手册》中有每个指令所需执行时间的数据。实际上很难事先预先精确计算出程序扫描时间,特别是还没有开始编程序时。

可以看出,常规的PLC处理模式不适合时间响应要求高的数字量信号。可能需要根据具体任务采用一些特别的方法。

 

S7-200处理快速响应信号的对策

可以单独或组合使用一些S7-200 CPU的高级功能:

S7-200系统中最小周期的定时任务为1ms。

所有实现快速信号处理的措施,都要考虑所有限制因素的影响。例如,为一个需要毫秒级响应速度的信号选择 500μs 输出延时的硬件,显然是不合理的。

 

相关问题

如何知道 S7-200 程序的大小和扫描时间?

参见 Micro/WIN 常问问题