你说的伽利略的这种推断方法,在数学中的微积分学中是最基本的方法:可理解为极限分析法。
最简单的例子就是用微积分计算扇形的面积,可以把它分解成无限数量的梯形(或者矩形)计算。
再说一下PLC编程,现在的发展早已经不是在讨论细微方面的编程技巧了,而是程序架构的问题了。
一个简单的PLC控制,刚入行的人都能搞定,但对于一个大型系统,没有框架思想,编出的程序是脆弱和漏洞百出的
我见过同样是出自德国公司的PLC程序,但给人一看,一个属于二十世纪的技术,另一个属于二十一世纪的技术,虽然他们都能实现各自的功能。
所以一个好的程序,要做到好的维护性,好的可重用性,这才是最重要的。编程不只是为了实现现有功能,应该考虑到维护性、可扩展性,应该考虑到在类似的项目中使用时,能以尽量少的改动去适应新的项目,并且改动起来,不容易遗漏,不容易出错。
常听计算机领域说的一句话,在中国,编程人员一大堆,系统架构师却难找。
我想在PLC领域也如此,虽然它的要求没有计算机领域高。
我用伽利略在学术上提出与亚里士多德的观点截然相反的“新观点”时,以严谨的逻辑推理来指出对方观点中的错误,这样一个范例。来告诉那些持有不同意见,但不懂得用讲道理的方法来跟对方交流的人要好好的向有学问的先辈们学习。
如果你认为图1与图2两个梯形图分别所示的逻辑功能是不等效的,你想否定它们的等效,你只需要具体指出某一种输入组合状态下这两个梯形图有不同的输出结果,就完全彻底的达到了你要否定其“等效”的目的! 而不可以随便的掷块“烂砖”说“错误的化简结果建议删除!”、“你狗屁不懂,难道X4、X5、X6被你吃了?”或者说“程序可以化简,但X4X5X6并不是多余”……等等这些跟帖 都不是用讲道理的方式来跟对方进行交流。
引用通讯网 的回复内容:既然开说,就再给你挑挑毛病,你的梯形图里的触点都是X,输出都是Y,其实任何一个有点编程经验的,都不会这么写,他会用M,为什么我也不说了,你自己考虑
其是他的说法是正确的,在实际程序中基本都是用M代替,比如X0输入 M0输出 在M0输出到Y0,因为在实际程序中X0可能只用一次,用M代替这样在程序检查或者改写程序,或者换个触电比如X2 这样可以方便点的!改程序简单 不用繁琐。我就经常改程序,所以发表下自己的看法。呵呵
不过wanggq也没有说错呗,这只是片段,没有必要弄哪么麻烦。
其实2个人都没有说错 ,一个说实际应用中,一个只说简化,既然是片段就没有必要用M这么繁琐 ,所以2人都没有错 ,只不过理解不同罢了!
就拿第308楼那个网友提问的简单电路来说吧,“LD X0 OR Y1 MPS ANI T1 OUT Y1 MPP OUT T1 K10 ”这个片断在实际应用中难道它有“错误”?!因为它的“输入是X,输出是Y(或T),没有用M ”在需要改点时不方便?!
假设我们想改输入点X0为X2,我们直接把X0改成X2就成了!一点都不会麻烦!改动后该片断成为:
“LD X2 OR Y1 MPS ANI T1 OUT Y1 MPP OUT T1 K10 ”
相比之下如果要生硬的加入一个M0来作输入,变成:
“LD M0 OR Y1 MPS ANI T1 OUT Y1 MPP OUT T1 K10 ”
那么这个片断就变得是不完整的!因为生硬的加入M来充当输入条件是不能使这个片断有任何输出功能的!还必须在片断之外对M0进行了驱动才能使Y1有输出!如下:
LD X0
OUT M0
LD M0
OR Y1
MPS
ANI T1
OUT Y1
MPP
OUT T1 K10
稍有一点正确“认知能力”的人都能看出这个M0是多余的,不必要的!改起输入点来也不可能有任何的“方便之处”!有些人认为,如果X0在程序中的多处使用,就可以使用M来过渡,这样改起来只要改一个M,就改完了程序中所有的X0!其实,在编程软件上(也包括手持式编程器)改输入变量点也跟改M一样的快捷方便!(有事要离开一下,等下个帖子接着谈)
虽然刚学PLC,但必竞在现场干了十几年,搞技术的,水平是有层次的,这和自已的综合素质有关,学就是悟,悟就是学,悟就是一种理解认知的一种能力!用PLC实现一个控制,编程方法有N种,所谓条条大道通罗马。个人认为,在满足控制要求的情况下,越简单越好,简则妙,妙能得道,只有细节,才能体现技术水平的高低及其层次。。。。。。。。。。。
在工作中本人也发现:大凡行业高手,基本上都是将本行业最基础的东西发挥运用到极致!编程也是一门手艺,关于学艺,古人讲的很透很明白:入门之初,多想多练,久练则熟,熟能生巧,巧能变化,化能通神。。。。。。(这也是我工作十七年的心得)
前辈高手们,看了此帖,有何感想,欢迎跟帖。。。。。。。。。
虽然刚学PLC,但必竞在现场干了十几年,搞技术的,水平是有层次的,这和自已的综合素质有关,学就是悟,悟就是学,悟就是一种理解认知的一种能力!用PLC实现一个控制,编程方法有N种,所谓条条大道通罗马。个人认为,在满足控制要求的情况下,越简单越好,简则妙,妙能得道,只有细节,才能体现技术水平的高低及其层次。。。。。。。。。。。
在工作中本人也发现:大凡行业高手,基本上都是将本行业最基础的东西发挥运用到极致!编程也是一门手艺,关于学艺,古人讲的很透很明白:入门之初,多想多练,久练则熟,熟能生巧,巧能变化,化能通神。。。。。。(这也是我工作十七年的心得)
前辈高手们,看了此帖,有何感想,欢迎跟帖。。。。。。。。。
是这样的,熟能生巧,但是现在编写程序很多都不是全新的设计,而是在已有的框架下设计,尤其是标准块的使用,可以实现一次编写多次调用(或在不同项目中调用)的目的,所以虽然某些控制,看似简单,但程序并不是最简,这是因为他们在已有的框架下编写的,很多标准块是被拷贝过来使用的,就像现在的计算机软件为何越来越庞大,都是因为使用了大量库的问题。PLC项目也同样如此,我们追求的应该是以最快的设计速度,最快的调试速度以及最方便的维护来实现项目的功能,这些要求就导致编写的程序并不一定最简,但一定是最利于调试和扩展。
我曾翻译了汽车生产线上的一个滚床控制标准块代码(使用SCL语言替代STL),足足使用了800多行代码,而按照德国人的设计,每一个滚床控制都得调用它一次,如果从代码的执行量上来讲它太多了,但只要PLC满足要求,这就不是考虑的问题,我们关心的是二次设计时,只需要假单的调用它就能实现滚床之间的联动控制,而调试时只需要考虑传递的参数是否正确就行。 所以程序一定要考虑可再利用问题。
内容的回复: