【工業樹莓派】做Modbus RTU主站讀取RFID數據

KUNBUS Revpi Core 3是工業級的樹莓派,可作為小型的工業PC用,外觀十分小巧,操作簡單,DIN導軌模塊化安裝,RevPi core 3能與RevPi IO連接,能對IO達到實時控制。其次RevPi core 3 與RevPi 網關模塊化連接,可透過網關直接進入各種工業以太網和現場總線中,同時RevPi core 3 本身俱備了Modbus TCP 和Modbus RTU 主從站的功能,進入兩種協議一般不需要再透過網關。RevPi core 3 基於樹莓派的開發板和系統,其操作系統基於Linux內核,所以也可用RevPi core 3 來做硬體和軟體的開發,完全適應工業場合,在工業場景下的使用有無限的想像力。本篇將展示如何使用工業樹莓派的Modbus RTU 的主站功能區讀取RFID 數據。

在以下示例中,我們將RevPi核心用作Modbus RTU主站,並將RFID讀卡器連接到它。

本文使用的工具:

1、RevPi Core模塊
2、從站設備(Iveno RFID MODBUS讀卡器RFID-MB-10)
3、帶有D-Sub 9連接器的線纜
4、適配器(USB轉RS485/422)
5、網路連接

事前準備:

1、網路瀏覽器,例如Google Chrome或Mozilla Firefox。
2、RevPi Core位於所在網路中。

將從站連接到RevPi內核

將 RevPi Core的USB端口連接到適配器。
透過 D-Sub 9插座將適配器連接到從站。
將 RevPi Core連接到電源。

確定Modbus RTU網路數據

為了配置從站,我們需要事先提供一些數據,以便我們可以透過RevPi內核訪問從站。我們在從站的用戶手冊中找到了這些數據。
在此示例中,我們將RFID讀卡器『Iveno RFID MODBUS讀卡器RFID-MB-10』用作從屬設備。請注意從站用戶手冊中的以下數據:

啟用ModbusRTU主站功能

  • 打開網路瀏覽器。
  • 在Web瀏覽器的地址欄中輸入RevPi Core的IP地址。
  • 出現登錄窗口。
  • 使用用戶名『admin』登錄。
  • 輸入密碼(標示在RevPi Core側面的標籤上)
  • 點擊『登錄』。

現在以查看RevPi Core的當前設備狀態。
點擊 『 Service 』 標籤。
在 『 啟用/禁用Modbus主站 』 行中點擊 『 啟用 』 。
點擊 『 全部保存 』 按鈕。
注意!您也可以在命令行上激活 『 主機 』 功能。輸入以下命令:

sudo revpi-config enable pimodbus-master

點擊 『 應用 』 標籤。
點擊條目 『 PiCtory 』 後面的開始按鈕,PiCtory開始。

ModbusRTU主站配置

打開設備目錄中的 『 虛擬設備 』 文件夾。
選擇ModbusRTU Master。
按住鼠標左鍵,然後將Modbus-RTU Master拖到RevPi Core 3。

在 『 設備數據 』 窗口中設置MODBUS主站的基本配置。如果用戶使用許多設備,並希望稍後在另一個程序中處理數據,那麼此輸入將非常有幫助。在 『 值編輯器 』 中定義串行連接的參數。我們已經從傳感器的用戶手冊中確定了從站的值:
設備路徑:USB設備路徑
波特率:9600
校驗位:無
數據位:8
停止位:1

右鍵單擊配置板上的Modbus RTU主站。
將打開一個上下文菜單。
選擇條目 『 擴展數據 』 以打開輸入掩碼。

這是設置Modbus命令的地方。在此示例中,需要一個命令來讀取RFID傳感器的值。我們已經從傳感器的使用說明書中收集了必要的訊息:
從站地址:1
功能碼:READ_Holding_REGISTERS
註冊地址:1000
寄存器數量:5

保存配置

單擊“文件>保存”以保存文件。點擊 『 工具>重置驅動程序 』 。這將激活設備配置的更改。

在過程映像中查詢值

打開命令行並輸入以下命令:

piTest -v Input_Word_1

將在過程映像中獲取值的位置訊息:

variable name: Input_Word_1
offset: 11
length: 16
bit

這些值在過程映像中,從地址16開始。我們需要讀取10個字節。
我輸入以下命令並查看需要的值: 『 piTest -r 11,10,h 』 。如果現在將RFID卡握在讀卡器上,則可以觀察過程映像中值的變化。

piTest -r 11,10,h
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00
04 00 00 00 1b 00 87 00 2b 00
04 00 00 00 1b 00 87 00 2b 00
04 00 00 00 1b 00 87 00 2b 00
[...]

以上是利用工業樹莓派RevpPi core 3 讀取RFID 訊號的全部過程。