S7-200SMART提供了免費的MODBUS-RTU庫程式,還要知道變頻器的啟動,停止,頻率和電流對應的暫存器地址就可以編寫程式了。
首先必須保證接線正確,PLC的埠3為+,8為-,如下圖為PLC和V20的接線
然後是對變頻器的引數進行設定,如:
P0700[0] 選擇命令源
P2023[0]RS485 協議選擇
P2010[0]USS/MODBUS 波特率
P2021[0]MODBUS 地址
P2022[0]MODBUS 應答超時
下面就要程式設計實現對變頻器的控制:
1,呼叫Modbus RTU的主站程式,初始化Modbus Master埠:
EN:使能位,必須用SM0.0一直接通
Mode:為1 = Modbus, 0 = PPI (stop Modbus),用SM0.0一直接通
Baud:波特率,一般為9600
Parity:效驗方式,0=無效驗,1=奇效驗,2=偶效驗
Port:0=CPU整合的埠,1=透過擴充套件SB信號板的埠
Timeout:從站響應時間,超時時間,單位:ms毫秒
Done:完成標誌位
Error:錯誤程式碼
2,控制變頻器啟動,讀或寫從站資料指令,變頻器暫存器地址40100對應了變頻器的啟動。
First:讀寫請求,必須使用脈衝觸發,加沿指令
Slave:從站地址(0-247)
RW:讀寫命令,1=寫,0=讀,此處要控制啟動需要使用1
Addr:從站通訊資料起始地址,要寫Modbus地址
Count: 通訊資料區地址的數量
DataPtr:主站通訊資料區地址
上圖指令寫入到VW0,可以控制變頻器的正反轉,每個變頻器的對應的寫入值不同。
3,讀取變頻器的相關引數,由上面的描述,RW為0,則為讀取資料,此處為讀取暫存器地址為40111的頻率值,並進行轉換,是否需要轉換,需要看變頻器的要求,其他品牌的變頻器不一定需要。
需要特別注意的一邊就是RS485為半雙工通訊方式,每次對變頻器的讀寫只能有一個指令在執行,所以需要進行輪詢程式的編寫。一般可以使用Done和Error做為下一個讀寫指令的啟動指令。
S7-200SMART提供了免費的MODBUS-RTU庫程式,還要知道變頻器的啟動,停止,頻率和電流對應的暫存器地址就可以編寫程式了。
首先必須保證接線正確,PLC的埠3為+,8為-,如下圖為PLC和V20的接線
然後是對變頻器的引數進行設定,如:
P0700[0] 選擇命令源
P2023[0]RS485 協議選擇
P2010[0]USS/MODBUS 波特率
P2021[0]MODBUS 地址
P2022[0]MODBUS 應答超時
下面就要程式設計實現對變頻器的控制:
1,呼叫Modbus RTU的主站程式,初始化Modbus Master埠:
EN:使能位,必須用SM0.0一直接通
Mode:為1 = Modbus, 0 = PPI (stop Modbus),用SM0.0一直接通
Baud:波特率,一般為9600
Parity:效驗方式,0=無效驗,1=奇效驗,2=偶效驗
Port:0=CPU整合的埠,1=透過擴充套件SB信號板的埠
Timeout:從站響應時間,超時時間,單位:ms毫秒
Done:完成標誌位
Error:錯誤程式碼
2,控制變頻器啟動,讀或寫從站資料指令,變頻器暫存器地址40100對應了變頻器的啟動。
EN:使能位,必須用SM0.0一直接通
First:讀寫請求,必須使用脈衝觸發,加沿指令
Slave:從站地址(0-247)
RW:讀寫命令,1=寫,0=讀,此處要控制啟動需要使用1
Addr:從站通訊資料起始地址,要寫Modbus地址
Count: 通訊資料區地址的數量
DataPtr:主站通訊資料區地址
Done:完成標誌位
Error:錯誤程式碼
上圖指令寫入到VW0,可以控制變頻器的正反轉,每個變頻器的對應的寫入值不同。
3,讀取變頻器的相關引數,由上面的描述,RW為0,則為讀取資料,此處為讀取暫存器地址為40111的頻率值,並進行轉換,是否需要轉換,需要看變頻器的要求,其他品牌的變頻器不一定需要。
需要特別注意的一邊就是RS485為半雙工通訊方式,每次對變頻器的讀寫只能有一個指令在執行,所以需要進行輪詢程式的編寫。一般可以使用Done和Error做為下一個讀寫指令的啟動指令。