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