关于300、400的寻址验证引出的问题

已锁定

WWCWWC

西门子1847工业学习平台

  • 帖子

    8025
  • 精华

    145
  • 被关注

    1334

论坛等级:至圣

注册时间:2008-07-26

钻石 钻石 如何晋级?

关于300、400的寻址验证引出的问题

879

10

2020-12-03 09:46:21

关于300、400的寻址验证引出的问题

   昨天在“找答案”栏目中,看到这样这个问题,是求助西门子300寻址的含义,问题贴链接:

http://www.ad.siemens.com.cn/service/answer/solved_243572_1077.html

程序:

      OPN   DB     130

      A     DBX [MD 1300]

这段程序不完整这里暂时不做解释,在下面有说明,主要来说明寻址方式。

而网友一再确认这个DBX [MD 1300] = M1308.0,我感觉这个理解存在问题,首先MD1300没有在调用前赋值(没有看到赋值程序段),那么,假设MD1300 = 0,根据:

      OPN   DB     130

      A     DBX [MD 1300]

我认为如果MD130没有提前“赋值”,系统默认为0,这个地址应该指向DB130.DBX0.0这个地址,为确认我这个想法,我按网友的意思写了他描述的那段程序,并模拟仿真:


    我在仿真器上使能DB130.DBX0.0,监控程序段STA值为1,说明在没有赋值相当于MD1300 = 0,这个地址应该是寻址到DB130.DBX0.0,为说明这个问题,我给MD1300赋值为1,那么,寻址地址应该指向DB130.DBX0.1,图示:

 

  同样,我再次给MD1300 = L#10,那么,寻址地址应该指向的是DB130.DBX1.2,图示:

 

  本来此问题已经说明到此,应该是说清楚了。但是,我在继续验证其它程序段时,发现一个另外的问题,图示:

当我取消DB130.DBX1.2的位使能,那么,我网络段3的简单程序,为什么没有了正常输出?声明下面地址是没有重复使用的。

      A     M      0.0

      =     M      0.1

监控的现象是,当DB130.DBX1.2 = 0,M0.0 = 1,按理M0.1 = 1,开始监控结果:

 

  当,我给DB130.DBX1.2使能为1时,网络3使能输出正常。关闭DB130.DBX1.2 CPU并没有什么系统报警,图示:

 

诊断缓冲区没有这方面的报警信息。

我将网络2的那段程序补充成为完整一个网络程序,网络3程序可以正常,图示:

 

    看来,STL编程语言要求虽然是低,但是,基本的程序完整性还是需要确保的,不然,出现意想不到的问题自己还不一定能够搞明白,好在我验证的程序段例子,程序做的非常简单、易懂,看的清楚明白。

   希望那位网友看到此贴,也可以理解、参考300、400的寻址原则。


关于300、400的寻址验证引出的问题 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-300/400

共有54044条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

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