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