噴粉操控器的采樣周期設為20ms,每周期采樣64次核算均值保存,作為一次adc采樣的采樣值,定時器的觸發周期為(20000us/64)=312.sus。為了---其他模塊可以運用完整的adc采樣數據,防止數據在運用前被覆蓋,目標存儲區選用64*2的存儲緩沖區。使用dma的dma_ it_ ht和dma it tc中斷分別對前后兩部分采樣數據進行操作。
dac輸出模塊程序設計
噴粉操控器的靜電電壓輸出是mcu通過dac數模轉化輸出電壓再由線性放大電路進行放大輸出。操控器選用的數模轉化參閱電壓是3v,而12位的dac轉化數據范圍為0409-5,不便于直觀表明dac輸出電壓值。所以界說函數dac_set vol(uintl6_ t vol),參數vol取值范圍為03000,表明輸出電壓范圍為0-3v。在這個函數中先將03000的數值按份額轉化為04096的dac數模轉化參數,再調用庫函數輸出電壓。
操控算法模塊程序設計
噴粉操控器實現了輸出靜電電壓、靜電電流、流速氣壓和霧化氣壓的自動操控,靜電電壓、靜電電流由mcu的dac輸出操控,通過靜電電壓、靜電電流操控算法計算得到dac的輸出量。流速氣壓、霧化氣壓由步進電機調理,通過流速氣壓、霧化氣壓操控算法核算得到步進電機的滾動步數和滾動方向。所以,噴粉操控算法模塊包括四個部分,靜電電壓操控、靜電電流操控、流速氣壓操控、霧化氣壓操控,都是選用數字pi操控算法.
為了提高噴粉程序的可移植性,對每個數字管的顯示和閃爍進行單獨控制。通過將數據寫入顯示寄存器和段閃爍控制寄存器來控制顯示和閃爍。顯示子程序將0-9數據寫入bc7277顯示寄存器,噴粉控制數碼管的顯示。閃爍控制子程序將0x00寫入bc7277閃爍控制寄存器以停止閃爍,并寫入0xff以開始閃爍。與0至7位數字管的0x10-0x17位對應的顯示寄存器和8位閃爍控制寄存器dig_blink_ctl_h也可以單獨控制。閃爍數據分為0x00非閃爍和0xff閃爍。對于高位閃爍控制寄存器dig_blink_ctl_h,只需要寫0x01來控制第8位閃爍,寫0x00停止閃爍,只對第8位有效。
根據噴粉控制器參數配置和參數顯示的要求,在各位顯示的前提下,噴粉,設計各種參數的顯示程序。這為參數的顯示和配置提供了許多方便,提高了程序的實用性。根據需要,用一個或多個led數碼管顯示各種參數,需要對參數的顯示狀態進行協調和控制,從而顯示參數顯示程序入口參數的數據和顯示狀態。
由于對噴粉執行器減壓閥的機械控制沒有---,因此在軟件中必須設定安全調節范圍:總氣壓的100 7080%。我們需要控制的是速度、壓力和霧化壓力的范圍在總壓力的1007080%之間,自動噴粉機,并且當壓力超過范圍時,噴粉房設備,調節將停止。由原步進電機模塊設計的步進電機轉速與輸出pwm脈沖頻率有關。為了---快速穩定的氣壓調節,氣壓調節是分階段控制的。當誤差超過iokpa時,可以全速調節步進電機;當誤差在1--10kpa之間時,可以中速調節步進電機;當氣壓穩定時,由于氣壓波動需要調節步進電機,則采用慢速調節。防止因輕微波動或采樣波動調整不正確而引起的氣壓---波動。
噴粉通信模塊程序設計控制主板通過usart1與操作面板進行通信。為了提高數據傳輸效率和cpu利用率,噴粉采用dma方式發送和接收usarti。同時,為了接收長度未知的數據,usart1的空閑可以中斷dart_it_idle,并在空閑中斷處理功能中切換接收緩沖區,提高數據接收容量和速率。控制主板發送的數據包有兩種,噴粉加工廠,一種是事件觸發的數據包,它由響應面板請求的響應參數組成,另一種是時間觸發的數據包,它由定期發送的廣播參數組成。為了防止發送數據之間的沖突,對各個參數的優先級進行了劃分。數據在每個模塊中生成,因此封裝參數也在每個模塊中。當生成數據時,將調用數據打包子例程來打包數據。同時,有效數據標志的相應位置1指示需要發送數據。當usendataffach不是0時,它表示有數據要發送。噴粉主程序中調用發送程序。發送程序根據發送優先級判斷是否需要發送數據。如果有一個,它發送優先級數據并清除位。控制主板要求usenddataflag的所有8位表示都具有1字節和8位。usenddataflag的對應優先級高于時間觸發的廣播分組。
|