基于CAN總線的燒結配料監(jiān)控系統(tǒng)設計
1 引言
本文引用地址:http://2s4d.com/article/201609/303487.htm燒結廠配料系統(tǒng)是整個燒結生產(chǎn)的源頭,配料過程中對現(xiàn)場采集的數(shù)據(jù)進行有效的收集與傳輸直接影響著燒結生產(chǎn)的產(chǎn)量和質量,影響企業(yè)的勞動生產(chǎn)率和經(jīng)濟效益,而燒結配料現(xiàn)場環(huán)境有大量的變頻器和電機設備并且布線與通信總線比較接近,這些設備在運行時會產(chǎn)生比較大的噪聲作用于周邊的信號線上,引起設備的誤動作[1],嚴重影響了對現(xiàn)場信號傳輸?shù)膶崟r性、精確性。
本文針對燒結混合配料系統(tǒng)的以上問題,設計開發(fā)了一套基于CAN總線的燒結配料監(jiān)控系統(tǒng)。CAN總線通信與其他總線相比信號傳輸?shù)目焖賹崟r性更高、抗干擾更強、可靠性更高,組網(wǎng)靈活從而保證配料精度和穩(wěn)定性。
2 整體概述
2.1 整體概述
本燒結配料系統(tǒng)由1個PC機,1個主控制器和16個配料控制器組成。它們之間采用CAN總線連接如圖1所示。主控制器的主要作用對所有配料控制器進行全局的調動,如控制配料控制器的順啟,順停和急停。配料控制器的主要作用是采集皮帶秤的重量信號和給料裝置的速度信號,通過PID運算得出相應輸出頻率信號到變頻器,再由變頻器去調節(jié)給料裝置電機的轉速,從而使得物料的流量保持在設定的范圍內。由于電子秤配料現(xiàn)場環(huán)境復雜,基本的PID很難達到控制要求,如采用一般的PID算法,在開始配料或停止配料的瞬間和大幅度增加給定值時,由于偏差較大,在積分項的作用下,將會產(chǎn)生很大的超調,因此根據(jù)具體情況在基本 PID控制的基礎上進行局部改進,采用積分分離PID控制算法。PC機通過監(jiān)控畫面監(jiān)控系統(tǒng)的運行,主要負責各個配料控制器的參數(shù)設定、實時流量和累計流量顯示、運行狀態(tài)顯示以及實時、歷史數(shù)據(jù)查詢等,并通過CAN總線與主控制器及各個配料控制器連接實現(xiàn)協(xié)同工作,完成對燒結配料的自動控制。
2.2 控制器設計
主控制器和16個配料控制器均選用意法半導體公司的STM32系列高性能32位處理器STM32F103ZET6,配料控制器使用STM32的ADC、 DMA外設采集速度傳感器的速度信號和重量傳感器的重量信號,使用DAC、DMA和TIM等外設控制輸出0~3.3V電壓,然后輸入到變頻器的模擬量輸入端子,0~3.3V電壓對應于變頻器輸出的0~50Hz,最終實現(xiàn)不同的電機轉速,即皮帶傳送速度的調節(jié)。主控制器主要使用CAN外設和配料控制器和上位機進行通信進行全局的調動。
3 CAN總線通信協(xié)議設計
CAN(Controller Area Network)是一種有效支持分布式控制或實時控制的串行通信網(wǎng)絡[2],CAN總線與其他總線相比技術優(yōu)勢明顯,與RS485總線對比分析如下:
3.1 SAE J1939通信協(xié)議
本系統(tǒng)通信協(xié)議的定制是參照SAE J1939-21協(xié)議標準制定的,該標準采用CAN2.0B幀格式,即擴展幀格式包含29位標識符[3]。
3.2 協(xié)議制定
PC機處理的信息主要有接收并顯示各個配料控制器的流量值及狀態(tài)信息,配料控制器的參數(shù)設置信息等;主控制器處理的信息是控制各個配料控制器順啟、順停和急停等信息;配料控制器處理的信息有給定流量信息,實時流量信息、當前狀態(tài)信息及PC機下設參數(shù)信息等。配料控制器發(fā)送的信息協(xié)議制定如表1所示(下表僅為整個協(xié)議的一部)。
4 監(jiān)控系統(tǒng)設計
監(jiān)控系統(tǒng)軟件采用Labview開發(fā),硬件部分包括PC機和周立功的USBCAN模塊,Virtual CAN Interface (VCI)函數(shù)庫是專門為USBCAN設備在PC上使用而提供的應用程序接口[4]。函數(shù)庫中共定義了5個數(shù)據(jù)結構用于數(shù)據(jù)交換。另外,函數(shù)庫里共有用戶函數(shù)14個,函數(shù)名稱參看圖5。庫里的函數(shù)從ControlCAN.dll中導出,在 LabVIEW8.5中直接使用這些庫函數(shù)編寫上位機程序。VCI 函數(shù)的使用流程如圖2所示。
4.1 VCI庫函數(shù)的調用
庫里的函數(shù)已經(jīng)在VCI函數(shù)庫中進行了聲明,并且給出了函數(shù)名稱及其參數(shù),因此在調用函數(shù)時可以通過Labview中的Calling Library Function Node進行調用,如圖3所示。在“函數(shù)名”下拉列表框中選擇函數(shù),在“參數(shù)”選項卡中添加相應的參數(shù),單擊“確定”按鈕,即可完成不同函數(shù)的調用。
4.2 數(shù)據(jù)結構的建立
在使用V CI函數(shù)時要用到庫中的5個數(shù)據(jù)結構進行數(shù)據(jù)交換。創(chuàng)建這些結構要使用Labview中的“簇”。一個簇就是一個由若干不同的數(shù)據(jù)類型成員組成的集合體。例如建立VCI_ERR_INFO數(shù)據(jù)結構,如圖4,該數(shù)據(jù)結構用于裝載VCI庫運行時產(chǎn)生的錯誤信息。
4.3 USBCAN模塊的控制及程序框圖
程序框圖當中有3個主要的While循環(huán):主循環(huán)、發(fā)送數(shù)據(jù)循環(huán)和接收數(shù)據(jù)循環(huán)。如圖5所示。這三個循環(huán)是并行運行的。其中,主循環(huán)處理與用戶交互的界面,并通過用戶事TREvent 與發(fā)送數(shù)據(jù)循環(huán)和接收數(shù)據(jù)循環(huán)通信。發(fā)送數(shù)據(jù)采取手動方式, 當設定按鈕按下時, 配料控制器給定的流量,PID參數(shù),控制器選中和開啟等信息,將通過 VCI_TransmitObj 函數(shù)發(fā)送給STM32。接收端采用循環(huán)掃描的方式接收STM32發(fā)送過來的數(shù)據(jù), 該數(shù)據(jù)包括配料控制器實時流量,累計流量,當前工作狀態(tài),主控制器工作狀態(tài)等信息。
圖5 控制程序框圖
4.4 CAN報文的數(shù)據(jù)處理及程序框圖
評論