使用SN與變頻器的MODBUS通訊說明
2006/4/7 14:49:00
現(xiàn)在使用兩種變頻器實驗,臺達VFD-B和施耐德ATV-31。 一、 臺達VFD-B for MODBUS ASCII 1、 VFD-B系列變頻器通訊默認參數(shù):地址01,9600、N、7、2 for ASCII 2、 通訊格式: STX(1)+ADD(2)+FUN(2)+DATA(2n)+LRC(2)+END(2) 3、 程序中使用: 寫頻率(2001): LRC由ADD到DATA每2位之和,然后取補 LRC=100-(01+06+20+01+07+D0)=01(HEX) 以上為寫頻率,DATA2為變量,在程序中比較復(fù)雜。 修改參數(shù)(GGnn): 00-03 開機顯示,要求顯示輸出頻率,改為01 02-00 頻率來源,要求要來源自485,改為05 -01 485通訊可操作鍵盤STOP, 改為03 -02 停車時是自由停車 改為01 LRC1=100-(01+06+00+03+00+01)=F5 LRC2=100-(01+06+02+00+00+05)=F2 LRC3=100-(01+06+02+01+00+03)=F3 LRC4=100-(01+06+02+02+00+01)=F4 設(shè)置功能:啟動、點動、停止(2000位操作),復(fù)位(2002位操作) LRC1=100-(01+06+20+00+00+01)=D8 LRC2=100-(01+06+20+00+00+02)=D7 LRC3=100-(01+06+20+00+00+03)=D6 LRC4=100-(01+06+20+02+00+02)=D5 二、 施耐德ATV-31 for MODBUS RTU 1、 VFD-B系列變頻器通訊默認參數(shù):地址01,19200、E、8、1 for RTU 2、 通訊格式: Add(2)+Fun(2)+ first no.( 4)+words(4)+bytes(2)+crc16(4) 都是十六進制方式 功能碼有03(&H03)、06(&H06)、43(&H2B)、16(&H10) CRC比較難算: 從ADD開始到CRC之前的所有數(shù)據(jù),每兩個字節(jié)分開 1) 用&HFFFF與第一組的兩個字節(jié)異或存到CRC中。 2) 取新的CRC右移一位,重新存于CRC中。 3) 如果右移出的一位為1,則新的CRC與&HA001異或,結(jié)果存于CRC中;如果為零則不變。 4) 重復(fù)2)、3),共8次,就是說得向右移出一個字節(jié)(8位)。 5) 新的CRC與下一組兩個字節(jié)異或,重復(fù)2)、3)、4),直到最后一組做完,把CRC的前兩個字節(jié)與后兩個字節(jié)交換,就是最后CRC16。 6) 注意:1個字=2個字節(jié)=16位 PLC的一個寄存器中一般存儲的是2個字節(jié)的ASCII碼,例如3130,表示為01,從低位到高位,不能混淆。 三、 臺達VFD-B for MODBUS RTU 1、 VFD-B系列變頻器更改通訊參數(shù):地址01,9600、N、7、2 for RTU 2、 通訊格式: Add(1)+Fun(1)+ first no.( 2)+words(2)+bytes(1)+crc16(2) 都是十六進制方式 功能碼有03、06、08、10 CRC比較難算: 與上述施耐德計算相同 四、 PLC的MODBUS協(xié)議 在SN中配置了MODBUS RTU,格式如下: Add(1)+Fun(1)+ first no.( 2)+words(2)+bytes(1)+crc16(2) 寫數(shù)據(jù)功能碼一般只能使用16(&H10) 讀數(shù)據(jù)功能碼一般只能使用03(&H03) 所以具體使用的MODBUS RTU : Add(2)+Fun(2)+ first no.( 4)+words(4)+bytes(2)+crc16(4) 功能碼和校驗碼都不用設(shè)置,如圖以寫為例: 設(shè)置485口為MODBUS協(xié)議。 設(shè)置端口通訊格式 19200,E,8,1 確認設(shè)置。 在程序開頭,只需初始配置一次。 進行通訊的命令,1秒的脈沖 用端口1向地址02發(fā)送數(shù)據(jù) 字節(jié)數(shù)為02,為1個字 PLC內(nèi)數(shù)據(jù)交換用R2000 對方數(shù)據(jù)交換為20001(8進制數(shù)) 讀數(shù)據(jù)為RX命令 讀數(shù)據(jù)與寫數(shù)據(jù)基本類似。
提交
查看更多評論