今天就說下采用RTU數(shù)據(jù)模式控制變頻器,包括變頻器的調(diào)頻、正轉(zhuǎn)、反轉(zhuǎn)、停止命令的寫入及運行頻率的讀取。
先了解下RTU幀的結(jié)構:
幀頭 3.5個字節(jié)的通訊時間
從機地址: 通訊地址0~247, 0代表廣播
功能碼: 01H、02H、03H等
數(shù)據(jù): 2*N個字節(jié)的數(shù)據(jù),為通訊的主要內(nèi)容,包括數(shù)據(jù)地址、數(shù)據(jù)內(nèi)容等。
CRC 低位: CRC校驗碼
CRC 高位: CRC校驗碼
幀尾: 3.5個字節(jié)的通訊時間
在變頻器的控制器,功能碼主要用到兩個03H和06H。
03H表示主機向變頻器讀取數(shù)據(jù),要讀取多少個數(shù)據(jù)由命令中“數(shù)據(jù)個數(shù)”而定,最多可以讀取 16 個數(shù)據(jù)。讀取的參數(shù)地址必須是連續(xù)的。每個數(shù)據(jù)占用的字節(jié)長度為 2 字節(jié),也即一個字(word)。以下命令格式均以 16 進制表示(數(shù)字后跟一個“H”表示 16 進制數(shù)字),一個 16 進制占用一個字節(jié),主要作用是讀取變頻器的參數(shù)及工作狀態(tài),比如變頻器的頻率、電壓、電流以及運行狀態(tài)(正轉(zhuǎn)、反轉(zhuǎn)、停機、故障狀態(tài)的監(jiān)視等)
06H的命令表示主機向變頻器寫數(shù)據(jù),一條命令只能寫一個數(shù)據(jù),不能寫多個數(shù)據(jù)。它的作用是改變變
頻器的參數(shù)及工作方式,比如控制變頻器正反轉(zhuǎn)、停機,設定頻率、轉(zhuǎn)矩、加減速時間等。
我們從主機往從機發(fā)送命令后,如果發(fā)送成功,從機會返回一個回應信息,從這個返回信息中可以看出我們想要得到的東西,這里說下發(fā)送寫命令06H,它的返回信息與發(fā)送命令是一樣的,所以我們只有在讀命令03H才用到返回信息。下面我們舉個例子說明發(fā)送信息與返回信息。
03H,從通訊地址為01的變頻器,以地址0004H開始,連續(xù)讀取兩個數(shù)據(jù)內(nèi)容就是去讀0004H和0005H地址的內(nèi)容。
03H
從上表看出主機向從機發(fā)送命令需要知道從機的地址、功能碼(命令)、數(shù)據(jù)地址、數(shù)據(jù)個數(shù)、CRC校驗碼,以上例子中我們知道從機的地址是01H,功能碼是讀03H,地址是0004H,拆分成高低位,數(shù)據(jù)個數(shù)是倆個0002H,同樣拆分,最后的CRC校驗碼是根據(jù)以上數(shù)據(jù)計算出來的,數(shù)據(jù)發(fā)送到從機后,從機也根據(jù)信息計算一個CRC校驗碼,如果與主機計算的校驗碼一致,則通訊成功,會向從機發(fā)送一組返回信號,我們就知道了從變頻器中讀取的信號,例如0004H和0005H地址的數(shù)據(jù)是5000,0, 那么返回信息除了地址與命令碼不變, 后面的數(shù)據(jù)就變成了字節(jié)個數(shù)、 數(shù)據(jù)內(nèi)容了,5000的16進制是1388H, 因此數(shù)據(jù)內(nèi)容是高位13H, 低位88H。
接下來我們舉例子說下英威騰變頻器的相關控制(電機正反轉(zhuǎn)停止、頻率設定、頻率讀取)
我們知道正反轉(zhuǎn)停止、頻率設定是寫指令06H,頻率讀取是讀指令03H,這大家應該清楚。
由變頻器手冊知道通訊控制的地址為2000H, 正轉(zhuǎn)數(shù)據(jù)位0001H, 反轉(zhuǎn)是0002H, 停機是0005H。
通訊頻率設定值的地址是2001H, 變頻器運行頻率地址是3000H。
設置變頻器的站號是01H。
1、 正轉(zhuǎn)指令,01 06 20 00 00 01 67 90
2、 反轉(zhuǎn)指令,01 06 20 00 00 02 81 A7
3、 停機指令,01 06 20 00 00 02 C0 65
4、 設定頻率,01 06 20 01 0B B8 56 E4 (設置變頻器30.00Hz運行)
5、 運行頻率,01 03 30 00 00 01 8B 0A (返回信息,01 03 02 0B B8 BF 06)
以上指令是否明白?
那么上面的清楚后, 如何在PLC發(fā)送這些指令呢, 這里我們采用RS指令完成。
RS指令在以前的MODBUS-ASCII碼通訊文章也說過, 指令格式是RS S m D n, 發(fā)送以S為開始的m個數(shù)據(jù), 接受以D為開始的n個數(shù)據(jù)。 比如發(fā)送正轉(zhuǎn)指令,RS D0 K8 D20 K8,D0 D1 D2 D3 D4 D5 D6 D7是發(fā)送數(shù)據(jù),D20 D21 D22 D23 D24 D25 D26 D27是接受數(shù)據(jù),D0的內(nèi)容是01,D1是06 , 依此論推下去,接受信息與發(fā)送數(shù)據(jù)一致。
下面看下實際例子:
頻率讀取指令
從以上的圖中看出, 寫入指令的發(fā)送和接受都是一樣的, 讀取指令的接受數(shù)據(jù)就不一樣了, 就比如頻率讀取指令返回的信息中就沒有地址數(shù)據(jù), 它的返回數(shù)據(jù)就是字節(jié)個數(shù)2, 數(shù)據(jù)內(nèi)容07 D0, 轉(zhuǎn)換成十進制就是2000, 也就是20.00Hz, 這在PLC編程時候需要注意。
? 來源:頭條號/工控人
聯(lián)系客服