这样的软件是什么意思?

什么样的程序算是好程序?不服来杠!
给TA发消息
加TA为好友 发表于: 13:06:06 楼主
个人认为,在确保功能运行可靠以及相同硬件条件的前提下,程序的扫描周期越短,就说明程序写的越牛!至于什么程序长短(代码字节数)拉,程序可读性啦,指令调用次数(有人管这个指标叫步数)啦,高级指令用得多少啦什么的都是浮云!天挺热的,我也挺热的,所以来论坛跟大家找个茬打打屁,消消暑。。。还望高人们不吝赐杠~~
给TA发消息
加TA为好友 发表于: 14:15:03 1楼
严重同意楼主意见。&在确保功能运行可靠以及相同硬件条件的前提下,程序越简单越好!
给TA发消息
加TA为好友 发表于: 16:03:44 2楼
在确保功能运行可靠以及相同硬件条件的前提下,程序越简单越好!确实是这样,多余的都是卖关子而己。
给TA发消息
加TA为好友 发表于: 18:26:31 3楼
& 在确保功能运行可靠以及相同硬件条件的前提下,程序越简单越好! & 但在一台国人伪造的设备上看设备程序简化了,安全性能低了,设备工作工艺差了---这样的简化就太没有意义了!
给TA发消息
加TA为好友 发表于: 18:46:17 4楼
程序简捷算是其中条件之一,但必须还要满足容错性,可靠性,即无论在什么情况下,也能保证安全运行,例如:1、运行中突然停电时,2、不按常规操作时,3、超出常规的运行位置时(极限),4、某一零部件损坏时等等。
给TA发消息
加TA为好友 发表于: 19:00:42 5楼
引用&Smile-lyc&的回复内容:&严重同意楼主意见。&在确保功能运行可靠以及相同硬件条件...&&
给TA发消息
加TA为好友 发表于: 19:10:47 6楼
没编过程序的都是这么认为的。。。。呵呵呵
给TA发消息
加TA为好友 发表于: 19:52:46 7楼
未用心做过一个程序的都想楼上这么说的。什么自动化公司帮做的程序,一般都是随便做完,能动就算了。完全没有在客户方面想过这样做才能做好。常常发生一些客户无法理解而且又必须的操作才能继续工作的事。我一般的同意楼主意见。程序本身就是要达到功能。好,谁评呢?用户。好的程序要好操作。自动。纠错。顺理成章。如何好操作呢?比如:什么状态就自动弹出什么界面。不需要你操心去翻。如何自动呢?比如:一个行走机械前方有若干个可以停靠的站,程序应该可以根据当前位置意料到操作者需要把机械停在应该去的位置,而不是由操作者看着机械去停机。如何纠错呢?无论是操作错还是电眼断线……大家都懂的了。只是不做而已。如何顺理成章?手工操作做到哪个步骤,随时切换到自动,都要可以无缝切换。我觉得纠错能力最重要。
给TA发消息
加TA为好友 发表于: 12:06:15 8楼
不认同楼主的观点。1.现在的PLC指令执行速度已经大大超过过去,几千步的指令,数毫秒就可以完成,至于如果需要高速扫描的话,也可以使用中断功能来实现。即使是中大型PLC由于指令执行速度更加快,所以往往扫描周期根本不是问题。至少我在写程序时,不用特别关注扫描周期的问题。2.程序可读性不重要!这个观点纯属胡说八道,误导新手。在我看来,程序的可读性应该排在第一为,不管是PLC编程,还是C,都如此。在工业控制中,由于CPU主频的提高和存储器成本的降低,那种必须珍惜每一个位、每一个指令周期的汇编语言时代已经结束,至少我们PLC应用中几乎碰不到这样的情况。即使是用单片机,现在这个问题也不突出。所以无需刻意的节约存储空间,和指令周期。程序的可读性强,会带来一系列的好处。程序可读性越强,程序出现BUG的可能性越低。能使程序更可靠。程序可读性越强,程序功能实现越方便。&&&&&&&&&&&&能实现更复杂的功能。程序可读性越强,程序整个开发周期越短。&&&&&&&&能缩短项目开发周期,提前交货。程序可读性越强,后期维护越简单。&&&&&&&&&&&&&&&&&&&&这条至关重要,能降低维护难度。程序可读性越强,程序复用性越好。&&&&&&&&&&&&&&&&&&&&能降低开发成本。为了达到可读性强,程序长度不可避免的会加长,但这是值得的。写的程序一个月后,自己都看不懂,何来好一说。
给TA发消息
加TA为好友 发表于: 12:41:15 9楼
我看楼上的观点有点圈地为王,沾沾自喜。仅仅是站在自己的一边,完全没有想到用户这份啊。只要可读,就算程序行不行也排第二算了吗?我想大胆问一下:楼上是自动化公司的,还是设备生产制造商的?我笨人是制造商(打工的)。经常看见很多人发帖:急!急急!急急急!裸雪体地跪求……这些人能写出的程序好极都有限。但是如果他是设备的最终用户,那么我非常同情他。因为,这些设备肯定就是让一些无良的编程人员做的。一些垃圾得不得了的控制策略,弄得用户火力来水里去。没办法之下,半桶水的设备管理人员都要逼上梁山。特来求救。我真心同情这些上梁山的人。但是如果这是一些滥竽充数的人混饭吃,你行,你有本事,蒙得过昨天,蒙不过明天。&
给TA发消息
加TA为好友 发表于: 13:38:14 10楼
六楼的哥们,你编过程序么?知道扫描周期是什么意思么?其实有许多人编写PLC要么依赖软件提供的各种向导,要么依赖网上下载的各种功能库。用这些东西攒吧攒吧就是一个程序了。这样的程序,可读性极佳。但效率未必很高。以单键起停为例,有的方式只对一个输入一个输出,两个位地址进行指令逻辑操作而达到功能。有的方式使用计数器达到功能。还有的方式采用字节递增或者字节异或指令来实现功能。。。。综上所述,你认为是就控制两个位的程序执行更快呢?还是控制一个字节或者一个字的程序执行更快呢?但控制两个位的方式,其程序长度可能要比异或方式长。你觉得哪种算更好呢?其他的东西,比如容错。个人认为这也属于功能运行可靠的范畴。试想一个程序扫描周期很短,但在错误操作的情况下,程序就出错了,这显然不能算功能运行可靠。另外,容错类的东西一般不太占资源的,容错容错,其实只是在错误发生的时候才会调用运行。正常过程中,基本不会影响扫描速度。但程序里加了容错,程序长度必然增加,而且看似与主要功能不相干的代码指令也会导致可读性下降。试问这样的设计,算好么?对于可读性这个要求,个人认为,程序写出来是给机器看的,而不是给人看的。让机器看得懂玩的溜才是程序最终极的目标。至于是不是能够让初学者看懂,这根本无所谓。机器运行顺畅,说明机器对程序很满意。机器很满意,用户就会很满意。至于程序员的上级或者同事或者各种小偷看不看得懂,满不满意,能不能从中学到有用的东西,这是一个程序设计师的首要目标么?抱歉,这是培训老师的首要目标!代码可读性强,可维护性就强??这是多么虚伪的一个命题啊??你见过会写程序的人不会修改自己的程序么??
给TA发消息
加TA为好友 发表于: 13:42:49 11楼
屌丝就喜欢讨论这样的问题。。。呵呵呵。。。
给TA发消息
加TA为好友 发表于: 13:44:47 12楼
引用 第五纪冰川 的回复内容: 不认同楼主的观点。1.现在的PLC指令执行速度已经大大... 现如今的自动化公司多如牛毛,但但绝大多数公司的服务理念就有问题。这是客气的说法,不客气的说法就是水平差!我从来不认为一个设备的控制器需要经常性的维护和修改。设备控制器就像一个公司的管理层,试想一个公司三天两头的换经理或者修改公司章程,那这个公司还有个好?好的控制器,从交付用户的时间起,就应该是一个能够可靠执行用户要求的控制器。事后顶多是在需要增加功能的时候才有必要动程序。谁没事老把控制程序改来改去的?可读性强,后期维护就简单??你的程序需要后期维护,和不需要后期维护,这本身就是两个档次。。。
给TA发消息
加TA为好友 发表于: 13:48:02 13楼
回复内容:对:&湖北老四&&六楼的哥们,你编过程序么?知道扫描周期是什么意思么?其...&内容的回复!&我没有编过啊!!你来教教我??
给TA发消息
加TA为好友 发表于: 13:48:46 14楼
引用 芳季 的回复内容: 未用心做过一个程序的都想楼上这么说的。什么自动化公司帮... 顶芳季大大。。。我在官网论坛经常看到你的ID,你的很多想法对我非常有启发。。。
给TA发消息
加TA为好友 发表于: 13:50:19 15楼
回复内容:对: 通讯网-原创军团
屌丝就喜欢讨论这样的问题。。。呵呵呵。。。 内容的回复!是啊,高富帅一般对这种问题是不屑一顾的,人家连程序都不用写,张张嘴皮子啥都有了,还用费这个劲?
给TA发消息
加TA为好友 发表于: 13:51:26 16楼
回复内容:对: 通讯网-原创军团
回复内容:对: 湖北老四 &六楼的哥们,你编过程序么?... 内容的回复!对于根骨资质太差的徒弟,再好的师傅也只能叹息。。。
给TA发消息
加TA为好友 发表于: 14:00:17 17楼
回复内容:对:&湖北老四&&回复内容:对:&通讯网-原创军团&回复内容:对:&湖北...&内容的回复!&呵呵呵。。。是不是你们那里的人都这么拽啊????呵呵呵。。
给TA发消息
加TA为好友 发表于: 16:15:34 18楼
回复内容:对:&湖北老四&&引用&第五纪冰川&的回复内容:&不认同楼主的观点。1....&内容的回复!&不知道楼主接触过上千万的项目没有,不知道楼主接触过上百万的项目没有?如果只做过价值数万,不超过100点的系统,并且还是封闭系统的话,适用你的原则。一个数千,上万点的系统,如果没有可读性,对于客户简直就是灾难!你见到过一个系统持续的维护10年吗,你觉得这10年来都是那个编写程序的人在维护吗?你觉得这个系统10年来都保持毫无变化吗?至于程序的可读性,不管是自动化行业,还是软件行业,都一样适用,也许你有高中同学进入软件行业,打个电话聊聊这个话题,也许你的观点就改变了。&还有,提醒你一下,对通讯网这样的前辈尊重点。我不觉得你有挑战他的那个智力水平和工程经验。
给TA发消息
加TA为好友 发表于: 16:33:10 19楼
回复内容:对:&芳季&&我看楼上的观点有点圈地为王,沾沾自喜。仅仅是站在自己的...&内容的回复!&芳兄误会我的意思了。至于你说的“程序行不行”,如果程序不行的话,怎么能交货呢?程序实现目标任务是基本要求,本帖讨论的是何为好程序,所以所有的讨论都必须基于基本要求必须满足的前提下。对于你说的关于设备维护人员的问题,正说明了程序可读性的重要性,而且是非常重要的。对于客户来说,如果他们自己能够看懂程序,能够独立完成普通的维护工作,那不正说明这是一个好程序吗?反观,如果程序中使用了太多的编程技巧,比如把汇编语言的习惯带入PLC项目,结果真的有点让人崩溃。比如汇编语言中经常用到跳转指令,移位乘法指令等这会给程序编写带来方便,有时是不得以而为之。但你可以想象一点,如果PLC项目中也使用这样的编程方式,你让半桶水的维护人员怎么看懂。当然,对于向维护人员开放程序的问题,我觉得本帖不讨论。小系统和专有设备不可能(或不大可能)向客户开放程序。这样的系统不存在这个问题,当其它的几条问题依然存在。
给TA发消息
加TA为好友 发表于: 16:43:12 20楼
引用 第五纪冰川 的回复内容: 回复内容:对: 湖北老四 &引用 第五纪冰川 的回复内... 首先,尊重是相互的。我对每一个认真讨论的人都很尊重,但对捣乱的人,不管他是谁有什么资历,我都不觉得他具备让我尊重的资格!回到主题上来。再大的程序再庞大的系统,都是由很多具体的功能指令集综合作用实现的。事实上我所强调的,只是一种务实的态度!就好比一个简单继电控制能够实现的功能,就不必要用PLC!一个位指令能够实现的功能,就不必非要用高级指令!用高级指令并不代表水平高,能让机器运行流畅的程序就是好程序!庞大的系统我没主持过,但我想按照目前的行业水平,一个庞大系统的主脑设备,不可能放在PLC上,应该是一台PC或者服务器来完成最顶级的运算以及资源配置。再说了,用汇编语言设计一个巨庞大的系统,不觉得很傻么?系统庞大了,并不意味着对编程的要求有多高,考验更多的是总设计者的统筹架构能力。话说专业写代码的,真的只是蓝领。。。PLC编程只是实现要求的手段之一,仅此而已。
给TA发消息
加TA为好友 发表于: 22:42:45 21楼
回复内容:对:&湖北老四&&引用&第五纪冰川&的回复内容:&回复内容:对:&湖北老...&内容的回复!软件效率与可读性的问题,仁者见仁,智者见智!抛弃具体应用环境,孤立的讨论这个问题,得不出正确的结论。反正我是觉得可读性比效率更重要,特别是现在效率不是多大问题的时候。
给TA发消息
加TA为好友 发表于: 23:41:15 22楼
回复内容:对: 第五纪冰川
回复内容:对: 湖北老四 &引用 第五纪冰川 的回复内... 内容的回复!高级语言的可读性好,毕竟你用汇编得弄一个子程序才能实现的功能,人家调用一个函数就轻松搞定了。但高级语言相比汇编最大的劣势就是效率。不计其数的无效指令冗余操作,换来的就是结构化与可读性。此情此景之下,如果汇编再把效率扔掉,我看不出底层语言还有什么存在的必要。。。如果中国只剩下高级语言程序员,再想在这个行业的核心领域有所建树,那可就难比登天了
给TA发消息
加TA为好友 发表于: 02:13:05 23楼
引用 Smile-lyc 的回复内容: 严重同意楼主意见。 在确保功能运行可靠以及相同硬件条件...
给TA发消息
加TA为好友 发表于: 06:48:20 24楼
这个跟先有鸡还是先有蛋的的问题一样无聊。。。。。 & &什么叫程序的可读性??程序的可读性是对自己而言的,不是对别人,对外人。。要是为了让别人读,那还要N级加密干什么?? & 程序可不可读,在于我而不在于你,比如你到我家说:“你的酱油瓶子应该摆在那里,醋瓶子应该摆在这里,你摆错地方,我就找不着了。&.....呵呵呵。。我摆在哪里关你屁事啊??醋放在哪里,酱油放在哪里,我自己心知肚明,对我来说就是“可读的”,关你屁事啊??你能不能“读”到,能不能“读”懂,关我屁事啊?? & 你也许说。。。要合作。。是,要合作。。可是,谁跟你合作啊??。。。呵呵呵。。连个小项目都没做过,谁跟你合作大项目啊??
给TA发消息
加TA为好友 发表于: 09:28:57 25楼
引用&不知道楼主接触过上千万的项目没有,不知道楼主接触过上百万的项目没有?如果只做过价值数万,不超过100点的系统,并且还是……&我希望不要用钱方面和点数方面压我。程序好坏跟这个应该没有关系。这两方面只能说明这堆东西比较多。我家旁边的垃圾站比我家大,楼层又超高,我想住那儿。可读性是必然的,我不否定可读性。但是我要排位的话,我一定让用户排第一,因为密切接触的是操作人员。我接触过一个程序,一个手动动作时间需要40秒的动作,这个编程人员竟然真的编个点动程序。操作人员就撒比一样站着40秒什么都不能做。我相信这个动作跟1000点和10点的控制没有任何关系吧?我们可不可以设计成维修模式和操作模式让用户自己选择呢?我承认工艺上这个点动程序是可以用的。我强调,我出发点是客户。
给TA发消息
加TA为好友 发表于: 10:05:44 26楼
回复内容:对:&芳季&&引用&不知道楼主接触过上千万的项目没有,不知道楼主接触...&内容程序的功能性都达不到,是不合格的程序,是不可能交互给客户的。一个不合格的程序,没有评判是好是坏的资格。至于我拿大系统来举例的目的在于,小系统往往是封闭的,程序对客户是也不大可能开放,所以程序可读性的问题对客户而言无所谓。为了保护程序,对一些项目往往还会使用不可读的编程方法,故意把程序搞得难懂,但这个是目的性的,不作为讨论。数千上万点的系统如果程序没有可读性,不管对于谁,都是灾难。即使是核心工艺功能块需要加密,至少大结构对用户是开放的。系统的大小当然不是评判程序好坏的标准,但对于不注重程序可读性,带汇编风格的程序员,编写大系统时,不管是自己还是客户,都是灾难!
给TA发消息
加TA为好友 发表于: 10:24:22 27楼
行。你持你的观点。我持我的观点。反正这两项都排并列第二吧。没有第一了。
给TA发消息
加TA为好友 发表于: 10:26:41 28楼
我们做汽车涂装生产线的,从来没按这条要求来写程序。不知楼主是哪行的
给TA发消息
加TA为好友 发表于: 10:33:58 29楼
&个人认为,在确保功能运行可靠以及相同硬件条件的前提下,程序的扫描周期越短,就说明程序写的越牛!&&个人认为你们在讨论是铁牛的牛牛B还是红牛的牛牛B!&所以个人觉得4楼yjig提出的几点非常重要。但是,这些到底是作为乙方的我们考虑还是甲方的上帝的要求,这点真的不一样。并且甲方也有时候愿意为这几点买单的说。&但从以人为本的角度考虑,安全是必要的。如果安全没考虑,就功能运行可靠,这个说牛与不牛似乎意义不大。&&
给TA发消息
加TA为好友 发表于: 10:54:20 30楼
其实,很多问题编过程序的就知道了。。。计算机的发展,最早,要求实效性,要求存储空间小。。。我们在上学的时候就要求过我们甚至学过一门如何简化程序,给程序瘦身的课程。比如,把一些赋值语句放到循环外边,这样就可以减少循环时间。。。&&&&&但随着计算机硬件速度的不断提高,存储器容量不断扩大。。以上两项要求已经不再要求了。。。&&&&&&可读性,是软件发展第二阶段的要求。。。说为什么会出现高级语言,VB,VC等,就是因为以前的汇编可读性不好,可操作性不好。。只有专业人员才可以掌握。。。有了高级语言后,一些中学生,甚至小学生也可以编写些小程序了。。。&&&&&&&软件发展的最新要求,是模块化,可移植性要求。。。。比如让你编一个十六位乘法子程序,并不要求你的程序可读性如何,只要求你的接口标准,比如,被乘数放在R4R5,乘数放在R6R7,结果放在R4R5R6R7中,占用资源越少越好,比如只占用A,B,R0。且子程序,没有溢出。溢出有指示。可以移植,没有固定跳转。放在主程序的任何位置都可以。。等等。。并不要求你可读,读不读的通都没关系,全班30个人,每个人编的都不尽相同,没有关系,测试一下,谁的运算速度最快,就是谁的模块做的最好。没必要看懂程序。即没必要可读。&&&&&比如西门子的某些特殊功能模块是加密的,比如MODBUS模块,PID模块是单独加密的,接口是公开的,你可以使用,但是内部你是看不到的。&&&&&有人动不动说大工程如何如何,其实大工程跟小工程一样,大工程是由一个个小工程组合的。。。就像盖楼,你盖两层,钢筋,水泥,混凝土,你盖100层还是钢筋水泥混凝土。。。&&&&&&&&&&&&就像--芯片是什么??芯片是别人做好的“线路板”供你使用。。。让你做一个更大的线路板。同时,你这线路板又是什么?你这个线路板又是另外一个更大工程的“芯片”。。&&&&&&&&程序也是一样,现在模块化的程序,都是给别人当“芯片”,别人又是在给更高级别的组合“当芯片。”
给TA发消息
加TA为好友 发表于: 12:42:18 31楼
以最常见的污水处理系统为例,国内常用的S7300或S7400组成的DCS为例,点数从数百到上千点,对于这样的系统如果不对用户开放程序,用户如果读不懂程序,用户如何运行和维护这个系统?这样的系统不可能停机等待厂家技术支持,所以往往还是冗余的系统,来提高可靠性,并且厂家或第三方自动化公司会定期到现场做巡检。现在软件上的维护往往可以远程,但很多事情还得到现场才能完成。&再比如水泥厂的DCS系统,不管是基于ABB的还是基于西门子的,这个系统从数千到上万点,这些系统难度通常不大,但复杂性没有人会觉得能秒杀它。这样的系统在重工业环境中运行,如果脱离程序的开放性,这个系统不可能运行!这样的系统当然不可能要求客户自动化部门的所以人员看懂,但客户必须要懂,至少在厂家的远程技术支持下必须要懂,这些系统用不了多长时间,客户就能对整个系统了如指掌。&这样的系统,如果程序可读性不强,让客户如何维护它呀!总不可能让厂家天天往现场跑吧!&小系统与之最大的区别我认为就是具有封闭性,一台或一套设备运行数年,客户都不需要知道程序,往往也不可能让你知道。即使是故障的排查,也可以做到良好的人机互动,让用户轻松搞定。&大系统做完了,或在做的过程客户就会参与其中,最终还会给客户详细的讲解整个流程,目的就是让客户了解全部。&小系统通常是在厂家全部做完,到现场安装。细节不可能让客户知道,谁让客户知道,谁就死得快。
给TA发消息
加TA为好友 发表于: 13:47:00 32楼
这个问题的答案本来就是模棱两可的,是有争议的。在不同的应用场合不同的视角下,会有不同的侧重。但就是这样的问题,才有讨论的必要,也才有讨论的乐趣与收获。如果是一个黑白分明的问题,谁有工夫大热天的跟这抬杠?可读性重不重要?我认为很重要!但不如效率重要。呵呵。。。学C的人都知道,算法的重要性,强调算法的目的是什么?就是效率!多的不说了,感谢通信网前辈的金玉良言,第五季冰川的坚持己见,季芳前辈的求同存异,以及其他参与本话题讨论的各路高手!大家继续!和谐诚可贵,面子价更高,只要能收获,二者皆可抛。。。
给TA发消息
加TA为好友 发表于: 14:37:45 33楼
回复内容:对:&第五纪冰川&&以最常见的污水处理系统为例,国内常用的S7300或S7...&内容的回复!&这位仁兄的观点一直是我提倡的!只有真正做过大系统,思考过系统架构的人才会有这种想法的。我常常把日本人编写程序和德国人编写程序来做比较,他们是两种不同的风格,打个比方如果做第一个项目,日本人可能需要5天,但德国人需要10天,而从第二个类似项目开始,德国人只需要2天,而日本始终是5天,为什么,这就是德国人讲究的代码可重用性,思考的是架构,思考的是编程效率,他们其实是站在不同层面在做事。&&我想中国大部分人只是处在日本人的做事态度上,以功能实现为目标(当然德国人也绝对不会忽略功能的,这是基本要求),从来不考虑以后程序的扩充性,以后在其他项目上的可重用性,以及程序内部代码的重复使用问题,以及工作过两三年的同事能否接手你的程序继续编写,如果没思考过这些问题,谈论PLC程序是否优秀没任何意义。&&&而当你了解了计算机编程的一些优秀架构思想,反过来再来看PLC的程序,你会感慨为什么PLC的编程框架不能更强大?&
给TA发消息
加TA为好友 发表于: 15:33:05 34楼
回复内容:对: 第五纪冰川
回复内容:对: 湖北老四 &引用 第五纪冰川 的回复内... 内容的回复!我很同意你的观点,现在的程序可读性才是最重要的,这在大型项目里尤其重要,在保证可读性的同时应该尽量的减少指令执行时间。
给TA发消息
加TA为好友 发表于: 15:53:22 35楼
随他程序咋样。。自己写的自己懂。别人写的看不懂。。在于整体结构写的好不好的多。
给TA发消息
加TA为好友 发表于: 15:54:55 36楼
回复内容:对:&湖北老四&&回复内容:对:&第五纪冰川&回复内容:对:&湖北老四&...&内容的回复!&看了动画高达就知道,反应是必须要快的。
给TA发消息
加TA为好友 发表于: 20:20:03 37楼
怎么没人说了啊 继续 &
给TA发消息
加TA为好友 发表于: 20:22:31 38楼
引用&Smile-lyc&的回复内容:&严重同意楼主意见。&在确保功能运行可靠以及相同硬件条件...&&
给TA发消息
加TA为好友 发表于: 20:26:40 39楼
不用做无谓的争执,把你们做过的系统的硬件与软件的配置描述清楚,结果自然能分晓。
给TA发消息
加TA为好友 发表于: 20:33:18 40楼
面向设备,反应要快。面向操作者,控制要简便。面向维护人员,程序要易懂。面向制造商,成本要低。面向开发者,需要模块化。立场,都成立。不如大家举一些常见的易懂的例子支持一下自己的观点啊。
给TA发消息
加TA为好友 发表于: 00:22:00 41楼
我的观点来源于我对实践的总结,当然这可能是很片面的,对于编程,我总是很苦恼,也许是我智商不够,或者是技巧不够,也或许是工程经验还不够丰富,但今年我找到了解决这些问题的办法,或许是我自认为找到了办法,而办法来之于从事计算机软件行业的弟弟给我上的一课。先说一下我编程的苦恼:1.难以下笔。拿到项目,硬件设计通常都能迅速搞定,除了选型比较花时间外。但要开始写程序的时候往往不知道从何下手,对于画流程图,我觉得难以运用这个工具。也许一整天,甚至两天都还找不到头绪。当然只要灵感一来,什么图都不用画,就如滔滔江水决堤,不管是小系统还是大系统的功能模块都能很快完成。总之我就觉得西门子的那种编程思想就是比三菱的好用,至于要让我说出为什么,我啥也说不出来。2.漏洞百出。程序是很快就写完了。接下来就是测试,不用说,这样像写小说一样写出来的程序,可想而知,到处是问题,不管小系统还是大系统,从未有一次通过的快感出现过。开始找错误,补漏洞,非常苦恼。补了大洞,来了小洞。这里通过了,哪里又完蛋了。总之,我的程序我总结是建立在BUG的基础之上的。我从来不害怕我的程序被别人,因为难得我自己都看不懂,根本不用害怕别人能看懂了去。3.过于技巧,几个月后自己都看不懂。项目不是一个,做了这个项目做哪个项目,测试通过后都交给客户了。&不管是自己的程序还是解的别人的程序,完工后统统变成RAR压缩文档。几个月之后,也许某个客户这里要改下那里要改下,或系统出了故障需要知道究竟是怎么回事。RAR压缩文档一解开,完蛋,绝对死翘翘,自己都看不懂。越是技巧的程序,越是搞不明白。几个小时过去了,一片空白,和看天书区别不大。苦恼无比。该死,这时才想到当时还是就不应该这么写,可是不这么写又该怎么写呢?4.程序复用性差。不习惯于功能块封装,或者说是不懂得该怎样封装。反正下次能用得上的程序很少,最多就是实现功能的思想下次能用下,还经常性的一个主程序一直到底。这样的搞法既费马达又费电,重复写呀写,写得四肢无力,腰酸背疼,两眼放光!&我很想改变,可我真不知道该如何是好。我相信也有不少的同行和我有一样的苦恼,但方法我总算找到了。通讯网在30楼其实已经部分提到。&那就是&软件工程思想,虽然我还不是太理解。在计算机软件行业早就有了软件工程的思想。对,PLC编程也需要引入软件工程的思想。在从事计算机软件工程的人看来,我们这些数千上万行的PLC代码简直就是简单得可怜,毫无复杂概念所言。对于那些人来说,一年不知道要经历多少个封闭开发项目,一个项目数百M,几个G常见得多了去了,单是那些代码和那些表格,数据处理和那些数百上千页的开发文档,我一看才发现,PLC编程真的太小儿科。人家同样是干项目,几个人的小组,一周,半过月就搞定。相反我们的系统,几个眼镜码了一个月,还在调过去调过来。晕!其实不是我们笨,而是我们没有掌握最好的方法,片面的追求编程技巧,在注重细节的同时丢掉了更重要的东西,正如33楼所说-------系统架构。记得坛子上多次提高到需要在系统架构的高度来考虑整个系统,甚至包含硬件系统。如果我们这些面对PLC的人掌握了这些方法,我认为一样的能够又快又好的完成项目任务。当然,行业的不同,也导致了我们写程序比那些搞计算机软件的面对和考虑的问题不一样,更复杂一些。但我相信,编程的思想是一样的。其实,细细的看每一个回复,和每一个观点,才发现,我们都是盲人摸象,把大家的观点综合起来,其实就是软件工程的核心思想呀!&看来是不是可以这样定义:按软件工程思想编写的程序就是在现阶段下最好的程序。
给TA发消息
加TA为好友 发表于: 08:34:27 42楼
天气真的挺热的。。。。。。。。。。。。。。
给TA发消息
加TA为好友 发表于: 08:41:26 43楼
引用&第五纪冰川&的回复内容:&我的观点来源于我对实践的总结,当然这可能是很片面的,对...&&有过这样的经历,一样也在探索如何将高级语言的编程思想融入到plc的编程之中,但总觉的缺点什么,还望赐教对于工程之中靠性排第一,在运行许可的情况下不一定要精简到极致,不然那么大ROM闲着也是闲着对于第一次做工程的经历还是记忆犹新啊,一次大工程,还是用小程序的思路去编,完蛋了,流程图画的好了,写到最后都不知道自己写的是啥,调试的时候更悲剧很难看懂,最后借鉴C语言的编程模块化思路,然后调用,虽然写的有点长,但是混乱度而言好多了程序感觉只要将每个指令用到恰到好去就是高手,感觉没必要完全追求程序的精妙菜鸟路过,随便说两句,望各位前辈不吝赐教
给TA发消息
加TA为好友 发表于: 12:53:23 44楼
大家去看一下我这个帖子吧:,引出过很多技术同行有关程序的探讨。还有一个有关模块化的帖子:我也是苦苦求索过若干年,后来还是从德国的一些程序里面学到了一些感觉至今还没有被超越的编程思想。&
给TA发消息
加TA为好友 发表于: 16:08:25 45楼
我觉得有相当一部分朋友都走入了一个误区。。。只要程序够简短就一定运行效率高么?比方说同样一个功能,A君用了10个位指令,涉及3个位地址。B君用了5个字节控制指令,涉及2个位地址和两个字节地址。你说哪个程序运行更快?哪个更有效率??我记得在官网论坛里,有高手提到过,少用转换功能。能不用尽量不用,用复位指令清空数据空余地址,然后直接调用数据就好了。因为转换指令是对该格式的整个地址进行操作,执行过程远比复位指令要复杂。类似这样的小技巧,其实就是为了提升代码执行效率,减少冗余。别以为汇编语言就不会有冗余。冗余本来就是个相对的概念,一毛钱能搞定的事情,你非要花一块钱,那就叫冗余。至于编程时无从下手的情况,个人表示不大会遇到。因为这与每个人的编程习惯有关,我就习惯先统计IO点,IO出来了,外部就确定了。然后考虑哪些功能放在外部更划算,最后就是需要PLC完成的部分。然后按照功能或者流程步骤来分块。分块了之后,再就开始写了。所谓的复用性,对于一部分人来说其实是很简单的东西。但如果你对设备工艺不够了解,那么你可能很难做出复用性出色的小模块。见的少了,自然就不好总结。见的多了,发现各种功能当中的共通之处则并不是很困难。最后,强调一点!程序员的前途,其实是在程序之外的。。。当你能够横扫一个行业的时候,想编出不具备复用性的程序都难,因为那是你的习惯,办类似的事情你都是一样的办法。
给TA发消息
加TA为好友 发表于: 16:11:55 46楼
回复内容:对: 青岛黄工
天气真的挺热的。。。。。。。。。。。。。。 内容的回复!黄工请客喝啤酒阀。。。不要青岛,崂山啤就行了~
给TA发消息
加TA为好友 发表于: 18:05:57 47楼
看来44楼的帖子,我总算是明白了!非常感谢老高同志。
给TA发消息
加TA为好友 发表于: 19:03:23 48楼
莫非此贴要火啦,,,,,,,,,,,,,,,,
给TA发消息
加TA为好友 发表于: 23:22:54 49楼
其实从个人习惯考虑&&只要觉得简单就可以了&&&&&&&&&&&&
给TA发消息
加TA为好友 发表于: 08:16:59 50楼
回复内容:对: 湖北老四
回复内容:对: 青岛黄工 &天气真的挺热的。。。。。。... 内容的回复!兄弟湖北的吗,呵呵,有个朋友以前是开坦克的退伍兵,也是你们湖北的,酒量不错,呵呵。。。。。。
总条数: | 当前第1/2页 首页
周点击排行周回复排行
[146] [85] [73] [71] [70] [68] [68] [65] [62] [61]
[13] [12] [10] [8] [4] [4] [4] [3] [3] [3]最新求助
[0] [12] [1] [10] [3] [4] [13] [6] [1] [1]

我要回帖

更多关于 hold是什么意思 的文章

 

随机推荐