彭清祥,吳罕奇,王劍波
(三一重工股份有限公司,湖南 長沙 410100)
稱量系統是混凝土攪拌站最重要的系統之一,稱量儀表負責實現稱量系統的重量控制、數據收發和換算、數據顯示以及配料參數。本文基于C8051F040 單片機設計了一種具備顯示、參數設置、配料控制、數據收發功能的稱量儀表。稱量儀表采用CAN 總線實現和攪拌站上位機的數據通信,并分析了數據通信中需關注的事項,給出了相應的解決方法。
混凝土攪拌站一般有多個物料需要計量和配比,本文以8 種物料系統為例,稱量系統如圖1所示。攪拌站每個稱附近部署數據采集器,數據采集器采集傳感器信號,轉換為數字量通過CAN總線傳輸給儀表,儀表和數據采集器之間通過設置的固定ID 號一一對應。儀表收到數據采集器采集的信號,根據m=kx+b得到重量值,其中m為重量、k為通過校稱得到的比例系數、b為通過校稱得到的零點值,x為儀表收到的數據采集器的采集值。通過計算得到的重量值和上位機下發的目標值的對比結果控制進料和卸料。稱量儀表通過CAN 總線給上位機傳輸稱量過程中的各個狀態量以及重量值,由上位機進行數據記錄、打印和狀態監測。
稱量儀表具備4 個按鍵、兩行數碼管顯示;4 種物料、進、卸料門輸出控制,輸入信號主要為啟動稱量信號,具備CAN 通信、參數設置及存儲功能,稱量儀表組成如圖2 所示。

圖2 稱量儀表組成框圖
Cygnal 公司的51 系列單片機C8051F040 芯片上有1 個12 位多通道ADC,2 個12 位DAC,2 個電壓比較器,1 個電壓基準,1 個32kB 的FLASH 存儲器,與MCS-51 指令集完全兼容的高速CIP-51 內核,峰值速度可達25MIPS,并且還有硬件實現的UART 串行接口和完全支持CAN2.0A 和CAN2.0B 的CAN 控制器,可支持20 個中斷源。C8051F040 作為稱量儀表的主控制芯片,外部通過連接符合ISO11898 標準的CAN收發器芯片TJA1050 實現CAN 總線通信;通過連接HD7279 芯片實現數碼管的驅動和顯示,上排數碼管顯示當前重量值,下排數碼管顯示配比目標值。輸入開關量信號主要有啟動配料信號和面板開關的按鍵信號;通過面板開關的按鍵可以設置稱量儀表ID 號、最大量程、提前量等參數,也可以實現校稱、手動進/卸料等功能。輸出開關量信號主要為4 種物料控制、進料、卸料、蜂鳴器控制信號。電源輸入為24VDC,通過電源芯片LM2596-5V 芯片變換為5VDC,為儀表其余電子器件提供5VDC 電源;采用AMS1117-3.3V電源芯片將5VDC 電源變換為3.3V 電源,給C8051F040 供電。晶振采用16M 有源晶振,通過外置看門狗電路確保系統運行的安全性。
稱量儀表可以控制4 種物料的配料,輸入開關量為啟動配料信號(IN),高電平有效;輸出開關量分別為物料1 的進料控制信號(M1)、物料2 的進料控制信號(M2)、物料3 的進料控制信號(M3)、物 料4 的進料控制信號(M4)、快進料門信號(COARSE)、精進料門信號(FINE)、卸料控制信號(DISCH),有效時為低通,無效時高阻狀態。如圖3所示,每個物料的目標值由總值、精進料值、提前量值組成,其中提前量為進料門到稱斗之間的落差值。稱量儀表收到啟動信號后,開始根據目標值進行配料,在實際重量<(總值-精進料值)時,快進料門和精進料門同時打開,快速進料;當(總值-精進料值)≤實際重量<(總值-提前量)關閉快進料門,由精進料門實現精進料;當(總值-提前量)≤實際重量時,關閉精進料門,完成進料過程,等待卸料條件滿足后,打開卸料門,完成進卸料整個流程。

圖3 稱量儀表配料過程
稱量儀表在運行過程中通過CAN 總線和數據采集器及上位機進行通信,通過CAN 接收數據采集器發送的數據。為有效降低總線負載率,需要不斷向上位機發送的變量,通過定時中斷定時發送的方式來替代上位機詢問-儀表應答方式。定時中斷采用定時器2,C8051F040 內部有擴展的CAN 中斷,2 個中斷方式詳細參數如表1 所示。

表1 稱量儀表使用的中斷列表
本誠聯儀表中外部晶振為16MHz,CAN 通信速率為250k/s,得到BITREG 的初始值為0x1c01。CAN 啟動程序略。
稱量儀表通過CAN 總線接收上位機配比和參數設定值、狀態查詢指令,向上位機發送重量值、實際參數以及配料過程值,數據內容如表2所示。其中TYPE1、TYPE2 的定義如表3 所示。稱量儀表向PC 發送的狀態、進程數據,數據定義如表4 所示。

表2 稱量儀表發送參數、配比數據幀定義

表3 參數、配比數據幀數據索引定義

表4 稱量儀表發送狀態、進程數據定義
其中TYPE1、TYPE2 的定義如表5 所示。

表5 狀態、進程數據索引定義
上位機需要記錄每種物料的配比值、實際重量值,其中實際重量值的記錄是在收到稱量儀表的卸料信號時開始記錄。在稱量儀表實際使用過程中,出現上位機實際重量值記錄為零的現象。經過分析稱量儀表程序,發現引起該現象的原因為在稱量儀表向上位機發送數據時,未關閉CAN中斷,導致發送時進入CAN 中斷,實際重量值在CAN 中斷中更新為零,中斷程序執行完后回到發送程序,發送的變量進行了改變,因此在發送過程中需關閉CAN 中斷。
CAN報文發送是由CAN控制器自動完成的,用戶只需將對應的數據轉移到發送緩沖寄存器,然后將此報文對象的編碼寫入命令請求寄存器啟動發送即可。
CAN 報文的接收采用中斷方式。CAN 中斷程序中首先需關閉CAN 中斷,為規避發送時實際重量值非正常變更,進入中斷后先關閉CAN中斷,并在發送過程中設置中斷標識位,中斷處理程序略。
基于C8051F040 的稱量儀表已大批量在混凝土攪拌站上進行了應用,通過CAN 總線的應用,有效地降低了現場線束的復雜度。在前期使用過程中,CAN 發送程序中未關閉CAN 中斷,采用CANoe 分析工具進行模擬分析如圖4 所示,通過CANoe 發送大量干擾幀數據,發現稱量儀表向上位機發送的數據發生突變,驗證了在發送時未關閉CAN中斷會導致稱量儀表發送的數據突變現象。

圖4 整改前干擾情況下發送數據情況
通過整改后,同等條件下,通過CANoe 發送大量干擾幀數據,稱量儀表發送數據未出現突變現象,如圖5 所示。整改后的稱量儀表在實際混凝土攪拌站上應用驗證,上位機未再出現數據記為零的現象。

圖5 整改后干擾情況下發送數據情況
本文介紹了一種基于C8051F040 的稱量儀表,介紹了稱量儀表的主要硬件組成和輸入輸出信號,基于該稱量儀表可實現混凝土攪拌站的分布式稱量控制。該稱量儀表可以控制四種物料的配料,并分析了配料邏輯控制過程。詳細給出了稱量儀表和數據采集器、上位機之間的數據交互方案,在此基礎上分析了上位機重量值記為0 的故障原因,并給出了解決方案,采用本文設計的稱量儀表已在混凝土攪拌站得到了大批量應用,有效降低了混凝土攪拌站稱量系統的復雜度。