技术论坛

编程过程中小小的“粗心”造成的一串问题

作者 主题
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
主题:【分享】编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 楼主 2018-04-25 11:58:54
标签:

编程过程中小小的“粗心”造成的一串问题

先上交叉引用表,图示:



MD188与MD190之间的地址区占用情况:

MD188 = MW190 + MD188

MD190 = MW192 + MD190

而实际应用这些地址且且是调用模拟量转换实际工程量FC105时OUT4输出的地址分配区。通道输出的MD188的数据正好落在MW190上,造成其它通道的FC105输出管脚OUT4与该MD188地址数据叠加,数据出错。图示:


于是乎,下面的运算、控制就会莫名其妙的产生了,此处省略600字。哎,这“乌龙”闹的,无语、、、、、、



 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1476812&b_id=4&s_id=26&num=4

侠圣

经验值: 2300
发帖数: 442
精华帖: 1
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 1楼 2018-04-25 17:22:12
M区变量用了都给编辑一个名字,就算是一个上升延也要编一个xx_fp的符号名,在使用的时候结合交叉索引和符号表可以确认哪些是用过的,剩下的就可以开开心心的使用了

你这错,是因为懒
co771@qq.com,好难
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 楼主 2楼 2018-04-25 17:30:22

由此可见,一些中间变量、计算过程的地址选择是多么的重要。

过去,一直认为调用中间过程数据采用数据块是一件得不偿失的事情。

现在看来,你调用一个地址必须先弄清楚数据类型,地址占用区域,然后再调用就不容易闹乌龙了。




 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2300
发帖数: 442
精华帖: 1
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 3楼 2018-04-25 17:30:57
我在编辑符号表的时候,如果用了M0.0,那剩下的M0.1~M1.7都有给个名字,比如M00~M17,或者SM0.1~SM1.7。好处是,一知道有这些bool没有被使用,二是我需要一个Word或int就会避开MW0。

或者就把M0.0~M9.7都当作bool,word/int分配为W10~MW98,real从MD100~MD196,直接把MW10,MD100当作符号名,用到程序中就改合适的名字,这样不至于符号表乱糟糟。
co771@qq.com,好难
以下网友喜欢您的帖子:

  
至圣

经验值: 13937
发帖数: 2008
精华帖: 43
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 4楼 2018-04-26 08:13:40

我就是喜欢DB+UDT组合!M区几乎不用。


人生就像一场旅行!
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 楼主 5楼 2018-04-27 07:50:23
以下是引用Letham在2018-04-26 08:13:40的发言 >4楼

我就是喜欢DB+UDT组合!M区几乎不用。

看来不用M区是有道理的。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 37446
发帖数: 5133
精华帖: 47
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 6楼 2018-04-27 08:38:35

编程的确是马虎不得,严重的可以带来严重的破坏性。


我现在基本上都是使用DB,M地址如果使用都是事先做好规划再使用,我刚刚入门时也是经常犯这样的错误


工业起重机防摇摆 QQ:404136820 AntiSwayControl
以下网友喜欢您的帖子:

  
奇侠

经验值: 7264
发帖数: 558
精华帖: 2
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 7楼 2018-04-27 09:44:51

地址重叠问题比较难查,一楼本例的问题还相对比较好查,要是用到类似P#Mx.y byte n 这样的隐藏寻址,那估计真的是要疯了!


低调做人 高调做事
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 楼主 8楼 2018-04-27 09:58:06
以下是引用威师爷在2018-04-27 08:38:35的发言 >6楼

编程的确是马虎不得,严重的可以带来严重的破坏性。


我现在基本上都是使用DB,M地址如果使用都是事先做好规划再使用,我刚刚入门时也是经常犯这样的错误

这个“乌龙”闹的有一点大了,哎,还是无语。

多么疼的领悟。

这个控制程序在用已经有快10年了,以前正常工作时,2个传感器是“异步”工作的,所以平时使用到没有什么问题,最近工艺变更,需要变更程序控制,才发现这个的。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 4857
发帖数: 1014
精华帖: 4
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 9楼 2018-04-27 15:43:18

我现在也用M位很少,一般就前面几个特殊含义用下,其他中间信号大部分是用DB块


 
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 楼主 10楼 2018-04-27 15:50:20
以下是引用不断的学习在2018-04-27 15:43:18的发言 >9楼

我现在也用M位很少,一般就前面几个特殊含义用下,其他中间信号大部分是用DB块

好习惯,必须赞一个。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 3886
发帖数: 556
精华帖: 1
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 11楼 2018-04-28 20:32:06

用DB就不会重复了啊,重复了会报错吗?一直没注意过这点。


精益求精
以下网友喜欢您的帖子:

  
侠圣

经验值: 3003
发帖数: 455
精华帖: 0
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 12楼 2018-05-04 14:58:24

地址重叠的事情,每次都要犯错,我是因为编址比较乱的原因;


Automation
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 楼主 13楼 2018-05-04 15:00:58
以下是引用pingchangxin在2018-04-28 20:32:06的发言 >11楼

用DB就不会重复了啊,重复了会报错吗?一直没注意过这点。

用数据块地址DB,仍然会有地址重叠的可能。

良好的习惯的确保问题的根本。


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 7738
发帖数: 1270
精华帖: 19
回复:编程过程中小小的“粗心”造成的一串问题
推荐帖


只看楼主 14楼 2018-05-04 15:08:54


对于交叉引用我更喜欢看这个,编完程序会大概看一下左边导航区,有没有用重复的地址。


工控人生!
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 楼主 15楼 2018-05-04 15:57:15
以下是引用怪怪虎在2018-05-04 15:08:54的发言 >14楼


对于交叉引用我更喜欢看这个,编完程序会大概看一下左边导航区,有没有用重复的地址。

认真对待地址的使用,良好的习惯是确保类似问题的保障。

每个人的习惯不同,我个人也喜好用数据块来做中间过程变量,那样查找起来更方便。

原因是调用前你必须先定义名称、数据类型后才能使用。


 
以下网友喜欢您的帖子:

  
至圣

经验值: 10208
发帖数: 2605
精华帖: 19
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 16楼 2018-05-04 16:54:36

老司机也粗这种问题了。

闹心。。。。。。


个人一般都是DB块了,很少用M区。


JUST DO IT
以下网友喜欢您的帖子:

  
至圣

经验值: 72010
发帖数: 8043
精华帖: 145
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 楼主 17楼 2018-05-04 17:11:26
以下是引用依然在2018-05-04 16:54:36的发言 >16楼

老司机也粗这种问题了。

闹心。。。。。。


个人一般都是DB块了,很少用M区。

不是的,是帮人找到这个问题。

哎,说来话长,我一直让他自己仔细找找的。


 
以下网友喜欢您的帖子:

  
侠圣

经验值: 2508
发帖数: 131
精华帖: 0
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 18楼 2018-05-06 14:36:28

学习了!编程确实需要严谨!谢谢楼主分享!


 
以下网友喜欢您的帖子:

  
至圣

经验值: 24889
发帖数: 4534
精华帖: 10
回复:编程过程中小小的“粗心”造成的一串问题


只看楼主 19楼 2018-05-08 07:39:18

地址冲突了,我喜欢用DB,基本不用M区。


别人在休息的时候,我往前走。
以下网友喜欢您的帖子:

  
收起
编程过程中小小的“粗心”造成的一串问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。