999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Qt5的MODBUS協議編程與實現

2018-02-26 12:23:22戴振民
電子技術與軟件工程 2018年17期

戴振民

摘要

對于嵌入式軟件系統的開發而言,上位機軟件的編寫尤為重要,很多嵌入式工程師都廣泛關注上位機軟件編寫的研發領域。本文主要介紹的就是一種上位機軟件的編程方法,提供了最新Qt5庫編寫的MODBUS協議的方案。

【關鍵詞】串口語言 狀態及編程 MODBUS

開發出一款適合上位機控制的應用軟件,在智能電子線路的研制過程中非常必要,對于一般的嵌入式應用軟件的開發而言,總是會遇到各種上位機軟件編寫的難題,上位機軟件編寫的核心任務之一就是串口通信語言的編寫。利用一些比較傳統的上位機軟件開發工具,例如VB6等軟件,都基本上只能適用于比較老舊的Windows操作系統,而C++又因為過于復雜而不便于被嵌入式工程師所利用,本文介紹的這種Qt5串口的編程方案,掌握起來比較輕松,功能也非常強大。

1 Qt5串口如何進行通信

Qt5串口可以實現跨平臺的開發,是一個貫通C++和GUI的開發框架,可以調用模塊化的C++類的數據庫,實現和Visual C++軟件可以調用的MFC庫一樣的功能,相比較其他軟件接口而言Qt的編程更加簡便快捷,實現了跨平臺的功能,具備強大的擴展性,可以廣泛用于嵌入式軟件的開發之用。利用Qt進行編程的優勢在于信號的使用機制可以利用開發工具中帶的Qt Creater進行編寫,Qt最新的版本目前叫做Qt5,其中用于串口通信的模塊主要是類似于Q Serial Port和類似于Q SerialPort Info的平臺。

1.1 串口的列舉

通過靜態的方法利用Q Serial Port Info可以實現所有端口的列舉,通過獲取端口的有用信息,可以常見的方法例如通過is BUSY的方法判斷出端口在運行中所處的狀態,如果是忙碌的狀態,則可以通過Port Name的方法獲取端口的名字,可以利用Q Serial Port info的方法對對象輸入所要調用的Q Serial Port所關聯的對象的Set Port進行Set Port Name的方法,或者也可以采用參數的方法進行調用,例如將Q Serial Port info的對象看成是一個參數,利用set Port的方法進行調用,將他們設置成一個設備的串口。

1.2 串口的設置方法

在上位機中進行串口通信的步驟就是選擇串口的參數,嵌入式設備開發的必備一步就是進行參數的設置。在Qt5中,可以使用Q Serial Port對象來進行抽象的端口設置,進行端口的封裝和相關操作。在構成了一個QSerial Port對象之后,可以通過Set Port Name或者采用Set Port的方法進行參數設置,在打開了該端口之后,Q Serial Port就可以對進入設備的信息進行檢測,進行初始化設置,或者也可以使用其他的例如set Flow Control的方法對流控模式、波的頻率和數據的幀格式進行重新設計,例如串口的波特率可以為19200,數據幀可以為8N1。

1.3 串口數妮的讀寫方法

數據的收發是串口通信的核心,利用強大的Q Serial Port軟件對對象文件進行設置,可以讓簡單的讀寫指令實現串口的設計目標,可以利用read line和read all指令對端口的情況進行調用,如果利用一次數據就讀寫完整了數據,余下的數據會存放在Q Serial Port軟件里面,作為其中的緩存數據,新的數據會儲存在緩存的尾部,利用例如set read和buffer size的方法對緩沖區域的大小進行設置。串口數據適合讀取的時機關系密切的,時機的選擇問題通常涉及到兩個路徑,一個是循環不斷的串口路徑,另一個是可能接受的一些數據,但是去掉其中的一些任務,并不會對其他任務指令造成阻塞,一般采用的是GUI的應用,或者選擇其他的Qt的強大信號機制。進行連接的是Q Serial Port和ready read進行數據的接受,通過數據的端口對槽函數進行讀取。如果串口可以進行數據接收,槽函數就可以實現數據調用,可以利用的數據端口在函數調用的過程中涉及到數據的列隊問題,可以方便對之后的數據包進行讀取操作,作為設置代碼的一種手段。

1.4 串口的關閉

串口的操作需要使用close函數進行,關閉端口,停止I/O操作。

2 MODBUS協議的實現方法

想要實現端口的可靠通信問題,還需要具備的是可靠的串口通信協議,MODBUS就是一種協議,在工業領域已經獲得了廣泛的應用,下文介紹的一些方法就是MODBUS協議在工業產業生產中已經獲得過廣泛的推廣,該協議在Qt串口的運行過程中也可能發揮更大的作用。

2.1 MOUBUS的簡介

MOUBUS協議是一種簡單的利用電子控制原理工作的通信軟件,是一種通信語言,通過MOUBUS協議可以實現控制器之間的溝通與互動,控制神經網絡和設備之間實現通信的順暢,并且其已經成為了工業的一種標準,利用該設備,不同的廠商之間的設備可以實現兼容互通,構成一種互聯的工業網絡,為了實現監控的集中和可控制,還會嘗試機器識別的方法實現控制器之間的消息互通,通過各種結構實現網絡通信,如果通過一種機制可以和另外一種機制實現設備之間的溝通互聯,一種設備將會能夠回應其他設備的請求,設備可以學會偵測錯誤記錄并進行及時更正。可以通過一種控制器對另外一種設備的訪問,將偵測出來的錯誤記錄通過路徑記載的形式儲存起來,在制定了相應的網絡格局之后實現公共格式的共享。MODBUS的消息幀可以分成RTU消息幀和常見的ASCII消息幀,通過RTU消息幀可以實現CRC冗余循環的效驗,通過LRC縱向冗余的效驗功能,可以實現ASCII消息幀的效驗。對MODBUS的關鍵內容進行效驗在于解碼其消息幀,考慮到串口通信中可能出現各種信息傳輸的錯誤問題,可靠的消息幀的檢測可以采用機器編碼的方式進行,根據消息幀的數據結構可以實現同一設計模式下的數據功能轉換。數據程序的包裝轉換可以通過起始狀態的消息更新進行,當收到一部分數據之后,就會對應的進入下一個工作狀態,接收到的信息因而不會出現錯誤的可能,如果僅僅是簡單的數據丟失,則不必再等待另一個數據幀的傳輸。

3 結語

本文介紹了數據包的開發方案和實現方法,本文闡明了Qt5串口如何進行編程,根據狀態機的數據如何進行解碼等一些軟件功能的實現方法,根據實踐檢驗,該種測試方案編程容易,工作起來也非常穩定。

參考文獻

[1]龍灝.SQLite數據庫在Qt5開發環境中的應用[J].電子世界,2017(24):61+63.

[2]謝學剛.基于Qt5.0的機器人上位機系統的設計[D].東北農業大學,2016.

[3]謝學剛,董桂菊,于猛,郭凱敏,郭志強,朱鐵欣.基于Qt5.0的機器人姿態檢測與控制系統的設計[J].農機化研究,2016,38(04):90-93+98.

[4]范貴生,虞慧群,陳麗瓊,劉冬梅,分布式嵌入式系統的自適應能耗管理和分析[J].軟件學報,2014,25(02):419-438.

[5]任慰,以實時操作系統為中心的嵌入式系統平臺化設計研究[D].華中科技大學,2013.

主站蜘蛛池模板: 欧美成人精品一区二区| 亚洲国产日韩欧美在线| 一区二区午夜| 成人在线不卡视频| 亚洲黄网视频| 国产成年无码AⅤ片在线| 精品国产99久久| 亚洲三级视频在线观看| 91视频青青草| 国产成人亚洲毛片| 久久精品嫩草研究院| 国产尤物在线播放| 欧美成人a∨视频免费观看| 亚洲精品成人片在线播放| AV无码无在线观看免费| 国产精品99在线观看| 成人福利一区二区视频在线| 亚洲色图综合在线| 国产性猛交XXXX免费看| 中文字幕久久亚洲一区| a级毛片免费看| 中国国产高清免费AV片| 精品视频在线观看你懂的一区| 2021国产v亚洲v天堂无码| 无码不卡的中文字幕视频| 欧美狠狠干| 免费人成在线观看视频色| 国产另类视频| 沈阳少妇高潮在线| 国产va在线| 99热在线只有精品| 波多野结衣一二三| 国产一级裸网站| 国产亚洲欧美在线视频| 四虎国产成人免费观看| 日本a∨在线观看| 2018日日摸夜夜添狠狠躁| 成人免费视频一区| 在线中文字幕日韩| 国产无码精品在线播放| 高清色本在线www| 亚洲国产午夜精华无码福利| 久久99国产精品成人欧美| 91在线国内在线播放老师| 日韩免费中文字幕| 日韩无码黄色网站| 亚洲男人的天堂久久香蕉| 青青草国产精品久久久久| 玩两个丰满老熟女久久网| 亚洲欧洲日产国产无码AV| 无码aaa视频| 国产精品原创不卡在线| 亚洲三级视频在线观看| 国产精品美乳| 欧美一级高清片久久99| 欧美成人午夜视频| 中文字幕首页系列人妻| 国内精品视频区在线2021| 久久美女精品| 9999在线视频| 制服丝袜在线视频香蕉| 国产美女一级毛片| 国产视频 第一页| 精品欧美日韩国产日漫一区不卡| 丝袜美女被出水视频一区| 国产成+人+综合+亚洲欧美| 日韩av电影一区二区三区四区| 亚洲精品少妇熟女| 免费看黄片一区二区三区| 中文字幕无码中文字幕有码在线| 亚洲成人网在线观看| 极品国产一区二区三区| 2019国产在线| 伊人色综合久久天天| 国产欧美精品午夜在线播放| 91啦中文字幕| 国产主播福利在线观看| 国产成在线观看免费视频| 五月天在线网站| 2022国产无码在线| 久综合日韩| 色欲综合久久中文字幕网|