儲能應用中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 #ifndef _MSC_VER#include #endif#include #include #include #include
#include
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 #ifndef _MSC_VER#include #endif#include #include #include #include
#include
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總線,免去了大量的協議轉換開發工作,極大的減少了系統搭建和項目開發的時間。
產品介紹:
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等專用協議,可廣泛滿足各類儲能系統的本地能源管理應用需求。
-
CAN
+關注
關注
57文章
2754瀏覽量
463698 -
MODBUS
+關注
關注
28文章
1805瀏覽量
76992 -
消防系統
+關注
關注
1文章
41瀏覽量
9888
發布評論請先 登錄
相關推薦
評論