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

基于Libmodbus的走航式海表溫度傳感器總線協議設計

2020-12-30 06:40:18賀亞楠朱洪海
山東科學 2020年6期
關鍵詞:指令

賀亞楠,朱洪海

(齊魯工業大學(山東省科學院)山東省科學院海洋儀器儀表研究所 山東省海洋環境監測技術重點實驗室 國家海洋監測設備工程技術研究中心,山東 青島266061)

海水表層溫度是我國海洋水文常規觀測中的重要測量參數[1]。基于船載平臺的海水表層水溫觀測由于受到船舶和波浪運動的影響,目前采用的主要手段是人工觀測。早期的海溫觀測以直接觀測為主,包括船舶觀測、浮標觀測、船體感應溫度計觀測。船體感應海溫測量是利用船體上安裝的溫度計直接測量海溫[2]。溫度計需要放置在海面水下0.5 m的位置。為了使溫度計始終在船的吃水線以下,經常垂直排列放置3~5個溫度計。

為了實現基于船載平臺的海水表層水溫自動觀測,需要在船體一側布放水溫傳感器,并且水溫傳感器始終處于船舶吃水線范圍。本文設計了基于Libmodbus的走航式海洋表層水溫總線,實現了表層水溫信息采集和船舶的海水表層水溫自動監測。

1 總體設計方案

RS485總線具有設備簡單、價格低廉、控制方便、能進行長距離通信的優點,其收發器采用平衡發送和差分接收,因此具有抑制共模干擾的能力[3]。使用RS485總線和一對雙絞線就能實現多站聯網,構成分布式系統。因此本系統使用4個水溫傳感器設計RS485作為硬件層協議,采用主從結構,構成串行通信系統。

Modbus協議是全球第一個真正用于工業現場的總線協議[4],這是一個請求/應答協議,并且提供功能碼規定的服務。Modbus協議定義了一個與基礎通信層無關的簡單協議數據單元(PDU),其協議數據單元如圖1所示。

圖1 Modbus協議數據單元

Modbus串行鏈路協議是單主/多從通信協議。在同一時刻,只有一個主節點連接于總線,一個或多個子節點(最大編號為247)連接于同一個串行總線。在 Modbus 串行鏈路,地址域只含有子節點地址,主節點通過將子節點的地址放到報文的地址域對子節點尋址。當子節點返回應答時,將自己的地址放到應答報文的地址域以讓主節點知道哪個子節點在回答。Modbus定義了報文域的位內容在線路上串行的傳送,并確定信息如何打包為報文和解碼。有兩種串行模式即:RTU模式和ASCII模式,區別見表1。

表1 Modbus-RTU和Modbus-ASCII區別

Modbus-ASCII模式的一個子節需要兩個字符,在波特率相同時RTU模式的傳輸數據密度以及吞吐率比 ASCII模式的要高。

Modbus總線廣泛應用于智能儀器儀表、智能監控設備等諸多領域[5],所以本系統采用Modbus-RTU作為軟件層協議。為了加強數據檢錯能力,軟件方面使用CRC16算法校驗數據。系統整體框圖如圖2所示。

圖2 海洋表層水溫采集系統整體框圖

2 溫度鏈硬件結構設計

2.1 測溫電路設計

PT100是一種正溫度系數的熱敏電阻,隨著溫度的升高電阻增大,并且基本呈線性方式,很適合用作連續測溫。鉑電阻測溫工作原理為:鉑金屬材料在不同的溫度下電導率不同,鉑絲的電導率與溫度之間大致成正比的關系,其可測量的溫度范圍大致在-200 ℃~600 ℃。PT100溫度傳感器還具有抗振動、穩定、測溫精度高、壽命較長等優點[6]。因此,本設計采用PT100進行測溫。圖3中電阻R2、R3、R4與PT100組成電橋電路,REF3030為電橋電路提供標準的3.3 V電壓。AD623用一個2 kΩ的放大反饋電阻精確地把電橋的壓差放大51倍。

圖3 測溫電路圖

2.2 RS485通信接口設計

本電路采用MAX485作為RS485總線的驅動芯片,如圖4所示。將RE和DE短接,由單片機的I/O端口經反相器控制半雙工通信時接收和發送的狀態切換。三極管Ql及電阻Rl、R2構成反相電路,防止出現總線沖突問題;R3、R4為總線空閑時的箝位電阻,用于抗干擾;R7為阻抗匹配電阻,以減小信號反射;R5、R6及4個快恢復穩壓管Dl~D4可將瞬態高電壓箝位在一定的電壓范圍之內,以保護通信接口,保證通信的可靠性。

圖4 RS485通信接口電路

2.3 RS232與RS485轉換模塊設計

RS232與RS485轉換模塊通過MAX232芯片把RS232標準電平轉換為TTL標準電平,然后使用MAX485芯片將TTL電平轉換為RS485電平。MAX485芯片包含一個驅動器和一個接收器,適合于RS485通信標準的低功率收發器。MAX485芯片采用單一電源5 V工作,額定電流為300 μA,采用半雙工通信方式,可以將TTL電平轉換為RS485電平。RS232與RS485轉換電路如圖5所示。

圖5 RS232與RS485轉換電路

3 利用Modbus協議的上位機軟件開發

Libmodbus作為一個優秀而且免費開源的跨平臺庫,支持RTU和TCP模式的Modbus開發庫。本文利用Libmodbus開源類庫V3.0.6版本,在Win7操作系統下,使用Visual Studio 2013建立MFC工程,利用MFC類庫和Libmodbus類庫進行Modbus上位機開發。

3.1 Modbus環境搭建

首先對Libmodbus庫進行編譯,得到Modbus靜態庫和動態庫。利用VS2013建立MFC應用程序,將Modbus靜態庫(modbus.lib)和動態庫添(modbus.dll)加進工程文件。

在本次開發中需要用到的文件有:modbus.h;modbus-rtu.h;modbus-tcp.h;modbus-version.h;modbus.lib;modbus.dll。在modbus.h文件中,宏定義了Modbus的功能碼,還定義最大可讀/可寫線圈數量、最大可讀/可寫寄存器數量及各種錯誤碼常量,并提供串口設置模式、modbus-tcp環境、釋放modbus環境、設置從站ID、讀寫數據等一系列MODBUS_API的聲明。modbus-version.h是modbus類庫的版本信息。

完整的Modbus指令支持很多功能碼,但一個項目里只用到其中的一部分功能碼,因此本文實現的上位機包含讀保持寄存器、寫單個保持寄存器這2個指令。

3.2 Modbus讀指令實現

首先要檢測讀取的寄存器數量是否在允許范圍內,之后再對查詢幀報文進行預處理以實現查詢幀的構造,發送報文。對接收到的報文進行數據完整性檢測,比較從設備地址,并進行CRC計算比較。數據完整性檢測完畢之后,得到的才是各個寄存器的值。本機將查詢幀報文預處理、查詢幀構造、數據完整性檢測、CRC校驗這些功能分別封裝成函數。讀指令由modbus_read_registers(modbus_t *ctx, int addr, int nb, uint16_t*dest)利用函數調用的思想實現。流程圖如圖6所示。

圖6 讀指令流程圖

3.3 Modbus寫指令實現

首先創建相對應的Modbus-RTU環境。在讀指令操作中,查詢幀報文預處理、查詢幀構造、數據完整性檢測、CRC校驗這些功能分別封裝成函數。同以上讀指令一樣,利用函數調用的思想,由modbus_write_registers(modbus_t*ctx, int addr, int nb, const uint16_t*data)函數實現寫指令的操作。寫指令模塊運行流程圖如圖7所示。

圖7 寫指令流程圖

4 實驗結果

編寫好的上位機(圖8)先在實驗室利用虛擬串口軟件VSPD進行測試,可以正確讀寫寄存器。而后在2019年11月,于青島中苑碼頭岸基實驗站進行測試。本機物理端口為COM3,因此串口設置為COM3,波特率設為19 200,校驗位設為無,數據位設為8,停止位設為1。將傳感器固定在船體側面,處于船舶吃水線變動范圍內,分別采集海水表層溫度、水下1 m處的溫度、水下2 m處的溫度及氣溫。采集的溫度數據由Matlab處理如圖9所示。

圖8 軟件界面

由圖9可知,冬季青島岸基實驗站附近的海水,氣溫要比表層水溫高3 ℃左右,表層水溫相差不多,水下1 m處的水溫基本穩定在18.62 ℃,水下2 m處的水溫基本穩定在18.60 ℃。溫度鏈與水溫精度為0.05、電導率0.05 mS/cm的亞力克溫鹽傳感器同時測量海水表層溫度,其最大標準差約為0.1 ℃。誤差分析如圖10所示。

圖9 溫度曲線圖

圖10 誤差分析

5 結語

本文設計的上位機經測試,各項功能正常,運行穩定,操作簡單方便,并具有可移植性和可擴展性。該設計可以在計算機上實現Modbus-RTU遠程監測,并擴展了Modbus-TCP模塊,設計了任務欄托盤功能,實現了用戶可視化,方便了用戶的操作與使用。為了能夠在沒有安裝VS的計算機上使用,可以生成Release版本。

海洋表層水溫是研究海氣間水汽交換、了解海區水文及水質狀況的重要參數[7],是海洋科學研究、海洋環境監測、海上交通安全、國防軍事建設的重要參考依據[8]。基于船舶進行海水表層水溫自動監測,能夠使志愿船自動觀測實現從氣象觀測擴展到水文觀測,增加了觀測要素,對研究、開發和利用海洋都具有重要意義。

猜你喜歡
指令
聽我指令:大催眠術
ARINC661顯控指令快速驗證方法
測控技術(2018年5期)2018-12-09 09:04:26
LED照明產品歐盟ErP指令要求解讀
電子測試(2018年18期)2018-11-14 02:30:34
殺毒軟件中指令虛擬機的脆弱性分析
電信科學(2016年10期)2016-11-23 05:11:56
巧用G10指令實現橢圓輪廓零件倒圓角
時代農機(2015年3期)2015-11-14 01:14:29
中斷與跳轉操作對指令串的影響
科技傳播(2015年20期)2015-03-25 08:20:30
基于匯編指令分布的惡意代碼檢測算法研究
一種基于滑窗的余度指令判別算法
歐盟修訂電氣及電子設備等產品安全規定
家電科技(2014年5期)2014-04-16 03:11:28
MAC指令推動制冷劑行業發展
汽車零部件(2014年2期)2014-03-11 17:46:27
主站蜘蛛池模板: 国产自在线播放| 97影院午夜在线观看视频| 欧美区一区| 国产青榴视频| 亚洲三级视频在线观看| 国产午夜人做人免费视频中文| 成人在线天堂| 黄色一级视频欧美| 欧美黄网在线| 亚洲国产黄色| 91精品免费久久久| 成人国产一区二区三区| 日本三区视频| 欧美人与牲动交a欧美精品 | 亚洲欧洲国产成人综合不卡| 亚洲三级影院| 色噜噜狠狠狠综合曰曰曰| 最新午夜男女福利片视频| 日本免费一区视频| 亚洲第一国产综合| 亚洲一区第一页| 国产精品熟女亚洲AV麻豆| 91国内外精品自在线播放| 天天综合色天天综合网| 日本国产在线| 人妻无码中文字幕第一区| 沈阳少妇高潮在线| 亚洲AV无码久久精品色欲 | 国产综合色在线视频播放线视| 国产精品高清国产三级囯产AV| 久久天天躁狠狠躁夜夜2020一| 中文无码影院| 在线观看视频99| 亚洲成a人片在线观看88| 无码免费视频| 精品91视频| 香蕉色综合| 亚洲一区毛片| 最新日本中文字幕| 真实国产乱子伦视频| 亚洲欧美日本国产综合在线| 老司国产精品视频| 亚洲资源站av无码网址| 波多野结衣二区| 欧美日韩91| 不卡无码h在线观看| 日本高清有码人妻| 中国精品久久| 久久一色本道亚洲| 国产18页| 国产精品私拍99pans大尺度| 午夜高清国产拍精品| 四虎亚洲国产成人久久精品| 色噜噜综合网| 成人福利在线看| 91精品日韩人妻无码久久| 91年精品国产福利线观看久久| 中文字幕亚洲无线码一区女同| 久久精品人人做人人爽电影蜜月| 波多野结衣第一页| 黄色污网站在线观看| 亚洲第一成网站| 亚洲小视频网站| 精品国产91爱| 试看120秒男女啪啪免费| 九九热精品在线视频| 亚欧美国产综合| 精品久久久久久成人AV| 秋霞国产在线| 自拍欧美亚洲| 久操中文在线| 91在线视频福利| 国产精品亚洲天堂| 麻豆精品久久久久久久99蜜桃| 少妇精品久久久一区二区三区| 久久久久88色偷偷| 国产精品欧美日本韩免费一区二区三区不卡| 欧美激情首页| 亚洲视频二| 永久免费无码成人网站| 中文成人在线视频| 久久久精品无码一区二区三区|