實施IIoT,協議轉換在某些場合下必不可少。本文介紹如何通過EsDA開發套件,快速完成一個Modbus轉CANopen的協議轉換器。
?簡介
IIoT(Industrial Internet of Things)是工業物聯網的簡稱,它將具有感知、監控能力的各類采集、控制傳感器或控制器,以及移動通信、智能分析等技術不斷融入到工業生產過程各個環節,從而大幅提高制造效率,改善產品質量,降低產品成本和資源消耗,最終實現將傳統工業提升到智能化的新階段。
工業物聯網感知層的數據來源非常多樣,通常來自各種多源異構設備和系統,因此如何從這些設備和系統中獲取數據,是工業物聯網面臨的第一道門檻。
然而,實際在工業現場,由于某些特定需求或者歷史原因,會采用不同廠商生產的設備,而這些設備也可能采用不同的工業協議。有些設備已經使用了若干年,出于系統穩定性和集成時間的考慮,更換設備并非上策,但使用不同協議設備通常無法直接互聯,在上述情景下,協議轉換必不可少。
?如何解決協議轉換中的"痛點"工業現場協議各種各樣,傳統網關未必能做到同時支持多種所需協議,即便找到合適的設備硬件成本也相當高昂。但使用EsDA家族中的AWFlowDesigner(嵌入式應用開發利器——【EsDA】AWFlow)與配套硬件可輕松解決該"痛點"。對比傳統網關方案其主要有以下優點:
靈活性高支持二次開發,傳統網關一般功能比較單一或難以實現復雜邏輯,使用EsDA方案,可以使用AWFlow Designer對硬件進行可視化配置,且可根據實際需求自由更改應用邏輯(且大多數情況無需重新編譯和燒寫固件),可同時做多種協議的轉換器,甚至可以做協議轉換之外的業務。
二次開發簡單,使用AWFlow Designer簡單"拖拽、連線"即可完成二次開發。
可復用性強、模塊化程度高,AWFlow將常用模塊封裝為"節點",高度模塊化,并支持自定義節點。
硬件成本比傳統方案低。
?零基礎EsDA入門
若是剛開始接觸 EsDA ,可先閱讀 EsDA MPC-ZC1系列文章,從零開始搭建環境和掌握基本開發流程,已有基礎的可以跳過:
- EsDAMPC-ZC1入門(一)——軟件安裝
- EsDAMPC-ZC1入門(二)——LED控制
- EsDAMPC-ZC1應用——串口服務器(一)
- EsDAMPC-ZC1應用——串口服務器(二)
?使用EsDA完成Modbus轉CANopen協議實驗
在實際項目中,有時會遇到需要讀取Modbus從設備的數據到不支持Modbus的設備的情況,本文以實現Modbus轉CANopen協議轉換器為目標(即讀取Modbus從設備數據并發送到指定CANopen設備以完成轉換),展開講解,介紹如何通過EsDA家族中的AWFlow Designer和EPC6450-AWI開發板套件,進行圖形化低代碼應用開發,快速完成一個協議轉換器。
1. 本次實驗主要步驟
準備一塊EPC6450-AWI開發板與USBCAN-E-P CANopen 主站卡,并接線;
在PC機上配置Modbus模擬從設備;
業務開發,使用EsDA家族中的AWFlow Designer,進行圖形化開發完成轉換器業務;
- 在PC機上打開USBCAN-E-P CANopen主站卡的工具軟件,讀取來自協議轉換器的數據。
1.1 PC機軟件安裝
下載并安裝ModbusSlave(Modbus從機模擬工具);
下載USBCAN-E-P CANopen主站卡的工具軟件,并安裝。
1.2 硬件準備工作
1.2.1 準備一塊EPC6450-AWI開發板,并按照下圖所示連接好硬件(電源與網口接到PC機上,CAN_1兩根線接到USBCAN-E-P CANopen 主站卡上,Debug調試口可不接)。
1.2.2 將第一步的CAN_1線連接到USBCAN-E-P CANopen主站卡的CANH與CANL,USB線接PC。
1.3 配置PC機
注意:需要將PC機與開發板設置為同一網段(例如本實驗選用EPC6450-AWI開發板的ip為169.254.240.77故需要將PC機的ip改為169.254.240.xx),否則實驗可能會失敗,本文的PC機ip更改為169.254.240.136。
1.3.1 配置模擬Modbus從設備
1.3.1.1 打開剛才安裝的ModbusSlave軟件。1.3.1.2?依次點擊Connection–>ConnectionSetup,并根據圖5配置從設備參數,并點擊OK保存設置。1.3.1.3 按F8彈出Slave Definition界面,并如圖6所示進行配置,點擊OK保存。1.3.1.4 配置Modbus從設備對應寄存器的值如下圖。
2. EsDA業務開發
本次實驗選用的開發板為EPC6450-AWI,其作為一個協議轉換器,其業務主要分為兩大部分:
- 從PC機模擬的Modbus設備讀取數據;
- 將讀取到的數據通過CANopen接口發送到USBCAN-E-P CANopen 主站卡。
2.1 應用流圖繪制
2.1.1 依次將畫布拖出modbus_master_in(Modbus主設備讀取從設備數據節點)、modbus_parse_in、fscript、log、canopen_slave_out(CAN發送數據)節點,并依次連線。
2.1.2 雙擊modbus_master_in節點,對應之前在PC機上Modbus Slave模擬軟件的參數,進行配置。2.1.3 配置modbus_master_in節點連接參數與數據讀取方式,并點擊完成。
2.1.4 配置modbus_parse_in節點,配置Modbus數據解析方式(配置為僅解析地址03的數據),并點擊完成。2.1.5 在fscript節點編寫腳本,將從Modbus設備讀取到的數據寫入buff,并使用canopen_slave_out發送節點發送buff中的數據。
//創建CANopen發送緩沖區,將從Modbus讀取到的數據寫入
buf=wbuffer_create()
wbuffer_write_int8(buf,0)//主索引高字節
wbuffer_write_int8(buf,33)//主索引低字節
wbuffer_write_int8(buf,1)//子索引
wbuffer_write_int8(buf,1)//每個子索引多少個字節
wbuffer_write_int8(buf,1)//數據長度
wbuffer_write_int8(buf,msg.payload)//數據msg.payload=wbuffer_get_data(buf)
2.1.6 雙擊canopen_slave_out節點,進行配置。
至此,"轉換器"業務流圖已經開發完成。
2.17 將開發板與AWFlow Designer建立連接并將應用流圖下載到開發板。
3. 實驗現象打開USBCAN-E-P CANopen 主站卡的工具軟件,加載對應EDS文件,并搜索設備,即可查看在當前總線上的CANopen從設備,TPDO1第一個字節與之前我們配置的Modbus Slave軟件的Modbus從設備的數據(第03個字節)一致,實驗成功。
-
CAN
+關注
關注
57文章
2754瀏覽量
463719 -
MODBUS
+關注
關注
28文章
1805瀏覽量
77004
發布評論請先 登錄
相關推薦
評論