硬件設(shè)備: nj301-1100( plc), nx-ecc201( ethercat耦合器), nx-cif105( nx
系列422/485模塊), 3g3mx2-ab002-zv1
軟件: sysmac studio
案例簡(jiǎn)介: 使用nx_modbusrtucmd指令對(duì)變頻器讀寫(xiě)。
1. 系統(tǒng)概述,硬件搭建和接線
nx-cif105 的 485 管腳如下圖所示:
nx-cif105 與 3g3mx2 的接線如圖所示:
如果從站有終端電阻,把 a3 b3 短接即可,本例 3g3mx2 默認(rèn)無(wú)終端電阻不需要短接。
2. 操作步驟
① 軟件設(shè)置
nj 通過(guò) ethercat 口連接 nx-ecc201,節(jié)點(diǎn)號(hào) 8。
ecc201 后面直接帶 nx-cif105 模塊。
雙擊軟件中 cif105 模塊圖標(biāo),進(jìn)行設(shè)置:
event level 為發(fā)生報(bào)錯(cuò)的反應(yīng),無(wú)需改動(dòng)默認(rèn)即可; event4 下面從上往下依次為:緩存允許,波特率, 422/485 切換, 8 位數(shù)據(jù)位,奇偶校驗(yàn)為無(wú)校驗(yàn),停止位 1 位,流控功能關(guān)閉,收發(fā)允許,接受最大數(shù)據(jù)緩存為 1000*0.1=100 個(gè)字節(jié)。緩存一定要有否則 modbus 從站不能正常反饋。
② 變頻器設(shè)置
a001 a002 設(shè)為 03,其他默認(rèn),從站站號(hào)為 1, nj 側(cè)與變頻器的通訊格式一致即可。
③ 程序編程
用 modbus 指令時(shí)會(huì)用到 cif105 的端口 在 io 映射里面右鍵 cif105 模塊,選擇顯示
節(jié)點(diǎn)位置端口:
創(chuàng)建設(shè)備變量:
nx_modbusrtucmd 指令說(shuō)明:
相關(guān)變量說(shuō)明和數(shù)據(jù)類(lèi)型說(shuō)明:
a. deviceport——本案例中,設(shè)置 abc 為 deviceport 的結(jié)構(gòu)體變量。
“ devicetype”變量指定設(shè)備種類(lèi)。用 nx-cif 單元要設(shè)定為_(kāi)devicenxunit。
“ nxunit”用之前 io 映射中創(chuàng)建的節(jié)點(diǎn)位置信息變量放入即可。
“ ecatslave”、“ optboard”可以不使用。
“ portno”指定端口編號(hào): 1 代表端口 1; 2 代表端口 2。本案例中用端口 1。
st 語(yǔ)言編程直接賦值如下圖所示:
b. slaveadr——本案例中在 def 變量中設(shè)置從站站號(hào),這里設(shè)置站號(hào)為 1。
3. 現(xiàn)象和結(jié)論
①寫(xiě)變頻器頻率: cmddat 里的命令數(shù)據(jù)依次為 06 00 01 0f a0, cmdsize 設(shè)為 5 個(gè)
字節(jié), 代表寫(xiě)變頻器頻率 40hz。
respdat 里的反饋數(shù)據(jù)依次為 06 00 01 0f a0,代表通訊成功。
②控制變頻器運(yùn)行: cmddat 里的命令數(shù)據(jù)依次為 05 00 00 ff 00, cmdsize 設(shè)為 5
個(gè)字節(jié),導(dǎo)通指令后,變頻器運(yùn)行燈亮,同時(shí)在 respdat 看到反饋, 代表通訊成功。
4.注意事項(xiàng)
指令報(bào)錯(cuò)代碼如下:
1. 0400, 0407: 變量范圍超出,比如字節(jié)數(shù)沒(méi)寫(xiě)或者過(guò)大就會(huì)報(bào) 0400 或 0407
2. 0c0b:從站無(wú)法識(shí)別,檢查接線設(shè)置, devicetype 端口指定
3. 0c0c:一般為從站不支持功能碼或者報(bào)文格式不正確
4. 其他報(bào)錯(cuò)優(yōu)先檢查接線設(shè)置即可