回复:想了解一套复杂程序全部摒弃用M,那拿什么来替代M?

已锁定

伊默

西门子1847工业学习平台

  • 帖子

    4273
  • 精华

    118
  • 被关注

    220

论坛等级:至圣

注册时间:2003-10-24

白金 白金 如何晋级?

发布于 2021-08-31 08:47:48

30楼







好久没分享了,我来分享一个。 这个是我改之前同事程序的时候发生的现象。

1、“单循环”这个全局变量,变量表里对应的地址是M74.3  , 将鼠标选中“单循环”,在下面的常属性里可以看到它对应的地址是M74.3 , 如图1

2、然而.... 当你把鼠标悬浮在“单循环”这个变量上时, 它显示的对应地址却是 M0.2 !!! 如图2。所以当时出现了一个奇怪的现象就是: 程序在别的功能块里写入了“单循环”(M74.3)为TRUE, 但是在这个功能块里监控“单循环”(M0.2) 却为FALSE!!!  交叉引用查找 “单循环”定义的确只有M74.3 ,  一个变量,却有两个对应的地址,神不神奇?意不意外?

3、选中项目的程序,右键点“软件全部重新编译”, 这个操作过后, 再将鼠标悬浮于“单循环”变量上,它显示的地址变更为M74.3 了!!!


说明了什么?
1、尽量不要用全局变量,更不要使用M区! 偏激点讲,M,T等等这些地址都是属于上世纪的产物,那只是为了兼容以前的PLC来使用。  我的程序里,从来不用系统自带的定时器T,也从来不用M变量作为中转,从不!Never ! 养成这个习惯。  需要全局变量怎么办? 自己建立全局的DB块!  使用M区,当几个人编辑同一个项目时,往往造成不可预知的地址冲突,象这个一样。另外项目移植时也容易造成地址冲突。
2、当程序改动较大时,特别是增减了变量,一定要选中程序,软件全部重新编译!特别是HMI项目有时不这么操作,结果显示的画面不全,甚至变量对应不上!


以上纯属个人观点,不必强加于人,只是个人分享


I can do it
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1500系列

共有11108条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

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

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

  • 分享

  • 只看
    楼主

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