當前位置: 華文世界 > 數碼

PXB-6020 Modbus轉CAN器材在儲能消防系統中的套用

2024-01-12數碼

儲能套用中EM-1000作為EMS, 面對眾多CAN介面的器材,CAN介面不夠用怎麽辦?PXB-6020輕松幫你搞定!

在儲能套用中,貨櫃式儲能單元通常配備較完備的消防系統,包含噴淋頭、空調、溫度探測器、煙霧探測器、聲光報警器等等傳感器和探頭,如此多的探測器通常需要經過消防采集器采集初步處理後,透過CAN介面將結果上報至BMS或EMS進行進一步的處理。當BMS或EMS的CAN介面數量不夠時,可采用CAN轉入Modbus TCP網絡實作消防采集器與BMS或EMS的快速互聯互通。

下面透過實際案例模擬如何快速將EM-1000的網口透過PXB-6020轉換為CAN介面。接線的拓撲可如下圖所示:

圖中使用USBCAN卡當作前文所述的消防采集器,將數據上傳至CAN總線,再由PXB-6020協定轉換器由CAN轉入Modbus TCP與EM-1000通訊,實作數據的上傳和下發等動作。

具體操作步驟如下:

1. 透過PC連線PXB-6020,PXB-6020采用OPEN端子供電方式,使用AWPX Tools軟件配置工作模式與器材參數。

1.1 配置PXB-6020的Modbus選項為下圖所示。

1.2 配置PXB-6020的CAN選項為下圖所示。

1.3 配置PXB-6020的發送報文,首先點選添加按鈕,添加定時1秒發送幀ID為0x01,幀類別為標準幀的CAN報文,然後點選添加數據按鈕,把Modbus寄存器0x00的數據繫結到CAN報文數據中。

1.4 配置PXB-6020的接收報文,首先點選添加按鈕添加CAN報文分析,幀ID為0x01,幀類別為標準幀,然後在添加數據按鍵,把CAN報文與Modbus寄存器0x00繫結起來。具體內容如下圖所示。

1.5 最後,點選保存配置按鈕,完成PXB-6020的配置。

2. 使用網線將EM-1000的網口與PXB-6020連線起來,再將PXB-6020的CAN介面接入USBCAN卡的CAN介面。連線完成後,給所有器材上電。

3. 配置USBCAN卡的上位機

3.1 開啟ZCANPRO上位機,點選器材管理選項按鈕,然後在彈出的視窗選擇對應的CAN卡,點選開啟器材,最後點選啟動。

3.2 在彈出來的配置CAN視窗中,與PXB-6020的CAN配置保持一致即可,然後點選確認。

3.3 成功配置ZCANPRO上位機以及PXB-6020後,在ZCANPRO中能看到定時的CAN報文,其數據的前2位就是Modbus寄存器0x0的數據

4. 在EM-1000中,可使用以下兩個常式寫入或者讀取Modbus寄存器0x0的數據

4.1 寫入一個隨機數到Modbus寄存器0x0中

#include <stdio.h>#ifndef _MSC_VER#include <unistd.h>#endif#include <errno.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <modbus.h>int main(void){ modbus_t *ctx; int rc; int addr; uint16_t regval; srand((unsigned)time(NULL)); ctx = modbus_new_tcp("192.168.10.168", 502); if (modbus_connect(ctx) == -1) { fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno)); modbus_free(ctx); return -1; } addr = 0; regval = (uint16_t)rand(); printf("Write 0x%X to register 0\n", regval); rc = modbus_write_register(ctx, addr, regval); if (rc != 1) { printf("ERROR modbus_write_register (%d)\n", rc); printf("Address = %d, value = %d (0x%X)\n", addr, regval, regval); } modbus_close(ctx); modbus_free(ctx); return 0;}

4.2 讀取Modbus寄存器0x0

#include <stdio.h>#ifndef _MSC_VER#include <unistd.h>#endif#include <errno.h>#include <stdlib.h>#include <string.h>#include <time.h>#include <modbus.h>int main(void){ modbus_t *ctx; int rc; int addr; uint16_t regval; ctx = modbus_new_tcp("192.168.10.168", 502); if (modbus_connect(ctx) == -1) { fprintf(stderr, "Connection failed: %s\n", modbus_strerror(errno)); modbus_free(ctx); return -1; } addr = 0; rc = modbus_read_registers(ctx, addr, 1, ®val); if (rc != 1) { printf("ERROR modbus_read_registers (%d)\n", rc); printf("Address = %d\n", addr); } printf("Read 0x%X frome register 0\n", regval); modbus_close(ctx); modbus_free(ctx); return 0;}

5. 使用常式寫入數據到Modbus寄存器0x0,在ZCANPRO中,CAN報文的數據也會改變。

6. 使用ZCANPRO的發送數據功能,發送數據到PXB-6020中,使用常式讀取Modbus寄存器0x0,寄存器0x0會改為CAN報文中的數據。

至此,Modbus TCP與CAN的協定轉換完成,協定轉換如此輕松!

透過以上的範例操作,使用PXB-6020構建了一個較簡單的Modbus TCP與CAN的協定轉換方式,輕松實作在EM-1000的CAN介面不足時,透過PXB-6020快速與CAN介面器材通訊的需求。僅需上位機簡單配置就可實作CAN轉入Modbus TCP總線,免去了大量的協定轉換開發工作,極大的減少了系統搭建和專案開發的時間。

產品介紹:

Modbus與CAN FD協定轉換器 PXB-6020

PXB-6020是廣州致遠電子股份有限公司推出的一款 Modbus與CAN FD協定轉換器。PXB-6020 器材有一路 RS485 介面,一路 CAN FD 介面和一路標準 10/100M 乙太網路介面。其中 Modbus可支持RTU 和TCP 兩種協定,並可以配置為 Master 或 Slave 兩種模式。CAN FD 波特率最高可支持5Mbps。PXB-6020 器材具有靈活的配置功能,可輕松實作 Modbus 協定數據到 CAN FD 數據間的無縫轉換。

EM-1000是廣州致遠電子股份有限公司專為新能源儲能系統設計的一款高效能、多介面工控機,擁有豐富的功能介面,可在儲能系統套用中作為邊緣EMS(能源管理系統)總控、通訊管理機、規約轉換器或BAU(電池管理總控)使用。該系列產品整合豐富的外設介面,支持各類BMS、PCS、空調、電表、屏顯等器材的通訊傳輸,且軟件上支持RT-Linux、Ubuntu等作業系統,支持IEC-61850/IEC-104/EtherCAT等專用協定,可廣泛滿足各類儲能系統的本地能源管理套用需求。