西門(mén)子plc S7-200SMART提供了免費(fèi)的MODBUS-RTU庫(kù)程序,還要知道變頻器的啟動(dòng),停止,頻率和電流對(duì)應(yīng)的寄存器地址就可以編寫(xiě)梯形圖程序了。
首先必須保證接線正確,PLC的端口3為+,8為-,如下圖為PLC和V20的接線
然后是對(duì)變頻器的參數(shù)進(jìn)行設(shè)置,如:
P0700[0] 選擇命令源
P2023[0]RS485 協(xié)議選擇
P2010[0]USS/MODBUS 波特率
P2021[0]MODBUS 地址
P2022[0]MODBUS 應(yīng)答超時(shí)
下面就要編程實(shí)現(xiàn)對(duì)變頻器的控制:
1,調(diào)用Modbus RTU的主站程序,初始化Modbus Master端口:
EN:使能位,必須用SM0.0一直接通
Mode:為1 = Modbus, 0 = PPI (stop Modbus),用SM0.0一直接通
Baud:波特率,一般為9600
Parity:效驗(yàn)方式,0=無(wú)效驗(yàn),1=奇效驗(yàn),2=偶效驗(yàn)
Port:0=CPU集成的端口,1=通過(guò)擴(kuò)展SB信號(hào)板的端口
Timeout:從站響應(yīng)時(shí)間,超時(shí)時(shí)間,單位:ms毫秒
Done:完成標(biāo)志位
Error:錯(cuò)誤代碼
2,控制變頻器啟動(dòng),讀或?qū)憦恼緮?shù)據(jù)指令,變頻器寄存器地址40100對(duì)應(yīng)了變頻器的啟動(dòng)。
EN:使能位,必須用SM0.0一直接通
First:讀寫(xiě)請(qǐng)求,必須使用脈沖觸發(fā),加沿指令
Slave:從站地址(0-247)
RW:讀寫(xiě)命令,1=寫(xiě),0=讀,此處要控制啟動(dòng)需要使用1
Addr:從站通信數(shù)據(jù)起始地址,要寫(xiě)Modbus地址
Count: 通信數(shù)據(jù)區(qū)地址的數(shù)量
DataPtr:主站通信數(shù)據(jù)區(qū)地址
Done:完成標(biāo)志位
Error:錯(cuò)誤代碼
上圖指令寫(xiě)入到VW0,可以控制變頻器的正反轉(zhuǎn),每個(gè)變頻器的對(duì)應(yīng)的寫(xiě)入值不同。
3,讀取變頻器的相關(guān)參數(shù),由上面的描述,RW為0,則為讀取數(shù)據(jù),此處為讀取寄存器地址為40111的頻率值,并進(jìn)行轉(zhuǎn)換,是否需要轉(zhuǎn)換,需要看變頻器的要求,其他品牌的變頻器不一定需要。
需要特別注意的一邊就是RS485為半雙工通訊方式,每次對(duì)變頻器的讀寫(xiě)只能有一個(gè)指令在執(zhí)行,所以需要進(jìn)行輪詢程序的編寫(xiě)。一般可以使用Done和Error做為下一個(gè)讀寫(xiě)指令的啟動(dòng)指令。