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