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