如何估算S7 CPU 中的采样间隔和PID控制器数量?
如果想在S7 CPU中使用大量的PID控制器,则需要评估控制器的采样间隔和功能块的运行。
控制器功能块在时间中断OB (通常为 OB35)中被调用 3 次。由此实现等距的采样时间或控制周期(例如 5 ms、20 ms、100 ms)。根据合理的控制器数量,在一个 OB 调用中编辑多个控制器,以获取较短的采样间隔。在一个 OB 调用中编辑的控制器数量越多,对 OB1 的二次影响(周期负载)越大。
除了调用次数之外,还必须考虑 FB 的运行时间(对 OB1 的二次影响)。
举例
假设:
- 功能块在一个循环周期的运行时间为5 ms。
- OB1的运行时间(不考虑中断)为30 ms。
- 两个控制循环在OB35中连续运行。
- OB35的时间中断循环周期为20 ms。
OB1每隔20 ms被OB35中断10 ms ,即OB1循环每20 ms被延长10ms。OB1循环周期持续40 ms 或 50 ms ,如下图所示。

图 01
调节选项包如标准PID控制提供了一个调用分配器,调用分配器提供了一个便捷的途径来确定在循环时间中断OB3x 中的调用顺序和频率。对于集成控制器,这些由用户来决定。
下表列出了在不同的S7 CPU中控制循环块的典型运行时间:
| 功能块 |
CPU 315-2AF03-0AB0, FW V1.2 |
CPU 315-2AG10-0AB0, FW V2.0.0 |
CPU 317-6CF00-0AB0, FW V1.0 |
CPU 416-2XK02-0AB0, FW V3.1 |
FB41 CONT_C PID Control |
2 ms1 |
1 ms1 |
0.2 ms1 |
0.1 ms1 |
FB42 CONT_S PID Control |
2 ms1 |
1 ms1 |
0.2 ms1 |
0.1 ms1 |
FB43 PULSEGEN PID Control |
0.5 ms1 |
0.2 ms1 |
0.05 ms1 |
0.02 ms1 |
FB58 TCONT_CP (without controller optimization) PID Control |
4 ms1 |
1.5 ms1 |
0.3 ms1 |
0.15 ms1 |
FB58 TCONT_CP (with controller optimization) PID Control |
5 ms1 |
2 ms1 |
0.4 ms1 |
0.2 ms1 |
FB59 TCONT_S PID Control |
3 ms1 |
1 ms1 |
0.2 ms1 |
0.1 ms1 |
FB1 PID_CP Standard PID Control |
5 ms1 |
2 ms1 |
0.4 ms1 |
0.2 ms1 |
FB2 PID_ES Standard PID Control |
6 ms1 |
2 ms1 |
0.4 ms1 |
0.2 ms1 |
1 典型条件下的取整值(非最坏情况 )。
下面是一个计算采样间隔的例子:
举例
- S7-CPU 315 (6ES7315-2AG10-0AB0) 和 FB58 TCONT_CP (带控制器优化) 结果为:
2 ms * 控制器数目
假设在S7 CPU 315 (6ES7315-2AG10-0AB0)中运行50个PID控制器。如果OB3x循环周期为2 ms 且每个OB3x循环周期处理一个控制器,那控制器的采样时间为100 ms。如果每个OB3x循环周期处理两个控制器,则控制器的采样时间减半为50 ms (OB1负载加重).
注意
循环采样时间不仅影响CPU的运行负载,而且影响PID控制器的效果。控制器对两次采样间隔之间的输入变化不响应,控制器的输出保持不变。
另外,必须考虑过程的控制路径。位置控制和压力控制通常需要一个比温度控制(典型值100 ms - 10000 ms)更短的采样时间(典型值1 ms - 100 ms),因为每一个控制路径有一个不同的时间特性。因此,最小的循环采样时间间隔必须小于特定CPU的控制程序运行时间,而且最大的循环采样时间间隔为工艺动态中定义的允许的上限值。