上位機(jī)編程 求助Qt如何編寫上位機(jī)?
求助Qt如何編寫上位機(jī)?QT快速入門火燒飛網(wǎng)站,里面有一個(gè)系列教程,qt5現(xiàn)在更簡單了。它包含serial類。開發(fā)單片機(jī)上位機(jī)軟件,怎么寫代碼?需要什么工具?如果是單片機(jī)程序開發(fā),基本可以用現(xiàn)有的語言
求助Qt如何編寫上位機(jī)?
QT快速入門火燒飛網(wǎng)站,里面有一個(gè)系列教程,qt5現(xiàn)在更簡單了。它包含serial類。
開發(fā)單片機(jī)上位機(jī)軟件,怎么寫代碼?需要什么工具?
如果是單片機(jī)程序開發(fā),基本可以用現(xiàn)有的語言,包括VC、VB、C#、Java、Python等。因?yàn)橹灰衔粰C(jī)程序支持串口或USB通信協(xié)議,就可以與下位機(jī)進(jìn)行通信。通用單片機(jī)支持串口通訊,高端單片機(jī)支持USB通訊,速度更快。
因此,對上位機(jī)程序開發(fā)語言沒有太多限制,主要取決于個(gè)人擅長哪種語言。
工業(yè)上位機(jī)軟件用什么計(jì)算機(jī)語言寫的?
大多數(shù)工業(yè)上位機(jī)軟件運(yùn)行在工業(yè)控制計(jì)算機(jī)上,工業(yè)控制計(jì)算機(jī)上最常用的通信接口可能是串行端口。因此,只要能操作串口,就可以使用任何編程語言。當(dāng)然,如果你想直接操作底層的硬件,那就是C/C
首先,讓我們弄清楚上位機(jī)的概念,在工業(yè)控制中也叫HMI。實(shí)際上,它是一臺電腦或一個(gè)具有一定電腦功能的觸摸屏。它的功能是對下位機(jī)進(jìn)行監(jiān)控和數(shù)據(jù)的存儲與分析。
由于它在工業(yè)上的應(yīng)用,我們需要遵循一個(gè)原則:數(shù)據(jù)準(zhǔn)確、功能實(shí)用、畫面簡單。至于圖案,我不建議上位機(jī)太花哨。一臺好的上位機(jī)可以讓工程師或操作人員一目了然地看到關(guān)鍵設(shè)備的狀態(tài)和重要數(shù)據(jù),也可以了解過程。所以不要在色調(diào)上混合太多的顏色。如果其他人需要分析它是什么乍一看,這是一個(gè)失敗的設(shè)計(jì)。在設(shè)備運(yùn)行狀態(tài)下,特別是報(bào)警狀態(tài)下,采用醒目色調(diào)。
對于數(shù)據(jù)存儲和分析,我們可以盡最大努力讓用戶感到舒適和強(qiáng)大。這些是我做項(xiàng)目的經(jīng)驗(yàn)和體會,僅供參考。我也希望你能有一些想法,積極評論,討論和分享。
讓我們舉一個(gè)反面教材的例子。我認(rèn)為這是一個(gè)失敗的上位機(jī)設(shè)計(jì)。
工控行業(yè)的上位機(jī)可以做出什么花樣?
單詞“上位機(jī)”表示您與硬件相關(guān)。電子相關(guān)專業(yè)在使用計(jì)算機(jī)和硬件通信時(shí),需要利用上位機(jī)編程實(shí)現(xiàn)操作界面、數(shù)據(jù)處理等功能,如存儲傳感器數(shù)據(jù)信息、繪制圖表、記錄歸檔等。以及控制硬件機(jī)的用戶界面需要PC機(jī)編程。
建議您最近使用Python最流行的語言。Python+pyqt5+pycharm使上位機(jī)非常好。語言本身相對容易學(xué)。關(guān)鍵是材料太多,無法取得進(jìn)展。如果你不想跟風(fēng),可以學(xué)習(xí)成熟的C#,QT這兩種最常用于上位機(jī)編程領(lǐng)域。
當(dāng)我還是一個(gè)學(xué)生的時(shí)候,我用的是VB6.0。雖然它被淘汰了,但是如果我拖延的話,這個(gè)工具可以有一個(gè)很好的界面和實(shí)現(xiàn)簡單的功能。在工業(yè)生產(chǎn)中還是使用了很多,比如一些自動化生產(chǎn)線,其實(shí)這是VB6.0中存在的。
這個(gè)圖是我自己寫的一個(gè)小工具,在單片機(jī)編程時(shí)用來整理格式。界面不酷,但不會延遲使用。
當(dāng)然,這是因?yàn)橐郧皩W(xué)習(xí)過的人不容易改變平臺。此外,他們有足夠的,所以他們?nèi)匀挥谢盍Α?/p>
后來,我了解到MFC是微軟的VC6.0,現(xiàn)在vs201x是這個(gè)版本。這是C編程,我在工程中也用過,但是實(shí)現(xiàn)漂亮的UI很麻煩,不夠智能,或者我沒找到。畢竟,我已經(jīng)學(xué)了很久了。
現(xiàn)在我們來談?wù)勥@兩個(gè)
微軟在windows平臺上更好地支持C。它有最好的。Net框架。如果你不熟悉這一點(diǎn),你可以學(xué)習(xí)QT,進(jìn)步會快得多。QT的界面可以非??岷蜁r(shí)尚,而不是其他感覺。上個(gè)世紀(jì)的軟件界面風(fēng)格很低。
上位機(jī)編程用什么編程語言比較好?
看了這個(gè)問題之后,幾乎100%的受訪者表示MFC已經(jīng)過時(shí)了。我對如此高的可能性感到驚訝。
總之,MFC并不流行,但它并沒有過時(shí)。
眾所周知,C是一種經(jīng)典而高效的編程語言。MFC作為一種Windows編程框架,曾經(jīng)有過大量的支持者。但是微軟沒有在MFC上做更多的創(chuàng)新,例如,沒有像第三方公司的控件那樣在界面上發(fā)布新的工具。微軟已經(jīng)將精力投入到C#,甚至開發(fā)了VisualC.NET,一個(gè)幫助MFC程序員過渡到C#的工具。
微軟的初衷。Net是為了與Java競爭,在跨平臺應(yīng)用中平衡Java。后來,隨著互聯(lián)網(wǎng)的迅速發(fā)展,桌面應(yīng)用成為邊緣化少數(shù)群體的需求。大量編碼人員加入互聯(lián)網(wǎng)公司,C和C被忽視,用戶比例不斷下降。
今天的桌面開發(fā),除了C是C#,其他都不是主流(我可能不知道,也有大量的國外程序員沒有用過VS)。C開發(fā)了C11/C14/C17,這被大多數(shù)數(shù)字農(nóng)場主所忽視。第三方控件也大大彌補(bǔ)了MFC接口的不足。但是C和MFC對初學(xué)者的要求比C更高,這是毋庸置疑的。在當(dāng)今的效率時(shí)代,年輕人無疑會選擇C#(更多的年輕人會涌向互聯(lián)網(wǎng),因?yàn)檫@個(gè)行業(yè)支付的費(fèi)用更高)。
然而,C?的隨機(jī)性將嚴(yán)重?fù)p害程序員的良好素質(zhì)。一個(gè)沒有紀(jì)律的程序員會編寫大量的私生子代碼,這會讓后來的程序員或C程序員哭哭啼啼,直接崩潰。
我手頭有一個(gè)項(xiàng)目。有兩三個(gè)。幾位“前輩”寫的6000多行CS文件。變量滿山都是,數(shù)據(jù)處理水平不分,接口慢,不懂行業(yè)應(yīng)用。充其量只是實(shí)驗(yàn)室的半成品,實(shí)用價(jià)值不大。
C#的方便之處在于它可以更快地引用第三方控件,而無需任何約束。因此,懶惰的程序員會過分依賴各種控件,迫使不適當(dāng)?shù)目丶?yīng)用于復(fù)雜的工業(yè)領(lǐng)域。這對于C/MFC程序員來說是不可想象的。
我的意思是,互聯(lián)網(wǎng)行業(yè)的程序員不適合討論這個(gè)問題。桌面應(yīng)用程序、MFC或C程序員并沒有過時(shí)。不同的是,一個(gè)C程序員可以在三到兩個(gè)月內(nèi)開始,但C程序員需要三到五年的時(shí)間來開發(fā)自己。
無論做什么,都要有很好的計(jì)劃,嚴(yán)格的自律,不能把代碼拼湊起來。如果你急功近利,你只能做一堆垃圾。