我的上位机编程之路
前言
大家好,我是付工。
很早之前就想过写一篇关于自己的上位机开发成长之路,但是因为之前的粉丝比较少,写了也没人看,就一直拖着没写。
你们知道的,其实是因为懒。
下面是我的上位机成长之路,故事很长,不知道你们能不能看到最后。
经历
回顾自己一路走过来,总觉得自己走得很“传统”。
我是2012年毕业于一所双非本科院校,当时填志愿也是稀里糊涂地就填了自动化专业。自动化专业,你们也知道,一个“万金油”专业,啥都教,啥都学,但是啥都没学会,这个主要是自身原因。
毕业之后,通过校招进入了一所钢厂企业,具体公司名称我就不透露了,反正我只知道进去的时候,就四个字——啥也不会,但是啥都新鲜。
相信每个人对自己的第一份工作,印象都会特别深刻,我也不例外。那段时间应该是自己学习成长最快的一段时间,从电工基础到电气元器件,从变频器到6RA70装置,从加热炉维护到天车维护,从集卷到打包机,从S7-200、S7-300,再到S7-400,从触摸屏到WINCC,从Profibus-DP到ET200M,都是那段时间学习的。
维护性质的工作,每天除了日常点检或者偶尔有突发事件,工作时间中有很多空闲的时间,我利用这些时间来学习,把老外的程序翻了个遍,通过程序把工艺都了解清楚,再把产线上的各种WINCC界面,都照做一遍。
对于第一份工作,我想给大家一点建议就是,维护性质的工作可以做一段时间,但是不能长期做,时间久了,你就走不掉了,不能公司离不开你,而是你离开公司后,发现啥也不会。
我大概是做了两年多,就换了一份工作,是一家LNG的龙头企业,也是一家上市公司,职位是PLC工程师,专门写PLC程序和触摸屏程序。
刚开始进去的时候,感觉一切都是新鲜的,3个月的时候,基本上摸清了门路,因为大部分都是标准程序,每次都是修修改改就行了,到后面轻车熟路了,时间自然就充裕了,也正是在这段时间里,我接触了C#。
这里有一个故事,我接触C#其实是因为别人的一句话。是这样的,有一次跟一个朋友吃饭的时候,他随口说了一句,他们现在都在用VS开发,我不知道大家对VS是一个什么概念,如果和我同龄的话,我们上大学的时候,DOTA是最火的游戏,VS是最火的竞技平台,我当时心想,VS不是电竞平台么?还能做开发?
于是,回去之后,我就开始百度,这才明白,VS是一个软件,.NET是一个平台,C#是一个语言。
我清晰地记得,是2014年底,我开始决定学的C#,两个原因,一方面是因为有足够的工作和业余时间,另一方面是认为只做PLC编程会有瓶颈,需要学一门编程语言,来撑撑场面。
我不知道C#对我来说算不算是一个机会,总之,我至今仍然很感激朋友的那句无心之言,同时,我也庆幸,我能很早意识到PLC工程师的天花板,很早就开始接触高级语言编程。
学习是一个痛苦的过程,我能很深刻地理解一个电气工程师学习C#编程的痛苦。
我自己摸索了很长时间,买过书,看过视频,找过资料,对照别人的代码敲过,但是始终没有入门,这里我找到了当初在京东购买那本“神书”——《C#入门经典》的记录,我相信大部分人都买过。

购买日期是2015年1月28日,应该是春节前购买的,购买时间是晚上21点06分,应该是晚上学得很痛苦,所以想买一本书。
我至今,仍然记得在某个社区网站学习,照着视频敲出了一个俄罗斯方块的游戏。
我至今,仍然记得照着书本学SQL。
我至今,仍然记得网上的串口代码,我跟着做了一遍,实现了串口通信。
但是,有些代码即使我敲出来了,我仍然缺少一种感觉,我不知道C#的魅力,无法体会什么是面向对象,更不知道学习这个能干什么。
这种感觉,我后面才慢慢体会到,就是入门的感觉。
所以,那段时间,其实挺迷茫的,但是毕竟不是靠这个生活和工作,所以倒不是影响很大。
我觉得对于人生来说,每一段经历都是有意义的,即使是痛苦和迷茫。在未来的某一天,这些经历都会像一粒粒珍珠一样,串成一段段美好的回忆。
迷茫的时间大约持续了3个月左右,腾讯课堂是2015年前后上线的,我那时候会在腾讯课堂看一些在线的课程,一次偶然的机会,我居然看到了一个讲C#编程的课程,我觉得还是要上图,于是我找到了当时报名那个公开课的记录。

现在课程头像已经看不到了,时间是2015年5月19日,当时的机构是喜科堂,所以我的C#编程的启蒙老师就是常老师。
听完公开课之后,我又买了一个小课程,购买时间是2015年5月20日,时间间隔只有一天。

我只花了1天多的时间,把这个新闻管理系统做了出来,发现自学和别人带着学,差别真的很大,一天学的东西比之前几个月学的还要透彻。
于是,我购买了VIP课程,购买时间是2015年5月21日,晚上17点54分,我记得是刚下班,就购买了,当时还是淘宝交易,价格是2500元,我当时的工资是7K。

接下来就是按部就班学习的过程,学了一个多月,每天晚上学2-3个小时,周末时间长一点,基本上把C#编程、数据库、学员管理系统做完了,期间换了一份工作,进了一家物联网公司。
QQ空间里找到了一个那时候学习时,自我鼓励时发的一个说说,看来委托是大家学习过程中都有的痛。

从公开课到小额课程到VIP课程,只用了2天时间,我现在已经记不清当时的状态了,也许是因为当时还没成家,没有那么大的经济压力,也许是觉得好东西就要尽快下手,也许是因为我本身就不是一个犹犹豫豫的人。
如果说前面学编程只是做好准备而已,那么后面机会就来了。
前面有提到,学C#编程期间换了一份工作,做物联网相关的,其实还是PLC工程师。公司当时用的是北京力控,虽然单个授权成本只有几千块钱,不算特别高,但是由于项目量比较大,累计成本就比较高了。
所以公司想用C#开发一个类似于力控的组态软件,但是软件部门的人不懂工业和PLC这些,而我既懂PLC,又懂组态,又懂点C#,所以,我就参与了,我的上位机开发之路从此开始。
这个就是我用C#开发出来的第一个上位机软件,PLC是S7-200 Smart,通信协议是基于PC-Access Smart的OPC,也是第一个用C#开发替换力控的项目。

这么多年过去了,这个程序应该还在现场运行着。
后面换了一份公司,从事烟草行业,项目是在各个地方的烟草公司,当然进入公司时,公司是刚接了一个大单,但是甲方要求使用的是Wonderware的WSP系统平台,公司没有人会。
这个软件是Intouch的平台版,国内用得并不多,网上资料也很少,于是我一个人,学了2个月左右,终于把整个项目框架搭建起来了。WSP也都是基于面向对象的思想,所以C#编程的基础给了我很大的帮助。
再后面又换了一家公司,从事医疗行业,主要使用的是LabVIEW,基于国外买的框架进行二次开发,于是又做了1年多的LabVIEW开发,期间使用EPICS控制系统,接触了一点C语言,上位机用的Wincc OA。
但是,这期间,C#我一直都在使用,而且一直都在做相关的项目,项目做得很多,所以我现在做项目一半以上都是复制粘贴,哈哈^_^

机会永远是留给有准备的人,只有提前准备好了,机会来的时候,你才能接得住。
感悟
其实我觉得这世上大部分人都是普通人,在一份普通的岗位上,做着一份普通的工作,没有谁比谁聪明多少,我们也没有可以拼的爹,我们唯一能做的就是努力一点,勤奋一点,这样运气也许就会好一点。
世人慌慌张张,所图不过碎银几两。偏偏这碎银几两,能解世间万千惆怅。
我是从2017年开始着手做上位机课程的,因为我深知未来PLC工程师对C#编程的需求,我能体会他们学习一门编程语言的难处,我希望将我的一些经验分享给大家,让大家可以少走一些弯路。
所以对于做课程,我们是用心的。我始终坚持实战为主,课程中的每个知识点都是实际有用的,课程中的每个项目案例都是真实的案例,因为我希望,课程能给大家带来的价值,一定是远远超过它的价格。
这几年,我接触了很多VIP学员,他们大多数都是PLC工程师,他们有一个一致的目标,就是要提升,就是要挣钱,就是要涨工资,也许并不是每个人都能如愿以偿,但是我看到的是,努力的人,都有了结果。
很多人学习过程中都会担心年龄和学历的问题,从某个角度来说,年龄大了,学历低了,一定学起来要吃力一些,但是反过来说,如果起点已经比别人低了,不是应该更努力么?
有些话说多了,显得有些矫情。
最后祝愿大家都能学有所成,我坚信,大家只要愿意努力,你想要的东西你都能一步步得到。