張利國,竇滿峰
(1.西北工業大學,陜西西安,710129;2.東北石油大學秦皇島分校,河北秦皇島,066004)
DSP以其強大的數據處理能力,成為電機控制的首選芯片,而電機的運行參數和運行狀態要想直觀的體現出來,必需通過上位機軟件的豐富功能來實現。目前,Labview虛擬儀器作為上位機軟件應用研究較為廣泛,多采用RS-232或RS-485的用戶自定義串口通信,無法適應工控領域的應用,為適應工控領域串口通信的需求,設計與工控領域組態軟件如力控軟件、組王軟件等的硬件接口,滿足實現工控組態軟件對電機控制驅動的智能控制。
文獻[1]介紹了Modbus通信協議利用RS232通信,只針對專用開發軟件的通信設計,不具有推廣性;文獻[2]介紹了一種InTouch組態軟件的RS232通信,利用第三方軟件,編程復雜。本文介紹可編程多種通信接口,適應工業中多數組態軟件具有Moudbus通信協議端口的硬件及軟件設計接口技術。解決一個設計項目對多種接口的需求,給出多接口實現方案。
串口通信僅僅定義了硬件的通信規范,而沒有具體的軟件通信協議,通常稱之為自由協議。因此,串口通信經常與軟件通信協議結合。Modbus通訊協議支持傳統的RS-232、RS-422、RS-485和以太網設備。
本設計采用Modbus通訊規約中RTU(Remote Terminal Unit)協議(Modbus規約包括RTU協議和ASCII協議)。RTU通訊方式采用8位二進制數據傳數據,CRC循環冗余校驗作為數據校驗,通訊速度較快。本接口技術通訊協議(Modbus_RTU)中的數據結構以及數據傳輸采用以下規范:
(1)數據傳輸格式
異步傳輸,1位起始位,8位數據位,2位停止位,無校驗位,共11位。缺省波特率為9 600 bit/s。從機支持主機修改傳輸速率。
(2)數據收發功能報文格式
數據報文格式如表1所示。

表1 上位機請求讀寫取數據報文格式
本設計采用讀一組寄存器數據功能碼03H和寫一組寄存器數據功能碼10H。
主機從從機獲得數據,包括從機儀表采集的模擬量數據、開關量數據及系統參數等。從機的地址、通信波特率寫入、開關量輸出、模擬量輸出和系統參數的保存均采用相同的功能碼,每個寄存器對應特定的端口,每個端口控制指定的設備,這樣可提高控制的可靠性。
下位機讀寫保持寄存器完成對上位機的請求的執行與應答。分別通過子程序實現03H和10H功能,它們擁有共同的實現結構,如圖1所示。

圖1 讀寫保持寄存器子程序結構框圖
共同的實現結構有助于簡化編程結構,提高程序的可擴展性,利于程序的實現與修改。
工控組態軟件[2-3]是數據采集與過程控制的專用軟件,其突出特點是實時多任務,可以實現數據采集與輸出、數據處理與算法、圖形顯示及人機對話、實時數據的存儲、檢索管理和實時通訊等多任務。
工控組態軟件選用北京三維力控組態軟件作為測試軟件,軟件可實現遠程遙控操作,遠程監測電機的工作狀態與性能,可及時采集數據并分析數據,生成可視化動態數據并生成有效數據庫。
定義一系列數據用于反映軟件監測與被控電機的各種參數,如:控制板實時溫度、母線電流、電機溫度、電機轉速及控制板采集的其它數據,還包括一些必要的中間變量和間接變量。數據庫如圖2所示。

圖2 變量管理窗口
建立數據庫中的數據與圖形對象的連接關系,使畫面生動直觀地反映參數的變化情況。如控制板實時監測母線電流,可設置過流報警限,如超過30 A報警,實現代碼如下:

力控組態軟件對于采用不同通信協議的I/O可提供有針對性的I/O驅動程序,實時數據庫借助I/O驅動程序對I/O設備執行數據采集與指令控制,如本文介紹的Modbus RTU通信協議屬于工控組態軟件通用的工業控制通信協議,通過組態軟件的設置可較容易地實現I/O連接。
RS-232和RS-485通訊接口的主要區別是:
(1)從接線上,RS-232是三線制,RS-485是兩線制;
(2)從傳輸距離上,RS-232只能傳輸15 m,RS-485最遠可以傳輸1 200 m;
(3)從速率上,RS-232是全雙工傳輸,RS-485是半雙工傳輸;
(4)從協議層上,RS-232只支持點對點通訊(1∶1),RS 485支持總線形式通訊(1∶N)。
根據以上區別制定以下方案:
(1)根據需要選擇通信接口,RS-232接口適合近距離實驗性通信,RS-485適合于實際工程應用性通信。
(2)由于接口可選擇的設計,對硬件的設計要求提高,選擇單芯片多功能硬件,既能滿足設計要求,又能減輕硬件設計負擔。
(3)硬件設置接口選擇撥碼開關,軟件設計通過接口判斷位,執行相應程序。
電機控制板通訊芯片采用MAXIM公司生產的MAX3160,此芯片是一種高性能管腳可編程多協議收發器件,可通過引腳設置為2Tx/2Rx RS-232接口或單路RS-485/422收發器;該芯片內部采用雙電荷泵結構,獨特的低壓差發送輸出級,滿足RS-232和RS-485/422協議標準的電壓供電范圍+3~+5.5 V。芯片的接收器采用了失效保護電路,此功能確保當接收器輸入短路或開路時,器件輸出保持高電平,MAX3160的限擺率功能具有減小EMI和終端匹配不當時減小信號反射。當禁止限擺率功能時,其數據傳輸速率在RS-485/422模式下可高達10 Mb/s,在RS-232模式下可達1 Mb/s。另外,該器件還具有節電模式、過流保護和過熱保護功能。
本通信系統中RS-232接口和RS-485接口兼有。在以往的硬件設計中多采用多片專用芯片和控制電路來完成,造成結構復雜,穩定性差。采用MAX3160芯片并輔以少量其它電路,只需通過軟件編程來控制相應的管腳即可方便地實現RS-232和RS-485的接口組合,圖3給出基于TMS320F2812處理器通信接口方案,MAX3160有三個端口DSP軟件與DSP的三個端口連接,實現數據的傳送與控制。利用該電路可利用該電路可根據需要由軟件控制和 RS-485/RS-232等四個可編程腳,從而實現RS-232或RS-485異步通信。

圖3 通信接口電路
編程采用C語言實現,數據傳送采用RS-232或RS-485線上實時通訊。作為DSP內部編程方式是線上等待、中斷響應。圖4是Moudbus_RTU通信中斷程序的流程圖。
RS-232只支持點對點通訊,RS-485支持總線形式通訊。所以在數據接收與數據發送時,兩種接口的數據收發控制子程序有所區別。
另外,中斷程序中的功能多以子程序形式出現,提高程序的可讀性和運行的可靠性。子程序主要包括功能碼判斷、數據收發、10 ms定時軟復位中斷(超時)、校驗、數據非法判斷、寄存器讀寫和功能碼不識別應答等。

圖4 通信中斷程序流程圖
工控軟件與電機驅動控制通過滿足如下條件實現無縫連接。
(1)電機驅動控制通信硬件接口電路,可實現RS-232和RS-485通信。
(2)配合相應接口基于Modbus_RTU通信協議的軟件編程。
(3)對應RS-232和RS-485接口與上位機接口的轉換裝置。
(4)工控組態軟件與下位機接口設置及工控組態軟件的上位機編程。
工控軟件結合硬件平臺的調試是將下位機控制器的通信硬件電路,利用硬件轉接接口與上位機通信接口進行硬件連接,進行下位機軟件與上位機軟件的聯合調試。下位機進行實時測量并記錄數據,上位機請求發送實時采集數據,并通過工控軟件對數據進行分析并描繪出實時的變化曲線。圖5為上位機工控軟件采集到的數據并進行了實時顯示。

圖5 工控軟件界面
工控組態軟件對電機的智能控制主要體現在,可實現電機的起停、遠程控制、電機控制參數調整、電機故障報警和電機運行歷史參數查詢。
試驗條件,采用力控工控組態軟件設計的上位機控制界面;上位機與控制板選擇使用RS-485接口;電機控制器采用TMS320F2812為控制核心,IGBT三相全橋逆變器驅動電機;電機采用18 kW永磁同步電機。調試項目及結果如下:
(1)電機起動、停止,工控組態軟件發送控制命令,通過電機控制器可控制電機正常起動和停止。
(2)工控組態軟件設置電機轉速,與電機控制器通信,由控制器控制電機按設定轉速運行,電機轉速測得滿足設定值。
(3)工控組態軟件設定電機故障報警限制,數據傳輸電機控制器,當電機故障時產生報警信息。試驗設定電機過熱報警上限,產生硬件報警信息,同時報警數據傳輸到工控組態軟件。
(4)工控組態軟件建立數據庫,可將下位機傳輸到上位機的實時存儲,并可隨時通過工控組態軟件查看。
工控組態軟件實現根據項目任務改變上位機編程及界面設置,完成對電機的實時控制和實時數據采集,達到對電機的實時監控。
本文通過對電機控制器通信電路的設計及軟件編程,實現了與上位機工控軟件的接口技術。設計與調試結果得到以下結論:
(1)Modbus_RTU通信協議在TMS320F2812處理器中的軟件實現,能夠適應工控領域采用此協議的組態軟件實現通信;
(2)通信接口的硬件設計及軟件編程,硬件通信可擴展能力強,為遠程通信包括網絡通信提供基礎;
(3)完善的上位機力控軟件與下位機軟件設計,可為其它組態軟件的使用提供參考。
[1] 程楊,劉學平,占濤,等.一種基于Modbus協議的工業控制系統設計[J].機械設計與制造,2011(1):1-3.
[2] 梁秀霞,張培楠.基于InTouch組態軟件與串口的通訊實現[J].儀表技術與傳感器,2012(3):62-63,66.
[3] 張勇,侯立剛,肖炎良,等.工控組態軟件實時數據庫系統的開發與設計[J].自動化儀表,201132(12):28-31,35.
[4] 王興貴,張明智,杜瑩,等.Modbus RTU通信協議在智能儀表與工控機通信中的應用[J].低壓電器,2008(2):8-11.
[5] Yolacan E,Aydin S,Ertunc H M,et al.Real time DSP based PID and state feedback control of a brushed DC motor[C]//2011 23rd International Symposium on Information,Communication and Automation Technologies.2011:1-6.
[6] McConahay J.Using Modbus for Process Control and Automation[J].Control Engineering,2011,58(12):A12-A14.
[7] 張成鶴,王平,鄭林華,等.可編程多協議收發器MAX3160的原理與應用[J].國外電子元器件,2002(12):62-64.