??簡(jiǎn)介工業(yè)物聯(lián)網(wǎng)感知層的數(shù)據(jù)來(lái)源非常多樣,通常來(lái)自各種多源異構(gòu)設(shè)備和系統(tǒng),因此如何從這些設(shè)備和系統(tǒng)中獲取數(shù)據(jù),是工業(yè)物聯(lián)網(wǎng)面臨的第一道門檻。但實(shí)際上在工業(yè)現(xiàn)場(chǎng),會(huì)采用不同廠商生產(chǎn)的設(shè)備,而這些設(shè)備也可能采用不同的工業(yè)協(xié)議。有些時(shí)候,由于有些設(shè)備甚至已經(jīng)使用了若干年,出于系統(tǒng)穩(wěn)定性和集成時(shí)間的考慮,更換設(shè)備并非上策。因此實(shí)施IIoT,協(xié)議轉(zhuǎn)換在某些場(chǎng)合下必不可少。

??如何解決協(xié)議轉(zhuǎn)換中的"痛點(diǎn)"工業(yè)現(xiàn)場(chǎng)協(xié)議各種各樣,傳統(tǒng)網(wǎng)關(guān)未必能做到同時(shí)支持多種所需協(xié)議,即便找到合適的設(shè)備硬件成本也相當(dāng)高昂。但使用EsDA 家族中的AWFlow Designer(嵌入式應(yīng)用開(kāi)發(fā)利器——【EsDA】AWFlow)與配套硬件可輕松解決該"痛點(diǎn)"。對(duì)比傳統(tǒng)網(wǎng)關(guān)方案其主要有以下優(yōu)點(diǎn):
- 靈活性高支持二次開(kāi)發(fā),傳統(tǒng)網(wǎng)關(guān)一般功能比較單一或難以實(shí)現(xiàn)復(fù)雜邏輯,使用EsDA方案,可以使用AWFlow Designer對(duì)硬件進(jìn)行可視化配置,且可根據(jù)實(shí)際需求自由更改應(yīng)用邏輯(且大多數(shù)情況無(wú)需重新編譯和燒寫固件),可同時(shí)做多種協(xié)議的轉(zhuǎn)換器,甚至可以做協(xié)議轉(zhuǎn)換之外的業(yè)務(wù);
- 二次開(kāi)發(fā)簡(jiǎn)單,使用AWFlow Designer簡(jiǎn)單"拖拽、連線"即可完成二次開(kāi)發(fā);
- 可復(fù)用性強(qiáng)、模塊化程度高,AWFlow將常用模塊封裝為"節(jié)點(diǎn)",高度模塊化,并支持自定義節(jié)點(diǎn);
- 硬件成本比傳統(tǒng)方案低。
??零基礎(chǔ)EsDA入門若是剛開(kāi)始接觸EsDA,可先閱讀EsDA MPC-ZC1系列文章,從零開(kāi)始搭建環(huán)境和掌握基本開(kāi)發(fā)流程,已有基礎(chǔ)的可以跳過(guò):-
EsDA MPC-ZC1 入門(一)—— 軟件安裝
-
EsDA MPC-ZC1 入門(二)—— LED 控制
-
EsDA MPC-ZC1 應(yīng)用——串口服務(wù)器(一)
- EsDA MPC-ZC1 應(yīng)用——串口服務(wù)器(二)
使用EsDA完成Modbus轉(zhuǎn)CAN協(xié)議實(shí)驗(yàn)在實(shí)際項(xiàng)目中,有時(shí)會(huì)遇到需要讀取Modbus從設(shè)備的數(shù)據(jù)到不支持Modbus的設(shè)備的情況,本文以實(shí)現(xiàn)Modbus轉(zhuǎn)CAN協(xié)議轉(zhuǎn)換器為目標(biāo)(即讀取Modbus從設(shè)備數(shù)據(jù)并發(fā)送到指定CAN設(shè)備以完成轉(zhuǎn)換),展開(kāi)講解,介紹如何通過(guò)EsDA家族中的AWFlow Designer和EPC6450-AWI開(kāi)發(fā)板套件,進(jìn)行圖形化低代碼應(yīng)用開(kāi)發(fā),快速完成一個(gè)協(xié)議轉(zhuǎn)換器。

-
準(zhǔn)備準(zhǔn)備一塊EPC6450-AWI開(kāi)發(fā)板與USBCANFD-200U CANFD 接口卡,并接線;
-
在PC機(jī)上配置Modbus模擬從設(shè)備;
-
業(yè)務(wù)開(kāi)發(fā),使用EsDA家族中的AWFlow Designer,進(jìn)行圖形化開(kāi)發(fā)完成轉(zhuǎn)換器業(yè)務(wù);
- 在PC機(jī)上打開(kāi)ZCANPRO軟件(USBCANFD-200U CANFD 接口卡上位機(jī)軟件),讀取來(lái)自協(xié)議轉(zhuǎn)換器的數(shù)據(jù)。
附:https://www.modbustools.com/modbus_slave.html1.1.2 下載USBCANFD-200U接口卡驅(qū)動(dòng)和上位機(jī)軟件(CAN-bus-ZCANPRO),并安裝。附:http://www.zlgcan.com/zlgcan-usbcanfd-200u/927/
1.2 硬件準(zhǔn)備工作
1.2.1 準(zhǔn)備一塊EPC6450-AWI開(kāi)發(fā)板,并按照下圖所示連接好硬件(電源與網(wǎng)口接到PC機(jī)上,CAN_1兩根線接到USBCANFD-200U接口卡上,Debug調(diào)試口可不接)。

1.3 配置PC機(jī)注意:需要將PC機(jī)與開(kāi)發(fā)板設(shè)置為同一網(wǎng)段(例如本實(shí)驗(yàn)選用EPC6450-AWI開(kāi)發(fā)板的ip為169.254.240.77故需要將PC機(jī)的ip改為169.254.240.xx),否則實(shí)驗(yàn)可能會(huì)失敗,本文的PC機(jī)ip更改為169.254.240.136。1.3.1 配置模擬Modbus從設(shè)備1.2.1.1 打開(kāi)剛才安裝的Modbus Slave軟件。
1.2.1.2依次點(diǎn)擊Connection–>Connection Setup,并根據(jù)圖5配置從設(shè)備參數(shù),并點(diǎn)擊OK保存設(shè)置。

1.2.1.4配置Modbus從設(shè)備對(duì)應(yīng)寄存器的值如下圖。


本次實(shí)驗(yàn)選用的開(kāi)發(fā)板為EPC6450-AWI,其作為一個(gè)協(xié)議轉(zhuǎn)換器,其業(yè)務(wù)主要分為兩大部分:
-
從PC機(jī)模擬的Modbus設(shè)備讀取數(shù)據(jù);
-
將讀取到的數(shù)據(jù)通過(guò)CAN接口發(fā)送到USBCANFD-200U CANFD 接口卡。
2.1 應(yīng)用流圖繪制
2.1.1 依次將畫布拖出modbus_master_in(Modbus主設(shè)備讀取從設(shè)備數(shù)據(jù)節(jié)點(diǎn))、modbus_parse_in、fscript、log、canfd_out(CAN發(fā)送數(shù)據(jù))節(jié)點(diǎn),并依次連線。

2.1.2 雙擊modbus_master_in節(jié)點(diǎn),對(duì)應(yīng)之前在PC機(jī)上Modbus Slave模擬軟件的參數(shù),進(jìn)行配置。

2.1.3 配置modbus_master_in節(jié)點(diǎn)連接參數(shù)與數(shù)據(jù)讀取方式,并點(diǎn)擊完成。



2.1.4 配置modbus_parse_in節(jié)點(diǎn),配置Modbus數(shù)據(jù)解析方式,并點(diǎn)擊完成。

2.1.5 在fscript節(jié)點(diǎn)編寫腳本,將從Modbus設(shè)備讀取到的數(shù)據(jù)寫入buff,并使用CAN發(fā)送節(jié)點(diǎn)發(fā)送buff中的數(shù)據(jù)。

//具體腳本如下:
buf = wbuffer_create()
//CAN配置包(前16個(gè)字節(jié))
wbuffer_write_int8(buf, 202)
wbuffer_write_int8(buf, 150)
wbuffer_write_int8(buf, 9)
wbuffer_write_int8(buf, 124)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 1)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 0)
wbuffer_write_int8(buf, 1)
//從Modbus從設(shè)備讀取到的數(shù)據(jù)包(八字節(jié))
data=msg.payload
for(var i=0;i<data.size,i++)
{
//將數(shù)據(jù)寫入CAN發(fā)送buff
wbuffer_write_int8((buf, array_get(data,i))
}
msg.payload = wbuffer_get_data(buf)
//3 * 8 = 24個(gè)字節(jié)
msg.payloadLength = 24
2.1.6 雙擊CAN節(jié)點(diǎn),進(jìn)行配置。



至此,"轉(zhuǎn)換器"業(yè)務(wù)流圖已經(jīng)開(kāi)發(fā)完成。
2.1.7 將開(kāi)發(fā)板與AWFlow Designer建立連接并將應(yīng)用流圖下載到開(kāi)發(fā)板。



3.實(shí)驗(yàn)現(xiàn)象
打開(kāi)USBCANFD-200U上位機(jī)軟件(CAN-bus-ZCANPRO),選擇打開(kāi)設(shè)備(本實(shí)驗(yàn)所用的是USB-CAN FD-200U),即可查看CAN卡讀取的數(shù)據(jù),與之前我們配置的Modbus Slave軟件的Modbus從設(shè)備的數(shù)據(jù)一致,實(shí)驗(yàn)成功。
?
關(guān)聯(lián)產(chǎn)品
技術(shù)交流群長(zhǎng)按識(shí)別如下二維碼可加入“EsDA嵌入式系統(tǒng)設(shè)計(jì)自動(dòng)化交流群”,與志同道合的朋友交流,并有專業(yè)技術(shù)人員為您答疑解惑,如有問(wèn)題可以咨詢小致微信:zlgmcu-888。
?【版權(quán)聲明】本文為ZLG開(kāi)發(fā)者社區(qū)用戶原創(chuàng)內(nèi)容,未經(jīng)授權(quán)不得轉(zhuǎn)載。歡迎更多用戶到社區(qū)交流互動(dòng)、創(chuàng)作博文,一經(jīng)采用,可獲得百元京東E卡。

-
致遠(yuǎn)電子
+關(guān)注
關(guān)注
13文章
419瀏覽量
32366
原文標(biāo)題:【EsDA協(xié)議轉(zhuǎn)換】Modbus轉(zhuǎn)CAN/CANFD協(xié)議
文章出處:【微信號(hào):ZLG_zhiyuan,微信公眾號(hào):ZLG致遠(yuǎn)電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
PROFIBUS轉(zhuǎn)MODBUS協(xié)議轉(zhuǎn)換網(wǎng)關(guān):玻璃制造“智能熔爐”的數(shù)據(jù)紐帶
Profinet轉(zhuǎn)Modbus網(wǎng)關(guān):工業(yè)自動(dòng)化協(xié)議轉(zhuǎn)換的理想解決方案
用Profinet轉(zhuǎn)Modbus RTU協(xié)議網(wǎng)關(guān)有什么好處
Modbus協(xié)議轉(zhuǎn)HTTP協(xié)議,實(shí)現(xiàn)JSON格式對(duì)接MES等系統(tǒng)平臺(tái)
Profinet從轉(zhuǎn)Modbus(TCP)主總線協(xié)議轉(zhuǎn)換網(wǎng)關(guān)
Modbus協(xié)議轉(zhuǎn)換:讓工業(yè)設(shè)備輕松“對(duì)話”
CAN從站轉(zhuǎn)Modbus TCP主站總線協(xié)議轉(zhuǎn)換網(wǎng)關(guān)
DeviceNet轉(zhuǎn)Modbus RTU協(xié)議轉(zhuǎn)換網(wǎng)關(guān)在石油開(kāi)采行業(yè)的應(yīng)用
告別協(xié)議沖突!Modbus轉(zhuǎn)Profinet助力風(fēng)速風(fēng)向儀無(wú)縫對(duì)接
Modbus轉(zhuǎn)Profibus-DP:快速上手協(xié)議轉(zhuǎn)換模塊的配置技巧
CANFD協(xié)議轉(zhuǎn)換器:搭建通訊橋梁
CAN轉(zhuǎn)Modbus TCP工具的應(yīng)用案例
EtherCAT轉(zhuǎn)modbus TCP借協(xié)議轉(zhuǎn)換網(wǎng)關(guān)模塊打通倍福PLC與上位機(jī)鏈路
Modbus 轉(zhuǎn) Profinet:工業(yè)通信協(xié)議的橋梁

【EsDA協(xié)議轉(zhuǎn)換】Modbus轉(zhuǎn)CAN/CANFD協(xié)議
評(píng)論