歐姆龍plc透過Modbus RTU與變頻器通訊

硬體裝置: NJ301-1100( PLC), NX-ECC201( Ethercat耦合器), NX-CIF105( NX

系列422/485模組), 3G3MX2-AB002-ZV1

軟體: Sysmac Studio

案例簡介: 使用NX_ModbusRtuCmd指令對變頻器讀寫。

1. 系統概述,硬體搭建和接線

歐姆龍plc透過Modbus RTU與變頻器通訊

NX-CIF105 的 485 管腳如下圖所示:

歐姆龍plc透過Modbus RTU與變頻器通訊

NX-CIF105 與 3G3MX2 的接線如圖所示:

歐姆龍plc透過Modbus RTU與變頻器通訊

如果從站有終端電阻,把 A3 B3 短接即可,本例 3G3MX2 預設無終端電阻不需要短接。

2. 操作步驟

① 軟體設定

NJ 透過 Ethercat 口連線 NX-ECC201,節點號 8。

歐姆龍plc透過Modbus RTU與變頻器通訊

ECC201 後面直接帶 NX-CIF105 模組。

歐姆龍plc透過Modbus RTU與變頻器通訊

雙擊軟體中 CIF105 模組圖示,進行設定:

歐姆龍plc透過Modbus RTU與變頻器通訊

Event level 為發生報錯的反應,無需改動預設即可; event4 下面從上往下依次為:快取允許,波特率, 422/485 切換, 8 位資料位,奇偶校驗為無校驗,停止位 1 位,流控功能關閉,收發允許,接受最大資料快取為 1000*0。1=100 個位元組。快取一定要有否則 Modbus 從站不能正常反饋。

② 變頻器設定

A001 A002 設為 03,其他預設,從站站號為 1, NJ 側與變頻器的通訊格式一致即可。

歐姆龍plc透過Modbus RTU與變頻器通訊

③ 程式程式設計

用 MODBUS 指令時會用到 CIF105 的埠 在 IO 對映裡面右鍵 CIF105 模組,選擇顯示

節點位置埠:

歐姆龍plc透過Modbus RTU與變頻器通訊

建立裝置變數:

歐姆龍plc透過Modbus RTU與變頻器通訊

歐姆龍plc透過Modbus RTU與變頻器通訊

NX_ModbusRtuCmd 指令說明:

歐姆龍plc透過Modbus RTU與變頻器通訊

歐姆龍plc透過Modbus RTU與變頻器通訊

相關變數說明和資料型別說明:

A. DevicePort——本案例中,設定 ABC 為 DevicePort 的結構體變數。

歐姆龍plc透過Modbus RTU與變頻器通訊

“ DeviceType”變數指定裝置種類。用 NX-CIF 單元要設定為_DeviceNXUnit。

歐姆龍plc透過Modbus RTU與變頻器通訊

“ NXUnit”用之前 IO 對映中建立的節點位置資訊變數放入即可。

“ EcatSlave”、“ OptBoard”可以不使用。

“ PortNo”指定埠編號: 1 代表埠 1; 2 代表埠 2。本案例中用埠 1。

ST 語言程式設計直接賦值如下圖所示:

歐姆龍plc透過Modbus RTU與變頻器通訊

B. SlaveAdr——本案例中在 DEF 變數中設定從站站號,這裡設定站號為 1。

3. 現象和結論

①寫變頻器頻率: CmdDat 裡的命令資料依次為 06 00 01 0F A0, CmdSize 設為 5 個

位元組, 代表寫變頻器頻率 40Hz。

歐姆龍plc透過Modbus RTU與變頻器通訊

RespDat 裡的反饋資料依次為 06 00 01 0F A0,代表通訊成功。

歐姆龍plc透過Modbus RTU與變頻器通訊

②控制變頻器執行: CmdDat 裡的命令資料依次為 05 00 00 FF 00, CmdSize 設為 5

個位元組,導通指令後,變頻器執行燈亮,同時在 RespDat 看到反饋, 代表通訊成功。

歐姆龍plc透過Modbus RTU與變頻器通訊

4.注意事項

指令報錯程式碼如下:

歐姆龍plc透過Modbus RTU與變頻器通訊

1。 0400, 0407: 變數範圍超出,比如位元組數沒寫或者過大就會報 0400 或 0407

2。 0C0B:從站無法識別,檢查接線設定, devicetype 埠指定

3。 0C0C:一般為從站不支援功能碼或者報文格式不正確

4。 其他報錯優先檢查接線設定即可