日韩av大片在线观看欧美成人不卡|午夜先锋看片|中国女人18毛片水多|免费xx高潮喷水|国产大片美女av|丰满老熟妇好大bbbbbbbbbbb|人妻上司四区|japanese人妻少妇乱中文|少妇做爰喷水高潮受不了|美女人妻被颜射的视频,亚洲国产精品久久艾草一,俄罗斯6一一11萝裸体自慰,午夜三级理论在线观看无码

無錫徽科特測控技術(shù)有限公司

如何使用 Modbus 進行樣機開發(fā)(獲取完整代碼)

時間:2021-10-15 閱讀:1918
分享:

您是在進行樣機開發(fā),還是在尋找一種經(jīng)濟型方式,,保障應(yīng)用中的溫濕度測量質(zhì)量,?您是否了解關(guān)于 Python 等編程語言的一些基本知識?

如果您了解,,那么我想要向您展示如何僅通過一個 維薩拉HMP110 探頭,、一條 USB 服務(wù)電纜 (219690) 和一臺安裝了 Python 3 的計算機來輕松地長時間記錄數(shù)據(jù),。我將帶您了解該代碼的各個方面,但如果您對解釋內(nèi)容不感興趣,,您可以直接跳到本文的末尾,,獲取完整的代碼。另外需要說明的是,,這只是一個用于演示 Modbus 通信的示例腳本,。

庫:

在介紹代碼之前,讓我們首先了解一下我們將用到的庫,,其中最重要的是 pymodbus,。我們使用該庫來通過 Modbus RTU 與探頭建立通信,具體操作是從 pymodbus.client.sync 導(dǎo)入 ModbusSerialClient,。我們使用struct庫將字位處理為不同的變量類型,,使用time庫更改輪詢率,使用datetime庫獲得讀取數(shù)據(jù)的時間和日期,,此外,,我們導(dǎo)入 argparse庫,將參數(shù)從命令行傳遞至代碼,。





參數(shù):

為了有助提高代碼的靈活性,,我添加了一些參數(shù)。使用上述參數(shù)可讓我們無需更改代碼,,便能從命令行輕松更改變量值,。我認(rèn)為可能會有所幫助的參數(shù)有通信端口、數(shù)據(jù)存儲文件的名稱,、探頭的地址,、輪詢頻率和數(shù)據(jù)記錄長度。





Modbus 連接:

我們首先需要初始化新的串行 Modbus 客戶端,,此客戶端應(yīng)已根據(jù)探頭進行正確設(shè)置,。本示例中的參數(shù)集必須包括通信方式、通信端口,、響應(yīng)超時,、波特率、停止位和奇偶校驗,。 Modbus RTU 的通信方式為“rtu",,端口取決于您的計算機,因此我將在以下部分說明如何識別正確的端口,。由于其他參數(shù)由探頭的設(shè)置決定,,因此您需要參考探頭的數(shù)據(jù)表,獲取恰當(dāng)?shù)闹怠R话闱闆r下,,針對維薩拉探頭,,波特率應(yīng)為 19200,停止位為 2,,無奇偶校驗,。





讀取保持寄存器:

現(xiàn)在我們來創(chuàng)建一個函數(shù)以讀取探頭的保持寄存器。我們要調(diào)用上一節(jié)中創(chuàng)建的 Modbus 客戶端實例的 read_holding_registers() 方法來讀取寄存器,。我們需要保持寄存器的起始地址,、寄存器的數(shù)量和探頭的從屬地址。我們會從寄存器收到低字節(jié)序格式的 16 位字?jǐn)?shù)據(jù),,之后,,我們必須將其轉(zhuǎn)換為 32 位浮點值。





將寄存器的值轉(zhuǎn)換為 32 位的值:

寄存器的值以 16 位整數(shù)的形式存儲,,我們需要將其轉(zhuǎn)換為 32 位浮點格式,。為此,我創(chuàng)建了一個函數(shù),,它可以獲取寄存器的值和寄存器索引,,并返回索引數(shù)據(jù)的 32 位浮點值。我們采用模塊結(jié)構(gòu)來執(zhí)行此轉(zhuǎn)換,。





記錄數(shù)據(jù):

鑒于我們已經(jīng)可以讀取保持寄存器并將寄存器的值轉(zhuǎn)換為 32 位浮點值,,我們需要創(chuàng)建一個可將這些值存儲在 .csv 文件中的函數(shù)。為此,,我創(chuàng)建了一個名為 data_logger() 的函數(shù),。它可以調(diào)用函數(shù) holding_registers_data(),并以日期時間,、相對濕度、溫度,、露點的格式將獲取的數(shù)據(jù)附加到文件中,。





確定探頭的通信端口:

首先,確保您的探頭能正確連接到計算機,。

Windows:

在 Windows 操作系統(tǒng)中,,您可以在“設(shè)備管理器"下找到設(shè)備的 COM 端口。要打開“設(shè)備管理器"窗口,,請打開屏幕左下方的“開始"菜單,,然后輸入“設(shè)備管理器"。它會顯示為“最佳匹配"下的第一個結(jié)果,,單擊該圖標(biāo)或按下鍵盤上的 Enter 鍵便可打開該窗口,。單擊“端口(COM 和 LPT)"旁邊的箭頭以展開端口。您會看到被列為“Vaisala USB Device"的一個設(shè)備,它的旁邊列出了 COM 端口名稱,,在我們的示例中應(yīng)為 COM6,。





Linux :

在 Linux 中,您可以通過在終端鍵入命令“dmesg | grep tty"來確定通信端口,。在所有返回的語句中,,會有一個類似于“'cp210x converter now attached to ttyUSBn "的語句,其中 ttyUSBn 便是端口,。

運行代碼:

要運行腳本,,您必須安裝所有的庫。如果需要,,可以使用 pip 命令





以獲得有關(guān)參數(shù)的操作,。命令提示符中應(yīng)顯示此過程。下方是輸出內(nèi)容的屏幕截圖,。





通信端口是必需參數(shù),,其他參數(shù)均具備默認(rèn)值,您可以根據(jù)自己的偏好進行更改,。通信端口參數(shù)不需要標(biāo)識符,,可以放在文件名稱之后的任意位置。但其他可選參數(shù)需要標(biāo)識符,。

以下是以長格式和短格式顯示的典型命令示例:





會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

X
該信息已收藏,!
標(biāo)簽:
保存成功

(空格分隔,最多3個,單個標(biāo)簽最多10個字符)

常用:

提示

X
您的留言已提交成功,!我們將在第一時間回復(fù)您~
撥打電話 產(chǎn)品分類
在線留言