GG資源網

用上位機控制單片機然後實現數據傳輸,學習哪種上位機好呢?(上位機和觸摸屏同時控制PLC)

上位機通過通訊的方式可以實現控制單片機的數據傳輸,在傳輸方式有無線和有線之分,如RS232,RS485,CAN等是有線傳輸;WIFI、藍牙等是無線傳輸。所以在使用上位機控制時,只要通過軟體實現相應的通訊協議即可。很多上位機軟體都可以實現這種功能,但是從硬體角度和應用較多,推薦三種類型的上位機軟體。

1.VB

上位機軟體

VB的全稱是visual Basic,是微軟所研發的一款基於對象的通用的程序設計語言,誕生於上世紀九十年代初期。這款軟體是基於圖形可視化編程的,製作軟體界面、人機交互界面很容易,不需編寫大量代碼去描述界面元素的外觀和位置,而只要把庫中預先建立的對象拖到屏幕上,再實現具體的響應即可。由於各種圖形化的對象都是現成的,跟現在的組態王軟體很類似,用起來很方便,適合做上位機開發。

微軟雖然已經不再更新VB,但是用戶可以使用VC和Visual Studio進行開發。

2.Labview上位機軟體

Labview是美國的NI設計研發的,該軟體在儀器儀錶行業、工業自動化行業有著很高的聲望。Labview採用圖形化編程和數據流編程方式,程序框圖中的節點之間的數據流向決定著函數的執行順序。這與傳統的代碼式的軟體編程完全不一樣。而且在軟體內部集成了很多通訊模塊、儀錶模塊和曲線分析模塊,用戶拿來可以直接用,大大簡化了設計難度、提高了研發效率、提高了設計穩定性。用來開發上位機軟體再適合不過了。

3.組態軟體開發上位機

組態軟體在工控行業使用廣泛,尤其是在與PLC、觸摸屏結合起來做集中控制的時候。組態軟體目前國產的品牌有很多,做的也比較穩定。組態軟體也是圖形化編程方式,在軟體庫中有很多工程應用的模型,用戶拖出來可以直接用,甚至常用的通訊模塊都是封裝好的,用戶只需要配置一下就可以用,方便實用。在很多礦上的調度室/集控室、車間的集控室等,上位機界面都是用組態軟體編寫的。

以上就是這個問題的回答,感謝留言、評論、轉發。

更多精彩內容請關注本頭條號:玩轉嵌入式。感謝大家。

#####

從我學習計算機、軟體相關知識開始,十幾年來,我曾經使用過的上位軟體集成開發工具按時間順序依次為(這些集成開發工具,有些我已不常使用,有些甚至完全被淘汰):

  • visual foxpro

  • visual basic

  • visual c++

  • delphi

  • matlab

  • visual studio

  • QT

  • android studio

使用的編程語言有:

  • foxpro,

  • VB,

  • c,

  • c++,

  • pascal,

  • matlab,

  • c#,

  • java

除此之外,還有以下的腳本語言:

  • lua,

  • python,

  • javascript,

  • php

現在,最常使用的集成開發環境有delphi以及android studio,

其中delphi主要用於開發有人機交互界面顯示的上位機開發軟體,用於數據採集、存儲、顯示。

基於delphi開發了控制器的遠程升級程序、控制器內置網頁生成下載工具以及modbus數據採集、設置工具。

delphi在十年前非常流行,其特點是非常小巧,我使用的安裝包還是當前上大學時從隔壁學校圖書館下載的delphi 7的破解版,大約400M的大小。

雖然近十年前,delphi已經沒落,很多風靡一時的delphi相關的網站估計已經消失,但是,從網站上依然能找到非常多的第三方庫。還能滿足大部分應用要求。

在我的電腦上,也有裝visual studio和QT,但是用得不多,曾經用visual studio幫朋友研究過shadowsock,曾經用QT修改過xmpp客戶端,用於測試公司的產品。

visual studio和QT都太龐大了,安裝包都有好幾G,電腦打開IDE之後,變得非常卡,影響效率。遠不如delphi用得得心應手。

android studio主要用來編寫控制器的app,設計的app是web app,主要用html5+javascript實現,再打包成app,基於java的原生app編寫並不多。

至於matlab,之前主要是用來做數據分析,演算法研究,以及電路分析.

比如,以前做智能電錶項目的時候,需要用到快速fft變換,直接調用matlab的fft函就得到結果,再與自己通過單片機c語言實現的fft函數進行比較,驗證函數正確性.

比如PID的控制演算法的研究,之前藉助matlab的simulink做一些模擬,研究PID的參數整定,非常方便.

用來做電路分析也非常方便,通過電路理論(比如基爾霍夫電流、電壓定律),我們通常對電路可以得到n元一次方型組,通過matlab的符號矩陣運算,可以很快速得到結果。

自從matlab6.5在windows 7的系統上無法安裝,下載windows 2010又沒有license之後,我就對matlab就徹底失望了,近五年沒碰過了。

我用php語言主要是用來編寫伺服器程序,在wordpress的基礎上實現了控制器的管理後台,採用workerman實現了一個tcp伺服器。

下圖是基於VUE+element UI+websocket實現的網頁前端:

我覺得隨著技術的發展,解釋型的腳本語言會大型其道,其特點就是簡單,資源多。

目前來看,最火算是python了。

接下來的發展趨勢是物聯網、雲計算,根據這樣的趨勢,我覺得未來軟體的系統架構會是如下圖:

跟設備配置使用的上位機軟體需要有幾大功能:

1) 基於串口,USB,TCP/IP的實時數據採集

2) 數據存儲,數據的展示

3) 人機交互界面

4) 數據分析

結合未來的軟體發展趨勢,這些數據最終需要上傳到雲伺服器,進行大數據的雲計算,並通過前端的UI展示出來。

python是同時滿足這幾大功能需求的上位機軟體開發語言。

數據分析有強大的pandas庫,支持和matlab一樣的矩陣運算,支持大數據處理,最關鍵是免費的。

設備通信pyserial庫,應用盡有...

要做好一個系統,一個產品,需要精通各方面的知識,比如電子、電路,單片機,C,delphi, HTML5, javascript,前端框架(如VUE, bootstrap,element UI),PHP,mysql, redis,TCP/IP, websocket, HTTP,workerman,lua, android...

這是題外話, 不管怎麼樣,去學python吧,未來是python的天下。

#####

用上位機控制單片機然後實現數據傳輸,學習哪種上位機好呢?

既然是控制單片機,那麼通訊協議是可以自己編寫實現的,要實現數據傳輸甚至不需要自己編寫上位機軟體都可以,如果用常規的通訊協議比如modbus tcp 甚至可以直接使用組態軟體作為上位機,那樣上位機的通訊協議可以不用寫,直接可以開始應用層的組態。

也建議朋友你可以使用規範的通訊協議標準,無論是以後硬體軟體一起發售或者只發售硬體,都能夠更好的適應市場。

如果確定要寫上位機軟體那麼老董強烈推薦你使用C#因為國內有一位大神已經開源了一套組態軟體的源碼,這是一套完整的上位機軟體,從底層通訊協議到網關再上層的數據監視、控制、報警、實時曲線、歷史曲線、所有的功能都是完備的。

當然還有別的選擇LabVIEW,VB,python都可以,其中labVIEW會更方便一些會有很多的工具包,和各種協議的通訊協議支持,另外它還有LabVIEWDSC這個專門用於控制領域的模塊。

總體來講推薦你使用C#或者labVIEW,有句話說的好,站在巨人的肩膀上你才能看的更遠。

#####

單片機與上位機通信,因為不是模組控制器,所以這裡我們假設一個條件:

就是數據傳輸的通信協議是自定義的。這個時候,需要與上位機通信就需要串口底層或者usb底層的數據接受,與按照協議的解析了,

那麼有哪些上位機開發軟體或者說哪些開發語言可以實現數據通信呢?

其實這樣的開發語言很多,目前說下主流的幾種開發語言

1 Vb語言,Vb語言是一種相對簡單編程的語言,開發入門比較簡單,有專用的vb開發環境,有成型的串口控制項,只需要簡單編程就能實現數據的接收。這個語言因為微軟不在更新,所以目前的window 8及以上版本都無法正常運行,甚至有些64位的win7也不能完美工作,不過Vb曾經在xp系統的時代輝煌過,目前慢慢淘汰。

2 Vc語言, 其實是c語言的windows開發,有窗體等簡單界面和控制項,有一定程度沿用vb的風格,所以官方默認的界面都不是很好看,需要進行界面美化,當然能更加靈活的實現多種功能。linux就是基於c需要開發,安卓又是linux 內核編寫。當前很多常用的電腦端軟體很多也在用c語言開發

3 .net 目前.net 應用十分廣泛,可以使用.net開發網站,也可以做應用程序等,是目前主流的電腦端開發語言,所以實現與單片機上位機通信功能是沒有什麼問題的。只是需要考慮.net版本與windows版本的兼容性。

4 java 其實Java分為javaSE javaEE.javaME 很多人一看到這個都知道可以做安卓手機的app,實際上是java Me 其實這三個是領域的細分,而另外的是什麼呢,

JavaEE是做web開發,也就是做網站相關開發的,

JavaSE就是做電腦端也可以說上位機端開發的。

java是一門與C++類似的,區別與c語言面向過程開發,java是面向對象的開發語言,相對於vb開發難度要大很多,如果您有c++基礎,那麼學習起來就會容易很多 。

實現單片機與上機機通信的功能就會很容易。

以上是個人對問題的回答,難免會有遺漏或者偏頗。

歡迎大家留言,點贊,轉發,關注。

謝謝大家

#####

我一直用VB了,這個例子多,面向對象上手快,後來發現python是個好東西,在學的時候精力不夠了,而且會被思維定式,改變有時候挺難!

#####

現在藍牙模塊都很便宜,藍牙模塊,是一種集成藍牙功能的PCBA板,用於短距離無線通訊,按功能分為藍牙數據模塊和藍牙語音模塊。藍牙模塊是指集成藍牙功能的晶元基本電路集合,用於無線網路通訊。

Android平台包含了藍牙框架,使設備以無線方式與其他藍牙設備進行數據交換的支持。 Android提供藍牙API來執行這些不同的操作。掃描其他藍牙設備;獲取配對設備列表;連接到通過服務發現其他設備。

單片機的串口可以跟藍牙通信,手機都有標配藍牙,安卓編程很普及,所以買個藍牙模塊,十塊錢左右,用手機直接控制單片機數據傳輸很簡單的。

#####

四種都用過,Laview,組態方便是方便,但不自由,很多特殊演算法無法嵌入,而且最重要的是要money。VB早期用,控制項界面設計階段就定得很漂亮,但實在忍受不了兩點,一是性能確實太差,跟組態差不多,二是分發給用戶太麻煩,用戶計算機狀態千差萬別,總是要註冊ocx啊什麼地,煩。現在基本用VS編C++程序了,煩是煩了點,但各種自由,性能可控,可以說如果C++都來不及干某個任務,別的編程工具想都不要想,界面要好看煩一些,要各種自畫控制項,弄得不好,各種坑,內存泄漏啊,野指針啊,但鍛煉個兩三年就有經驗了。

#####

這個我有心得,從1996年開始我就涉及上位機控制單片機的編程工作,最開始用VB,用時間最長的是VC6幹了10年,用得最順手的是DELPHI,現在還在用,這麼多年下來,覺得選什麼語言不太重要,要學習,先從計算機硬體基礎,從原理上學習才重要,如果一定要推薦一個,C#吧,個人認為當下適用,以後也有前途,兼具VB,VC,DELPHI優點,比java更具前途!

#####

所謂上位機,其實就是PC端的應用軟體。

在嵌入式設備的開發過程中,很多都是使用串口來進行簡單的調試控制。

調試和控制的前提就是需要學會至少一種報文格式的使用。設備的信息交換就是一個封包拆包過過程。使用串口調試可以驗證設備信息交互的成敗。

最好的上位機就是與硬體配套的上位機,也就是按照自己的需求去寫的上位機。

編寫上位機的編程語言,主流的編程語言其實都可以完成。但是開發都講究開發周期,越短的時間完成越好。至於選擇什麼語言去編寫無非就幾個條件,

一、自己已經掌握的編程語言。

二、上位機運行在什麼系統之上。

每一種編程語言都有其擅長的領域。如果是Linux系統,我覺得使用Qt來開發界面應用程序是一個不錯的選擇,如果是win系統,使用C#或者VB編程語言來開發是個不錯的選擇。以上這些做圖形界面設計都是托拽的方式實現非常簡單。除了這些還可以用JAVA來開發,只不過JAVA的圖形應用開發設計不是哪么方便。JAVA可以用來開發與設備進行網路交互的服務端程序。

#####

c#,上位機開發,你一般都是串口,乙太網介面,快速開發用c#就夠了,簡單易學,參考代碼多,面向百度編程,專業的事,專業的人去做,讓你兼顧上下層,無非就是為了做簡單的demo,沒有誰會要求你兩個都精通

由於網站搬家,部分鏈接失效,如無法下載,請聯繫站長!謝謝支持!
1. 帶 [親測] 說明源碼已經被站長親測過!
2. 下載後的源碼請在24小時內刪除,僅供學慣用途!
3. 分享目的僅供大家學習和交流,請不要用於商業用途!
4. 本站資源售價只是贊助,收取費用僅維持本站的日常運營所需!
5. 本站所有資源來源於站長上傳和網路,如有侵權請郵件聯繫站長!
6. 沒帶 [親測] 代表站長時間緊促,站長會保持每天更新 [親測] 源碼 !
7. 盜版ripro用戶購買ripro美化無擔保,若設置不成功/不生效我們不支持退款!
8. 本站提供的源碼、模板、插件等等其他資源,都不包含技術服務請大家諒解!
9. 如果你也有好源碼或者教程,可以到審核區發布,分享有金幣獎勵和額外收入!
10.如果您購買了某個產品,而我們還沒來得及更新,請聯繫站長或留言催更,謝謝理解 !
GG資源網 » 用上位機控制單片機然後實現數據傳輸,學習哪種上位機好呢?(上位機和觸摸屏同時控制PLC)

發表回復

CAPTCHAis initialing...