回复:请教200里面的VD、VW、VB多是全局变量吗?比如:我在主程序使用了VD10,那么我在其他子程序中是否可以任意调用呢?

鼠老爹

  • 帖子

    2218
  • 精华

    13
  • 被关注

    21

论坛等级:侠圣

注册时间:2005-11-17

普通 普通 如何晋级?

发布于 2007-06-14 21:20:52

0楼

这里所说的地址重叠与交叉应用完全无关。
1、为了避免地址重叠,关键是编制寄存器分配表,即符号表。然后按照分配表使用寄存器。如有添加使用的寄存器,立即把它编入符号表。这样,当你使用符号寻址时,错误的寄存器地址就不会显示出它应有的符号,在程序窗口中很容易就能被发现。
2、寄存器地址(偏移量指针)是有规律的:VB占用1个偏移量;VW占用2个偏移量;VD占用4个偏移量。这是不可改变的。如果定义了VB0,那么下一个V寄存器必须从“1”开始定义;如果定义了VW0,则下一个V寄存器必须从“2”开始;如果定义了VD0,则下一个V寄存器必须从“4”开始。也就是说,定义了VD0,就不能再定义VD2,因为它们共同使用了VB2和VB3,这就是地址重叠。如果在编制符号表时出现地址重叠,符号表最左侧一列会出现警示标志告知你。
3、如果在程序中存在地址重叠(有时是无意中写错的,我有时也会犯此类错误),那么程序在运行过程中肯定会出现错误的数据,这可以通过状态表监视发现那些寄存器出现了不正常的数据,并追踪检查写错的地址。这是需要耐心的,没有捷径可寻。
综上所述,编制合理、完整的地址分配表(符号表)是必须养成的良好习惯。
家养老鼠名MINNIE
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-200

共有33257条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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