技术论坛

 用好符号表

返回主题列表
作者 主题
醉书生
侠士

经验值:1358
发帖数:728
精华帖:25
楼主    2011-03-19 10:32:44
主题:用好符号表 精华帖 
在软件规范里,变量命名本身就是一门学问。
S7-200的符号表就是做变量命名工作的,毫不夸张的说,每一个使用S7-200的人都应该熟练掌握它,如果你对它不屑一顾,觉得自己从来不用它也同样可以做得很好,那么,你还不能算一个真正的程序员。
使用符号表,有程序可读性更好,资源分配一目了然,修改灵活,输入纠错等优点。
不喜欢使用符号表的,我猜测原因之一可能是怕麻烦,速度慢。其实这是认识上的误区,熟练使用符号表后输入速度反而要快。不相信吧?
1.符号表具有自动完成功能,当有几个变量频繁交替使用时,不需要记忆地址区别,只需要键入符号名的前几个字母,就会自动提示,所以输入反而要快。
2.做过指法强化训练的人应该有体会,当一个单词或汉字编码中有连续字符需要用同一只手甚至同一个指头输入时严重的影响输入速度,如果一篇文章中的汉字大多数编码都依次分布在左右两只手上,输入速度会高很多,而且不容易出错。
比如地址变量 VW3234,六个字符全部使用左手输入,速度慢,且易出错。直接地址出错后较难检查出来,符号名出错的话立即会有在线提示,而且编译不会通过。符号名降低出错率实际上是提高了速度。

两个符号名使用的小技巧:
一.快速修改变量地址(在另一帖中已贴过)
1.符号名使用中(否则,先CTRL+Y切换)
2.在符号表中直接修改符号对应的变量地址
3.OK
用符号表修改址有有个好处是数据块中的地址也会同时修改,这个比查找替换好用(数据块中不能选中某部分后在局部范围内全部替换)

二、快速修改符号名(比如符号名 S1 已在多处使用,现在想将它改成 S2)
1.符号名未使用(如正在使用,先CTRL+Y切换)
2.在符号表中直接修改符号名字
3.CTRL+Y,符号名有效
4.OK
注意上面两个小技巧中,符号名是否使用中的条件正好是相反的。

正是因为上面两条快速修改的技巧,后期内存规划非常方便。在编程前可以不考虑内存位置安排,只定义符号名,内存地址可以随便输入(当然不要重叠),这样着重于功能实现与调试,完成后按内存规划要求,将符号名剪切粘贴调整排序,最后用Excel填充功能连续生成地址,一个程序使用到哪些内存,看看符号表一目了然。

增加一个比较另类的“技巧”,有时用这个方法比搜索准确高效
有时需要快速判断某变量或定时器是否重复使用,比如VW100
1.假设VW100的符号名是S1(如果没用定义一个),令符号名使用中
2.直接修改符号名为一个未用的符号(如后面随便加一个后缀)为S1_ttttt
3.编码代码(不是全部编译),下面输出窗口提示错误数(如果为1则只存在1处引用)
4.滚动输出窗口,双击错误提示行,可快速定位到引用处
5.切换到符号表里撤销修改
这个方法在需要查连续查看多个变量引用数时比较方便,界面不需要切换(用查找法会不断变化当前光标)
quote:以下是引用无名在2011-04-26 09:53:23的发言:
利用好符号,符号编排有规律并且整齐划一,
在“查找/替换”的时候非常有用。
相同设备做成标准的函数块,做好一个之后,
其他变量只要替换就可以了。
开始编程前,变量提前规划好,编程思路清晰,函数块标准化,
那么所谓的编程大多时候 就是“复制/粘贴”+ “查找/替换”。
这条可算是符号表应用的精髓,我经常这么干,对相同的工位,将符号表编成一样,每个工位赋以一个不同的后缀,将子程序复制一份后直接查找替换后缀即可。这个在以后修改程序时比较方便,只需要修改一个工位,同样复制后查找替换,防止漏改或手误。
生命存在的方式只有两种:腐烂或燃烧
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。