这里不教你使用ifix,只教你如何学习ifix,是一篇学习指南性的文章。很多学习ifix的朋友,尤其是初学者,总是摸不着门路,不知该如何学习才好,我根据自身的学习体会和辅导他人的经验,对宏观的学习路径进行了简单总结,希望对朋友们有所帮助。想要成为ifix的高手,要学的东西实在是不少,对其不了解的朋友,看一看,对于你想达到的水平都需要学习什么内容,心里有个底。人家都是三部曲,我这是七部曲(或说七个层次),多了点儿,其实核心也就是三部分内容。后面就都是辅助修炼,用以达到高高手的层次。
第一步要做的:
如果你从未使用过任何组态平台,那么你需要了解组态软件的基本概念,什么叫组态软件,他嫩做什么、怎么做的——也就是工作机制(具体请参考相关资料),然后再开始进一步学习。如果你对组态平台有一定的经验,那么你起步会很容易,因为各组态系统的基本功能和用法是非常近似的,仔细阅读ifix电子书或154教程,就可以很快掌握这些基本组态功能的实现方法。在学习过程中,如果遇到某些和编程相关的地方,可以简单了解然后跳过。
第二步要做的:
ifix除了基本的图形组态功能以外,还提供了强大的、基于VBA平台的脚本功能。所以,如果你想让你的组态画面,具备除基本组态以外的更高级的功能,那么你就必须熟练掌握VBA编程,建议通过学习VB6.0来获得这种能力,因为VBA可以理解为VB6的子集(需要注意,更高的VB版本如VB.NET和VB2005并不适合)。买一本《VB6+从入门到精通》一类的书就基本够用了。通过学习,应达到这样的结果——理解VB编程语言的基本概念,具备编程的基本能力和技巧。其中有一个重要的概念,必须尽可能的透彻理解和熟练掌握,那就是“面向对象编程”,如果这一点没有做到,最好不要进行下一步学习。
第三步要做的:
学会了VB并不等于学会ifix编程,首先,VB和VBA是有差异的,VBA的功能稍弱,应该在应用过程中注意到并体会这些差异(例如VBA窗体中不支持控件树组、常用控件的特性也有不少差异)。再有,ifix是完全面向对象的组态系统,它有很多特有的对象及其特性,这些对象并不都是完全独立的,有些对象之间具有特殊的联系。ifix还在VBA系统中添加了很多子程序,这些子程序可以简化很多常用功能的脚本编写,比如用于打开画面的OpenPicture子程序。了解这些ifix特有对象的属性、方法、事件,理解对象间的关联关系,并且熟悉ifix子程序的用法,这都是至关重要的。这也是为什么在第二步中强调透彻理解和熟练掌握“面向对象编程”的原因。相关帮助文档参见《自动化接口帮助》
第四步要做的:
看了前三步,似乎ifix已经学完了,其实并非如此。比如你吃一碗米饭和一盘菜,你一定会吃一口米饭吃一口菜,然后再吃一口米饭吃一口菜……而不会先一口气把米饭吃光然后再端着盘子狂吃菜。学习ifix也是一样的,需要循序渐进,在第一步,你不可能把ifix所有的特性都学懂学会,因为有些概念和特性,需要具备一定的编程知识和其它辅助知识以后,才能理解掌握的。所以,第四步最有可能的情况就是返回第一步,开始循环,这是你进一步提高的标志,是你通向高手之路过程中,打通任督二脉的环节。
第五步要做的:
第四步已经开始循环了,开始了修炼的过程,那么第五步只能算是循环之外的。但其实也可以在循环过程中逐渐加入。这里所要学习的包括:关系数据库知识和SQL语言的使用、Windows API的使用、计算机基础知识(例如不懂得进制及其转换的知识,则相应的编程就无从谈起)、网络知识、图形文件相关知识和加工处理……等等等等。其中,关系数据库知识和SQL语言的使用是非常重要的,缺了它,你就像一头没有利齿的狮子,难以对付强壮的猎物。如果你的消化能力强,因该把关系数据库和Windows API加入到第三步的学习内容中去(在循环中加入也可)。而Windows API的作用,是用来实现VB语言没有直接提供的各种功能,例如各种声音文件的播放和对其他程序的交叉控制等。
第六步要做的:
从第一步开始,你每多走一步,就向ifix高手的行列更靠近一步,完成了第五步,从一般的意义上说,已经是高手中的高手了,可以独步ifix江湖了。那么第六步又是干什么用的呢?它的作用是使你达到出神入化、登峰造极的境界,从而成为绝顶高手、一代宗师。这是什么高深武功呢?这就是设计!它不是技术,而是思想,是一种高层次的内功。鸟巢之所以是鸟巢、水立方之所以水立方,它们的叹为观止,不是由建筑队决定的,而是由设计师决定的。设计不是异想天开,设计师不仅决定它们是什么样子的、有什么功能,还要知道能否实现、如何实现、用什么材料和技术实现,而建筑队要做的,就是按照设计师的要求去工作。前五步的学习,仅是可以成为最优秀的建筑队。可见,设计师才是最高境界。然而,就像所有传说中的高深武功一样,最高的一个层次,往往是最难以修炼的,也不是所有人都能够成功的。首先它要在前五步的基础之上,然后还需要大量的经验以及一些天赋、悟性和思想高度。简单地说,设计包括功能设计、界面交互设计、总体结构设计。提高设计水平,除了自己多练多想,还要参观研究别人做的系统,这种研究,并不需要看代码,你只需要看外观就够了,看到了好的系统,用照相机把屏幕拍下来,回去慢慢体会。(如果有机会,我会专门写一写这方面的东西,和大家探讨一下)。
第七步要做的:
又是一个意外吧?不是练到头了吗?怎么又出来了一步?其实这第七步要做的,应该是“每一步都要做的”,但又是相对独立的,所以单独分出一步,那就是:获得帮助。
无论是谁,学习过程中都会遇到困难,有时是知识障碍,有时是理解障碍,都会需要别人的帮助,这很正常。但是,首先要记住,自己多动脑、多研究永远是最重要的,因为帮助不等于代替。
自己的工资自己挣,别指望不劳而获——
不要说英语差,英语差可以学;不要说电子书和教程太厚,我相信比这还厚的书你也读过;更不要以工期紧,学英语来不及、看资料来不及为借口,要求别人替你做什么,那不如干脆说你现在要买别墅,来不及挣那么多钱,让别人替你挣算了。高手可以为你指路,但高手不能替你干活,高手不欠你什么,指点迷津就是最有价值的帮助。有时有人问我一个问题,我告诉他电子书里有解答,并告诉他具体在哪一章哪一节,他却说“懒得看,你给我说说吧”,我的反应只能是晕倒。还有的干脆说让我帮他编一个程序。如果你编程过程中遇到难点,我帮你解决是可以的,让我整个替你编?天!你又不是我老板。高手愿意告诉你如何渡过一条湍急的河流,但高手不能把你背在身上替你走路。
学会加减乘除再学二次方程,不要好高骛远——
如果你有人问你“去天安门广场怎么走”,你告诉他向东走,第二个红路灯左转就到了。这已经很详尽了吧?可他接着问你“东是什么意思?左是什么意思?红绿灯又是什么东西?”,你会是什么反应?估计除了晕倒和逃跑就没有别的选择了。在请求别人帮助之前,应该判断一下你的问题的性质和自己的能力,不要好高骛远,比如你看ifix的演示系统看不懂,那说明你基础知识能力太弱,还不到学习这些东西的时候,除了继续学习基础,没人帮得了你。我建议,在学会站立之前,不要问任何关于跑步的问题。如果你得到一段代码,其中有一两处不是很理解,你可以请教别人,也许可以得到解答,但如果绝大部分看不懂,你最好是再提高一下编程水平,而不要拿着它去麻烦别人,因为没人能帮得了你。就像一个小学还没度完的人,让别人给他讲解微积分,谁能给他讲清楚?没有人!
你的问题我不明白,提问也需要水平——
至于有效的获得别人的帮助,也是需要技巧的。提问也需要水平,比如,提问题要问一个点,不要问一个面。比如你问:如何修改历史笔的颜色。其实这种问题你应该自己查帮助文件,但我还是会告诉你相关的属性是什么。因为只需要回答一句话。而如果你问我:如何使用图表。我也能回答你一句话:去看电子书吧。如果我不这样回答,我就只好当着你的面写出一篇关于图表的教程,那我不是有病吗。还有就是语言表达能力,我经常遇到这种情况:一个朋友提出一个问题,我实在不能确判断到底出了什么情况,只好反过来问他好几个问题,然后再把他的回答总结成一段文字,让他确认,他说没错,就是这个问题。为什么不能一开始就写出这样一段清晰明了的表述呢?很明显,这个人的语言表达能力太差,不懂得如何把一件事情原原本本从头到尾的讲个明白。有时,我看到一个不明所以的问题,甚至不愿意去管,因为我懒得为了知道他到底在问什么,而反问他十个问题。还有一种类似的情况,比如,有人问:我的ifix和PLC接不通是怎么回事?我真想说,鬼才知道呢!你用的什么PLC、什么驱动、如何配置的、你都做过什么测试,通讯不成功在各