技术论坛

 【周三技术工坊】编程风格指南的八个重要规则

返回主题列表
作者 主题

至圣

经验值: 15497
发帖数: 1554
精华帖: 115
楼主    2019-09-03 17:40:19
主题:【周三技术工坊】编程风格指南的八个重要规则 精华帖 

        使用SIMATIC控制器或者SIMOTION编程时,程序员的任务是创建一个尽可能清晰可读的用户程序。 每个程序员都会使用自己的方法和策略,例如命名变量或程序块甚至是注释的写法。 不同的程序员的方法和策略创建了非常不同的用户程序,最终会产生各种不同的代码。

        这对程序维护和协作工作会造成一定的困难。因此可以考虑采用一致的编程风格。


        *使用一致的编程风格的优势

        如果有几个程序员在同一个程序上工作,建议坚持使用统一协调的编程风格。 这提供了以下优点:

  • ·一致的连续风格

  • ·易于阅读和理解

  • ·简单的维护和可重用性

  • ·轻松快速的故障排除和纠错

  • ·多个程序员在同一项目中高效工作


  • 规则1: camelCasing表示法定义标识符-比如tempMaxLength

        1. 如果编程风格中没有注明标识符表示法的其他规则

        2. 指南,各自的标识符写在camelCasing中。

        3. 以下规则适用于camelCasing:

                a. 首字母以小字体书写。

                b. 不使用分隔符(如连字符或下划线)。

        4. 如果标识符由多个单词组成,则每个单词的首字母为写成大写字母。


  • 规则2:块的标识符以大写字母开头;实例DB块的前缀使用'inst'/'Inst'

块(OB,FB,FC,DB,背景数据块,TO等)的标识符以大写字母开头

        例如: ConveyorControl

        实例DB块的前缀使用'inst'/'Inst':

        例如:

        单次实例:InstHeater (大写→自己的块)

        多重实例: instTimerMotor(小写→在一个实例中)


  • 规则3:在程序中初始化临时变量

        临时变量(TEMP)必须由用户进行初始化。通常,必须确保在读取临时变量之前始终先初始化或者写入临时变量值。

        Example

        #tempAcceleration := 0.0;

        #tempVelocity := #MAX


  • 规则4:在FC或者FB中,仅使用本地数据变量.FC和FB中不允许访问全局数据

        1. FC和FB中不允许访问全局数据。这包括以下内容:

                a. 访问全局数据块和使用其他实例数据块

                b. 访问标签(标签表)。

        2. 访问数据通过接口进行。


  • 规则5:始终评估错误代码

        如果程序中调用的FC,FB或系统函数提供错误信息和标识,则始终需要对这些信息和标识进行评估。通过设置布尔错误变量来指示错误。


  • 规则6:常量的定义使用大写字母和下划线

        常量的定义使用大写字母和下划线,常量的名称总是以大写字母书写要检测单个单词或缩写,应在单个单词或缩写之间使用下划线。 比如:MAX_VELOCITY。而且应该尽量使用本地常量。


  • 规则7:对于复杂的变量比如需要使用结构体的情况下定义为用户数据类型

        用户定义数据类型的标识符前面带有前缀“type”。


  • 规则8:在程序的开始进行重要信息的注释

        程序代码(SCL,LAD,FBD),需要描述重要的信息,例如:

        //============================================

        // Company// (c)Copyright (year)

        //-----------------------------------------------------------------------------

        // Library: (that the source is dedicated to)

        // Tested with: (test system with FW version)

        // Engineering: TIA Portal (SW version)

        // Restrictions: (OB types, etc.)

        // Requirements: (hardware, technological package, memory needed, etc.)

        // Functionality:(that is implemented in the block)

        //-----------------------------------------------------------------------------

        // Change log table:

        // Version Date Expert in charge Changes applied

        // 01.00.00 dd.mm.yyyy (Name of expert) First released version //============================================

 

 

        更多详细信息,请参考如下文档:

        https://support.industry.siemens.com/cs/us/en/view/109478084


                                                                                              -------来自 西门子技术支持工程师

WOWUWUWU
至圣

经验值: 10373
发帖数: 1794
精华帖: 0
1楼    2019-09-04 12:21:24
主题:【故事】回复:【周三技术工坊】编程风格指南的八个重要规则
很好,值得收藏。
愁容骑士
侠圣

经验值: 2484
发帖数: 368
精华帖: 1
2楼    2019-09-04 13:24:03
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

很不错的分享,谢谢!

WWCWWC
至圣

经验值: 71748
发帖数: 8031
精华帖: 145
3楼    2019-09-04 16:28:25
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

前一段时间,在论坛上讨论热烈的就是如何规范化程序,这是其中良好的应用习惯。

chenieee
游侠

经验值: 554
发帖数: 39
精华帖: 0
4楼    2019-09-04 16:37:14
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

总结的很到位,点赞。

不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
5楼    2019-09-04 16:54:04
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

感谢分享。

邮箱 yongquancun@126.com
MP44
侠圣

经验值: 4546
发帖数: 516
精华帖: 1
6楼    2019-09-05 11:34:13
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

总结的不错,应该好好学学

启善
奇侠

经验值: 7486
发帖数: 630
精华帖: 1
7楼    2019-09-05 17:54:11
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

谢谢分享,收藏了

wzcyp20
奇侠

经验值: 8709
发帖数: 130
精华帖: 0
8楼    2019-09-06 08:07:32
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

 总结的好,为了效率和便于理解

辛巴~贝伦
游士

经验值: 294
发帖数: 16
精华帖: 0
9楼    2019-09-06 09:09:50
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

 在FC中不访问全局变量,那么全局变量的意义是什么呢

yecao2006
至圣

经验值: 18031
发帖数: 1524
精华帖: 2
10楼    2019-09-06 09:43:35
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

非常好的分享。好东西太多了。

我回来了!继续努力!
volcanol
侠圣

经验值: 4940
发帖数: 790
精华帖: 12
15楼    2019-10-31 22:17:19
主题:回复:【周三技术工坊】编程风格指南的八个重要规则

能做到楼主说的这几条已经算是不错的了。


我最近接手的一个程序,上面的雷都有, 简直让人无语,而且还有很多其他不好的编程风格, 变量随意用,注释和符号不一致等等,反正就是瞎**编程,  目的只有一个就是让接手的人根本不能看懂,显示自己的水平。

这还是不算,明明很简单的事情非要绕一个大圈子。

 更可笑的是编程的人还以为自己水平牛逼的一批。


-------------------------------------

我编程的信条只有一条,那就是程序是自解释的。

目标就是, 如果我把程序交出后,后来的维护人员不要再打我电话,骚扰我。就算是我编写的程序有很多bug, 后来接手的人也能自己把问题解决, 而不是左一个电话右一个电话来让我告诉他这个地方是怎么个意思。




获取资料关注:https://www.cnblogs.com/volcanol/
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。