02_ACS550變頻器RS485Modbus通訊-通訊命令
ACS550變頻器Modbus定址
當我們能正確進行通訊的時候,即可開始對變頻器進行控制。
Modbus功能程式碼比較多,其中我們在對ACS550進行控制的時候,用的比較多的為03和06。
03:讀取4x暫存器。
06:寫單個4x暫存器。
因為03和06直接對映為4x對應的暫存器,因此我們在進行控制的時候,比較簡單,例如:
0000對應的為40001暫存器,0001對應的為40002暫存器,00032對應的為40033暫存器。
ACS550變頻器Modbus控制字
Modbus控制字即40001對應的暫存器的值,我們通過往該暫存器寫值,根據每一位的不同控制其實現不同的功能。
控制字有16位。以ABB傳動為例。
0(關斷1控制):
位0為關斷1控制,當取值為1時標識進入準備執行狀態,取0時表示緊急關斷。
當該位為1,且1、2位為1(關斷1、2不啟用)的時候,且為3為允許執行的時候,變頻器即可執行。
1/2(關斷1/2控制):
位1和2分別為關斷1和關斷2。當取值為1的時候,為不啟用。
關斷0/1/2為互鎖狀態,即其中一個啟用的時候,另兩個應該為不啟用。
3(禁止執行):
當位3取0的時候為禁止執行,取1為允許執行。
4(積分輸出置零):
該位在ABB傳動簡裝版中未使用。
在ABB傳動完整版中,1表示加速允許,0表示置積分函式發生器為0,傳動器停車。
5(積分保持):
1表示積分允許,即加速允許,0表示積分輸出保持,停止積分,積分函式發生器輸出保持。
6(積分輸出置0):
1表示積分輸入允許,正常執行,進入執行狀態。0表示積分輸入置0,將積分函式發生器輸入置0。
注:個人理解,當我們需要變頻器加速的時候,需要給他一個目標值,距離目標值越遠,加速越快,當積分函式發生器保持為某一個值的時候,變頻器恆速執行,當積分輸入置0的時候,停止執行。
7(復位):
該位為0表示正常執行,如果出現故障,該位有0變為1,進行故障復位。
8/9:
未使用。
10:
ABB傳動簡裝版中未使用。
ABB傳動完整版中1表示現場匯流排控制允許。
11(外部控制本地):
1外部2選擇,0為外部1選擇。
12~15:未使用。
注:當我們進行指令傳送的時候,儘量以ABB傳動完整版的指令進行控制和傳送,例如第10位,不管是簡裝版還是完整版,都將其置1,這樣即使我們從簡裝版切換為完整版,也能保證指令能夠正常執行。
ACS550變頻器控制
/**
* 變頻器控制
* ========================================================================
* ACS550的通訊啟動過程:
* 變頻器上電以後(狀態為不具備合閘條件(Not Ready To Switch On)),則需要逐個進行6次成功的
* 通訊才可以啟動完畢(每次通訊變頻器的迴應應與PLC所發內容相同)
* 1.使變頻器具備合閘條件(Ready To Switch On)
* 01 06 00 00 00 06 09 C8 (09C8為CRC校驗碼)
* 2.使變頻器給定1的值清0(Clear The Text REF1)
* 01 06 00 01 00 00 D8 A0
* 3.使變頻器狀態為準備就緒(Ready To Operate)
* 01 06 00 00 00 07 C8 08
* 4.使變頻器狀態為允許執行(Operation Enabled)
* 01 06 00 00 00 0F C9 CE
* 5.使變頻器狀態為允許加速(ACCELERATOR ENABLED)
* 01 06 00 00 00 2F C8 16
* 6.使變頻器狀態為執行(Operating)
* 01 06 00 00 00 6F C9 E6
*=======================================================================
* 要停止正在執行的變頻器,應發停止命令(不應以0速命令代替停止命令)
* 停止命令有三種:
* 急停1(變頻器按照減速時間1(引數2203)減速停止)
* 急停2(變頻器按照減速慣性減速停止)
* 急停3(變頻器按照減速時間2(引數2205)減速停止)
* 一般可使用急停1(變頻器迴應應與PLC所發內容相同)
* 01 06 00 00 00 6D 48 27
*=======================================================================
* 改變執行速度命令
* 正在執行的變頻器可以接收變速命令,即通訊給定。
* 寫入給定1保持暫存器的值0~20000對應變頻器輸出速度0~EXT REF1 MAX = 50.0HZ
* 欲使變頻器輸出10.0HZ,應寫入20000/5 = 4000 即 0F A0
* 變頻器的迴應應與PLC相同
* 01 06 00 01 00 00 D8 0A
* (注意:CRC校驗字的放置順序應為先低位元組後高位元組)
*=======================================================================
* 讀變頻器資料引數
* 可以經通訊讀變頻器引數如輸出速度,電流,轉矩,功率等引數,若所讀引數在變頻器暫存器地址上連續,
* 還可以用一條命令讀取多個引數,如讀取輸出電流:
* 01 03 00 67 00 01 35 D5
* 變頻器的迴應:
* 01 03 01 電流H 電流L CRCL CRCH
*
* 若要讀取輸出頻率,電流,轉矩,功率連續四個引數:
* 01 03 00 66 00 04 A4 16
* 變頻器的迴應:
* 01 03 04 頻率H 頻率L 電流H 電流L 轉矩H 轉矩L 功率H 功率L CRCL CRCH
*
* 若讀回的電流字(電流H,電流L) 為 01 A5,則實際電流數值為 01 A5 = 42.1A
*
*/
變頻器傳送的例子如上所示,例如我們要控制其他功能,例如修改變頻器加速時間,即對應的引數為2202,則2202對應的地址為2201,16進位制值為0x0899,修改加速時間為60.0s,則設定其值為600,對應的二進位制為0x0258,則我們傳送的指令應為:
01 06 08 99 02 58 CRCH CRCL
總結
本文只介紹了控制字的部分功能,當我們進行資料讀取的時候,可能需要用到狀態字,根據我們對控制字的分析,結合使用者手冊查詢對應的狀態字各個位對應的功能,即可方便傳送我們需要的指令,就不再對狀態字即其他暫存器進行贅述了。