在小型自動(dòng)化系統中,Modbus通信有著(zhù)較廣泛的應用。西門(mén)子SINAMICS V20系列變頻器支持基于RS485的Modbus RTU通信。
通過(guò)西門(mén)子的USS通信協(xié)議,上位機可以直接訪(fǎng)問(wèn)V20變頻器的所有參數。而V20的Modbus協(xié)議目前還不支持所有變頻器參數的直接訪(fǎng)問(wèn),僅常用參數可以直接通過(guò)獨立的寄存器地址訪(fǎng)問(wèn)。
V20 Modbus寄存器映射表中包含可以通過(guò)Modbus RTU訪(fǎng)問(wèn)的寄存器及其對應的變頻器參數號。在映射表的末尾,有549~558幾個(gè)寄存器,通過(guò)它們可以間接訪(fǎng)問(wèn)所有變頻器參數。

具體步驟如下:
1. 用FC16功能碼(寫(xiě)多個(gè)寄存器)向寄存器549寫(xiě)入要訪(fǎng)問(wèn)的參數號,向寄存器550寫(xiě)入要訪(fǎng)問(wèn)的參數下標。
2. 如果是要修改變頻器參數值,則通過(guò)FC16功能碼向寄存器553和554寫(xiě)入參數值。如果是要讀取變頻器參數值,則通過(guò)FC3功能碼讀取寄存器557和558的值。
?以S7-200 SMART + V20為例,V20變頻器通信相關(guān)參數設置如下:

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

初始化程序用于初始化Modbus通信,設置通信波特率為9600bps,偶校驗,采用PLC集成RS485端口,1000ms響應時(shí)間。
調用一個(gè)MBUS_MSG程序塊,發(fā)送一幀請求報文,用于寫(xiě)入要訪(fǎng)問(wèn)的變頻器參數號和下標。


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


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


報文分析
實(shí)例1. 修改V20參數值p2201[0]=65.5%
步驟1:向VW10寫(xiě)入參數號2201,向VW12寫(xiě)入參數下標0,將V1.0修改為1發(fā)送一幀報文。用狀態(tài)表實(shí)現如下:

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

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

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

此時(shí)查看變頻器p2201[0]參數,發(fā)現已經(jīng)被修改為65.5%。
實(shí)例2. 讀取V20參數值p1070[1]
步驟1:向VW10寫(xiě)入參數號1070,向VW12寫(xiě)入參數下標1,將V1.0修改為1發(fā)送一幀報文。用狀態(tài)表實(shí)現如下:

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

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

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

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