来自西门子技术支持热线的故事:软冗余系统中如何避免 FB101 的背景数据块长度错误

已锁定

西门子Auto

官方工程师

  • 帖子

    132
  • 精华

    16
  • 被关注

    227

论坛等级:侠圣

注册时间:2007-08-03

普通 普通 如何晋级?

来自西门子技术支持热线的故事:软冗余系统中如何避免 FB101 的背景数据块长度错误

3484

4

2011-12-29 15:22:15

热线上经常有客户咨询软冗余的问题,其中有很大一部分问题是冗余链接建立不了,即两个CPU之间不能同步冗余数据。这种情况下,首先就要检查相关功能块的参数设置,其中很容易出现的一个问题就是调用冗余通信块 FB101“SWR_ZYK” 时生成的背景数据块长度不对。这种问题的隐蔽性很强,一旦出现非常不容易排查。
下面我们就来分析一下出现这种问题的原因,进而避免问题的产生。这里我们以两个S7-400 CPU之间建立ISO 链接为例进行说明,这种情况下需要用到的功能块如图1所示。



图1
首先我们在 OB1 中调用功能块 FB101, 并为其生成背景数据块 DB5,这时我们来看看背景数据块 DB5 的长度。如图2所示,可见实际生成的 DB5 只有 100 个字节,正常的 DB5 长度应该为 358 个字节,DB5长度错误。



图2
如果这时我们下载程序到 CPU 中,则 CPU SF 亮红灯,CPU 诊断缓冲区报写区域长度错误,如图3所示。



图3
如果实际中遇到了这种问题,可以先删除已经生成的错误的 DB5,然后在程序中加载好FB104 “SWR_AG_COM” 后再重新为 FB101 生成一个新的背景数据块 DB5。这时我们再查看 DB5 的块长度为 358 个字节,如图4所示,问题解决。



图4
OK,回过头来分析一下问题的根源。通过上面的解决办法我们不难发现,调用 FB101 并为其生成背景数据块之前必须先加载 FB104 这个功能块到程序中。那么 FB101 与 FB104 之间是什么关系呢?通过查看FB101 的块属性,如图5所示,可以看到在 FB101 中调用了 FB104,所以在调用 FB101 之前需要先将FB104 加载到程序。



图5
类似 FB104 这种在其他块中被间接调用的块非常容易被忽视,所以在实际的应用过程中要特别留意一下。顺便说一下类似 FB104 这种块在程序中的加载方法:
1、可以先在程序中调用一次 FB104,然后再将 FB104 删除。
2、直接从软冗余库中将 FB104 拷贝到当前程序中。
更多关于软冗余的资料可以参考:
《SIMATIC S7-300/S7-400 SIMATIC S7 的软冗余》手册,下载链接:
http://support.automation.siemens.com/CN/view/zh/1137637
下载中心文档:
A0039 软冗余的原理、调试和例程(更新版)
F0462 SIEMENS PLC 系统软件冗余调试的常见问题
来自西门子技术支持热线的故事:软冗余系统中如何避免 FB101 的背景数据块长度错误 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54051条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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