就在前两天我体验了一次完整被教育的课程,那天我正在笔记本电脑前编写一款嵌入式产品的开发需求,QQ有消息一位陌生人加我,我同意后他直接发给我一张西门子自定义形式PID图片,问我能不能给教给他写一个这样的块,我说我工作比较忙已经不提供免费编码了,他问我要多少钱,我说你要是有偿就不用找我了,工控网有很多朋友提供这样的服务,他非让我出个价格,我就报了一个价格但是他嫌太贵,这时候他才娓娓道来说他只是一个学生没有钱,他就问我能不能教他,我问,你到底哪不会?是不是不知道PID的离散算法公式和如何封装功能块,他说是。就这样他愿意出100元让我教会他这些。当我把算法公式和封装方法手把手教给他以后。我以为这件事到此结束,但万没想到这只是风波的开始,转天他在QQ上跟我说他还是开发不出来他想要的PID功能块,还责怪我没有教会他。我跟他说你看看聊天记录我是教你算法和如何封装功能块,你自己开发不出来就说我的问题,在那个时我有的并不是气愤而是无奈。我要求把100元退还给他实在受不了他那拿着不是当理说。这件事让我以后不敢去帮助学生和合作,更愿意帮助那些困在技术问题上的工程人员。以前也有很多学生问我技术问题我也都一一回答了!
在这里我给学生们写一份自控快速成长之路的推荐书。(我讲的是学习方法而不是技术知识,方向以工控应用,以初级工控人员能力为目标,这里不讲述如何成为一个工控资深人士,因为每个资深人士的成功的路都不同但是都是艰辛的!)
一、在学期间把基础课学扎实主要是以下课程:数学(主要是高等数学、线性代数、离散数学而复变函数和积分变换实际应用中较少涉及)、英语(必备,这里我就不阐述它的重要性了大家都知道)物理、数字电子、自控原理(PID控制)、可编程控制器原理(主要是了解PLC结构原理)、C语言、数据结构。
二、在校期间业余学习以下几门技术。(windows网络设置、SQLSERVER开发、VB开发、excel应用、autocad使用)
三、毕业后尽量找一个工控工程公司,不要去生产厂做自控维护。(维护是门门通具不精)
四、当进入自控公司后首先要学的不是编程和设计而是要多学和多动手接触传感器、仪表、阀门还有泵和马达;了解为何在此工艺条件下选用这样的设备;了解这些设备原理如何动作和信号类型(24V/4-20MA/1-5V)。
五、参加西门子PT4的300/400编程和维护培训,或者等同类培训(不要参加网上课程在没有硬件和动手试验下纸上谈兵不得实用)建议为期一周。(课程科目要遵循西门子PT4的课程设置,因为西门子的课程设置非常实用,但是PT4的讲师实战能力。。。,所以大家选择培训不管在哪培训最主要是选择一个有丰富经验能讲得出来的老师)
六、参加国内组态软件的免费培训(可以参加网上课程,纯软件是可以模拟使用,而且这个有没有好的老师,没有什么太大区别)建议为期两天。
七、对于自控设计,这是一个非常严格的经验工作,不是一个新人就能学会的,它需要对当前流行各种自控设备及相关东西的型号和参数十分熟悉,然后才能设计出来一套实用的自控机柜,这个就需要各位学生使用一些不太光明的手段,那就是搜罗公司以前老前辈的设计的图纸,加班加点地看完。看看人家是如何设计的(设备和缆线的型号选择,供电,接地的设计,仪表接口2/3/4线制的设计,网络构架的设计)。这时候你只要能照猫画虎就可以,以后会慢慢明白老前辈费什么要这样设计,当然老前遗留下来的缺点你也是毫无遗漏的继承下来,但是毕竟利大于弊。
经过以上的磨练,可算是具备了工控入门的基础了,但是不要高兴得太早。您这把“青铜剑”还需要1-2年的工程实战才能得以出炉(迈进初级工控之门)!
在讲述工控初级应用之前,首先要阐明泛指的工控到底是做什么,首先工控工程师和仪表工程师还有电气工程师的分别是仪表工程师主要是设计仪表的选型、线缆的布置、桥架的设计等外部设计,而电气工程师,主要是设计强电(35KV-220v)的分配还有供电设备(UPS)的设计,而工控人员只是设计自控柜接线端子以上的内容(CPU、IO、继电器、端子、电源、开关、网络、计算机等),可能在一些小的工程公司,这些事情都是属于工控工程师来做,这没有办法因为公司要生存所以不会让你只是professional。接下来我将介绍一些进入初级工控之门的参考资料。
1、自控系统设计(参看王常力编写的dcs系统设计与应用)
2、西门子硬件设计(参看西门子硬件选型手册)
3、西门子工业网络通讯(参看西门子工业通讯指南)
4、西门子编程软件(参看STEP7编程手册/功能块手册)
5、西门子上位机软件(参看wincc深入浅出)
6、工控常用指南(参看剑思庭博客http://blog.sina.com.cn/jiansiting)
剑功的回帖让我忽然窥到了您对面向对象认识上的些许奥秘。
看来您对面向对象如何在工控系统中落实上的认识是浅显及幼稚的。
工控系统如何实现面向对象?工业控制系统的系统构建手段还远没达到类似高级语言的成熟程度。高级语言中固然可以在其编译环境内轻松实现面向对象的所有过程,但工业控制系统却远远没有、事实上也无法达到那种境地。
怎么办?还是像《面向对象的...》指出的那样,一个真正的工控系统中的“类对象”,必须通过PLC提供的DFB来形成类的算法部分,由硬件电路来实现类的属性部分,由PLC程序或组态软件形成Main()函数。
所有这些是别人能够提供的了得么?
没有谁能提供得了,而必须由你自己亲手制作和发掘。
指望通过一套软件来实现工控系统的“面向对象”,大概只有在总线控制系统条件下可以基本实现,而对于集中控制,只有你自己才是“面向对象”的实现者。
所以还是那句话,去看看那本书吧,对你理解现代工控系统未来的发展真得会很有帮助。北大的一位在全国搞面向对象理论的泰斗级人物,在看到了这本书之后都不敢发表任何结论,我不太相信你在面向对象方面的水平高于这位泰斗是件大概率事件。
to z_hoben,我不知道我的对于面向对象的能力怎么样,应该说略知一二。当初我也是从c程序的结构化一步走过来的,到我使用VC++在德国开发wincc6.2类接口代码,都是一点一点转变的。要知道类不光是您所说的算法、属性、和主函数,还有方法、事件、多态、继承等多种属性,如果您精通C++的STL那就很清楚了,这里不是一本书就能把这些解决的。还需要很多的曲折的路需要咱们前赴后继走出来。另外你上述说一北大面向对象泰斗级人物对这本书不发表任何结论,不是他不敢发表而是他不明白自动化工程设计,就说在软件这个行业里,即使你是软件构架师你也只是清楚一两个业务范畴(金融、电信)突然给你一本自动化书,让做一个软件框架类那也不能马上就能做出来,这需要很好了解业务,也就是说大师不做任何结论,而本着严谨科学的态度对待这件事情的!
回复内容:
对:剑思庭 关于大家不要以为这是一场口水战,只是一种控制思想的争论,...内容的回复:
剑工能够在这里开展起一场控制思想的争论,这个帖子发的的确就值了。
但现在看来剑工在控制思想上的确还是有许多问题需要多想想的。
首先我不认为将高级语言中所有面向对象的思想全部搬到工控领域的做法合适。工控领域毕竟是个实体世界,能在这里面实现封装、继承、多态,且这些东西的确能给具体的过程控制带来诸多的好处,这便已经足够了。难道非要把STL中的容器等概念在这个领域中找出相应的映射对象,然后才能将其称为“面向对象”么?高级语言最大的价值便是她升华和凝炼了具象世界中的概念和现象后,再以高于自然界的抽象思辨思维来解决问题。所以,面向对象的工控系统比你所搞得WINCC的世界中的“面向对象”粗浅的多、幼稚的多,这本来就是正常的。换个角度看,你以对STL世界中的理解来想象面向对象的工控系统,显然犯的是另一个北大泰斗没犯、而你却已经犯了第二次的错误——又盲目下结论了。
其次,我不觉得先学C,再学C++是个什么好事情。音乐学院的教授最烦的就是那些入学前就已经“小有名气”的歌手。像廖昌永那样入学前连简谱都不识的“白纸一张”的学生,反倒是能最早成才的好材料。
面向过程的思维一旦占据了一个人的头脑,便会形成对抗面向对象思维的最大敌人。国外许多高级语言书籍中早就主张,对于学高级语言的学生,一定要一上来就从学习C++入手,而绝对不能将C作为学习C++的“入门”课程。
您如果不出意外,我相信引用相比照于指针而言,要绝对是件会令您痛苦得很的东西。
至于说让要搞工控的学生掌握面向对象的思想,这绝对不是件很难的事情。尤其是面向对象的工控系统中的“面向对象”的思想,这只需学生头脑中树立起面向对象的架构概念便足够。如果一个学生他的头脑中就是没有面向对象的思想,那也不意味着他就从此彻底与“面向对象的工控系统”无缘了——他只需熟悉那十几种硬件模块电路,再掌握了十几种与这些电路配合的DFB程序,他也照样能把一个大工厂玩的“呼呼”的!
看来在控制思想上,的确需要来一场大的争论。