回复:应用探讨——CPU循环的探讨——发帖整理

总坛主 西门子1847工业学习平台

  • 帖子

    3679
  • 精华

    8
  • 被关注

    366

论坛等级:至圣

注册时间:2003-06-06

普通 普通 如何晋级?

发布于 2013-01-06 13:22:32

51楼

quote:以下是引用Automann在2012-11-19 22:06:41的发言:
quote:以下是引用剑忠在2012-11-19 19:38:50的发言:
[B]一、前面大家讨论了影响CPU循环Scan扫描周期的因素很多,当项目程序的Memory较大是,程序设计员的编程代码是否优化,以及OB块的分配调用,则是影响Scan周期的重要因素。
二、关于这个影响Scan周期的因素,我这有个CPU414-2DP成功解决了CPU循环Scan周期严重超时,导致CPU停机STOP的案例,这也是我去年(2011年)SIEMENS自动化专家会议的一篇论文内容,在此给大家分享和探讨。[/B]
1、本项目CPU414-2DP带8个ET200S系列PROFIBUS DP I/O从站、4套S7-200系列EM277模块PROFIBUS DP通讯、1套S7-200系列CP243-1模块Ethernet通讯,还有6套OS站(WinCC)与CP443-1模块Ethernet通讯,采用SCL和CFC工具组合编程,AS与OS全集成TIA架构设计。
2、当项目AS站CFC程序做完Download下载至CPU中,出现了循环Scan周期严重超时,导致CPU停机STOP!

3、经多天的细查看和分析:由于大量使用OB35调用,导致OB35块的本地数据(Local Data)使用超载。
4、通过将DI/DO诊断驱动块移至OB34;AI/AO诊断与驱动块,及PID和ALARM块移至OB33或OB32,OB35中仅保留电控驱动块,从而将降低了OB35的Local Data,使得CFC调用运行组(Run Sequence)得到优化,而成功解决!

5、通过Memory和Scan对比图示可看出,优化的效果很好。这么大的程序容量Memory,而Scan周期却1ms,这也得益于S7-400CPU丰富的OB块、强大的运算处理能力,以及CFC工具的方便性。

各循环中断组织块之间应该要设置相位偏移量吧?否则循环周期成倍数的循环OB还是会有同时调用的时候。
剑侠对程序优化前后的最大扫描周期为什么会相差几百倍?可能的解释是OB35循环中断程序过长,超过了OB35的循环周期,导致CPU被OB35长期占用造成的。而不是“OB35块的本地数据(Local Data)使用超载”。(我的理解是程序空间超载)。
这个例子很经典,向我们展示了程序优化的必要性和效果。
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54616条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。