硬體裝置: NJ301-1100( PLC), NX-ECC201( Ethercat耦合器), NX-CIF105( NX
系列422/485模組), 3G3MX2-AB002-ZV1
軟體: Sysmac Studio
案例簡介: 使用NX_ModbusRtuCmd指令對變頻器讀寫。
1. 系統概述,硬體搭建和接線
NX-CIF105 的 485 管腳如下圖所示:
NX-CIF105 與 3G3MX2 的接線如圖所示:
如果從站有終端電阻,把 A3 B3 短接即可,本例 3G3MX2 預設無終端電阻不需要短接。
2. 操作步驟
① 軟體設定
NJ 透過 Ethercat 口連線 NX-ECC201,節點號 8。
ECC201 後面直接帶 NX-CIF105 模組。
雙擊軟體中 CIF105 模組圖示,進行設定:
Event level 為發生報錯的反應,無需改動預設即可; event4 下面從上往下依次為:快取允許,波特率, 422/485 切換, 8 位資料位,奇偶校驗為無校驗,停止位 1 位,流控功能關閉,收發允許,接受最大資料快取為 1000*0。1=100 個位元組。快取一定要有否則 Modbus 從站不能正常反饋。
② 變頻器設定
A001 A002 設為 03,其他預設,從站站號為 1, NJ 側與變頻器的通訊格式一致即可。
③ 程式程式設計
用 MODBUS 指令時會用到 CIF105 的埠 在 IO 對映裡面右鍵 CIF105 模組,選擇顯示
節點位置埠:
建立裝置變數:
NX_ModbusRtuCmd 指令說明:
相關變數說明和資料型別說明:
A. DevicePort——本案例中,設定 ABC 為 DevicePort 的結構體變數。
“ DeviceType”變數指定裝置種類。用 NX-CIF 單元要設定為_DeviceNXUnit。
“ NXUnit”用之前 IO 對映中建立的節點位置資訊變數放入即可。
“ EcatSlave”、“ OptBoard”可以不使用。
“ PortNo”指定埠編號: 1 代表埠 1; 2 代表埠 2。本案例中用埠 1。
ST 語言程式設計直接賦值如下圖所示:
B. SlaveAdr——本案例中在 DEF 變數中設定從站站號,這裡設定站號為 1。
3. 現象和結論
①寫變頻器頻率: CmdDat 裡的命令資料依次為 06 00 01 0F A0, CmdSize 設為 5 個
位元組, 代表寫變頻器頻率 40Hz。
RespDat 裡的反饋資料依次為 06 00 01 0F A0,代表通訊成功。
②控制變頻器執行: CmdDat 裡的命令資料依次為 05 00 00 FF 00, CmdSize 設為 5
個位元組,導通指令後,變頻器執行燈亮,同時在 RespDat 看到反饋, 代表通訊成功。
4.注意事項
指令報錯程式碼如下:
1。 0400, 0407: 變數範圍超出,比如位元組數沒寫或者過大就會報 0400 或 0407
2。 0C0B:從站無法識別,檢查接線設定, devicetype 埠指定
3。 0C0C:一般為從站不支援功能碼或者報文格式不正確
4。 其他報錯優先檢查接線設定即可