第4章 编程规范的标准化
工程师在工作中会接触很多程序,也会调试一些别人事先编好的程序,特别是当调试别人程序的时候,很多工程师都会说:“哎,还不如自己重新写一遍来得快”。这可能是由于别人程序写得不好,思路和逻辑不清晰,但更多的问题应该是在编程的规范上,比如发现程序里面好多的Tag××(××是不断累加的数字),而以前STEP7编程的程序都是绝对地址符号M,导致可读性和可理解性非常差。
除了变量符号不规范外,由于没有严谨的程序结构和良好的编程习惯,程序中对同一个设备的处理程序经常会交叉,令数据交换混乱不堪。
还有就是一些变量和符号没有告知具体来源(比如SCADA/HMI),而这些变量有的时候只是参与了一些状态控制,但变量名称可能只是一些没有意义的符号,这个时候,阅读程序就会感觉这个变量好像“天外来客”,不知道怎么来的。不同的设备或项目可能大部分相似,但总是有一些地方做得不是特别彻底。
正是由于工控文档做得不好的情况普遍存在,很多程序的功能都是要靠工程师自己逐一去猜测,所以很多工控人士很害怕调试别人的程序。
本章编程规范的标准化,以西门子的PLC为例,不同的PLC的编程规范可能不一样,但只是程序书写的规范不一样而已,和整个标准化的思路不冲突。
首先,编程软件中变量ID命名应该遵循以下原则,这个原则适用于所有模块的编程:
1)变量名由字母、数字、下划线组成;
2)必须以字母开头,英文单词的首字母大小写的选用应当统一;
3)变量名必须是有意义的词语或词语组合,之间用下划线隔开,如Act_Tempera-ture;
4)不能超过32个字符,如过长可简化单词,能看懂即可,例如:英文单词Machine可缩写为Mach;
5)不能使用一些关键字,如if,for;
6)使用英文(变量尽量多做注释)。
高级语言行业内程序员目前常用的命名方式主要有4种:
1)匈牙利命名法,主要表现为变量前有类型前缀,例如intMyName;
2)骆驼(驼峰)命名法,主要表现为变量首字母小写,例如myName;
3)帕斯卡(pascal)命名法,主要表现为变量首字母大写,例如MyName;
4)下划线命名法,变量名用下划线隔开并全部小写,比如my_name。
作者建议,在面向对象的标准程序中推荐使用“前缀+下划线+帕斯卡命名”的方法,其中前缀用于表示变量类型;下划线用于隔开前缀和后面部分;帕斯卡命名主要用于描述该变量的功能。若名称比较长,帕斯卡命名部分也会存在简写的可能,依据实际情况确定。