-
1 # 烽火資訊臺
-
2 # 寒雪叔叔叔
這個我有心得,從1996年開始我就涉及上位機控制微控制器的程式設計工作,最開始用VB,用時間最長的是VC6幹了10年,用得最順手的是DELPHI,現在還在用,這麼多年下來,覺得選什麼語言不太重要,要學習,先從計算機硬體基礎,從原理上學習才重要,如果一定要推薦一個,C#吧,個人認為當下適用,以後也有前途,兼具VB,VC,DELPHI優點,比java更具前途!
-
3 # 科技電子XDIY
我一直用VB了,這個例子多,面向物件上手快,後來發現python是個好東西,在學的時候精力不夠了,而且會被思維定式,改變有時候挺難!
-
4 # 靈思致遠IT學苑
現在藍芽模組都很便宜,藍芽模組,是一種整合藍芽功能的PCBA板,用於短距離無線通訊,按功能分為藍芽資料模組和藍芽語音模組。藍芽模組是指整合藍芽功能的晶片基本電路集合,用於無線網路通訊。
Android平臺包含了藍芽框架,使裝置以無線方式與其他藍芽裝置進行資料交換的支援。 Android提供藍芽API來執行這些不同的操作。掃描其他藍芽裝置;獲取配對裝置列表;連線到透過服務發現其他裝置。
微控制器的串列埠可以跟藍芽通訊,手機都有標配藍芽,安卓程式設計很普及,所以買個藍芽模組,十塊錢左右,用手機直接控制微控制器資料傳輸很簡單的。
-
5 # 昨日的兔子
c#,上位機開發,你一般都是串列埠,乙太網介面,快速開發用c#就夠了,簡單易學,參考程式碼多,面向百度程式設計,專業的事,專業的人去做,讓你兼顧上下層,無非就是為了做簡單的demo,沒有誰會要求你兩個都精通
-
6 # 玩轉嵌入式
上位機透過通訊的方式可以實現控制微控制器的資料傳輸,在傳輸方式有無線和有線之分,如RS232,RS485,CAN等是有線傳輸;WIFI、藍芽等是無線傳輸。所以在使用上位機控制時,只要透過軟體實現相應的通訊協議即可。很多上位機軟體都可以實現這種功能,但是從硬體角度和應用較多,推薦三種類型的上位機軟體。
1.VB
上位機軟體VB的全稱是visual Basic,是微軟所研發的一款基於物件的通用的程式設計語言,誕生於上世紀九十年代初期。這款軟體是基於圖形視覺化程式設計的,製作軟體介面、人機互動介面很容易,不需編寫大量程式碼去描述介面元素的外觀和位置,而只要把庫中預先建立的物件拖到螢幕上,再實現具體的響應即可。由於各種圖形化的物件都是現成的,跟現在的組態王軟體很類似,用起來很方便,適合做上位機開發。
微軟雖然已經不再更新VB,但是使用者可以使用VC和Visual Studio進行開發。
2.Labview上位機軟體Labview是美國的NI設計研發的,該軟體在儀器儀表行業、工業自動化行業有著很高的聲望。Labview採用圖形化程式設計和資料流程式設計方式,程式框圖中的節點之間的資料流向決定著函式的執行順序。這與傳統的程式碼式的軟體程式設計完全不一樣。而且在軟體內部集成了很多通訊模組、儀表模組和曲線分析模組,使用者拿來可以直接用,大大簡化了設計難度、提高了研發效率、提高了設計穩定性。用來開發上位機軟體再適合不過了。
3.組態軟體開發上位機組態軟體在工控行業使用廣泛,尤其是在與PLC、觸控式螢幕結合起來做集中控制的時候。組態軟體目前國產的品牌有很多,做的也比較穩定。組態軟體也是圖形化程式設計方式,在軟體庫中有很多工程應用的模型,使用者拖出來可以直接用,甚至常用的通訊模組都是封裝好的,使用者只需要配置一下就可以用,方便實用。在很多礦上的排程室/集控室、車間的集控室等,上位機介面都是用組態軟體編寫的。
-
7 # dcount107
主要還是看通訊協議。如果是標準通訊協議,比如modbus之類的,可以選擇市場上非常成熟的上位機軟體,比如wincc,ifix,組態王之類的。
如果是非標定製協議,推薦用c#。
-
8 # 散居獵人
上位機最好的軟體是DELPHI XE3, 做win32開發,視覺化,控制元件多,編譯效率高。資料庫軟體用FIRE BIRD em bed 2.5,功能強大,效能優越。通訊媒介用 433M無線模組,比有線方便,透明傳輸,不用關心通訊細節,投入也少。通訊協議用MODBUS RTU. 微控制器選STC8A8K,開發工具keil C.
-
9 # 金日老油條
四種都用過,Laview,組態方便是方便,但不自由,很多特殊演算法無法嵌入,而且最重要的是要money。VB早期用,控制元件介面設計階段就定得很漂亮,但實在忍受不了兩點,一是效能確實太差,跟組態差不多,二是分發給使用者太麻煩,使用者計算機狀態千差萬別,總是要註冊ocx啊什麼地,煩。現在基本用VS編C++程式了,煩是煩了點,但各種自由,效能可控,可以說如果C++都來不及幹某個任務,別的程式設計工具想都不要想,介面要好看煩一些,要各種自畫控制元件,弄得不好,各種坑,記憶體洩漏啊,野指標啊,但鍛鍊個兩三年就有經驗了。
-
10 # 科技電小二
微控制器與上位機通訊,因為不是模組控制器,所以這裡我們假設一個條件:
就是資料傳輸的通訊協議是自定義的。這個時候,需要與上位機通訊就需要串列埠底層或者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++基礎,那麼學習起來就會容易很多 。
實現微控制器與上機機通訊的功能就會很容易。
以上是個人對問題的回答,難免會有遺漏或者偏頗。
-
11 # 工控程式設計
一.問題不好具體回答。
當下工業通訊控制,串列埠,和乙太網居多。我們耳熟能詳的語言都支援這兩方面的程式設計,功能都強大,用的人都很多,所以選擇什麼語言,還得具體問題具體分析。
二.具體分析。
1.分析系統。
工控機系統多以xp,win7為主(這個仁者見仁),所以傾向選擇微軟自家的語言。
2.語言分析。
微軟系統上的程式語言,年代不太久遠的有vb,mfc,c sharp,年代上能接受mfc,c sharp。
3.語言對比。
mfc開發的產品龐大,執行效率高相對高,上手相對複雜。
c sharp上手簡單,開發效率高。
會mfc一週內能上手c sharp,反過來難。
會mfc的看只會c sharp的像小白,反過來像大神。
三.結論。要考慮老舊裝置,程式要維護的,mfc或其他。
沒任何侷限的,建議c sharp.。
簡單呼叫微軟寫好的程式碼,快速通訊。
-
12 # IT自動化交流
從我學習計算機、軟體相關知識開始,十幾年來,我曾經使用過的上位軟體整合開發工具按時間順序依次為(這些整合開發工具,有些我已不常使用,有些甚至完全被淘汰):
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的天下。
-
13 # 老董聊電氣自動化
用上位機控制微控制器然後實現資料傳輸,學習哪種上位機好呢?
既然是控制微控制器,那麼通訊協議是可以自己編寫實現的,要實現資料傳輸甚至不需要自己編寫上位機軟體都可以,如果用常規的通訊協議比如modbus tcp 甚至可以直接使用組態軟體作為上位機,那樣上位機的通訊協議可以不用寫,直接可以開始應用層的組態。
也建議朋友你可以使用規範的通訊協議標準,無論是以後硬體軟體一起發售或者只發售硬體,都能夠更好的適應市場。
如果確定要寫上位機軟體那麼老董強烈推薦你使用C#因為國內有一位大神已經開源了一套組態軟體的原始碼,這是一套完整的上位機軟體,從底層通訊協議到閘道器再上層的資料監視、控制、報警、實時曲線、歷史曲線、所有的功能都是完備的。
當然還有別的選擇LabVIEW,VB,python都可以,其中labVIEW會更方便一些會有很多的工具包,和各種協議的通訊協議支援,另外它還有LabVIEWDSC這個專門用於控制領域的模組。
總體來講推薦你使用C#或者labVIEW,有句話說的好,站在巨人的肩膀上你才能看的更遠。
-
14 # 嵌入式小蕭
所謂上位機,其實就是PC端的應用軟體。
在嵌入式裝置的開發過程中,很多都是使用串列埠來進行簡單的除錯控制。
除錯和控制的前提就是需要學會至少一種報文格式的使用。裝置的資訊交換就是一個封包拆包過過程。使用串列埠除錯可以驗證裝置資訊互動的成敗。
最好的上位機就是與硬體配套的上位機,也就是按照自己的需求去寫的上位機。
編寫上位機的程式語言,主流的程式語言其實都可以完成。但是開發都講究開發週期,越短的時間完成越好。至於選擇什麼語言去編寫無非就幾個條件,
一、自己已經掌握的程式語言。
二、上位機執行在什麼系統之上。
每一種程式語言都有其擅長的領域。如果是Linux系統,我覺得使用Qt來開發介面應用程式是一個不錯的選擇,如果是win系統,使用C#或者VB程式語言來開發是個不錯的選擇。以上這些做圖形介面設計都是託拽的方式實現非常簡單。除了這些還可以用JAVA來開發,只不過JAVA的圖形應用開發設計不是哪麼方便。JAVA可以用來開發與裝置進行網路互動的服務端程式。
回覆列表
這個仁者見仁智者見智了!微控制器和上位機通訊只是軟體層面上的對接和資料傳輸!任何程式語言都可以做到!如果你沒有什麼經驗的話學pythin是個不錯的選擇!易學易上手庫也多任何程式語言的方法都可以被python呼叫!python還是跨平臺的指令碼類語言一處編寫到處適用!且以後python可以用到更多的地方!