蔣成清 王曉宇
【摘要】工業現場上經常需要監控現場的工作環境和設備的運行狀態,所以需要對現場的溫度、濕度和設備的電壓、電流等參數進行采集,并傳送給上位機監測。本文提出了一種數據采集系統的設計和實施方案,采用STM32作為微處理器,標準DeviceNet協議作為通信規約,實現數據采集的網絡化和智能化。
【關鍵詞】數據采集;STM32;DeviceNet協議;DN1022
1.引言
隨著我國工業化水平不斷提高,工業現場需要監控現場的工作環境和設備的運行狀況,包括測量現場的溫度、濕度和設備的電壓、電流等參數。傳統的數據采集多采用變送器,但是,變送器采集的數據采用模擬量傳輸,抗干擾能力較差,并且采集數據單一,不能完成多參數采集,不易實現網絡化。如何提高采集數據抗干擾能力,并且完成多參數采集等問題有待完善。本設計采用stm32作為CPU,DeviceNet作為通信協議,接收并處理DeviceNet主站下達的查詢命令,組織相應數據上報給DeviceNet主站,有多路的輸入和多路的輸出。
2.總體設計方案
從功能上講,本設計可以分為兩大部分:即工業現場信號采集電路和工業現場控制電路。其中工業現場信號采集電路完成對數字信號的采集,再由stm32對數據進行處理,通過標準的DeviceNet協議與DeviceNet主站通信。工業現場控制電路接收并處理DeviceNet主站下達的控制命令,組織相應數據實現對工業現場的控制。系統框圖如圖1所示。
圖1 系統的方框圖
2.1 數據采集電路
數據采集電路實現了開關量的實時采集功能。微處理器STM32f103R8的I/O口可以配置為開關量輸入端口,開關量輸入信號由I端輸入,通過光電耦合器PC817與微處理器I/O口相連。微處理器對輸入端進行狀態查詢,讀取狀態信息。光電耦合器PC817在作用是實現現場開關量與微處理器間的電氣隔離,提高電絕緣和抗干擾能力。
2.2 協議芯片接口電路
DN1022芯片具有內置的CAN口和DeviceNet處理引擎,內置DeviceNet Group 2 Only Slave從站協議棧,具有高速串行口和配置口。微處理器可通過串口和DN1022通信。其集成度高、封裝簡單,滿足一般的DeviceNet從節點功能要求。
(1)工作狀態配置。DN1022芯片初始化時會檢測配置口線CFG1的狀態,根據狀態的不同,決定芯片的工作狀態。如果CFG1=0,芯片處于配置狀態;CFG1=1,芯片處于工作狀態。
(2)I/O數據交換狀態。DN1022內部有一個I/O數據緩沖區,DeviceNet主站與DN1022之間的數據交互是異步進行的。
在工作狀態,stm32可以與DN1022進行I/O數據交換及參數讀寫。如圖3,DN1022芯片的RXD、TXD為串行口信號接收和發送引腳,分別接用戶的處理器的TXD及RXD。高速串口最高波特率可達115.2Kbps,可以滿足與DeviceNet相匹配的速度。
圖2 DN1022接口電路
2.3 輸出控制電路
當接收到DeviceNet主站發送的命令時,微處理器stm32對數據進行處理,根據主站要求指示相應的繼電器閉合,三極管飽和導通,相應指示燈亮,實現了對開關量的控制。光電耦合器PC817實現電氣隔離作用。
圖3 輸出控制電路
2.4 撥碼開關電路
撥碼開關電路分為從站地址的選擇和波特率的選擇兩種,并且要求在配置狀態下才能設置。從站地址的選擇通過撥碼開關中的前六位A1—A6設置從站地址,采用8421BCD編碼規則配置從站地址,設置范圍0-63。波特率的選擇有125Kbps、250Kbps、500 Kbps和自動波特率設置4種可選。通過撥碼開關中的后兩位A7和A8選擇波特率,采用8421BCD編碼規則配置波特率。
3.系統軟件設計
本設計由C語言編程實現,完成對工業現場信號進行采集,組織相應數據通過DeviceNet協議傳給主站;并且接收處理DeviceNet主站發出的命令,控制對輸出繼電器做出閉合或釋放動作,以實現開關量信號的輸出。本設計中采用Keil uVision4為開發平臺,編寫了主程序,數據采集及處理程序,串口通信程序。上電后,CPU首先對DN1022進行配置,需要配置的參數有地址、波特率、Network Input連接長度等。然后進行I/O數據交換。DeviceNet主站與DN1022之間的數據交互是異步進行的。
表1 DN1022命令表
命令號 命令功能
0x1 設定身份識別信息(配置狀態)
0x2 設定連接信息(配置狀態)
0x5 I/O數據傳輸(運行狀態)
0x6 I/O數據傳輸,并讀取Device Net網絡狀態(運行狀態)
0xE 讀取參數(運行狀態)
0x10 設置參數(運行狀態)
0x20 設定參數信息參數(配置狀態)
表1為協議芯片DN1022的命令表,本設計使用了1號、2號以及5號命令。1號命令是配置命令,包含設備號,設備許可號,版本號,產品名稱等。當發送完一幀命令后,DN1022返回一個響應幀,0x81是正確響應幀,0xE0和0x2是錯誤響應幀。2號命令是配置命令,包括地址、波特率、輸入及輸出長度。地址和波特率是通過撥碼開關讀取的,由于輸入和輸出為4組,所以設置為各1個字節。正確響應幀為0x82,0x01和0xff是錯誤響應幀。5號命令為運行命令,完成DN1022與stm32之間的數據通信,正確響應幀為0x85。圖6為整個系統設計的軟件流程圖。
圖4 軟件流程圖
4.結論
本設計采用stm32作為CPU,對工業現場信號進行多路采集,采集的信息同時性好,通過devicenet協議與PLC實時通信,傳輸數據的實時性與可靠性顯著提高,完全能滿足整個系統的運行,通用性好,具有較好的應用價值和市場前景。
參考文獻
[1]張旭,亓學廣.基于STM32電力數據采集系統的設計[J].電子測量技術,2010,11:90-92.
[2]DN1022使用手冊[S].上海泗博自動化技術有限公司,2013.
[3]張戟,程旻,謝劍英.基于現場總線DeviceNet的智能設備開發指南,2004.
[4]韓芝俠,淡濤.熱釋電紅外傳感器的應用[J].陜西工學院學報,2003(3):148-150.
[5]程曉輝,董愛華,舒國汀,方建安.I/O模塊的DeviceNet接口設計[J].東華大學學報(自然科學版),2005(02).
作者簡介:蔣成清(1993—),安徽宿州人,大學本科,現就讀于遼寧科技大學。
通訊作者:王曉宇(1978—),遼寧鞍山人,碩士,講師,主要研究方向:信號與系統。