【工業樹莓派】使用Python 透過Modbus RTU讀取電表

KUNBUS 工業樹莓派 ▎高性能 ▎多接口 ▎寬溫–適應惡劣環境

工業樹莓派是基於樹莓派的工業級工控機產品,型號和功能齊全,包括現場總線各協議網關比與DIO、AIO等模塊擴展。

工業樹莓派具有工業適用性,工作溫度範圍達到 -40 ~55 °C ,靜電保護達到 4 kV / 8 kV ,且浪湧/爆裂測試以及 EMI測試都達到了 EN61131-2和 IEC 61000-6-2標準的要求。支援 Node-RED ,Python ,或純C等多種編程語言;支持通用的工業物聯網(IIoT )協議,如 MQTT和 OPC UA;含兩個以太網接口,其中一個可以透過 Modbus TCP協議連接工業現場網路,另一個可以連接上級的IT系統或是雲端服務器。

▍前言

本文將使用Python 進行編程,透過Modbus RTU/TCP讀取電壓/電流、功率等數值,實現數據採集與傳輸,以及數據上雲的功能。

本文透過將RevPi Core/Connect 等控制器模塊連接到電表(LEOS AC3-MF1,是一款功能齊全的交流三項多功能電表。)端口使用RS-485和RevPi 的Modbus 虛擬主站功能。在此情況下,RevPi Connect將作為Modbus 主站,LEOS型號AC3-MF1將作為Modbus從站。

▍預設配置,查看其他教學文章

1、透過遠程SSH協議使用RevPi 連接所有設備。

2、配置RevPi Core/RevPi Core 3 以 GUI模式啟動。

3、如何使用RevPi Core/RevPi Core 3使用遠程桌面

▍所需工具

  • 1 台 PC
  • 1 個 RevPi Connect
  • 3 個 LEOS AC3-MF1
  • 2 組 24V 直流電源

▍訊號連接程序

1、LEOS AC3-MF1 可測量 3 相功率,並可透過 Modbus RTU 或 RS-485 發送測量值。為所有設備供電後,根據下圖進行連接。

2、在電腦上打開 Web Server 頁面,輸入RevPi Connect 的 IP 地址,並按照以下詳細訊息登錄。

  • 帳號:admin;
  • 密碼:可在 RevPi 設備的側面貼紙上找到。

3、將出現 RevPi Connect 設備的 Web 視窗,選擇 Services 選項點擊『Enabled Modbus Master』,然後點選『SAVE ALL』

4、選擇『APP』應用程序選單,並點擊『START』以啟動 PiCtory 程序

5、從左側目錄選項中拖曳虛擬設備中的 Modbus RTU Master 圖標,移動至 RevPi Connect 圖像的一側(在兩側的空框中)

6、配置 RevPi Connect 的 RS-485 接口以適配 LEOS AC3-MF1,如下圖所示

7、由於用戶可以配置 MODBUS 以從 LEO AC3-MF1 中讀取多個值,因此在本示例中,將對讀數進行詳細測試,如下所述。

  • 電壓線 1 到 0 線
  • 電壓線 2 到 0 線
  • 電壓線 3 到 0 線
  • +/- 相電流線 1
  • +/- 相電流線 2
  • +/- 相電流線 3
  • +/- 總有功功率
  • 總功率因數

因此,增加了Modbus RTU Master 的數值編輯器,即下圖中名字。

8、右鍵點擊添加的 Modbus RTU Master 圖像,然後選擇 Extended Data 目錄,會出現Modbus RTU Master 的 Extended Data。Modbus RTU Master 按照之前的配置,如下所示。

然後按照以下步驟保存數值。

  • 選擇目錄文件 → 另存為
  • 選擇目錄文件 → 另存為開始配置
  • 選擇目錄File → Load Start-Config
  • 選擇目錄工具 → 重製驅動程序,然後按確定按鈕

9、從計算機上運行 PuTTY 程序或在 RevPi Connect 上打開終端程序並漸入以下命令。透過MODBUS RTU 測試 LEOS AC3-MF1 的讀數。

  • piTest – 1- r L1N
  • piTest – 1- r CL1
  • piTest – 1- r AP_Total
  • piTest – 1- r PF_Total

10、選擇目錄文件和導出以創建一個偏移列表文件,該文件將透過將其選擇為偏移列表模式(模板為e02.json)來引用 Python 編程中地址的位置。

這種得到OffsetList.txt文件的結果,如下所列。

  • L1N 11 //字
  • L2N 13 //字
  • L3N 15 //字
  • CL1 17 //字
  • CL2 19 //字
  • CL3 21 //字
  • AP_Total 23 //WORD
  • PF_Total 25 //WORD

L1N 表示線路 1 和中性線之間的電壓

L2N 表示線路 2 和中性線之間的電壓

L3N 表示線路 3 和中性線之間的電壓

CL1 表示相線 1 的電流

CL2 表示相線 2 的電流

CL3 表示相線 3 的電流

AP_Total 表示總有功功率

PF_Total 代表總功率因數

11、使用 VNC Viewer 訪問 RevPi Connect 並運行 Python 3(IDLE)。

12、輸入下列的指令,測試所有讀數。

完成以上步驟後,將可以查看L1N, L2N, L3N, CL1, CL2, CL3, AP_Total和PF_Total 輸出正確。

***注意:如果一個新的端口被更改且讀數為0或不起作用,請重新啟動RevPi 設備以再次測試。


聯繫我們