做上位機開發怕不會和硬件通信?程序員:這個擔心有點多餘了!

同事面試的“掛點”主要是在硬件通訊上,面試官問了他一大堆的跟硬件通訊的有關問題,因爲都沒對接過,所以他一個也回答不上來,所以問我和硬件通訊難不難!

我的回答是——一點也不難!

同事回答不上來,主要是對於硬件通信沒有什麼概念,簡單的說,所有的硬件通訊,其實都是基於TCP/IP演化而來的,TCP/IP通訊你不會?不會的話去網上搜搜,不超過一個小時,我保證你會!

面試上位機程序員,被問到最多的就是會不會和PLC、傳感器、繼電器、數據採集卡、IO等硬件通訊。

別看好像硬件的種類五花八門,通訊協議也是五花八門,但是,其實都是基於TCP/IP通訊的!比如說什麼Socket、Modbus等等(工業硬件通訊我只能想到這兩種)。

在通訊協議上又分爲網口通訊和串口通訊,看似不一樣,那只是在代碼層面與硬件連接的方式不一樣了而已,實際上其他的都一樣!

最重要的是,所有的常規硬件的通訊方法(包括以上所提到的所有硬件的通訊方法),在C++和C#這樣常用的上位機編程語言裡面,都已經封裝好了,不需要我們自己去造輪子!

而一些非常規的硬件,稍微複雜一些的,比如說像工業攝像頭數據獲取,其實一般硬件廠商會有已經封裝好的數據獲取的SDK,程序員根據官方提供的調用文檔去調用SDK裡面的方法即可,甚至很多硬件廠商會有現成的Demo,實在看不懂,直接抄!

所以,從技術層面來講,和硬件通訊這塊其實並不是太難懂!大家如果想要從事上位機開發,不需要有任何心理負擔,大膽上就是了!

而且,現在工業常規的工控硬件少說也有幾千款,通訊協議也就那麼幾種,要說不同,最多也就是在數據格式上會有不同而已,通訊方式基本上都是一樣的!

如果您對硬件通訊還有什麼顧慮,擔心自己理解不了,那麼我建議大家去網上搜一些相關的工控模擬軟件來先練練手,現在有很多專門爲電氣工程師和上位機軟件工程師開發的通訊測試軟件,裡面會有不同品牌的工控硬件的通訊方法供大家參考,很多還提供通訊代碼。

我自己碰到陌生的硬件,通訊這塊拿不準,我也是會拿模擬測試軟件去先模擬測試的!

看我說的那麼容易,我同事懸着的心也放下了,現在在他看來,只是差一個機會而已!但是,有了我說的託底,他以後面試也會更有底氣!

結語

其實,我在第一次接到上位機軟件開發的項目的時候心裡也很沒底,因爲以前都是跟服務器通訊,或者說是軟件跟軟件之間的通訊,通訊方式比較單一,數據格式也比較單一。但是,換成了跟硬件通訊,心裡就沒把握了!

我這裡可以這麼說,掌握所有常規(注意這裡說的是常規)硬件通訊,基本上最多隻需要花一個星期時間就能全部掌握了!這我還是說多了!

大部分情況下,在工作中,和硬件通訊都是現學現賣的!