V80系列PLC與變頻器的通信案例
一、引言
在各種機(jī)械設(shè)置上,PLC與變頻器的應(yīng)用可謂無處不在。常見的用法是使用模擬量模塊(一般是電壓)來對變頻器進(jìn)行控制。這種方法的主要的缺點(diǎn)是成本高,并且容易受干擾(電壓方式),控制精度也很難作得很高,而采用通信方式就可以很好地避免這個(gè)問題。但是,一般PLC的通信編程是一件很不容易的事。本文介紹了V80系列PLC與變頻器的通信方法。
二、V80 PLC介紹
V80系列PLC是深圳德維森科技有限公司開發(fā)的一款通用型高性價(jià)比的小型可編程控制器(PLC),采用32位高性能CPU芯片和高速邏輯解析ASIC芯片,相對于一般的小型PLC,在通信應(yīng)用方面具有以下特點(diǎn):
1、本機(jī)自帶雙串口,其中一個(gè)是232編程口,工作于MODBUS從模式,一般只用于編程和連接人機(jī)設(shè)備。另一個(gè)口為485接口,除了具有串口1所具有的功能外,還能工作于MODBUS主模式、自由通信模式,具有強(qiáng)大的通信功能。與一般的PLC相比,它不需要額外購買連接電纜和通信組件。
2、具有48K的程序空間,9000個(gè)中間接點(diǎn),9999個(gè)內(nèi)部寄存器,加上極其強(qiáng)大的應(yīng)用指令,能夠方便地編寫很復(fù)雜的程序,甚至是復(fù)雜的通信協(xié)議。
3、V80 PLC的默認(rèn)通信協(xié)議就是MODBUS從協(xié)議(RTU),甚至內(nèi)部變量的編址方式也是按照協(xié)議進(jìn)行的,所以在MODBUS通信的應(yīng)用性上具有無可比擬的優(yōu)勢。對于不支持MODBUS協(xié)議的設(shè)備,則可以通過自由通信方式編寫。
三、與兼容標(biāo)準(zhǔn)MODBUS RTU協(xié)議的變頻通信
對于采用MODBUS RTU從協(xié)議的設(shè)備,可以把V80PLC的串口2設(shè)置成MODBUS主的方式與其進(jìn)行直接互連。下面以東元7200MA變頻器為例,下面是引用其說明書上的一段文字:
東元7200MA變頻器采用了MODBUS RTU從協(xié)議,它的通信數(shù)據(jù)格式描述如下:
在MODBUS RTU 模式的通訊協(xié)議中,一個(gè)信息(Message)乃由4 個(gè)部份組成:Slave 地址、功能碼、數(shù)據(jù)及CRC-16數(shù)據(jù)校驗(yàn),并依序送出。每一個(gè)信息的開始與結(jié)束,皆以3.5個(gè)字符(Character)的間隔時(shí)間來做識(shí)別。
對于V80系列PLC,上面的信息只是證明了它采用了部分MODBUS從協(xié)議(只支持03、10H這兩種命令,也就是讀寫寄存器4XXXX命令),是可以與V80直接連接的,而具體的細(xì)節(jié)就不需要關(guān)心了,因?yàn)閂80_PLC的M_BUS指令已經(jīng)封裝了這些數(shù)據(jù)過程。我們只關(guān)心如下參數(shù):
1、讀寫類型及設(shè)備地址。
2、目標(biāo)設(shè)備的寄存器(線圈)號(hào),本地存放數(shù)據(jù)的寄存器(線圈)號(hào),信息長度。
3、通信間隔,也就是多久通信一次。
4、一些通信參數(shù),如波特率、奇偶校驗(yàn)位、通信超時(shí)時(shí)間等
根據(jù)這幾項(xiàng)參數(shù),用以下程序就可以實(shí)現(xiàn)與東元變頻器的通信了。
假設(shè)東元變頻器上的設(shè)備地址為1,上圖的程序完成了這樣一種功能:把PLC內(nèi)部41100~41115變量的內(nèi)容,寫到東元變頻器寄存器區(qū)域偏移為00~015的連續(xù)16個(gè)寄存器里去,中間繼電器01000每次從0變?yōu)?,雙方通信一次。當(dāng)然在之前要對PLC進(jìn)行一下參數(shù)設(shè)置,具體可參見V80PLC的軟件手冊。
四、與其它協(xié)議的變頻器通信
對于不兼容標(biāo)準(zhǔn)MODBUS RTU協(xié)議的變頻器,可以采用自由通信功能塊實(shí)現(xiàn)。相對于M_BUS指令,自由通信的編程難度要大得多,但也靈活得多,大體上跟一些高級(jí)語言(如C語言)的編程思路差不多。用戶最好具有一定的通信編程的經(jīng)驗(yàn),并需要先準(zhǔn)備好一些調(diào)試工具,如232->485轉(zhuǎn)換器、串口監(jiān)控軟件等,因?yàn)橛绊懲ㄐ诺囊蛩靥?,有一些好的調(diào)試工具往往可以收到事倍工半的效果。
下面以正弦SINE003系列變頻器為例,說明V80PLC的自由通信協(xié)議編程方法。
正弦SINE003系列變頻器的通信格式如下:
異或校驗(yàn)
數(shù)據(jù)含義:數(shù)據(jù)幀從機(jī)地址至數(shù)據(jù)信息的異或結(jié)果。既第 2字節(jié)與第3字節(jié)異或的結(jié)果,再與第4字節(jié)異或,以此類推至第13字節(jié)。
數(shù)據(jù)類型:16進(jìn)制,單字節(jié)。
發(fā)送方式:將校驗(yàn)和字節(jié)的高 4位和低4位拆分并轉(zhuǎn)換為ASCII碼,先高后低發(fā)送。
結(jié)果處理:當(dāng)校驗(yàn)結(jié)果小于等于 1FH,則校驗(yàn)結(jié)果加20H。
它使用了ASCII碼來表示傳輸內(nèi)容,用STX(02H)、ETX(03H)作為開始和結(jié)束標(biāo)志,也是一種比較典型的通信協(xié)議。使用前首先要把數(shù)據(jù)轉(zhuǎn)換成ASCII碼,V80PLC提供了ASCBIN及BINASC指令,來完成 “0~H”這十六個(gè)ASCII數(shù)字與十六進(jìn)制碼的互換。
當(dāng)發(fā)送脈沖產(chǎn)生時(shí),各數(shù)據(jù)被換成ASC碼并存放在發(fā)送緩沖區(qū)中,每個(gè)二進(jìn)制碼轉(zhuǎn)換后占二個(gè)字。
SINE003采用異或校驗(yàn),只針對ASC碼部分,這部分程序如下:
實(shí)際上還有幾個(gè)字節(jié)的異或指令沒列出來,然后對異或結(jié)果進(jìn)行判斷,小于1FH則加20H,之后可以用字組拆分指令“PACK”把它拆成兩個(gè)字節(jié),按先高后低填到發(fā)送區(qū),這部分比較簡單,不再單獨(dú)列出,下面是發(fā)送和接收程序。
發(fā)送程序比較簡單,只需填一個(gè)發(fā)送長度即可,而接收的情況則要復(fù)雜一點(diǎn)(圖里沒有體現(xiàn)出來)。在發(fā)送的同時(shí)就打開接收,使能開始字符和結(jié)束字符(通過設(shè)置控制位,這里沒畫出來),并把開始字符和結(jié)束字符填好,還有一些超時(shí)時(shí)間之類的設(shè)置(有興趣的可以參見V80PLC的軟件手冊),這樣當(dāng)接收到“02H”就認(rèn)為是一幀的開始,接收到“03H”就認(rèn)為是一幀的結(jié)束,當(dāng)然也可以結(jié)合其它條件,如字符超時(shí)等,各種狀態(tài)都可以在狀態(tài)位里體現(xiàn)。
接收到完整的一幀后,狀態(tài)位里會(huì)有指示,然后把接收回來的數(shù)據(jù)進(jìn)行校驗(yàn),并重新轉(zhuǎn)換成十六進(jìn)制,就可以進(jìn)行各種處理了。
五、結(jié)束語
采用V80系列PLC與變頻器通信的方案,可以大大地節(jié)省成本,并帶來更高的可靠性。
文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。
你可能感興趣的文章