您现在所在的是:

PLC论坛

回帖:20个,阅读:2689 [上一页] [1] [2] [3] [下一页]
2015
万泉河.
文章数:915
年度积分:-100
历史总积分:2015
注册时间:2009/12/4
发站内信
发表于:2019/7/24 19:19:48
#0楼
【万泉河】PLC编程:注释有多重要?

经常在各种场合见过一些行业专家整理的PLC编程的技巧或者原则,经常其中总会有一条:完备的注释。

我自己也发起过好程序差程序的讨论,见文章《【万泉河】好的PLC程序和坏的PLC程序的比较标准》
http://www.ad.siemens.com.cn/club/bbs/PostStory.aspx?a_id=1479565&b_id=82&s_id=&num=174#anch

后面的跟贴的网友,就有不少把完备的注释作为一个主要条件补充在后面的。大意就是写上完备注释的才是好程序,不写注释的就是烂程序!一看就知道是以往被没有详尽注释害惨了。简直苦大仇深啊!

看到这些评论的时候,我总是微微一笑。

不接茬。

今天主动讨论一下这个话题。

先说下什么是注释,为什么要写注释。

显然,符号表变量名不是注释。注释是程序段之间,或者每个程序段开头,留白的区域,可以备注一些文本。这些文本不是程序的一部分,所以没有语法检查,也不会报错。现在的软件,普遍已经支持中文注释了。不会有任何问题。

换位思考下,为什么要写注释?是编程者自己的备忘录。写给自己,或者自己团队其他人的。比如工作将来有可能交由其他同事继续完成或者维护,那么在这里把当时的想法,做法,改动细节等等记录下来。将来再有问题的时候,后来者可以从中了解到一些重要参考信息。

所以总的来说,注释是写给自己的。

如果注释的目标读者是其它人,比如学生。那么这是学校老师在准备教学生学习编程的教材。因为学生对象的认知水平是固定的,所以可以有的放矢的来写。

而如果目标读者都是未知的,这注释可怎么写?从最基础的一步步写还是步子大一点直接写最精要的纲领?

写的太精炼了,初学者就会表示看不懂,就有可能抱怨你注释没写好。甚至有情商低的,会从中揣度出来阴谋论,认为你就是故意不好好写注释,就是为了...让...俺...们...看...不...懂...!

而你要是注释写的每个细节面面俱到,那除了初学者之外的高手,或者初学者过了初学阶段后,看到这些注释,会认为罗嗦,你写这么详细,是拿我们当幼儿园小朋友吗?啥都往里面写,没有主次,重点都沉没在垃圾信息里了!

所以,标准都很难定呢!

我在初学PLC的时候,那时候还是S5的PLC,读的老外的程序,关于指示灯的。大致是:



意思是系统运行的时候指示灯亮起。但系统运行过程中(不会停),如果有不正常的状况,就闪烁。

那时候就非常搞不懂,一个运行,一个闪烁,并联就是了。为啥还要多此一举在运行后面还串个ALARM的非?

也抱怨过老外程序的注释也不写明白点。当然啦,他就是写的那点注释,也是德语的。要看懂还得逐字查德语词典。

后来,等自己写程序的时候,就下定决心,一定要让后面的维护人员看得懂!所以事无巨细,各种说明都写的满满的。

可这一行逻辑这样,换个设备还是这个逻辑,就把它连程序带注释复制过来,反正也不累。等复制上二十几行,我就想,我是不是成了絮叨的老太婆了?人家看了会不会烦啊!

那么程序的注释到底应该写成啥样子呢?

其实在论坛讨论的回帖里面,就有人说过,好的程序自带注释。

深以为然。

看一下标准化架构下做的一段程序吧,一个设备的调用:



这样的程序,连注释都是多余的。

但换个视图,不显示符号,只显示绝对地址会怎样?




乱糟糟,完全看不懂啊!每个变量都做啥的?

所以,我们的程序,需要的是一套完备的符号表,以及详尽的库函数的接口描述和功能说明。简单设备的库函数也不需要。

总结一句话:好的程序架构自带注释功能。
[此贴子已经被作者于2019/7/25 8:07:16编辑过]
PLC标准化编程
2015
万泉河.
文章数:915
年度积分:-100
历史总积分:2015
注册时间:2009/12/4
发站内信
发表于:2019/7/24 19:20:54
#1楼
此楼内容不符合板块规定,不予显示! 查看原帖内容>>
8018
蜀中之首
文章数:5230
年度积分:50
历史总积分:8018
注册时间:2018/5/27
发站内信
发表于:2019/7/25 7:13:35
#2楼
注释都是给“外人”看的,将I/O表,符号,工艺.....做个文件附件就好了
2015
万泉河.
文章数:915
年度积分:-100
历史总积分:2015
注册时间:2009/12/4
发站内信
发表于:2019/7/25 8:01:45
#3楼
附件 43.jpg
PLC标准化编程
2015
万泉河.
文章数:915
年度积分:-100
历史总积分:2015
注册时间:2009/12/4
发站内信
发表于:2019/7/25 8:04:07
#4楼
回复 #2楼 蜀中之首
己所不欲勿施于人,你认为是写给外人看的,很好。

你自己写程序的时候,原原本本都写清楚吧,就假设读者是个中学毕业的电工。

到时候可别连源程序都不给,甚至PLC上传都带密码啊!
PLC标准化编程
9714
chi1225
文章数:2530
年度积分:353
历史总积分:9714
注册时间:2014/7/31
发站内信
发表于:2019/7/25 8:38:05
#5楼
程序不是写给别人看的,而是要让设备完美的运行起来!自己写的程序自己能理解就行,所以有没有注释不重要,也不能作为评判好坏程序的标准。我接手过不少二手工程,大多都是从PLC里读出来的,根本没注释可言?但我发现有些依然是很好的程序,特别是逻辑关系很清晰,程序各功能归类很好~~总之编程思路很好,有时我都是直接拿别人的程序修修改改就变成了我自己的模板了。。
搞野心事业总是有风险的,当无路可退时,最明智的选择是想办法前进~~
37934
cvlsam 版主
文章数:12471
年度积分:545
历史总积分:37934
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2019/7/25 9:06:02
#6楼
我拜读了那篇文章,10年前我可能会非常赞同文章的内容,现在我却持有不同的意见:
好的程序应该是:
1、良好的可读性
2、维护性好,并不能因为一个小功能而去修改整个程序。
3、简单的逻辑结构,我的每一个功能块都不会超过25行代码,如果有超过25行代码的风险,我宁愿使用功能块嵌套。

而且那篇文章说面对对象的,我不清楚他所谓的面对对象是从硬件层次来描述的还是软件层次的,如果是从软件层次来描述的话,那么众所周知,软件上的面对对象三要素属性,接口和多态,目前接触下来,施耐德的Somachine可以做到,但是仍然不是所有系列均支持。

至于注释,不在于多而在于精炼,过多的注释是在侮辱下一位看程序的智商,而太少的注释或许若干年后连自己都看不懂,不过我写程序注释很少,以至于我现在回看我以前的程序发现竟然看不懂了。

Good Luck~
6291
zhengchang
文章数:1820
年度积分:84
历史总积分:6291
注册时间:2011/5/6
发站内信
发表于:2019/7/25 9:44:43
#7楼
回复 #5楼 chi1225
程序不是写给别人看的,而是要让设备完美的运行起来!自己写的程序自己能理解就行,所以有没有注释不重要,也不能作为评判好坏程序的标准。非常同意
29001
秀空
文章数:13489
年度积分:493
历史总积分:29001
注册时间:2012/10/26
发站内信
2018春节活动(三)
2014相约国庆
发表于:2019/7/25 9:57:14
#8楼
西门子的大河淌过来,估计每贴都火。
自己缩写的程序,大一点的,没注释,时间一长,真的会忘记。
以前厂家有注释的程序不给我们,给的是从PLC上传的那个程序,
8018
蜀中之首
文章数:5230
年度积分:50
历史总积分:8018
注册时间:2018/5/27
发站内信
发表于:2019/7/25 10:37:56
#9楼
以下是引用万泉河.2019/7/25 8:04:07的发言:
己所不欲勿施于人,你认为是写给外人看的,很好。

你自己写程序的时候,原原本本都写清楚吧,就假设读者是个中学毕业的电工。

到时候可别连源程序都不给,甚至PLC上传都带密码啊!

中学毕业的电工,几级电工?
小学没毕业的8级电工,熟悉工艺,熟悉继电器逻辑,照样看懂你的程序,除非你编的程序眉飞色舞不着边际。

你付费的项目,程序+电子表格(内有I/O,控制说明)+外部接线图,统统给你
你要求加密,附件里有密码。
你讨价还价,备份在云盘,PLC里的程序随便下,看不懂那是你的事

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

93.6006