西門子變頻器V20如何通過Modbus通信訪問所有參數?
發(fā)布日期:
2023-07-04

在小型自動化系統(tǒng)中,Modbus通信有著較廣泛的應用。西門子SINAMICS V20系列變頻器支持基于RS485的Modbus RTU通信。

通過西門子的USS通信協(xié)議,上位機可以直接訪問V20變頻器的所有參數。而V20的Modbus協(xié)議目前還不支持所有變頻器參數的直接訪問,僅常用參數可以直接通過獨立的寄存器地址訪問。

V20 Modbus寄存器映射表中包含可以通過Modbus RTU訪問的寄存器及其對應的變頻器參數號。在映射表的末尾,有549~558幾個寄存器,通過它們可以間接訪問所有變頻器參數。

西門子變頻器V20如何通過Modbus通信訪問所有參數?

具體步驟如下:

1. 用FC16功能碼(寫多個寄存器)向寄存器549寫入要訪問的參數號,向寄存器550寫入要訪問的參數下標。

2. 如果是要修改變頻器參數值,則通過FC16功能碼向寄存器553和554寫入參數值。如果是要讀取變頻器參數值,則通過FC3功能碼讀取寄存器557和558的值。

?以S7-200 SMART + V20為例,V20變頻器通信相關參數設置如下:

西門子變頻器V20如何通過Modbus通信訪問所有參數?

S7-200 SMART調用Modbus主站庫程序。初始化程序如下:

西門子變頻器V20如何通過Modbus通信訪問所有參數?

初始化程序用于初始化Modbus通信,設置通信波特率為9600bps,偶校驗,采用PLC集成RS485端口,1000ms響應時間。

調用一個MBUS_MSG程序塊,發(fā)送一幀請求報文,用于寫入要訪問的變頻器參數號和下標。

西門子變頻器V20如何通過Modbus通信訪問所有參數?

西門子變頻器V20如何通過Modbus通信訪問所有參數?

調用一個MBUS_MSG程序塊,發(fā)送一幀請求報文,用于寫入要修改的變頻器參數值。

西門子變頻器V20如何通過Modbus通信訪問所有參數?

西門子變頻器V20如何通過Modbus通信訪問所有參數?

調用一個MBUS_MSG程序塊,發(fā)送一幀請求報文,用于讀取變頻器參數值。

西門子變頻器V20如何通過Modbus通信訪問所有參數?

西門子變頻器V20如何通過Modbus通信訪問所有參數?

報文分析

實例1. 修改V20參數值p2201[0]=65.5%

步驟1:向VW10寫入參數號2201,向VW12寫入參數下標0,將V1.0修改為1發(fā)送一幀報文。用狀態(tài)表實現如下:

西門子變頻器V20如何通過Modbus通信訪問所有參數?

此時PLC發(fā)送報文和變頻器響應報文如下(16進制):

西門子變頻器V20如何通過Modbus通信訪問所有參數?

步驟2:向VD20寫入浮點數65.5,將V2.0修改為1發(fā)送一幀報文。用狀態(tài)表實現如下:

西門子變頻器V20如何通過Modbus通信訪問所有參數?

此時PLC發(fā)送報文和變頻器響應報文如下(16進制):

西門子變頻器V20如何通過Modbus通信訪問所有參數?

此時查看變頻器p2201[0]參數,發(fā)現已經被修改為65.5%。

實例2. 讀取V20參數值p1070[1]

步驟1:向VW10寫入參數號1070,向VW12寫入參數下標1,將V1.0修改為1發(fā)送一幀報文。用狀態(tài)表實現如下:

西門子變頻器V20如何通過Modbus通信訪問所有參數?

此時PLC發(fā)送報文和變頻器響應報文如下(16進制):

西門子變頻器V20如何通過Modbus通信訪問所有參數?

步驟2:將V3.0修改為1,發(fā)送報文從寄存器557, 558讀取參數值,結果存放在VW30和VW32中。用狀態(tài)表實現如下:

西門子變頻器V20如何通過Modbus通信訪問所有參數?

此時PLC發(fā)送報文和變頻器響應報文如下(16進制):

西門子變頻器V20如何通過Modbus通信訪問所有參數?

從變頻器響應報文可以看到,讀取回的參數值高位字為755,低位字為1,即755.1。查看變頻器p1070[1]參數,實際數值也是755.1。

聲明:部分內容來源于網絡,如侵權請后臺留言聯(lián)系刪除。