来自西门子技术支持热线的故事:隐藏的DB块

已锁定

西门子Auto

官方工程师

  • 帖子

    132
  • 精华

    16
  • 被关注

    229

论坛等级:侠圣

注册时间:2007-08-03

普通 普通 如何晋级?

来自西门子技术支持热线的故事:隐藏的DB块

5156

15

2012-02-15 15:07:24

Engineer: 您好,西门子热线
Customer:您好,我遇到了一个CPU无法正常控制变频器的问题
Engineer: ?您用的是什么通讯方式?CPU的订货号是多少?用的是哪种变频器啊?
Customer:CPU的订货号是6ES7-314-6BF01-0AB0,采用CPU本体集成的PTP口,使用的是DRIVE ES SIMATIC集成的USS库来控制MM440变频器。
Engineer: 您详细描述一下遇到的技术问题
Customer: 我这里有两个MM440的变频器,变频器使用29、30端子,PTP口使用的是11#和4#针脚,正和正直连,负和负直连。当我直接控制一台变频器时一切正常。当时当我将第二台440变频器挂到USS总线上,在OB100中将变频器的数量改为2,下载程序,CPU无法启动。
Engineer: 在您的程序中,OB100里面调用的FC23的管脚怎么填写的?
Customer: PKW的数量为4,PZD的数量为2,只是将SANZ(从站个数)参数的值从“1”改为“2”,其他的参数都和原来一样,没有做任何修改。

Engineer: 您选择在线模式,确认一下程序里面DB100的容量是多少?
Customer: 46个字节

Engineer: 您的问题就出在这里,对于USS库来说,控制一个变频器需要46个字节,控制两个需要92个字节。
您可以在step7中选择在线模式(online mode)
在CPU的work memory中可以看到DB100容量:
控制1个变频器,DB100数据块容量(DB100内部容量为46字节)




控制2个变频器,DB100数据块容量(DB100内部容量为92字节)




用户数据块DB100是通过系统功能块SFC22自动建立的(见下图)。




在CPU的work memory里面没有该DB块时,数据块在CPU启动时会自动被创建。
但是如果该DB在CPU的工作存储区中已经存在, CPU启动时不会自动更新DB块的容量。如果新的DB块比之前DB块的数据容量小,系统不会报任何错误;但是如果新的DB块比之前的容量增大了, CPU程序无法访问到这些增加的数据区域,因此CPU就会报错
(见下图)




由于在FC23中调用了系统功能块SFC 46(CPU停止功能块),造成CPU无法启动。(见下图)



您可以在线将对应DB块删除,重启CPU,让系统将对应的DB块重新生成一下就可以了。
Customer:哦,原来最关键的问题是在DB块的容量上,我明白了,谢谢啊。。。。。。

在step7的程序中,可以在需要的情况下调用系统功能块SFC22自动创建数据块(DB),该功能可以使程序的编写更为灵活。但是自动创建的DB和普通DB相比,查看起来没有那么方便,存在很大的隐蔽性,只能在CPU的work memory 显示(即:只能通过在线查看功能块的方式来查看程序自动创建的DB,无法再step7的源程序中查看),这就为客户查看或检查程序带来了一定的困难,所以如果遇到相应问题应该首先排查这种可能性。
来自西门子技术支持热线的故事:隐藏的DB块 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54214条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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