在工業(yè)自動(dòng)化領(lǐng)域,存在著一種看似普遍的現(xiàn)象:不到 30 人的小型自動(dòng)化集成公司,工程師們使用著國產(chǎn)低價(jià)的 PLC 替代品,卻仍覺得成本壓力巨大,甚至為了節(jié)省開支,不得不退而求其次,選用一些老舊的、功能有限的 PLC 型號。苦逼的工程師們,一手拿著螺絲刀調(diào)試設(shè)備,一手對著那界面簡陋、操作不便的編程軟件敲代碼,屏幕上那模糊不清的字體,仿佛在訴說著他們工作環(huán)境的無奈。
他們似乎硬件和軟件知識都懂一些,但水平僅僅停留在能看懂簡單的電氣原理圖,知道傳感器是 NPN 還是 PNP 型,同時(shí)只會寫一些老掉牙的梯形圖,代碼風(fēng)格混亂不堪,對于編程軟件彈出的一堆警告視而不見,認(rèn)為只要沒有錯(cuò)誤,程序就能正常運(yùn)行。實(shí)際上,在這類以低成本設(shè)備、開發(fā)簡單工業(yè)自動(dòng)化項(xiàng)目為主的公司里,應(yīng)屆畢業(yè)生在二線城市普遍只能拿到 4-8k 的月薪,而老員工的薪資天花板也并不高。
這類初級工業(yè)自動(dòng)化編程崗位最大的特點(diǎn)就是軟硬件知識混雜,難以區(qū)分。因?yàn)閷τ谒麄儊碚f,同時(shí)精通硬件電路設(shè)計(jì)和復(fù)雜的軟件算法是幾乎不可能的。或許評論區(qū)會有人說自己在學(xué)校參加比賽時(shí)是全棧工程師,既能設(shè)計(jì)硬件電路,又能編寫控制程序。拜托,那不過是調(diào)用一些現(xiàn)成的庫函數(shù),按照比賽要求簡單地組合起來,連 PLC 的底層運(yùn)行機(jī)制都沒深入了解過,更別提自己設(shè)計(jì)和驗(yàn)證過硬件模塊(哪怕是簡單的繼電器控制電路),就真的以為自己精通軟硬件了?
然而,大公司或者高薪的工業(yè)自動(dòng)化編程崗位,絕對不是這種刻板印象所能涵蓋的。最典型的就是工業(yè)自動(dòng)化設(shè)備的原廠。在一款新型 PLC 或者工業(yè)控制器設(shè)計(jì)之前,確定采用哪些核心芯片和模塊后,如何進(jìn)行硬件電路的優(yōu)化設(shè)計(jì),如何編寫高效的測試用例來驗(yàn)證功能,一般是由專業(yè)的硬件設(shè)計(jì)團(tuán)隊(duì)和測試團(tuán)隊(duì)來完成。數(shù)字電路和模擬電路的設(shè)計(jì)與調(diào)試,這可不是只學(xué)了點(diǎn)大學(xué)電路知識,沒有實(shí)際項(xiàng)目經(jīng)驗(yàn)的人就能勝任的工作。
然后,在產(chǎn)品投產(chǎn)之前,要進(jìn)行大量的模擬測試和實(shí)際環(huán)境測試。使用專業(yè)的測試平臺,如模擬工業(yè)現(xiàn)場環(huán)境的測試箱等,你總得找到相關(guān)的專業(yè)人員來搭建和調(diào)試這些測試環(huán)境吧?最后,終于輪到工業(yè)自動(dòng)化編程的核心環(huán)節(jié)了。編寫設(shè)備的底層驅(qū)動(dòng)程序,開發(fā)與上位機(jī)進(jìn)行通信的接口程序,以及編寫實(shí)現(xiàn)各種復(fù)雜工業(yè)控制邏輯的業(yè)務(wù)代碼,這就是高級工業(yè)自動(dòng)化編程的范疇。
看完這些,是不是感覺工業(yè)自動(dòng)化編程也不過如此,好像沒什么了不起的,憑什么能拿高薪呢?錯(cuò)了!首先,這類工業(yè)自動(dòng)化設(shè)備往往采用了先進(jìn)的多核處理器架構(gòu),換言之,這款設(shè)備上可能同時(shí)運(yùn)行著不同功能的處理器核心,有的負(fù)責(zé)實(shí)時(shí)控制,有的負(fù)責(zé)數(shù)據(jù)處理和通信,它們通過高速總線連接在一起,有的運(yùn)行在裸機(jī)環(huán)境下(沒有操作系統(tǒng),通過簡單的命令行界面進(jìn)行操作),有的運(yùn)行在實(shí)時(shí)操作系統(tǒng)(RTOS)下,有的甚至運(yùn)行著定制化的 Linux 系統(tǒng)。對于那些對設(shè)備平臺特性不熟悉的工程師,你給他一個(gè) RTOS 下的驅(qū)動(dòng)程序,可能他幾天都無法成功移植到裸機(jī)環(huán)境中。
而且,在技術(shù)實(shí)現(xiàn)的深度上也有很大的差異。真的別再認(rèn)為工業(yè)自動(dòng)化編程沒有技術(shù)含量了,給你一段在某款特定處理器上實(shí)現(xiàn)高速數(shù)據(jù)采集的代碼,麻煩你幫忙移植到另一款不同架構(gòu)的處理器上,要求保證數(shù)據(jù)的準(zhǔn)確性和采集速度,我只能說 90% 以上的普通程序員根本不知道關(guān)鍵點(diǎn)在哪里。當(dāng)你發(fā)現(xiàn)原處理器沒有緩存而新處理器有緩存的時(shí)候,問題又來了。如何合理地利用緩存來提高數(shù)據(jù)處理速度,什么時(shí)候該刷新緩存,什么時(shí)候該使緩存無效,這些都不是簡單地看看文檔就能掌握的。
說到底,我們工業(yè)自動(dòng)化編程也要處理高性能計(jì)算(HPC)的任務(wù)好嗎,都說工業(yè)控制對實(shí)時(shí)性要求極高,精確到毫秒甚至微秒級別,你工業(yè)自動(dòng)化編程如果寫不好底層驅(qū)動(dòng)和控制算法,設(shè)備性能太差一樣要被客戶投訴啊。
很多人都有一個(gè)誤區(qū),學(xué)完了 Python 和 C# 這種功能強(qiáng)大、語法優(yōu)美的現(xiàn)代編程語言(豐富的標(biāo)準(zhǔn)庫和各種語法特性 / 語法糖),再來看梯形圖和結(jié)構(gòu)化文本編程,臥槽怎么有這么原始的編程方式,然而花樣多并不意味著好用。以 Python 為例,在工業(yè)自動(dòng)化的實(shí)時(shí)控制場景中使用 Python 的多線程你是想讓系統(tǒng)陷入混亂嗎,就算能實(shí)現(xiàn)多線程,線程之間的同步和數(shù)據(jù)共享問題也會讓整個(gè)系統(tǒng)變得難以維護(hù);大量使用 Python 的第三方庫會導(dǎo)致程序體積龐大,你不怕設(shè)備的存儲空間不夠嗎;而且 Python 在工業(yè)現(xiàn)場的運(yùn)行效率相對較低,對于對實(shí)時(shí)性要求極高的工業(yè)控制任務(wù)來說,根本無法滿足需求。
最后,工業(yè)自動(dòng)化編程要讀的文檔真的又難又復(fù)雜好嗎?最后落腳點(diǎn)確實(shí)是編寫控制程序沒錯(cuò),但必須要看懂一個(gè)章節(jié)幾十頁甚至上百頁的全英文技術(shù)手冊,才知道要配置哪些參數(shù)、如何配置,難點(diǎn)根本不在于這種簡單的編程操作好吧。
這就是工業(yè)自動(dòng)化設(shè)備原廠的工作內(nèi)容,我并不覺得我在技術(shù)水平上比去互聯(lián)網(wǎng)大廠的同學(xué)低,當(dāng)然薪水也不比他們低,碩士應(yīng)屆純月薪年包 35+,基本上也是大廠開發(fā)的中等水平薪資了。不能拿初級工業(yè)自動(dòng)化編程崗位去和互聯(lián)網(wǎng)大廠比啊,你怎么不拿西門子、ABB 這些工業(yè)巨頭去和小的自動(dòng)化集成公司比呢?西門子、ABB 的工業(yè)自動(dòng)化編程崗位隨便 20k+base 的啊,看你有沒有本事去了。再比如華為的工業(yè)互聯(lián)網(wǎng)部門、富士康的工業(yè)自動(dòng)化研發(fā)團(tuán)隊(duì)等等也都有大量的高級工業(yè)自動(dòng)化編程崗位,這些難道都不是高薪嗎?
-
單片機(jī)
+關(guān)注
關(guān)注
6061文章
44910瀏覽量
646432 -
嵌入式
+關(guān)注
關(guān)注
5136文章
19523瀏覽量
314551 -
工業(yè)自動(dòng)化
+關(guān)注
關(guān)注
17文章
2650瀏覽量
68084
發(fā)布評論請先 登錄
工業(yè)DTU對工業(yè)自動(dòng)化通信格局的重塑

智能讀碼器:工業(yè)自動(dòng)化的眼睛與大腦

開源技術(shù)在工業(yè)自動(dòng)化領(lǐng)域的作用
愛普生可編程晶振SG-8101CE在工業(yè)自動(dòng)化領(lǐng)域的應(yīng)用

電源技術(shù)在工業(yè)自動(dòng)化中的應(yīng)用
PLC在工業(yè)自動(dòng)化的應(yīng)用及解決方案

PLC控制系統(tǒng)與工業(yè)自動(dòng)化關(guān)系
中國工業(yè)自動(dòng)化的現(xiàn)狀和發(fā)展方向
愛普生SG-8101CA可編程晶振應(yīng)用在工業(yè)自動(dòng)化機(jī)器人

評論