在教學(xué)過程中發(fā)現(xiàn)很多朋友被變頻器如何跟PLC通信所困擾,即使勉強(qiáng)與一種品牌通信
上,換一個(gè)品牌又不知如何去通信。為此我特意整理此文,希望對大家有幫助。
PLC與變頻器之間最常用的通信協(xié)議為Modbus RTU,最常用的通信接口RS485接口,想要熟練的進(jìn)行通信,首先要對Modbus RTU協(xié)議和RS485接口具有充分的了解。
Modbus是由Modicon(現(xiàn)為施耐德電氣公司的一個(gè)品牌)在1979年發(fā)明的,是全球第一個(gè)真正用于工業(yè)現(xiàn)場的總線協(xié)議。Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如RS485)和其它設(shè)備之間可以通信。
ModBus協(xié)議有2種傳輸模式,ASCII模式和RTU模式,在同一個(gè)通信網(wǎng)絡(luò)中必須使用相同的傳輸模式,除此之外還必須具有相同的波特率、數(shù)據(jù)位、校驗(yàn)位、停止位等參數(shù)。
波特率:每秒鐘傳輸?shù)腷it位數(shù)量,表示傳輸速度快慢單位為bps或bit/s。波特率越大傳輸速度越快,抗干擾能力越差,距離也就越近。
數(shù)據(jù)位:傳輸數(shù)據(jù)格式為起始位+數(shù)據(jù)位+奇偶校驗(yàn)位+停止位,通常數(shù)據(jù)位位7或8位。
校驗(yàn)位:奇偶校驗(yàn)位是一種錯(cuò)誤檢測碼,可設(shè)置為奇校驗(yàn)(Odd)、偶校驗(yàn)(Even)和無校驗(yàn)(None)。如果傳輸過程中包括校驗(yàn)位在內(nèi)的奇數(shù)個(gè)數(shù)據(jù)位發(fā)生改變,那么奇偶校驗(yàn)位將出錯(cuò)表示傳輸過程有錯(cuò)誤發(fā)生。
停止位:通常數(shù)據(jù)幀最后有一個(gè)或兩個(gè)(無校驗(yàn)位)停止位,用于表征一幀數(shù)據(jù)結(jié)束。
Modbus協(xié)議是一種單主多從協(xié)議,同一網(wǎng)絡(luò)中只允許有一個(gè)主站,其余都只能作為從站。只有主站才擁有主動話語權(quán),從站只能被動的接收數(shù)據(jù)或?qū)χ髡镜恼埱笞龀鰬?yīng)答。
兩線制RS485接口:工作于半雙工,所以編寫通信程序時(shí)要輪番進(jìn)行通信,即讀和寫操作要錯(cuò)開每次只能執(zhí)行一條操作。數(shù)據(jù)信號采用差分傳輸,使用一對雙絞線,一根為正,一根為負(fù)。
下面就以西門子S7-200 SMART與英威騰變頻器通信為例講解一下通信的方法。
我們通過通信控制變頻器的啟停和頻率,再將轉(zhuǎn)速和輸出電壓讀取出來。
分析:想要通過通信控制啟停和頻率,必須將運(yùn)行指令通道設(shè)置成通信給定P00.01=2,頻率指令選擇設(shè)置成MODBUS通信設(shè)定P00.06=8。有關(guān)通信組的參數(shù)采用默認(rèn)值,本機(jī)通信地址P14.00=1,通信波特率P14.01=4(19200bps),數(shù)據(jù)位校驗(yàn)格式P14.02=1(偶檢驗(yàn)E,8,1 for RTU)。
接線常采用如圖1-1所示的鏈?zhǔn)竭B接法,在遠(yuǎn)端加上120Ω的終端電阻。
圖1-1
接下來就是編寫通信程序:
1.首先應(yīng)對端口進(jìn)行初始化,如圖1-2
圖2-2
2.編寫控制啟停的程序,注意此處使能要用SM0.0。
SMART中保持性寄存器的modbus地址為40001-49999,400001-499999。查閱英威騰手冊得知通信地址如圖1-3所示,算出控制啟停的通信地址為16#BC41,程序如圖1-4所示
圖1-3
3.編寫修改頻率的程序。同樣的方法換算出控制頻率的通信地址為16#BC42,程序如圖1-5所示。
圖1-5
4.編寫讀取輸出電壓的程序。
輸出電壓和運(yùn)用轉(zhuǎn)速的通信地址如圖1-6所示:
圖1-6
將十六進(jìn)制3003轉(zhuǎn)換成十進(jìn)制為12291,超出49999的范圍,所以將12291+400001=41292,再轉(zhuǎn)換成十六進(jìn)制為16#64A84,程序如圖1-7所示。
圖1-7
5.編寫讀取運(yùn)行轉(zhuǎn)速程序,同理得出運(yùn)行轉(zhuǎn)速地址為16#64A86,程序如圖1-8所示。
圖1-8
注意:由于RS485接口是工作于半雙工模式,所以每步操作程序需要輪流執(zhí)行(每次只執(zhí)行一條操作),編寫程序過程中用上一步的Done作為下一步的First條件。跟其它品牌的變頻器或儀表通信方法類似,只需要查看通信手冊找到對應(yīng)的通信地址即可。