这些问题都是关于S7-200 PLC在处理开关量(数字量)信号时的快速响应能力。只有在控制任务对数字量信号的处理速度要求很高时才需要考虑。
S7-200可以采用两种方式处理数字量信号:
典型的数字量信号处理包括从输入信号变化,到S7-200识别、进行逻辑运算得到结果并输出,最后输出信号状态实际改变的整个过程。
S7-200 CPU按照以下机制循环工作:
只要CPU处于运行状态,上述步骤就周而复始地执行。在第二步中,CPU也执行通信、自检等工作。
上述三个步骤是S7-200 CPU的软件处理过程,可以认为就是程序扫描时间。
实际上,S7-200对数字量的处理速度受到以下几个因素的限制:
上述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系统手册》中有每个指令所需执行时间的数据。实际上很难事先预先精确计算出程序扫描时间,特别是还没有开始编程序时。
可以看出,常规的PLC处理模式不适合时间响应要求高的数字量信号。可能需要根据具体任务采用一些特别的方法。
可以单独或组合使用一些S7-200 CPU的高级功能:
S7-200系统中最小周期的定时任务为1ms。
所有实现快速信号处理的措施,都要考虑所有限制因素的影响。例如,为一个需要毫秒级响应速度的信号选择 500μs 输出延时的硬件,显然是不合理的。
如何知道 S7-200 程序的大小和扫描时间?
参见 Micro/WIN 常问问题。