电工学习网

 找回密码
 立即注册
查看: 821|回复: 0
打印 上一主题 下一主题

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

[复制链接]
跳转到指定楼层
楼主
发表于 2020-12-3 11:57:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
程序:
      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这个地址,为确认我这个想法,我按网友的意思写了他描述的那段程序,并模拟仿真:
关于300、400的寻址验证引出的问题
    我在仿真器上使能DB130.DBX0.0,监控程序段STA值为1,说明在没有赋值相当于MD1300 = 0,这个地址应该是寻址到DB130.DBX0.0,为说明这个问题,我给MD1300赋值为1,那么,寻址地址应该指向DB130.DBX0.1,图示:
关于300、400的寻址验证引出的问题
  同样,我再次给MD1300 = L#10,那么,寻址地址应该指向的是DB130.DBX1.2,图示:

关于300、400的寻址验证引出的问题
  本来此问题已经说明到此,应该是说清楚了。但是,我在继续验证其它程序段时,发现一个另外的问题,图示:
当我取消DB130.DBX1.2的位使能,那么,我网络段3的简单程序,为什么没有了正常输出?声明下面地址是没有重复使用的。
      A     M      0.0
      =     M      0.1
监控的现象是,当DB130.DBX1.2 = 0,M0.0 = 1,按理M0.1 = 1,开始监控结果:
关于300、400的寻址验证引出的问题
  当,我给DB130.DBX1.2使能为1时,网络3使能输出正常。关闭DB130.DBX1.2 CPU并没有什么系统报警,图示:
关于300、400的寻址验证引出的问题
诊断缓冲区没有这方面的报警信息。
我将网络2的那段程序补充成为完整一个网络程序,网络3程序可以正常,图示:
关于300、400的寻址验证引出的问题
    看来,STL编程语言要求虽然是低,但是,基本的程序完整性还是需要确保的,不然,出现意想不到的问题自己还不一定能够搞明白,好在我验证的程序段例子,程序做的非常简单、易懂,看的清楚明白。
来源:西门子工业技术论坛

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-5-7 19:39

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表