来自西门子技术支持热线的故事:本地数据

已锁定

西门子Auto

官方工程师

  • 帖子

    132
  • 精华

    16
  • 被关注

    227

论坛等级:侠圣

注册时间:2007-08-03

普通 普通 如何晋级?

来自西门子技术支持热线的故事:本地数据

3443

9

2012-03-05 10:58:54

工程项目做的越多,大家手里握有自己或他人编写的实现某些特定功能的FC或FB块也就越多。尽管如此,热线中却常常遇到因使用这些功能块出问题而怀疑CPU坏了的例子,以下的查错步骤希望能对奋战在第一线的工程师们有所启发和帮助。
检查CPU是否正常,一般先看CPU的“面子”,即面板上的LED灯状态,如果面板上没有任何错误指示灯亮或闪烁,则需要查看CPU的“里子”,即程序的逻辑性是否存在潜在的漏洞,可参考之前的热线故事《功能块使用问题》;若CPU面板上SF灯或INTF灯亮,则需要检查CPU诊断缓冲区,而出现频率较高的是这样一类故障:本地数据分配错误EVENT ID16#3576如图一,“你来我往”多次之后发现几乎都是因为更换调用OB造成的!



让我们掀开本地数据的面纱,看看是什么导致本地数据分配出错?
本地数据区俗称临时数据区,CPU为每个优先级分配固定大小的本地数据区,以S7-400为例, 如图二6ES7414-3XM05-0AB0 CPU内存属性中显示每个优先级预分配的本地数据区大小:
OB35默认优先级为12(如图三),本地数据区大小默认为758字节;
OB34默认优先级为11(如图三),本地数据区大小默认为256字节;






在图四中, OB35在调用FC1时需要为其在本地数据区中分配512字节的临时数据区域供其使用,整个OB35需使用的本地数据区最大为534个字节。如果在OB34中调用FC1,由于OB34的本地数据区最大只有256字节,无法给FC1分配足够的临时数据区,就会导致CPU报错。所以在OB35中调用的FC1,CPU执行正常,而在OB34中执行FC1,CPU则如图一报告本地数据分配错误, EVENT ID16#3576。



只要找到故障点,解决问题就有的放矢了。可在图二所示属性页中修改相应本地数据区的大小,或将功能块放到本地数据区足够大的优先级中使用。本地数据的大小依赖于不同的CPU,具体可参考CPU的技术参数。对诊断存储区的每类故障做到一丝不苟并追根到底,相信各类故障会“闻风而逃”。
来自西门子技术支持热线的故事:本地数据 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54044条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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