在大型工業控制系統中,各級設備的啟動、停止,都對整個系統的運行狀況有著一定的影響,對這些裝置開關量信號的采集、動作時序的記錄也顯得尤為重要。所以,有必要設計一種開關量信號采集卡,來對這些信號進行采集,以對設備運行狀態、生產事故的檢測和分析、查詢提供依據。
本文介紹的16通道開關信號采集卡采用飛利浦LPC2131 ARM單片機為核心,以0.5ms的采樣周期,可對16路開關量輸入信號進行采集,對開關量的跳變波形及發生時間進行實時測量,并將數據上傳至上位機歷史數據庫,其分辨率為1ms。同時,可通過與上位機軟件的配合對歷史數據進行全方位查詢,以分析系統運行情況。
測量卡件留有UART通訊接口,與控制器聯網,將采集的數據輸送到控制器處理后,再發送到工作站顯示狀態,并同時記錄事件發生的時間和狀態,將記錄的數據存入工作站歷史數據庫。
信號采集卡
采集卡在卡件主面板上以16通道LED燈指示通道信號狀態,同時在通道與通道之間,通道與底板之間實現隔離,并實現了與現場的電磁屏蔽。以保證測量到的信號不受干擾。采集卡模塊規格如表1所示。
同時,采集卡通過UART通訊接口,通訊物理層使用CAN的總線驅動芯片TJA1040,與控制器聯網,將所采集的數據發送到控制器中。
采集卡硬件設計
16通道開關量信號采集卡硬件電路由信號采集電路、單片機系統、通訊接口電路、外接引腳、人機接口五部分組成,其硬件電路結構示意圖如圖1所示。
圖1 開關量測量卡件硬件結構圖
開關量信號采集電路
開關量信號采集電路是實現將現場的各路開關量信號采集送入處理芯片內,實際設計中采用飛利浦LPC2131 ARM單片機。
信號采集電路的測量原理為:現場16路開關量信號接入卡件測量端子,由于考慮到現場信號的波動和干擾,為了保證系統穩定、可靠地運行,防止各類現場及電源干擾對系統的影響,通道中采用了光電耦合器,將卡件內部與現場輸入信號進行隔離,從而實現信號的準確測量。實際設計中,采用了PS2701光電耦合器,卡件測量通路的結構框圖如圖2所示。
圖2 開關量信號采集電路
后來,由于考慮到信號反轉的簡易性,將光電耦合器改為PS2705,實現了信號反轉亦可的功能,所以實際測量電路進一步簡化為圖3。
圖3 簡化開關量信號采集電路
經過光電耦合器隔離轉化后的信號,通過雙向總線驅動器與處理芯片的數據總線相連接,將數據送入處理芯片LPC2131中進行處理。 單片機系統
處理芯片選用飛利浦LPC2131,它是基于一個支持實時仿真和嵌入式跟蹤的32位ARM7TDMI-STM CPU的微控制器,并帶有32kB的嵌入的高速Flash存儲器。128 位寬度的存儲器接口和獨特的加速結構使32位代碼能夠在最大時鐘速率下運行。同時,LPC2131對代碼規模有嚴格控制,可使用16 位Thumb模式將代碼規模降低超過30%,而性能的損失卻很小。LPC2131的較小的封裝和極低的功耗使其可理想地用于小型系統中,如訪問控制和POS 機。寬范圍的串行通信接口和片內8kB 的SRAM 使LPC2131非常適用于通信網關、協議轉換器、軟modem、聲音辨別和低端成像,為它們提供巨大的緩沖區空間和強大的處理功能。多個32 位定時器、1個或2個10位8路ADC、10 位DAC、PWM 通道和47個GPIO以及多達9個邊沿或電平觸發的外部中斷使其特別適用于工業控制系統。
單片機系統以LPC2131為核心,片內自帶8K閃速存儲器,因而無需擴展外部ROM;要實現對開關量有關歷史數據的追憶,有關信息必須易存儲且不容易丟失,在系統失電后可以有效的保存數據。其測量的數據信息包括開關量發生的年、月、日、時、分、秒、毫秒以及當時各路通道的開關量狀態。
圖4單片機系統電路框圖
同時,由于在系統運行中各種干擾等因素的影響,往往會引起程序運行出現死循環后跑飛現象,系統中還采用了簡單的硬件WATCHDOG電路。
通訊接口電路
為了使測量卡件能夠有效的將采集到的數據發送給控制器,卡件設計了UART電路。通過串口,卡件可根據上位機的操作命令,完成有關的數據傳送、參數調整和時鐘校對等任務。
卡件采用TJA1090通訊芯片,它是專為串行通訊模式設計的,輸出端還接有穩壓管保護電路,接口電路如圖5所示。
圖5 通訊接口電路
卡件模塊規格及其外接電路引腳
卡件通過專用引腳與卡件底板相連接,以傳輸采集到的信號。卡件外接電路引腳如圖6所示。
圖6外接電路引腳圖
人機接口
卡件采用串口通訊與控制器通訊,再將測量的信號上傳到上位機,由上位機的組態畫面顯示,人機界面友好,數據可用于系統組態、歷史數據查詢等操作,同時可以實現過程控制SOE查詢,通過與其配套使用的SOE軟件,可實現去除抖動、削峰、削谷等功能,實現了SOE事故追憶和查詢,其精度可達到1ms級。
采集卡軟件設計
卡件軟件設計采用功能模塊結構。全部軟件包括主程序、中斷服務子程序等。其中主程序用來巡回檢測和執行上位機送來的命令。中斷服務子程序分為溢出中斷子程序和串行口中斷子程序,前者用于開關量跳變信號的采集,后者用于接收上位機發來的數據。
主程序
卡件帶電后,進入主程序。首先判斷卡件是否為上電復位,如果不是上電復位,則通過死機恢復處理后直接進入巡回檢測階段;如果是上電復位,則先進行卡件自檢及初始化,包括設置堆棧指針,清內存,設置時間常數等,然后允許中斷,進入正常的巡回處理程序,可以實現參數設置,開關量跳變時間、狀態采集等功能。如果在主程序中檢測到程序中定義的接收數據標志位置位,表明單片機已接收到上位機發出的數據,接收數據過程由串行口中斷子程序來完成。根據上位機的數據,測量卡件作出相應的響應,或回送數據,或參數設置。
中斷服務子程序
信號采集服務子程序主要完成發生動作的開關量信號的采集,由溢出中斷來實現,每0.5ms中斷一次。
通訊服務子程序主要指的是對上位機數據的接收子程序,由串行口中斷來實現。而發送回上位機的數據大多為開關量記錄信息,數據量較大,主要在主程序中完成。同時,可以設置通訊時波特率的大小,此項在卡件參數設置中可實現。
結語
目前該卡件已在江蘇省南通天生港電廠#10、#11機組脫硫監控系統中投入使用。各項性能指標皆達到原設計要求,運行可靠,狀況良好,可廣泛適用于化工、冶金、電力等行業工業過程中實現開關量的采集,事故追憶等功能。
責任編輯:gt
-
芯片
+關注
關注
456文章
50953瀏覽量
424771 -
單片機
+關注
關注
6039文章
44582瀏覽量
636475 -
總線
+關注
關注
10文章
2891瀏覽量
88176
發布評論請先 登錄
相關推薦
評論