8 存储器原理
8.1 S7-400 CPU 存储器概述
存储区的组织结构
S7 CPU 存储器可分为以下区域:
Ꮉᄬټ఼᭄
图片 8-1 S7-400 CPU 的存储区
长沙工控帮教育科技有限公司整理
针对 RAM 的分配进行参数设置后,CPU 的重要说明已更改
如果通过修改参数来更改工作存储器分配,则在向 CPU 装载系统数据时可识别此工作存储 器。其结果是删除用 SFC 创建的数据块,并将装载存储器中的初始值分配给其余数据 块。
如果更改以下参数,则装载系统数据时,会更改逻辑块或数据块的工作存储器的可用容 量:
• 过程映像大小(基于字节;在“循环/时钟存储器”标签中)
• 通讯资源(仅限 S7-400;“存储器”标签)
• 诊断缓冲区大小(“诊断/时钟”标签)
• 所有优先级的本地数据编号(“存储器”标签)
计算所需工作存储器的依据
要确保不超过 CPU 上工作存储器的可用空间,在分配参数时必须考虑以下内存空间要 求:
表格 8-1 所需内存空间
参数 所需工作存储器空间 在代码/数据存储器中
过程映像的大小(输入) 12 字节,每 1 字节过程输入映像 代码存储器
过程映像的大小(输出) 12 字节,每 1 字节过程输出映像 代码存储器
通讯资源(通讯作业) 每个通讯作业 72 个字节 代码存储器
诊断缓冲区的大小 诊断缓冲区中每个条目 32 个字节 代码存储器
本地数据量 1 字节,每 1 字节本地数据 数据存储器
S7-400 CPU 中的存储器类型
• 项目数据的装载存储器,例如块、组态和参数设置。
• 用于运行时相关块(逻辑块和数据块)的工作存储器。
长沙工控帮教育科技有限公司整理
注意
如果要扩展 CPU 的过程映像,请注意以下事项。确保将只可在过程映像上方操作的 模块组态为也位于扩展过程映像的上方。这尤其适用于在 S7-400 的 S5 适配器箱中 运行的 IP 和 WF 模块。
灵活的存储容量
• 工作存储器:
工作存储器的容量通过从各种档次的 CPU 中选择适当的 CPU 来决定。
• 装载存储器:
集成的装载存储器对于中小型程序来说已足够。
插入 RAM 存储卡可增加装载存储器的容量,以用于更大型的程序。
还可使用闪存卡确保在发生电源故障(即使没有备用电池)时可以保持程序。闪存卡
(8 MB 或更多)也适用于发送和执行操作系统更新。
备用
• 备用电池为集成和外部装载存储器、工作存储器的数据部分以及代码部分提供备用电 源。
长沙工控帮教育科技有限公司整理
长沙工控帮教育科技有限公司整理
S7-400 的周期和响应时间 9
9.1 循环时间
周期时间的定义
周期时间表示操作系统执行一个程序所需的时间,也就是说,一个 OB 1 周期包括中断该 周期的所有程序段和系统活动。
该时间受到监视。
分时共享模型
周期程序扫描及用户程序的处理以时间片的方式执行。为更好地进行处理,假定在以下处 理中每个时间片的精确长度都为 1 ms。
过程映像
过程信号在程序扫描前进行读/写操作,以便在周期程序扫描期间,为 CPU 提供一致的过 程信号映像。然后,在程序扫描期间当寻址地址区“输入”(I) 和“输出”(O) 时,CPU 并 不直接访问信号模块,而是寻址输入和输出映像所在的 CPU 的内部存储区。
周期程序扫描过程
下表及下图说明了周期程序扫描的各个阶段。
表格 9-1 周期程序处理
步骤 过程
1 操作系统启动扫描周期监视时间。
2 CPU 在输出模块中写入过程映像输出表中的值。
3 CPU 读出输入模块的输入状态,然后更新过程映像输入表。
4 CPU 以若干时间片处理用户程序并执行程序中指定的操作。
5 在周期结束时,操作系统执行挂起任务,如装载和清除块。
长沙工控帮教育科技有限公司整理
9.1 循环时间
周期时间的各个组成部分
6&&26 3,, 3,4 3,4˖䕧ߎⱘ䖛ڣ
3,,˖䕧ܹⱘ䖛ڣ 6&&˖ᠿᦣ਼ᳳẔᶹ⚍
26˖᪡㋏㒳
ᯊ䯈⠛˄↣Ͼ↿⾦˅
ᯊ䯈⠛˄↿⾦˅
⫼᠋ᑣ
ᕾ⦃ᯊ䯈
᪡㋏㒳
⫼᠋ᑣ 䗮䆃
图片 9-1 周期时间的各个部分和组成
长沙工控帮教育科技有限公司整理
9.2 循环时间计算
9.2 循环时间计算
增加周期时间
一般应注意用户程序的周期时间会因以下因素而增加:
• 时间驱动的中断处理
• 硬件中断处理
• 诊断和错误处理
• 通过 MPI、PROFINET 接口和连接的自动化系统内部的 CP 通讯
(例如,以太网、PROFIBUS DP);包括在通讯负载中
• 特定功能,如控制和监视变量或块状态
• 传送和清除块,压缩用户程序存储器
• 内部存储器测试
影响因素
下表指出了影响周期时间的因素。
表格 9-2 影响周期时间的因素
因素 注释
过程映像输出表 (PIQ) 和过程映像输 入表 (PII) 的传送时间
... 参阅表“过程映像传送时间部分”。
用户程序执行时间 ... 从不同指令的执行时间计算,参见
S7-400 指令列表
。 扫描周期检查点的操作系统扫描时间 ... 参阅表“扫描周期检查点的操作系统扫描时间”。通讯引起的周期时间增加 要在
STEP 7
中以 % 设置通讯的预期最大允许周期负载,请参 见手册用 STEP 7 编程
。中断对周期时间的影响 中断功能可随时中断用户程序。
... 参阅表“嵌套中断引起的周期时间增加”。
长沙工控帮教育科技有限公司整理
9.2 循环时间计算
9.2 循环时间计算
9.3 不同循环时间
9.3 不同循环时间
基础知识
周期时间的长度 (Tcyc) 在每个循环中并不相同。下图显示不同的周期时间 Tcyc1 和 Tcyc2。
Tcyc2 比 Tcyc1 长,因为循环扫描的 OB1 被日时钟中断 OB(此处为 OB10)中断了。
2%
7
3,4 2%
ᕾ⦃
3,, 6&& 3,4 3,, 2%
6&&
2%
7ᕾ⦃
3,4 3,,
ᔧࠡᕾ⦃ ϟϔᕾ⦃ ϝϾᕾ⦃
ᮄ ᮄ ᮄ ᮄ ᮄ ᮄ
图片 9-2 不同周期时间
块处理时间(例如 OB 1)的波动也可能是导致周期时间波动的因素,波动原因如下:
• 条件命令
• 条件块调用
• 不同的程序路径
• 回路等
最大周期时间
在 STEP 7 中,可修改缺省最大周期时间(循环监视时间)。当该时间到期时,调用 OB 80。在 OB 80 中,可以指定 CPU 如何响应时间错误。如果未通过 SFC43 重新触发周期 时间,则 OB 80 会在第一次调用时将周期时间加倍。在这种情况下,当第二次调用 OB 80 时,CPU 将切换为 STOP 模式。
长沙工控帮教育科技有限公司整理
9.3 不同循环时间
9.4 通讯负载
9.4 通讯负载
实例:20% 的通讯负载
您已在硬件组态中组态了 20% 的通讯负载。
计算的周期为 10 ms。
20% 的通讯负载是指分别为通讯和用户程序保留平均长度为 200 μs 和 800 μs 的时间片。
所以,CPU 处理一个循环需要 10 ms / 800 μs = 13 个时间片。这意味着,如果 CPU 充分 利用已组态的通讯负载,则实际周期时间为 13 乘以 1 ms 的时间片 = 13 ms。
这就意味着,20% 的通讯不是将周期线性增加 2 ms 而是增加 3 ms。
实例:50% 的通讯负载
您已在硬件组态中组态了 50% 的通讯负载。
计算的周期为 10 ms。
这意味着,为循环保留长度为 500 μs 的时间片。所以,CPU 处理一个循环需要 10 ms / 500 μs = 20 个时间片。这就意味着,如果 CPU 充分利用已组态的通讯负载,则 实际周期时间为 20 ms。
50% 的通讯负载是指为通讯和用户程序各保留长为 500 μs 的时间片。所以,CPU 处理一 个循环需要 10 ms / 500 μs = 20 个时间片。这就意味着,如果 CPU 充分利用已组态的通 讯负载,则实际周期时间为 20 乘以 1 ms 的时间片 = 20 ms。
这就意味着,50% 的通讯不是将周期线性增加 5 ms 而是增加 10 ms。
实际周期时间与通讯负载的相关性
下图说明了实际周期时间与通讯负载的非线性相关性。该实例使用 10 ms 的周期时间。
长沙工控帮教育科技有限公司整理
9.4 通讯负载
PV
PV
PV
PV
PV
PV
ᕾ⦃ᯊ䯈
ৃℸ㣗ೈݙ䆒㕂䗮䆃䋳䕑
䗮䆃䋳䕑 图片 9-6 周期时间与通讯负载的相关性
对实际周期时间的更多影响
由于因通讯组件而导致周期时间增加,因此从统计的观点看,与其说发生了中断,倒不如 说在某个 OB 1 周期内发生了更多的异步事件。这也增加了 OB 1 周期。延长的时间取决于 每个 OB 1 周期内出现的事件数以及处理这些事件所需的时间。
备注
• 检查在系统运行时更改参数“由通讯引起的周期负载”的值的效果。
• 设置最大周期时间时,必须考虑通讯负载,否则会发生时间错误。
建议
• 如果可能,请使用缺省值。
长沙工控帮教育科技有限公司整理
9.5 反应时间
9.5 反应时间
响应时间的定义
响应时间是指从检测到输入信号算起,到更改与该信号链接的输出信号为止的时间。
变化
实际响应时间为介于最短响应时间和最长响应时间之间的某个时间。组态系统时,必须始 终考虑最长响应时间。
下文中对最短和最长响应时间进行了分析,以使您对响应时间的变化有所了解。
因素
响应时间取决于周期时间和以下因素:
• 输入和输出的延迟
• PROFIBUS DP 网络上的附加 DP 周期时间
• 用户程序的执行
输入和输出的延迟
依据模块的不同,必须注意以下时间延迟:
• 对于数字输入: 输入延迟时间
• 对于具有中断功能的数字输入: 输入延迟时间 + 模块内部准备时间
• 对于数字输出: 可忽略的延迟时间
• 对于继电器输出: 典型延迟时间介于 10 ms 和 20 ms 之间 继电器输出的延迟取决于温度和电压
• 对于模拟输入: 模拟输入周期时间
• 对于模拟输出: 模拟输出的响应时间
可在信号模块的技术规范中找到时间延迟。
长沙工控帮教育科技有限公司整理
9.5 反应时间
PROFIBUS DP 网络上的 DP 周期时间
如果已使用 STEP 7 组态了 PROFIBUS DP 网络,则 STEP 7 将计算必须预期的典型 DP 周期时间。然后,可在编程设备上为总线参数显示组态的 DP 周期时间。
下图概述了 DP 周期时间。假定本实例中每个 DP 从站的平均数据长度为 4 个字节。
PV
PV
PV
PV
PV
PV
PV
PV ᘏ㒓
䖤㸠 ᯊ䯈
⊶⡍⥛˖0ESV
⊶⡍⥛˖0ESV
'3Ңキⱘ᭄Ⳃ
᳔ᇣҢキ䯈䱨
图片 9-7 PROFIBUS DP 网络上的 DP 周期时间
由于在 PROFIBUS DP 网络上有多个主站运行,因此必须为每个主站的 DP 周期时间留出 一定余地。即,必须单独计算每个主站的时间,然后将结果累加起来。
长沙工控帮教育科技有限公司整理
9.5 反应时间
9.5 反应时间
计算
(最短)响应时间的构成如下:
• 1 x 输入的过程映像传送时间 +
• 1 x 输出的过程映像传送时间 +
• 1 x 程序处理时间 +
• 1 x SCC 的操作系统处理时间 +
• 输入和输出的延迟
结果等于周期时间加上 I/O 延迟时间的总和。
说明
如果 CPU 和信号模块都不位于中央机架中,则必须加上两倍的 DP 从站帧运行时间(包 括在 DP 主站中的处理时间)。
最长响应时间
下图说明了如何达到最长响应时间。
长沙工控帮教育科技有限公司整理
9.5 反应时间
9.5 反应时间
9.5 反应时间
9.6 计算循环时间和反应时间
9.6 计算循环时间和反应时间
周期时间
1. 查询指令列表,算出用户程序的运行时间。
1. 查询指令列表,算出用户程序的运行时间。