作者:风中情缘
如果题目是一道判断题,大家会打一个对号。实际的工程实施中,却乱了阵脚。
我是一名由计算机科学与技术专业,因为偶然的机会转行到自动化行业来的。则来此行业时,同学因为都是做高级软件编程开发的。没有人会自动化行业的东西。没有人的引领,我的前三年是举步维艰。直到后来来到一家省级代理西门子的公司内,才有机会将我的专业与自动化行业软件方面的融合。
则开始如大家一样,也许跟你们自动化行业的老师一样,进门全是学的梯形图来编程。梯形图简单明了,调试直观。的确给了一个入自动化行业的低门门槛。但是会了梯形图你仅仅是学会了如何使用钳子,螺丝刀等工具一样的简单,你永远 不会成为软件行业的高手。(不包含STL语句的用户)
在我在公司 的三年中,不断的找寻适合我的编程语言及方法。后来终于因为做一套手套厂配料程序而拿捏准了SCL与梯形图的结合才是最适合我的一种方法。当时的项目有1000多点,而我当时却是没有独自做过1000点以上的程序。记得当时对配料有严格的先进先出的思想及人为干预顺序 的特点。因为计算机算法中,队列是经常用的算法之一。自然而然就找相关系统的函数中有没有。答案 是肯定的,Step7 中有。可是不适合我使用。就自已试着写完 了队列的初始化,入队,出队,人为干预调整队内数值,及取消排队等等相关函数。函数的数据结构就是用数组,数组则建立在相关的DB块的身上了。用SCL写完封装后,用一个队列 ,则修改一个编译后再生成一个队列 。用了将近8个队列 ,后来想想如果 我用梯形图与常规的联锁关系 还不知道什么时候能写完全部程序 。在我写完基本的算法与数据结构后,再分配了一下总项目三大块的消息传递关系,在Windows中常常说成是windows消息传递机制。在项目的进行中,我做了后三分之一的PLC程序,而前三分之二的程序 由我的另一个同事来进行编写 ,事先我跟他沟通过,我们应该坐在一起一起讨论一下模块及接口的分配。最后,我的那一部分不用一个星期做完后,他的在后三个星期后才做完,并且 下载进去后,PLC死机报错。因为正巧他被领导招回,项目便全部地落在我的身上,我可想而知,他的程序是没有办法调试的。随后我根据我设计 的思想用了近四天将归他的那部分程序全部写完。因为管道经常堵的原因,最终日自动末进行。项目编程资金也才不到2万(因为代理商,所以报价低的原因),经费也已经不足够了。
第一个“大项目”,给我的冲击很大,同时自己对整体项目的把握也有了一个实际 的提高。始终谨记后面我总结出来的一句话:项目框架必须打好,否则会成为烂尾楼。
紧接着的一个炭素厂的配料系统,系统 大小仅是我第一个大项目的三分之一,承包方要求实现全自动,自动根据配方下料,混合,搅拌,再加湿料,全自动报表打印系统等等,而过程 无异于先进先出的队列。同样我也是根据工艺 要求分配好各个模块及模块接口,消息传递关关系。于第十五天踏上从河南回济南的归程。后来发现在的小Bug于一年后再去了一次,用了一天改正过来。系统 目前 听甲方说运行良好。而我写此报告时二期的项目的工程师却是一个多月了仍末见结果。我去之前已经 把握住了系统 的框架结构,所以写+调试比较快,我不想比较什么只是用时间来证明高程中软件工程 的重要性。
前两天一个经理找我,想让我去他们公司,做啤酒工艺。因为现场的一个工程师写一个近2000多点的项目。三个月快,进度缓慢。其实我在想一个工程师现场三个月也已经很累了。自动化专业应该连续最大做战一个月是极限了。时间越长拖得自已会很累。我对 那位经理说:事先末到现场时,应该把负责项目的工程师们坐在一起天天开会,讨论工艺,划分模块及接口。就如建楼前应该设计好楼应该建几层,先把楼的架构建 起来。然后再填枝加叶的。也就是说你需要的是一个高程中的软件架构工程师,不过这里是自动化行业 的软件架构工程师。有了架构你什么样的东西写不好呢?是吧?
我后来简单分析 了一下 西门子的PCS7,它应该是一种面向对象的设计思想构架起来的,所以很大。我个人不会用。因为用了会降低一个工程师的能力。呵呵!
希望大家指证批评!