張利國,竇滿峰
(1.西北工業(yè)大學(xué),陜西西安,710129;2.東北石油大學(xué)秦皇島分校,河北秦皇島,066004)
DSP以其強大的數(shù)據(jù)處理能力,成為電機控制的首選芯片,而電機的運行參數(shù)和運行狀態(tài)要想直觀的體現(xiàn)出來,必需通過上位機軟件的豐富功能來實現(xiàn)。目前,Labview虛擬儀器作為上位機軟件應(yīng)用研究較為廣泛,多采用RS-232或RS-485的用戶自定義串口通信,無法適應(yīng)工控領(lǐng)域的應(yīng)用,為適應(yīng)工控領(lǐng)域串口通信的需求,設(shè)計與工控領(lǐng)域組態(tài)軟件如力控軟件、組王軟件等的硬件接口,滿足實現(xiàn)工控組態(tài)軟件對電機控制驅(qū)動的智能控制。
文獻[1]介紹了Modbus通信協(xié)議利用RS232通信,只針對專用開發(fā)軟件的通信設(shè)計,不具有推廣性;文獻[2]介紹了一種InTouch組態(tài)軟件的RS232通信,利用第三方軟件,編程復(fù)雜。本文介紹可編程多種通信接口,適應(yīng)工業(yè)中多數(shù)組態(tài)軟件具有Moudbus通信協(xié)議端口的硬件及軟件設(shè)計接口技術(shù)。解決一個設(shè)計項目對多種接口的需求,給出多接口實現(xiàn)方案。
串口通信僅僅定義了硬件的通信規(guī)范,而沒有具體的軟件通信協(xié)議,通常稱之為自由協(xié)議。因此,串口通信經(jīng)常與軟件通信協(xié)議結(jié)合。Modbus通訊協(xié)議支持傳統(tǒng)的RS-232、RS-422、RS-485和以太網(wǎng)設(shè)備。
本設(shè)計采用Modbus通訊規(guī)約中RTU(Remote Terminal Unit)協(xié)議(Modbus規(guī)約包括RTU協(xié)議和ASCII協(xié)議)。RTU通訊方式采用8位二進制數(shù)據(jù)傳數(shù)據(jù),CRC循環(huán)冗余校驗作為數(shù)據(jù)校驗,通訊速度較快。本接口技術(shù)通訊協(xié)議(Modbus_RTU)中的數(shù)據(jù)結(jié)構(gòu)以及數(shù)據(jù)傳輸采用以下規(guī)范:
(1)數(shù)據(jù)傳輸格式
異步傳輸,1位起始位,8位數(shù)據(jù)位,2位停止位,無校驗位,共11位。缺省波特率為9 600 bit/s。從機支持主機修改傳輸速率。
(2)數(shù)據(jù)收發(fā)功能報文格式
數(shù)據(jù)報文格式如表1所示。
表1 上位機請求讀寫取數(shù)據(jù)報文格式
本設(shè)計采用讀一組寄存器數(shù)據(jù)功能碼03H和寫一組寄存器數(shù)據(jù)功能碼10H。
主機從從機獲得數(shù)據(jù),包括從機儀表采集的模擬量數(shù)據(jù)、開關(guān)量數(shù)據(jù)及系統(tǒng)參數(shù)等。從機的地址、通信波特率寫入、開關(guān)量輸出、模擬量輸出和系統(tǒng)參數(shù)的保存均采用相同的功能碼,每個寄存器對應(yīng)特定的端口,每個端口控制指定的設(shè)備,這樣可提高控制的可靠性。
下位機讀寫保持寄存器完成對上位機的請求的執(zhí)行與應(yīng)答。分別通過子程序?qū)崿F(xiàn)03H和10H功能,它們擁有共同的實現(xiàn)結(jié)構(gòu),如圖1所示。
圖1 讀寫保持寄存器子程序結(jié)構(gòu)框圖
共同的實現(xiàn)結(jié)構(gòu)有助于簡化編程結(jié)構(gòu),提高程序的可擴展性,利于程序的實現(xiàn)與修改。
工控組態(tài)軟件[2-3]是數(shù)據(jù)采集與過程控制的專用軟件,其突出特點是實時多任務(wù),可以實現(xiàn)數(shù)據(jù)采集與輸出、數(shù)據(jù)處理與算法、圖形顯示及人機對話、實時數(shù)據(jù)的存儲、檢索管理和實時通訊等多任務(wù)。
工控組態(tài)軟件選用北京三維力控組態(tài)軟件作為測試軟件,軟件可實現(xiàn)遠程遙控操作,遠程監(jiān)測電機的工作狀態(tài)與性能,可及時采集數(shù)據(jù)并分析數(shù)據(jù),生成可視化動態(tài)數(shù)據(jù)并生成有效數(shù)據(jù)庫。
定義一系列數(shù)據(jù)用于反映軟件監(jiān)測與被控電機的各種參數(shù),如:控制板實時溫度、母線電流、電機溫度、電機轉(zhuǎn)速及控制板采集的其它數(shù)據(jù),還包括一些必要的中間變量和間接變量。數(shù)據(jù)庫如圖2所示。
圖2 變量管理窗口
建立數(shù)據(jù)庫中的數(shù)據(jù)與圖形對象的連接關(guān)系,使畫面生動直觀地反映參數(shù)的變化情況。如控制板實時監(jiān)測母線電流,可設(shè)置過流報警限,如超過30 A報警,實現(xiàn)代碼如下:
力控組態(tài)軟件對于采用不同通信協(xié)議的I/O可提供有針對性的I/O驅(qū)動程序,實時數(shù)據(jù)庫借助I/O驅(qū)動程序?qū)/O設(shè)備執(zhí)行數(shù)據(jù)采集與指令控制,如本文介紹的Modbus RTU通信協(xié)議屬于工控組態(tài)軟件通用的工業(yè)控制通信協(xié)議,通過組態(tài)軟件的設(shè)置可較容易地實現(xiàn)I/O連接。
RS-232和RS-485通訊接口的主要區(qū)別是:
(1)從接線上,RS-232是三線制,RS-485是兩線制;
(2)從傳輸距離上,RS-232只能傳輸15 m,RS-485最遠可以傳輸1 200 m;
(3)從速率上,RS-232是全雙工傳輸,RS-485是半雙工傳輸;
(4)從協(xié)議層上,RS-232只支持點對點通訊(1∶1),RS 485支持總線形式通訊(1∶N)。
根據(jù)以上區(qū)別制定以下方案:
(1)根據(jù)需要選擇通信接口,RS-232接口適合近距離實驗性通信,RS-485適合于實際工程應(yīng)用性通信。
(2)由于接口可選擇的設(shè)計,對硬件的設(shè)計要求提高,選擇單芯片多功能硬件,既能滿足設(shè)計要求,又能減輕硬件設(shè)計負(fù)擔(dān)。
(3)硬件設(shè)置接口選擇撥碼開關(guān),軟件設(shè)計通過接口判斷位,執(zhí)行相應(yīng)程序。
電機控制板通訊芯片采用MAXIM公司生產(chǎn)的MAX3160,此芯片是一種高性能管腳可編程多協(xié)議收發(fā)器件,可通過引腳設(shè)置為2Tx/2Rx RS-232接口或單路RS-485/422收發(fā)器;該芯片內(nèi)部采用雙電荷泵結(jié)構(gòu),獨特的低壓差發(fā)送輸出級,滿足RS-232和RS-485/422協(xié)議標(biāo)準(zhǔn)的電壓供電范圍+3~+5.5 V。芯片的接收器采用了失效保護電路,此功能確保當(dāng)接收器輸入短路或開路時,器件輸出保持高電平,MAX3160的限擺率功能具有減小EMI和終端匹配不當(dāng)時減小信號反射。當(dāng)禁止限擺率功能時,其數(shù)據(jù)傳輸速率在RS-485/422模式下可高達10 Mb/s,在RS-232模式下可達1 Mb/s。另外,該器件還具有節(jié)電模式、過流保護和過熱保護功能。
本通信系統(tǒng)中RS-232接口和RS-485接口兼有。在以往的硬件設(shè)計中多采用多片專用芯片和控制電路來完成,造成結(jié)構(gòu)復(fù)雜,穩(wěn)定性差。采用MAX3160芯片并輔以少量其它電路,只需通過軟件編程來控制相應(yīng)的管腳即可方便地實現(xiàn)RS-232和RS-485的接口組合,圖3給出基于TMS320F2812處理器通信接口方案,MAX3160有三個端口DSP軟件與DSP的三個端口連接,實現(xiàn)數(shù)據(jù)的傳送與控制。利用該電路可利用該電路可根據(jù)需要由軟件控制和 RS-485/RS-232等四個可編程腳,從而實現(xiàn)RS-232或RS-485異步通信。
圖3 通信接口電路
編程采用C語言實現(xiàn),數(shù)據(jù)傳送采用RS-232或RS-485線上實時通訊。作為DSP內(nèi)部編程方式是線上等待、中斷響應(yīng)。圖4是Moudbus_RTU通信中斷程序的流程圖。
RS-232只支持點對點通訊,RS-485支持總線形式通訊。所以在數(shù)據(jù)接收與數(shù)據(jù)發(fā)送時,兩種接口的數(shù)據(jù)收發(fā)控制子程序有所區(qū)別。
另外,中斷程序中的功能多以子程序形式出現(xiàn),提高程序的可讀性和運行的可靠性。子程序主要包括功能碼判斷、數(shù)據(jù)收發(fā)、10 ms定時軟復(fù)位中斷(超時)、校驗、數(shù)據(jù)非法判斷、寄存器讀寫和功能碼不識別應(yīng)答等。
圖4 通信中斷程序流程圖
工控軟件與電機驅(qū)動控制通過滿足如下條件實現(xiàn)無縫連接。
(1)電機驅(qū)動控制通信硬件接口電路,可實現(xiàn)RS-232和RS-485通信。
(2)配合相應(yīng)接口基于Modbus_RTU通信協(xié)議的軟件編程。
(3)對應(yīng)RS-232和RS-485接口與上位機接口的轉(zhuǎn)換裝置。
(4)工控組態(tài)軟件與下位機接口設(shè)置及工控組態(tài)軟件的上位機編程。
工控軟件結(jié)合硬件平臺的調(diào)試是將下位機控制器的通信硬件電路,利用硬件轉(zhuǎn)接接口與上位機通信接口進行硬件連接,進行下位機軟件與上位機軟件的聯(lián)合調(diào)試。下位機進行實時測量并記錄數(shù)據(jù),上位機請求發(fā)送實時采集數(shù)據(jù),并通過工控軟件對數(shù)據(jù)進行分析并描繪出實時的變化曲線。圖5為上位機工控軟件采集到的數(shù)據(jù)并進行了實時顯示。
圖5 工控軟件界面
工控組態(tài)軟件對電機的智能控制主要體現(xiàn)在,可實現(xiàn)電機的起停、遠程控制、電機控制參數(shù)調(diào)整、電機故障報警和電機運行歷史參數(shù)查詢。
試驗條件,采用力控工控組態(tài)軟件設(shè)計的上位機控制界面;上位機與控制板選擇使用RS-485接口;電機控制器采用TMS320F2812為控制核心,IGBT三相全橋逆變器驅(qū)動電機;電機采用18 kW永磁同步電機。調(diào)試項目及結(jié)果如下:
(1)電機起動、停止,工控組態(tài)軟件發(fā)送控制命令,通過電機控制器可控制電機正常起動和停止。
(2)工控組態(tài)軟件設(shè)置電機轉(zhuǎn)速,與電機控制器通信,由控制器控制電機按設(shè)定轉(zhuǎn)速運行,電機轉(zhuǎn)速測得滿足設(shè)定值。
(3)工控組態(tài)軟件設(shè)定電機故障報警限制,數(shù)據(jù)傳輸電機控制器,當(dāng)電機故障時產(chǎn)生報警信息。試驗設(shè)定電機過熱報警上限,產(chǎn)生硬件報警信息,同時報警數(shù)據(jù)傳輸?shù)焦た亟M態(tài)軟件。
(4)工控組態(tài)軟件建立數(shù)據(jù)庫,可將下位機傳輸?shù)缴衔粰C的實時存儲,并可隨時通過工控組態(tài)軟件查看。
工控組態(tài)軟件實現(xiàn)根據(jù)項目任務(wù)改變上位機編程及界面設(shè)置,完成對電機的實時控制和實時數(shù)據(jù)采集,達到對電機的實時監(jiān)控。
本文通過對電機控制器通信電路的設(shè)計及軟件編程,實現(xiàn)了與上位機工控軟件的接口技術(shù)。設(shè)計與調(diào)試結(jié)果得到以下結(jié)論:
(1)Modbus_RTU通信協(xié)議在TMS320F2812處理器中的軟件實現(xiàn),能夠適應(yīng)工控領(lǐng)域采用此協(xié)議的組態(tài)軟件實現(xiàn)通信;
(2)通信接口的硬件設(shè)計及軟件編程,硬件通信可擴展能力強,為遠程通信包括網(wǎng)絡(luò)通信提供基礎(chǔ);
(3)完善的上位機力控軟件與下位機軟件設(shè)計,可為其它組態(tài)軟件的使用提供參考。
[1] 程楊,劉學(xué)平,占濤,等.一種基于Modbus協(xié)議的工業(yè)控制系統(tǒng)設(shè)計[J].機械設(shè)計與制造,2011(1):1-3.
[2] 梁秀霞,張培楠.基于InTouch組態(tài)軟件與串口的通訊實現(xiàn)[J].儀表技術(shù)與傳感器,2012(3):62-63,66.
[3] 張勇,侯立剛,肖炎良,等.工控組態(tài)軟件實時數(shù)據(jù)庫系統(tǒng)的開發(fā)與設(shè)計[J].自動化儀表,201132(12):28-31,35.
[4] 王興貴,張明智,杜瑩,等.Modbus RTU通信協(xié)議在智能儀表與工控機通信中的應(yīng)用[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] 張成鶴,王平,鄭林華,等.可編程多協(xié)議收發(fā)器MAX3160的原理與應(yīng)用[J].國外電子元器件,2002(12):62-64.