我的上位機編程之路
前言
大家好,我是付工。
很早之前就想過寫一篇關(guān)于自己的上位機開發(fā)成長之路,但是因為之前的粉絲比較少,寫了也沒人看,就一直拖著沒寫。
你們知道的,其實是因為懶。
下面是我的上位機成長之路,故事很長,不知道你們能不能看到最后。
經(jīng)歷
回顧自己一路走過來,總覺得自己走得很“傳統(tǒng)”。
我是2012年畢業(yè)于一所雙非本科院校,當時填志愿也是稀里糊涂地就填了自動化專業(yè)。自動化專業(yè),你們也知道,一個“萬金油”專業(yè),啥都教,啥都學,但是啥都沒學會,這個主要是自身原因。
畢業(yè)之后,通過校招進入了一所鋼廠企業(yè),具體公司名稱我就不透露了,反正我只知道進去的時候,就四個字——啥也不會,但是啥都新鮮。
相信每個人對自己的第一份工作,印象都會特別深刻,我也不例外。那段時間應(yīng)該是自己學習成長最快的一段時間,從電工基礎(chǔ)到電氣元器件,從變頻器到6RA70裝置,從加熱爐維護到天車維護,從集卷到打包機,從S7-200、S7-300,再到S7-400,從觸摸屏到WINCC,從Profibus-DP到ET200M,都是那段時間學習的。
維護性質(zhì)的工作,每天除了日常點檢或者偶爾有突發(fā)事件,工作時間中有很多空閑的時間,我利用這些時間來學習,把老外的程序翻了個遍,通過程序把工藝都了解清楚,再把產(chǎn)線上的各種WINCC界面,都照做一遍。
對于第一份工作,我想給大家一點建議就是,維護性質(zhì)的工作可以做一段時間,但是不能長期做,時間久了,你就走不掉了,不能公司離不開你,而是你離開公司后,發(fā)現(xiàn)啥也不會。
我大概是做了兩年多,就換了一份工作,是一家LNG的龍頭企業(yè),也是一家上市公司,職位是PLC工程師,專門寫PLC程序和觸摸屏程序。
剛開始進去的時候,感覺一切都是新鮮的,3個月的時候,基本上摸清了門路,因為大部分都是標準程序,每次都是修修改改就行了,到后面輕車熟路了,時間自然就充裕了,也正是在這段時間里,我接觸了C#。
這里有一個故事,我接觸C#其實是因為別人的一句話。是這樣的,有一次跟一個朋友吃飯的時候,他隨口說了一句,他們現(xiàn)在都在用VS開發(fā),我不知道大家對VS是一個什么概念,如果和我同齡的話,我們上大學的時候,DOTA是最火的游戲,VS是最火的競技平臺,我當時心想,VS不是電競平臺么?還能做開發(fā)?
于是,回去之后,我就開始百度,這才明白,VS是一個軟件,.NET是一個平臺,C#是一個語言。
我清晰地記得,是2014年底,我開始決定學的C#,兩個原因,一方面是因為有足夠的工作和業(yè)余時間,另一方面是認為只做PLC編程會有瓶頸,需要學一門編程語言,來撐撐場面。
我不知道C#對我來說算不算是一個機會,總之,我至今仍然很感激朋友的那句無心之言,同時,我也慶幸,我能很早意識到PLC工程師的天花板,很早就開始接觸高級語言編程。
學習是一個痛苦的過程,我能很深刻地理解一個電氣工程師學習C#編程的痛苦。
我自己摸索了很長時間,買過書,看過視頻,找過資料,對照別人的代碼敲過,但是始終沒有入門,這里我找到了當初在京東購買那本“神書”——《C#入門經(jīng)典》的記錄,我相信大部分人都買過。

購買日期是2015年1月28日,應(yīng)該是春節(jié)前購買的,購買時間是晚上21點06分,應(yīng)該是晚上學得很痛苦,所以想買一本書。
我至今,仍然記得在某個社區(qū)網(wǎng)站學習,照著視頻敲出了一個俄羅斯方塊的游戲。
我至今,仍然記得照著書本學SQL。
我至今,仍然記得網(wǎng)上的串口代碼,我跟著做了一遍,實現(xiàn)了串口通信。
但是,有些代碼即使我敲出來了,我仍然缺少一種感覺,我不知道C#的魅力,無法體會什么是面向?qū)ο?,更不知道學習這個能干什么。
這種感覺,我后面才慢慢體會到,就是入門的感覺。
所以,那段時間,其實挺迷茫的,但是畢竟不是靠這個生活和工作,所以倒不是影響很大。
我覺得對于人生來說,每一段經(jīng)歷都是有意義的,即使是痛苦和迷茫。在未來的某一天,這些經(jīng)歷都會像一粒粒珍珠一樣,串成一段段美好的回憶。
迷茫的時間大約持續(xù)了3個月左右,騰訊課堂是2015年前后上線的,我那時候會在騰訊課堂看一些在線的課程,一次偶然的機會,我居然看到了一個講C#編程的課程,我覺得還是要上圖,于是我找到了當時報名那個公開課的記錄。

現(xiàn)在課程頭像已經(jīng)看不到了,時間是2015年5月19日,當時的機構(gòu)是喜科堂,所以我的C#編程的啟蒙老師就是常老師。
聽完公開課之后,我又買了一個小課程,購買時間是2015年5月20日,時間間隔只有一天。

我只花了1天多的時間,把這個新聞管理系統(tǒng)做了出來,發(fā)現(xiàn)自學和別人帶著學,差別真的很大,一天學的東西比之前幾個月學的還要透徹。
于是,我購買了VIP課程,購買時間是2015年5月21日,晚上17點54分,我記得是剛下班,就購買了,當時還是淘寶交易,價格是2500元,我當時的工資是7K。

接下來就是按部就班學習的過程,學了一個多月,每天晚上學2-3個小時,周末時間長一點,基本上把C#編程、數(shù)據(jù)庫、學員管理系統(tǒng)做完了,期間換了一份工作,進了一家物聯(lián)網(wǎng)公司。
QQ空間里找到了一個那時候?qū)W習時,自我鼓勵時發(fā)的一個說說,看來委托是大家學習過程中都有的痛。

從公開課到小額課程到VIP課程,只用了2天時間,我現(xiàn)在已經(jīng)記不清當時的狀態(tài)了,也許是因為當時還沒成家,沒有那么大的經(jīng)濟壓力,也許是覺得好東西就要盡快下手,也許是因為我本身就不是一個猶猶豫豫的人。
如果說前面學編程只是做好準備而已,那么后面機會就來了。
前面有提到,學C#編程期間換了一份工作,做物聯(lián)網(wǎng)相關(guān)的,其實還是PLC工程師。公司當時用的是北京力控,雖然單個授權(quán)成本只有幾千塊錢,不算特別高,但是由于項目量比較大,累計成本就比較高了。
所以公司想用C#開發(fā)一個類似于力控的組態(tài)軟件,但是軟件部門的人不懂工業(yè)和PLC這些,而我既懂PLC,又懂組態(tài),又懂點C#,所以,我就參與了,我的上位機開發(fā)之路從此開始。
這個就是我用C#開發(fā)出來的第一個上位機軟件,PLC是S7-200 Smart,通信協(xié)議是基于PC-Access Smart的OPC,也是第一個用C#開發(fā)替換力控的項目。

這么多年過去了,這個程序應(yīng)該還在現(xiàn)場運行著。
后面換了一份公司,從事煙草行業(yè),項目是在各個地方的煙草公司,當然進入公司時,公司是剛接了一個大單,但是甲方要求使用的是Wonderware的WSP系統(tǒng)平臺,公司沒有人會。
這個軟件是Intouch的平臺版,國內(nèi)用得并不多,網(wǎng)上資料也很少,于是我一個人,學了2個月左右,終于把整個項目框架搭建起來了。WSP也都是基于面向?qū)ο蟮乃枷?,所以C#編程的基礎(chǔ)給了我很大的幫助。
再后面又換了一家公司,從事醫(yī)療行業(yè),主要使用的是LabVIEW,基于國外買的框架進行二次開發(fā),于是又做了1年多的LabVIEW開發(fā),期間使用EPICS控制系統(tǒng),接觸了一點C語言,上位機用的Wincc OA。
但是,這期間,C#我一直都在使用,而且一直都在做相關(guān)的項目,項目做得很多,所以我現(xiàn)在做項目一半以上都是復(fù)制粘貼,哈哈^_^

機會永遠是留給有準備的人,只有提前準備好了,機會來的時候,你才能接得住。
感悟
其實我覺得這世上大部分人都是普通人,在一份普通的崗位上,做著一份普通的工作,沒有誰比誰聰明多少,我們也沒有可以拼的爹,我們唯一能做的就是努力一點,勤奮一點,這樣運氣也許就會好一點。
世人慌慌張張,所圖不過碎銀幾兩。偏偏這碎銀幾兩,能解世間萬千惆悵。
我是從2017年開始著手做上位機課程的,因為我深知未來PLC工程師對C#編程的需求,我能體會他們學習一門編程語言的難處,我希望將我的一些經(jīng)驗分享給大家,讓大家可以少走一些彎路。
所以對于做課程,我們是用心的。我始終堅持實戰(zhàn)為主,課程中的每個知識點都是實際有用的,課程中的每個項目案例都是真實的案例,因為我希望,課程能給大家?guī)淼膬r值,一定是遠遠超過它的價格。
這幾年,我接觸了很多VIP學員,他們大多數(shù)都是PLC工程師,他們有一個一致的目標,就是要提升,就是要掙錢,就是要漲工資,也許并不是每個人都能如愿以償,但是我看到的是,努力的人,都有了結(jié)果。
很多人學習過程中都會擔心年齡和學歷的問題,從某個角度來說,年齡大了,學歷低了,一定學起來要吃力一些,但是反過來說,如果起點已經(jīng)比別人低了,不是應(yīng)該更努力么?
有些話說多了,顯得有些矯情。
最后祝愿大家都能學有所成,我堅信,大家只要愿意努力,你想要的東西你都能一步步得到。