对于西门子PLC 1500CPU,为什么循环时间的长短依赖于使用的存储卡和存储内容?
以下使用扩展指令程序传输数据的程序可能导致这种情况
描述:
循环时间由以下部分组成:
- 主循环程序完整处理时间
- 中断主循环程序,执行更高优先级程序的处理时间(当前循环周期)
- 更新过程映像区所需时间
- 操作系统通信过程所需时间
异步指令会产生通信负荷,因此会导致循环周期的波动。该链接Extension of cycle time due to communication load" 提供了有关通讯负荷如何影响循环时间的更多信息。
基本有两类指令,不同于同步指令,异步指令可以多次调用,在循环的用户程序中并行处理。
所有的访问存储卡 (SIMATIC Memory Card, SMC) 的异步指令都能导致循环周期的波动。这种波动取决于:
- 存储卡的版本或者类型
- 数据容量
- 文件的数量和大小
- 每一个目录下的文件数量
示例
图中异步指令 "READ_DBL" 和 "WRIT_DBL" 访问装载存储区 (SMC)。本示例中存储卡SMC已达到自己的存储极限,这会增加断电时对于数据一致性保护的管理负荷,导致对存储卡读写性能的损失,然后引起循环周期增加 。
图 1
解决方法
-
使用大容量存储卡
-
如果使用循环中断OB,必要的话,增加它的时钟周期(比如从 5 ms 到 30 ms)。
-
如果程序中包括了很多异步指令(READ_DBL),不要配置STEP 7(TIA 博途)程序循环监控时间限制。