modbus協(xié)議范文
時(shí)間:2023-03-28 14:45:45
導(dǎo)語:如何才能寫好一篇modbus協(xié)議,這就需要搜集整理更多的資料和文獻(xiàn),歡迎閱讀由公務(wù)員之家整理的十篇范文,供你借鑒。
篇1
關(guān)鍵詞:現(xiàn)場總線;modbus協(xié)議;Profibus-DP協(xié)議;協(xié)議轉(zhuǎn)換;電氣隔離
中圖分類號:TP393
文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1672-7800(2015)005-0148-04
作者簡介:惠明坤(1989-),男,江蘇徐州人,江蘇大學(xué)計(jì)算機(jī)科學(xué)與通信工程學(xué)院碩士研究生,研究方向?yàn)榍度胧较到y(tǒng)應(yīng)用。
0 引言
隨著計(jì)算機(jī)、通信、自動(dòng)化等技術(shù)的不斷發(fā)展,現(xiàn)場總線控制系統(tǒng)(FCS)正逐漸成為新型工業(yè)控制系統(tǒng)的發(fā)展方向。相對于集散控制系統(tǒng)(DCS)[1],現(xiàn)場總線控制系統(tǒng)由于標(biāo)準(zhǔn)開放、可靠性高、實(shí)時(shí)性好等優(yōu)點(diǎn),迅速成為各大廠商和組織的研究熱點(diǎn),如今已成為推動(dòng)工業(yè)控制系統(tǒng)朝著智能化、數(shù)字化、信息化方向發(fā)展的重要力量[2]。
現(xiàn)場總線控制系統(tǒng)在迅速發(fā)展的同時(shí),也隨之產(chǎn)生了一些問題。由于現(xiàn)場總線種類眾多,至今仍未形成統(tǒng)一的標(biāo)準(zhǔn),使得用戶很難使用不同廠商、不同品牌的設(shè)備進(jìn)行系統(tǒng)集成,這給現(xiàn)場總線技術(shù)的推廣應(yīng)用帶來了很大困難[3]。因此,對不同總線集成化技術(shù)進(jìn)行研究極具現(xiàn)實(shí)意義。
作為我國第一個(gè)現(xiàn)場總線技術(shù)國家標(biāo)準(zhǔn),加上西門子等公司的大力支持,Profibus總線已成為當(dāng)今使用最廣泛的總線技術(shù)之一。Modbus總線由于其簡單可靠、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn),得到了眾多廠商和用戶的青睞,但其網(wǎng)絡(luò)規(guī)模有限,網(wǎng)絡(luò)處理能力較差。本文設(shè)計(jì)并實(shí)現(xiàn)了兩種協(xié)議的轉(zhuǎn)換模塊,使得Modbus設(shè)備可以無縫接入Profibus-DP總線系統(tǒng)。模塊具有較強(qiáng)的實(shí)時(shí)性和可靠性,有很好的推廣使用價(jià)值。
1 總體設(shè)計(jì)
1.1 Modbus協(xié)議
Modbus協(xié)議是全球第一個(gè)用于工業(yè)現(xiàn)場的總線協(xié)議。Modbus串行鏈路協(xié)議采用主從通訊方式,并且提供功能碼規(guī)定的服務(wù)[4]。Modbus是一種應(yīng)用層報(bào)文傳輸協(xié)議,其傳輸模式分為RTU和ASCII兩種。在相同的波特率下,RTU模式比ASCII模式具有更高的數(shù)據(jù)吞吐量。在RTU模式下,一個(gè)完整的報(bào)文幀最大不超過256個(gè)字節(jié)。兩幀報(bào)文之間至少要有3.5個(gè)字符的時(shí)間間隔,同一報(bào)文兩個(gè)字符之間的時(shí)間間隔應(yīng)不大于1.5個(gè)字符時(shí)間[5],否則將認(rèn)為報(bào)文幀出錯(cuò)。
1.2 Profibus-DP協(xié)議
Profibus是一種用于工廠自動(dòng)化車間級監(jiān)控和現(xiàn)場設(shè)備層數(shù)據(jù)通信與控制的現(xiàn)場總線技術(shù),它是我國第一個(gè)總線技術(shù)國家標(biāo)準(zhǔn),包括Profibus-DP、Profibus-PA、Profibus-FMS 3個(gè)子集[6]。Profibus-DP傳輸速率為9.6Kbps~12Mbps,每個(gè)DP系統(tǒng)包含3類站點(diǎn):一類主站(M1)、二類主站(M2)和從站。其中,多主站系統(tǒng)中,主站之間采用令牌幀傳遞信息,得到令牌的站點(diǎn)可在一個(gè)事先規(guī)定的時(shí)間內(nèi)擁有總線控制權(quán),同時(shí)規(guī)定好令牌在各主站中循環(huán)一周的最長時(shí)間;主站和從站之間采用主從方式的分時(shí)輪詢傳輸。理論上,每一段中最多可掛接126個(gè)站點(diǎn)。
1.3 系統(tǒng)總體結(jié)構(gòu)
目前,對不同現(xiàn)場總線的集成化研究主要有以下幾種方案:①采用OPC技術(shù)[7]和以太網(wǎng)技術(shù)集成多種總線,這種方法主要應(yīng)用于過程控制級的現(xiàn)場總線協(xié)議轉(zhuǎn)換;②采用從節(jié)點(diǎn)模塊化實(shí)現(xiàn)多種總線集成,該方法主要是將多種總站的從站功能集中在一個(gè)模塊上;③采用轉(zhuǎn)換模塊實(shí)現(xiàn)多種總線集成,這種方法主要是對不同總線協(xié)議轉(zhuǎn)換問題的研究,適用于現(xiàn)場設(shè)備級的現(xiàn)場總線協(xié)議轉(zhuǎn)換。本文采用第3種方法來實(shí)現(xiàn)Profibus-DP/Modbus協(xié)議轉(zhuǎn)換。
設(shè)計(jì)完成的系統(tǒng)結(jié)構(gòu)如圖1所示,通過設(shè)計(jì)的協(xié)議轉(zhuǎn)換模塊,可以將Modbus設(shè)備無縫接入到Profibus-DP系統(tǒng)中,實(shí)現(xiàn)了協(xié)議之間的相互轉(zhuǎn)換,大大降低了系統(tǒng)升級費(fèi)用。
2 硬件實(shí)現(xiàn)方案
由于Profibus-DP是主站式總線控制機(jī)制,因而Profibus-DP與Modbus之間的轉(zhuǎn)換是單向的,即為DP主站對Modbus從站的單向訪問,或者是Modbus對DP從站的單向訪問。對于前者,網(wǎng)關(guān)既是DP從站,同時(shí)也是Modbus主站;對于后者,網(wǎng)關(guān)既是Modbus從站,同時(shí)也是DP主站,本文設(shè)計(jì)的轉(zhuǎn)換模塊屬于前者。轉(zhuǎn)換模塊的硬件原理如圖2所示。
微處理器是整個(gè)模塊的核心部分。本設(shè)計(jì)選擇三星公司開發(fā)的微控制器S3C2440A,它采用了ARM920T架構(gòu)核心,具備高性能、低功耗等優(yōu)點(diǎn),而且價(jià)格便宜,適用于嵌入式設(shè)備開發(fā)。
Profibus-DP從站的核心功能選擇基于ASIC芯片的設(shè)計(jì)方案,不僅能減輕MCU的工作壓力,同時(shí)也節(jié)省了系統(tǒng)開發(fā)時(shí)間,保證了模塊運(yùn)行時(shí)的穩(wěn)定性和可靠性。本設(shè)計(jì)選用VPC3+C芯片,它集成了完整的DP協(xié)議。S3C2440a通過GPIO與VPC3+C芯片連接,同時(shí),不采用數(shù)據(jù)/地址線復(fù)用的方式,以此來提高模塊運(yùn)行效率。S3C2440通過GPJ0-GPJ10與VPC3+C的11根地址線AB(0..10)連接,通過GPB0-GPB7與VPC3+C對應(yīng)的數(shù)據(jù)線DB(0..7)連接,同時(shí)將VPC3+C的XWR、XRD、XCS、X/INT及XREADY引腳分別與MCU的GPF0-GPF4相連接。VPC3+C引腳連接如圖3所示。
為了提高模塊的抗干擾性,系統(tǒng)選擇了帶磁耦隔離的RS485收發(fā)芯片ADM2486,其速率高達(dá)20Mb/S,完全滿足Profibus-DP的通信要求。與傳統(tǒng)的光耦隔離相比,其簡化了模塊電路設(shè)計(jì),同時(shí)大大降低了模塊功耗。AMD2486的引腳TxD、RxD及RTS分別與VPC3+C的TxD、RxD及RTS引腳相連接。
3 軟件實(shí)現(xiàn)方案
轉(zhuǎn)換模塊的作用是將Profibus-DP協(xié)議數(shù)據(jù)轉(zhuǎn)換成Modbus協(xié)議數(shù)據(jù),實(shí)現(xiàn)使用不同協(xié)議的設(shè)備之間的通信,完成生產(chǎn)控制要求。在實(shí)際工作時(shí),當(dāng)轉(zhuǎn)換模塊初始化完成后,即進(jìn)入數(shù)據(jù)轉(zhuǎn)換狀態(tài)。每次通信都由Profibus-DP主站發(fā)起,然后發(fā)送到轉(zhuǎn)換模塊中的VPC3+C芯片上,由于VPC3+C集成了完整的Profibus-DP協(xié)議,因此對DP數(shù)據(jù)的處理并不需要MCU的參與[8]。VPC3+C處理完數(shù)據(jù)后,通知MCU取走數(shù)據(jù)。MCU收到主站數(shù)據(jù)后,將其轉(zhuǎn)換成Modbus協(xié)議格式,然后發(fā)送給從站并等待從站響應(yīng)。
從整個(gè)控制系統(tǒng)來看,主要包含3種通信過程:Profibus-DP主站與模塊從站側(cè)的通信、模塊內(nèi)部的數(shù)據(jù)轉(zhuǎn)換,以及模塊Modbus主站側(cè)與現(xiàn)場從設(shè)備的通信。在主程序設(shè)計(jì)中,主要是對3種通信過程進(jìn)行合理控制,以保證系統(tǒng)的可靠性和實(shí)時(shí)性。MCU及VPC3+C的初始化工作應(yīng)當(dāng)在數(shù)據(jù)交換之前完成。對VPC3+C的操作主要包括:允許中斷、寫入從站地址、設(shè)置模式寄存器、診斷緩沖區(qū)、參數(shù)緩沖區(qū)、配置緩沖區(qū)、地址緩沖區(qū)以及緩沖區(qū)的長度,最后設(shè)置輸入輸出緩沖區(qū)并取得其指針。主程序流程如圖4所示。
由該流程圖可以看出,MCU采用輪詢方式讀取VPC3+C中的數(shù)據(jù)。相對于中斷的方式,輪詢方式可以減少對Modbus側(cè)通信的影響,有助于提高模塊的轉(zhuǎn)換效率。
由硬件設(shè)計(jì)部分可知,VPC3+C協(xié)議芯片通過X/INT引腳與S3C2440A芯片的GPC3引腳相連。在遇到異常情況時(shí),VPC3+C將通過此引腳通知MCU。MCU通過讀取中斷寄存器的內(nèi)容確定中斷源的類型,然后調(diào)用相應(yīng)的處理程序進(jìn)行處理。VPC3+C的中斷服務(wù)流程如圖5所示。
轉(zhuǎn)換模塊中,Modbus和Profibus-DP之間的協(xié)議數(shù)據(jù)轉(zhuǎn)換通過映射關(guān)系建立。轉(zhuǎn)換模塊中,設(shè)置了兩塊數(shù)據(jù)緩沖區(qū),一塊是Profibus-DP數(shù)據(jù)輸入緩沖區(qū),另一塊是Profibus-DP輸出緩沖區(qū)。Modbus主站側(cè)將讀取的數(shù)據(jù)寫入到網(wǎng)絡(luò)輸入緩沖區(qū),供Profibus-DP網(wǎng)絡(luò)讀取;Modbus寫命令從網(wǎng)絡(luò)輸出緩沖區(qū)取出數(shù)據(jù)并發(fā)送到相應(yīng)的Modbus從設(shè)備。在從緩沖區(qū)取用數(shù)據(jù)時(shí),為了保證所使用的數(shù)據(jù)是最新的,采用單個(gè)緩沖的設(shè)計(jì)方式,以此來保證數(shù)據(jù)轉(zhuǎn)換的實(shí)時(shí)性。同時(shí),Modbus從設(shè)備取得數(shù)據(jù)后直接填充到協(xié)議芯片的輸入緩沖區(qū),轉(zhuǎn)換模塊讀取Profibus協(xié)議數(shù)據(jù)后直接轉(zhuǎn)換成Modbus協(xié)議數(shù)據(jù)進(jìn)行輸出,通過這種方式,數(shù)據(jù)轉(zhuǎn)換效率有所提升。
在轉(zhuǎn)換模塊中,Modbus協(xié)議通過軟件方式實(shí)現(xiàn)[9-10]。Modbus主站側(cè)一方面將DP主站發(fā)送的數(shù)據(jù)通過Modbus協(xié)議格式發(fā)送給從站;另一方面將Modbus現(xiàn)場從設(shè)備的響應(yīng)信息報(bào)告給DP主站。對于從站的響應(yīng)信息,采取中斷設(shè)計(jì)方式。由于工業(yè)現(xiàn)場對可靠性和實(shí)時(shí)性要求較高,而且數(shù)據(jù)量很大,采取中斷的方式可以大大減輕MCU的負(fù)擔(dān)[11]。數(shù)據(jù)輸入中斷服務(wù)流程如圖6所示。
4 實(shí)驗(yàn)驗(yàn)證
本文采用西門子公司的S7300 PLC作為Profibus-DP主站[12],利用PC端的Commix串口調(diào)試工具模擬Modbus從站設(shè)備進(jìn)行實(shí)驗(yàn)。通過驗(yàn)證,轉(zhuǎn)換模塊能夠有效地完成數(shù)據(jù)轉(zhuǎn)換功能,達(dá)到了設(shè)計(jì)要求。
(1)在PLC創(chuàng)建數(shù)據(jù)區(qū)DB1、DB2。其中DB1為數(shù)據(jù)發(fā)送區(qū),DB2為數(shù)據(jù)接收區(qū)。
(2)數(shù)據(jù)的發(fā)送和接收分別通過SFC15 “DPWR_DAT”和SFC14“DPRD_DAT”完成。
將DB1數(shù)據(jù)打包發(fā)送:
CALL "DPRD_DAT" //調(diào)用SFC14
LADDR :=W#16#0 //接收輸入起始地址
RET_VAL:=MW2 //錯(cuò)誤代碼
RECORD :=P#DB2.DBX 0.0 WORD 8
將收數(shù)據(jù)存放到DB2:
CALL "DPWR_DAT" //調(diào)用SFC15
LADDR :=W#16#0 //發(fā)送輸出起始地址
RECORD :=P#DB1.DBX 0.0 WORD 8 RET_VAL:=MW4 //錯(cuò)誤代碼
(3)調(diào)用SFC21將DB1和DB2中的數(shù)據(jù)初始化。
(4)保存組態(tài)信息后進(jìn)行測試。
(5)通過轉(zhuǎn)換模塊發(fā)送數(shù)據(jù)01 03 00 00 00 08 44 0C,串口可以收到周期性發(fā)來的信息,如圖7所示。
(6)在發(fā)送區(qū)輸入響應(yīng)數(shù)據(jù)幀,如圖8所示。
(7)DB2數(shù)據(jù)塊可以正確接收串口發(fā)送的信息,如圖9所示。
5 結(jié)語
隨著現(xiàn)代工業(yè)的不斷發(fā)展,對生產(chǎn)控制的要求越來越高,現(xiàn)場總線因其標(biāo)準(zhǔn)開放、可靠性高、實(shí)時(shí)性強(qiáng)等優(yōu)點(diǎn),已成為自動(dòng)控制發(fā)展的新方向。而總線標(biāo)準(zhǔn)不統(tǒng)一給用戶系統(tǒng)集成帶來了很大困難,因此對不同總線設(shè)備的集成化研究尤為重要。本文設(shè)計(jì)的Modbus/Profibus-DP轉(zhuǎn)換模塊所需要的硬件簡單、穩(wěn)定、可靠,且成本相對較低,同時(shí)在軟件方面對協(xié)議數(shù)據(jù)轉(zhuǎn)換的可靠性和實(shí)時(shí)性進(jìn)行了優(yōu)化,從而在硬件和軟件兩方面保證了通信的實(shí)時(shí)性和可靠性,具有一定的實(shí)用價(jià)值。
參考文獻(xiàn):
[1] 侯維巖,費(fèi)敏銳.Profibus協(xié)議分析和系統(tǒng)應(yīng)用[M].北京:清華大學(xué)出版社,2006.
[2] 章民融,秦艷華,徐亞鋒.基于SPC3的Profibus-DP的研究與開發(fā)[J].計(jì)算機(jī)應(yīng)用與軟件,2008,2(8):184-186.
[3] 張大海.Profibus-DP與CAN協(xié)議轉(zhuǎn)換研究及其網(wǎng)關(guān)開發(fā)[D].武漢:武漢大學(xué),2005.
[4] 華F.從Modbus到透明就緒:施耐德電氣工業(yè)網(wǎng)絡(luò)的協(xié)議、設(shè)計(jì)、安裝和應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2009.
[5] 潘志剛,胡景泰,李強(qiáng).基于Modbus的串口通信實(shí)現(xiàn)[J].工業(yè)控制計(jì)算機(jī),2012,25(7):79-80.
[6] 王建國,孫豐祥,李紅梅,等.基于軟件協(xié)議的Profibus-DP從站實(shí)現(xiàn)[J].化工自動(dòng)化及儀表,2010,37(1):66-69.
[7] 趙瑋,金亞萍,張勝.基于OPC技術(shù)的應(yīng)用程序?qū)崿F(xiàn)[J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2009(3):100-101.
[8] 夏琳琳,邱超,富兆龍,等.基于VPC3協(xié)議芯片的Profibus-DP接口適配卡的設(shè)計(jì)研究[J].化工自動(dòng)化及儀表,2012(1):1323-1327.
[9] 許波.Modbus通信協(xié)議的研究與實(shí)現(xiàn)[D].合肥:安徽大學(xué),2010.
[10] 翁建年,張浩,彭道剛,等.基于嵌入式ARM的MOBUS/TCP協(xié)議的研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用與軟件,2009,26(10):36-39.
篇2
關(guān)鍵詞:ARM;現(xiàn)場總線;ModBus協(xié)議;電平轉(zhuǎn)換;驅(qū)動(dòng)程序
中圖分類號:TP368.1 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1009-3044(2013)19-4429-04
隨著控制、計(jì)算機(jī)、通信、網(wǎng)絡(luò)等技術(shù)的發(fā)展,信息交換溝通的領(lǐng)域正在迅速覆蓋從現(xiàn)場設(shè)備到控制、管理、驅(qū)動(dòng)、開發(fā)的各個(gè)層次。而其中的現(xiàn)場總線技術(shù)是其主要的組成部分,直接關(guān)系到工業(yè)控制集成系統(tǒng)性能以及系統(tǒng)的穩(wěn)定可靠。
現(xiàn)場總線是一種連接智能現(xiàn)場設(shè)備和自動(dòng)化系統(tǒng)的全數(shù)字化、雙向傳輸、多分支結(jié)構(gòu)的串行通信網(wǎng)絡(luò)。現(xiàn)場總線的關(guān)鍵標(biāo)志是能夠支持雙向、多節(jié)點(diǎn)、總線式的全數(shù)字通信。
本設(shè)計(jì)的主要工作是采用基于ARM7內(nèi)核的高性能處理器LPC2131作為主控芯片,并使用了專用的總線協(xié)議芯片AD2483,實(shí)現(xiàn)ModBus現(xiàn)場設(shè)備與異構(gòu)系統(tǒng)之間的數(shù)據(jù)傳輸與協(xié)議轉(zhuǎn)換。該協(xié)議轉(zhuǎn)換模塊系統(tǒng)框圖如圖1所示。
1 協(xié)議轉(zhuǎn)換模塊介紹
1.1 模塊工作原理
協(xié)議轉(zhuǎn)換模塊的功能是完成現(xiàn)場ModBus設(shè)備數(shù)據(jù)的采集和數(shù)字化處理,并將轉(zhuǎn)換后的結(jié)果通過異構(gòu)系統(tǒng)的內(nèi)部總線傳送到上層控制系統(tǒng)。同時(shí)實(shí)現(xiàn)上層控制系統(tǒng)對現(xiàn)場設(shè)備的控制與配置。
該模塊采用RS-485電平轉(zhuǎn)換芯片,該芯片自帶電氣信號隔離,信號調(diào)理技術(shù)。該模塊提供通信檢測顯示功能,可提供獨(dú)立隔離的24VDC供電電源輸出,用于現(xiàn)場ModBus設(shè)備的工作電源。圖2為模塊系統(tǒng)總體結(jié)構(gòu)框圖。
1.2 ModBus通訊規(guī)約
在各種不同的系統(tǒng)通信中,ModBus協(xié)議是一種在工業(yè)領(lǐng)域被廣泛應(yīng)用的、真正開放的、標(biāo)準(zhǔn)的網(wǎng)絡(luò)通信協(xié)議,通過該協(xié)議,不同廠家的現(xiàn)場設(shè)備可以實(shí)現(xiàn)數(shù)據(jù)通信。
ModBus可編程控制器之間可以相互通訊,也可與不同網(wǎng)絡(luò)上的其他設(shè)備進(jìn)行通訊。網(wǎng)絡(luò)信息存取可由控制器內(nèi)置的端口,網(wǎng)絡(luò)適配器和網(wǎng)關(guān)等設(shè)備實(shí)現(xiàn)。該協(xié)議定義了控制器能識(shí)別和使用的信息結(jié)構(gòu)。當(dāng)在ModBus網(wǎng)絡(luò)上進(jìn)行通訊時(shí),協(xié)議能使每一臺(tái)控制器知道它本身的設(shè)備地址,并識(shí)別對它尋址的數(shù)據(jù),決定應(yīng)起作用的類型,取出包含在信息中的數(shù)據(jù)和資料等,控制器也可組織回答信息,并使用ModBus協(xié)議將此信息傳送出去。
在其他網(wǎng)絡(luò)上使用時(shí),數(shù)據(jù)包和數(shù)據(jù)幀中也包含著ModBus協(xié)議。網(wǎng)絡(luò)控制器中有相應(yīng)的應(yīng)用程序庫和驅(qū)動(dòng)程序,實(shí)現(xiàn)嵌入式ModBus協(xié)議信息與此網(wǎng)絡(luò)中用子節(jié)點(diǎn)設(shè)備間通訊的特殊信息幀的數(shù)據(jù)轉(zhuǎn)換。
ModBus采用主從方式,若一臺(tái)控制器作為主機(jī)設(shè)備發(fā)送一個(gè)信息,則可從一臺(tái)從機(jī)設(shè)備返回一個(gè)響應(yīng),類似,當(dāng)一臺(tái)控制器接受信息時(shí),它就組織一個(gè)從機(jī)設(shè)備的響應(yīng)信息,并返回至原來發(fā)送信息的控制器。
2 硬件電路設(shè)計(jì)
2.1 電源電路
電源電路模塊主要對模塊的電源部分進(jìn)行處理,將工控行業(yè)普遍采用的直流24VDC的輸入轉(zhuǎn)變?yōu)槟KCPU需要的5VDC和3.3VDC,同時(shí)進(jìn)行EMC防護(hù)。該模塊在輸入電壓出增加了防雷擊浪涌電路和支持熱插拔電路,使用的主要器件是LT4356-1。電源電路圖如圖3:
LT4356-1浪涌抑制器可保護(hù)負(fù)載免遭高電壓瞬變的損壞。它能夠通過控制一個(gè)外部N溝道MOSFET的柵極以在過壓過程中調(diào)節(jié)輸出。輸出被限制在一個(gè)安全的數(shù)值上,從而允許負(fù)載繼續(xù)運(yùn)行。LT4356-1還監(jiān)視VCC和SNS引腳之間的電壓降,以防止遭受過流故障的影響。一個(gè)內(nèi)部放大器用于把電流檢測電壓限制為50mV。
2.2 主控電路
微控制器電路為ARM控制器的可靠穩(wěn)定工作提供硬件環(huán)境,包括ARM控制器的時(shí)鐘電路、復(fù)位電路等部分。復(fù)位電路采用上電復(fù)位方式,并且備有按鍵復(fù)位操作,方便用戶調(diào)試使用。
2.3 電平轉(zhuǎn)換電路
電路完成現(xiàn)場485信號與控制器LPC2131之間的電平轉(zhuǎn)換功能。圖4是RS-485轉(zhuǎn)換電路。
RS-485轉(zhuǎn)換電路采用485轉(zhuǎn)換芯片ADM2483。
ADM2483是ADI(Analog device,inc)公司推出的基于其專利iCoupler磁隔離技術(shù)的隔離型RS-485收發(fā)芯片。內(nèi)部集成了三通道的數(shù)字隔離器、帶三態(tài)輸出的差分驅(qū)動(dòng)器和一個(gè)帶三態(tài)輸入的RS485差分接收器。節(jié)點(diǎn)數(shù)可允許多達(dá)256個(gè),最高傳輸速率可達(dá)500Kbps。 iCoupler磁隔離技術(shù)是ADI公司的一項(xiàng)專利隔離技術(shù),是一種基于芯片尺寸的變壓器隔離技術(shù),它采用了高速CMOS工藝和芯片級的變壓器技術(shù)。所以,在性能、功耗、體積等各方面都有傳統(tǒng)光電隔離器件(光耦)無法比擬的優(yōu)勢。ADM2483采用具有短路電流限制的限擺率驅(qū)動(dòng)器,較低擺率降低了不恰當(dāng)?shù)慕K端匹配和接頭產(chǎn)生的誤碼。集成的熱關(guān)斷電路可將驅(qū)動(dòng)器輸出置為高阻狀態(tài),防止過度的功率損耗。
3 軟件程序設(shè)計(jì)
系統(tǒng)上電后,協(xié)議轉(zhuǎn)換模塊需要系統(tǒng)初始化,初始化操作主要完成系統(tǒng)各個(gè)軟件模塊的準(zhǔn)備工作已經(jīng)相應(yīng)接口的驅(qū)動(dòng)程序。之后要進(jìn)行寫入指令和寫入數(shù)據(jù)的步驟。
整個(gè)軟件結(jié)構(gòu)由幾個(gè)主要的軟件的模塊組成,分別是main()函數(shù),get_order()函數(shù)和exchange()函數(shù)。
3.1 main()函數(shù)設(shè)計(jì)說明
該函數(shù)為整個(gè)軟件架構(gòu)的主函數(shù),在進(jìn)入主函數(shù)之前,由編譯器自動(dòng)加載了硬件的堆棧和中斷向量配置文件。當(dāng)配置完成后,程序自動(dòng)跳入主函數(shù)開始執(zhí)行。主函數(shù)的代碼為順序執(zhí)行,模塊除數(shù)據(jù)通信功能的其他所有功能都在主函數(shù)中實(shí)現(xiàn),圖5是主函數(shù)的程序流程圖。
3.2 get_order()函數(shù)設(shè)計(jì)說明
get_order()函數(shù)作用是將異構(gòu)系統(tǒng)總線收到的數(shù)據(jù)轉(zhuǎn)換到ModBus發(fā)送緩沖區(qū)中準(zhǔn)備發(fā)送給現(xiàn)場的ModBus設(shè)備。在轉(zhuǎn)換時(shí)要嚴(yán)格按照標(biāo)準(zhǔn)ModBus-RTU格式進(jìn)行。圖6是該函數(shù)的程序流程圖。
3.3 exchange()函數(shù)設(shè)計(jì)說明
exchange()函數(shù)作用與get_order()函數(shù)剛好相反,exchange()函數(shù)將現(xiàn)場ModBus設(shè)備采集到的數(shù)據(jù)按照異構(gòu)系統(tǒng)總線協(xié)議方式存入到主控制器中。
4 結(jié)論
本文通過基于ARM內(nèi)核的高速微處理器LPC2131的ModBus協(xié)議轉(zhuǎn)換模塊進(jìn)行介紹,在此基礎(chǔ)上完成了硬件設(shè)計(jì)與軟件搭建,通過編寫控制器軟件程序?qū)崿F(xiàn)了現(xiàn)場ModBus設(shè)備與異構(gòu)系統(tǒng)的數(shù)據(jù)通信和電平轉(zhuǎn)換。實(shí)踐結(jié)果表明,該設(shè)計(jì)硬件結(jié)構(gòu)簡單,運(yùn)行穩(wěn)定可靠,軟件開發(fā)周期短,滿足現(xiàn)場設(shè)備數(shù)據(jù)通信以及協(xié)議接口驅(qū)動(dòng)的需要。
參考文獻(xiàn):
[1] 蒲靖榮,杜開勛,朱占青,等.基于網(wǎng)絡(luò)和ModBus協(xié)議的遠(yuǎn)程監(jiān)控系統(tǒng)[J].自動(dòng)化儀表,2009,30(7):52-57.
[2] 馬忠梅,籍順心,張凱,等.單片機(jī)的C語言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2007:290-291.
[3] 李海濤,儀維,吳筱堅(jiān),等.PIC單片機(jī)應(yīng)用開發(fā)典型模塊[M].北京:人民郵電出版社,2007.
[4] 盧穎,鐘聯(lián)炯.以太網(wǎng)交換機(jī)運(yùn)行機(jī)制及其仿真研究[J].西安工業(yè)學(xué)院學(xué)報(bào),2004,24(1).
篇3
關(guān)鍵詞:Modbus協(xié)議;電流檢測;轉(zhuǎn)速檢測;棉花加工;測控系統(tǒng)
中圖分類號:TP277;TS113 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:0439-8114(2016)11-2913-04
DOI:10.14088/ki.issn0439-8114.2016.11.052
棉花加工的生產(chǎn)過程是指由原料子棉開始到制成產(chǎn)品皮棉、短絨等的全部勞動(dòng)過程[1],其工藝主要由子棉預(yù)處理、軋花、皮棉清理、集棉、打包、剝絨六個(gè)環(huán)節(jié)組成。在子棉預(yù)處理、軋花、皮棉清理和集棉環(huán)節(jié),由于棉花喂給不均勻、子棉回潮率大等原因,存在加工設(shè)備堵棉、皮帶斷裂等故障。隨著中國近年棉花產(chǎn)量不斷提高,傳統(tǒng)的繼電器與單一的PLC的控制模式,檢測信息速度慢且信息量少[2],致使加工設(shè)備很難同步協(xié)調(diào)工作,繼而造成加工設(shè)備故障率高、故障處理時(shí)間長,嚴(yán)重影響了棉花加工的產(chǎn)量與質(zhì)量。
本研究設(shè)計(jì)的棉花加工測控系統(tǒng),根據(jù)Modbus協(xié)議簡單、實(shí)施容易等特點(diǎn),解決棉花加工過程中存在的設(shè)備故障率高、故障處理時(shí)間長的問題。通過測控系統(tǒng)的使用,降低了棉花加工過程的設(shè)備故障率,縮短了故障處理時(shí)間,提高了棉花加工產(chǎn)量與質(zhì)量。
1 Modbus協(xié)議及其分析
Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言,通過此協(xié)議,控制器及相互之間經(jīng)由網(wǎng)絡(luò)和其他設(shè)備之間可以通信[3-5]。Modbus協(xié)議包括ASCII、RTU、TCP等,并沒有規(guī)定物理層。協(xié)議的物理層可以是RS-232、RS-422、RS-485或TCP。與其他總線標(biāo)準(zhǔn)相比,Modbus協(xié)議具有協(xié)議簡單、實(shí)施容易、性價(jià)比高、可靠性好等優(yōu)點(diǎn),在工業(yè)自動(dòng)化領(lǐng)域獲得了越來越廣泛的應(yīng)用[6,7]。
Modbus協(xié)議采用主從方式定時(shí)收發(fā)數(shù)據(jù)。在實(shí)際使用中,如果某Slave站點(diǎn)斷開后(如故障或關(guān)機(jī)),Master端可以加以診斷;而當(dāng)故障修復(fù)后,網(wǎng)絡(luò)又可自動(dòng)接通。因此,Modbus協(xié)議的可靠性較高[8]。在Modbus協(xié)議中,有多種協(xié)議代碼,本研究主要使用以下4種功能代碼(表1)。
2 測控系統(tǒng)設(shè)計(jì)
2.1 測控系統(tǒng)硬件組成
測控系統(tǒng)主要由上位機(jī)、觸摸屏與控制器、傳感器等幾部分組成。上位機(jī)實(shí)現(xiàn)棉花加工數(shù)據(jù)的存儲(chǔ)、統(tǒng)計(jì)功能;觸摸屏與控制器實(shí)現(xiàn)數(shù)據(jù)分析判斷、控制、傳輸、顯示功能;傳感器實(shí)現(xiàn)數(shù)據(jù)檢測、傳輸功能;LED顯示屏實(shí)現(xiàn)車間加工設(shè)備運(yùn)行狀態(tài)及故障報(bào)警功能。棉花加工測控系統(tǒng)組成框圖如圖1所示。2.2 Modbus傳感器設(shè)計(jì)
Modbus傳感器設(shè)計(jì)包括電流檢測裝置設(shè)計(jì)和轉(zhuǎn)速檢測裝置設(shè)計(jì)。電流檢測裝置和轉(zhuǎn)速檢測裝置主控芯片均采用宏晶科技生產(chǎn)的STC15F2K60S2單片機(jī)。
STC15F2K60S2系列單片機(jī)是STC生產(chǎn)的單時(shí)鐘的單片機(jī),是高速、高可靠、低功耗、超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,且速度快8~12倍。內(nèi)部集成高精度R/C時(shí)鐘(±0.3%),±1%溫飄(-40~+85 ℃),常溫下溫飄±0.6%(-20~+65 ℃),5 MHz~35 MHz寬范圍可設(shè)置,可徹底省掉外部昂貴的晶振和外部復(fù)位電路[9]。
2.2.1 電流檢測裝置設(shè)計(jì) 電流檢測裝置實(shí)時(shí)檢測加工設(shè)備的電流值,并把測得的電流值通過Modbus RTU協(xié)議發(fā)送給PLC控制器,電流檢測裝置可實(shí)現(xiàn)16路電流的檢測。
電流檢測裝置主要由STC15F2K60S2、16路模擬量轉(zhuǎn)換電路、A/D采樣、DC/DC降壓電路、光耦隔離電路、RS-485電路組成。裝置結(jié)構(gòu)圖如圖2所示。由于電流檢測裝置安裝的配電房存在多種干擾源,為了確保檢測裝置數(shù)據(jù)傳輸?shù)姆€(wěn)定性,在電流檢測裝置的通訊電路中增加光耦隔離電路,實(shí)現(xiàn)RS-485通訊電路的電氣隔離。
2.2.2 轉(zhuǎn)速檢測裝置設(shè)計(jì) 轉(zhuǎn)速檢測裝置實(shí)時(shí)檢測加工設(shè)備關(guān)鍵部位的轉(zhuǎn)速值,并把所測轉(zhuǎn)速值通過Modbus RTU協(xié)議發(fā)送給PLC控制器,以供控制器對加工設(shè)備工況進(jìn)行判斷。
轉(zhuǎn)速檢測裝置主要由STC15F2K60S2、脈沖信號檢測電路、DC/DC降壓電路、數(shù)碼管顯示電路、光耦隔離電路、RS-485電路組成。裝置結(jié)構(gòu)圖如圖3所示。轉(zhuǎn)速檢測裝置安裝在車間加工設(shè)備上,為了方便加工人員及時(shí)掌握所測加工設(shè)備的轉(zhuǎn)速值,設(shè)計(jì)轉(zhuǎn)速檢測裝置時(shí)增加數(shù)碼管顯示電路,實(shí)時(shí)顯示轉(zhuǎn)速值。同樣,為了確保通訊的穩(wěn)定性,在轉(zhuǎn)速檢測裝置的通訊電路中,增加光耦電氣隔離電路,增強(qiáng)通訊的可靠性。
2.3 測控系統(tǒng)數(shù)據(jù)分析設(shè)計(jì)
棉花加工設(shè)備在工作過程中,常會(huì)出現(xiàn)堵棉、皮帶或鏈條斷裂、主軸失穩(wěn)等故障,通過研究與分析可知,根據(jù)電流和轉(zhuǎn)速的變化率,可區(qū)分出加工設(shè)備不同的工作狀態(tài),具體如下。
1)當(dāng)加工設(shè)備正常工作時(shí),其電流和轉(zhuǎn)速變化曲線如圖4所示。從圖4可以看出,轉(zhuǎn)速曲線和電流曲線幾乎為一條直線。因此,在加工設(shè)備正常工作時(shí),電流變化率di/dt≈0,轉(zhuǎn)速變化率a≈0。
2)當(dāng)加工設(shè)備出現(xiàn)堵棉現(xiàn)象時(shí),其電流曲線和轉(zhuǎn)速曲線如圖5所示。從圖5可以看出,轉(zhuǎn)速曲線迅速下降為0,電流曲線迅速上升,達(dá)到一定值時(shí)保持不變,當(dāng)加工人員關(guān)斷加工設(shè)備電源后,電流曲線逐漸降低為零。因此,在加工設(shè)備電機(jī)出現(xiàn)堵轉(zhuǎn)后的有限時(shí)間內(nèi),電流變化率di/dt0。
3)當(dāng)加工設(shè)備出現(xiàn)皮帶或鏈條斷裂現(xiàn)象時(shí),其電流曲線和轉(zhuǎn)速曲線如圖6所示。從圖6可以看出,轉(zhuǎn)速曲線迅速下降為0,電流曲線緩慢下降,下降到一定值時(shí)保持不變。因此,在加工設(shè)備電機(jī)出現(xiàn)皮帶或者鏈條斷裂現(xiàn)象后的有限時(shí)間內(nèi),電流變化率di/dt
4)當(dāng)加工設(shè)備出現(xiàn)主軸失穩(wěn)現(xiàn)象時(shí),其轉(zhuǎn)速和電流曲線如圖7所示。從圖7可以看出,電流曲線和轉(zhuǎn)速曲線呈周期性變化。因此,在加工設(shè)備出現(xiàn)主軸失穩(wěn)現(xiàn)象時(shí),電流變化率|di/dt|>0,轉(zhuǎn)速變化率|a|>0。
通過以上分析可以看出,測控系統(tǒng)控制器通過計(jì)算檢測的加工設(shè)備電機(jī)的電流變化率和設(shè)備關(guān)鍵部位轉(zhuǎn)速變化率,根據(jù)電流變化率和轉(zhuǎn)速變化率的不同,判斷出加工設(shè)備的工作狀態(tài),進(jìn)行相應(yīng)的控制和其他處理。
2.4 測控系統(tǒng)控制流程設(shè)計(jì)
測控系統(tǒng)通過傳感器實(shí)時(shí)采集子棉預(yù)處理、軋花、皮棉清理、集棉工藝環(huán)節(jié)加工設(shè)備的電流值與轉(zhuǎn)速值,通過Modbus RTU協(xié)議把數(shù)據(jù)傳輸給PLC控制器;PLC控制器對檢測的電流值與轉(zhuǎn)速值進(jìn)行綜合分析判斷,把檢測數(shù)據(jù)和判斷結(jié)果通過Modbus RTU協(xié)議傳輸給觸摸屏,觸摸屏顯示數(shù)據(jù),并通過Modbus TCP協(xié)議把數(shù)據(jù)傳輸給上位機(jī);上位機(jī)軟件對數(shù)據(jù)進(jìn)行存儲(chǔ)和統(tǒng)計(jì),然后把統(tǒng)計(jì)結(jié)果提供給管理人員。
在子棉預(yù)處理環(huán)節(jié),當(dāng)加工設(shè)備出現(xiàn)故障時(shí),PLC控制器控制自動(dòng)喂花機(jī)的電機(jī)停止工作,停止喂花;在軋花、皮棉清理、集棉環(huán)節(jié),當(dāng)加工設(shè)備出現(xiàn)故障時(shí),PLC控制器控制軋花機(jī)開合箱電機(jī)開箱,停止軋花;在加工設(shè)備出現(xiàn)故障時(shí),PLC控制器控制LED屏顯示器控制器,實(shí)現(xiàn)車間LED顯示屏故障報(bào)警顯示。測控系統(tǒng)控制流程如圖8所示。
3 上位機(jī)軟件設(shè)計(jì)
上位機(jī)軟件為測控系統(tǒng)統(tǒng)計(jì)軟件。軟件采用VC6.0開發(fā)環(huán)境,使用SQL Server 2000數(shù)據(jù)庫。SQL Server 2000數(shù)據(jù)庫功能允許用戶透明地查詢和操作遠(yuǎn)程數(shù)據(jù)庫實(shí)例的數(shù)據(jù),并使應(yīng)用程序看起來只有一個(gè)大型的集中式數(shù)據(jù)庫,用戶可以在任何一個(gè)場地執(zhí)行全局應(yīng)用,具有數(shù)據(jù)分布透明性和邏輯整體性等特點(diǎn)。
上位機(jī)負(fù)責(zé)統(tǒng)計(jì)、存儲(chǔ)車間內(nèi)所有采集的數(shù)據(jù);統(tǒng)計(jì)車間加工設(shè)備故障原因、故障時(shí)間、故障率。上位機(jī)軟件與車間觸摸屏通過Modbus TCP協(xié)議通訊,把所采集的數(shù)據(jù)存儲(chǔ)在SQL server 2000數(shù)據(jù)庫中,并對數(shù)據(jù)進(jìn)行處理。
進(jìn)入主界面后,可以選擇查看所檢測加工設(shè)備的電流曲線與轉(zhuǎn)速曲線,當(dāng)加工設(shè)備出現(xiàn)故障時(shí),可在故障報(bào)警界面查看故障原因、故障處理時(shí)間等相關(guān)故障信息。
4 小結(jié)
基于Modbus協(xié)議的棉花加工測控系統(tǒng),在新疆生產(chǎn)建設(shè)兵團(tuán)第六師新湖總場新旺社區(qū)棉花加工廠安裝使用,將棉花加工設(shè)備的參數(shù)檢測、分析判斷與自動(dòng)控制相結(jié)合,降低棉花加工設(shè)備故障率10%,縮短故障處理時(shí)間30%,提高了生產(chǎn)效率;基于Modbus協(xié)議的棉花加工測控系統(tǒng),實(shí)現(xiàn)了加工過程設(shè)備故障率、故障原因統(tǒng)計(jì),為管理人員生產(chǎn)決策提供數(shù)據(jù)支撐。
隨著棉花加工測控系統(tǒng)的進(jìn)一步完善,以及系統(tǒng)的推廣使用,將為棉花加工過程的信息化、智能化生產(chǎn)奠定了基礎(chǔ)。
參考文獻(xiàn):
[1] 徐炳炎.棉花加工新工藝與設(shè)備[M].北京:機(jī)械出版社,2002.
[2] 張 順,張錦石.機(jī)采棉加工微電腦智能控制系統(tǒng)[J].中國棉花加工,2014(2):17-19.
[3] 何凌霄,林凡強(qiáng).基于MODBUS協(xié)議網(wǎng)絡(luò)的多點(diǎn)火災(zāi)測控系統(tǒng)[J].電子科技,2013(9):148-151.
[4] 鄧元生. 基于單片機(jī)的MODBUS總線協(xié)議實(shí)現(xiàn)技術(shù)研究[D].長沙:中南大學(xué),2009.
[5] 陳 銘.基于MODBUS協(xié)議的設(shè)備和PLC實(shí)現(xiàn)通訊的研究[J].湖南科技學(xué)院學(xué)報(bào),2009,30(4):60-62.
[6] 張世界,蔣 健,宋 彬.一種基于Modbus協(xié)議的多總線工業(yè)測控系統(tǒng)[J].今日電子,2012(1):55-57.
[7] 王小鵬,張九強(qiáng).MODBUS在智能保護(hù)裝置上的應(yīng)用[J].煤礦機(jī)械,2011(1):190-192.
篇4
關(guān)鍵詞:Modbus協(xié)議;交流電壓峰值;MSP430F449;MAX1270
中圖分類號:TB971,TP368.1文獻(xiàn)標(biāo)識(shí)碼:B
文章編號:1004-373X(2009)10-146-03
Design of AC Voltage Peak Detection Instrument Based on Modbus-RTU
WANG Jichang
(Seismic Geophysical Company of Shengli Oil Field,Dongying,257100,China)
Abstract:The peak voltage detection of AC is an important index in industry power safety monitoring.AC voltage peak detection system based on hardware of MSP449,MAX1270 and RS 485,and protocol of Modbus-RTU are introduced.This system have been used in AC voltage peak detection successfully.This system has advantages of portable,low power and so on.Meanwhile,it is easy to interface with PC or controller in accordance with Modbus-RTU protocol to construct remote monitoring and control system conveniently.
Keywords:Modbus protocol;AC voltage peak;MSP430F449;MAX1270
收稿日期:2008-10-23
0 前 言
交流電壓峰值是指交流電壓的最大值(正峰值)或最小值(負(fù)峰值),是工業(yè)生產(chǎn)過程中一個(gè)非常重要的參數(shù)。為保證用電設(shè)備的安全,對供電電壓的峰值[1]進(jìn)行檢測具有重要意義。測量峰值的方法主要有示波器法、間接計(jì)算法、專用峰值表法。利用示波器雖然可直觀地顯示電壓的波形和峰值,但在成本和便攜性上示波器均不能作為現(xiàn)場監(jiān)視設(shè)備;間接計(jì)算法只適用于標(biāo)準(zhǔn)正弦波,實(shí)用性不大;專用峰值表大都存在體積較大,攜帶不便,且與電腦或控制設(shè)備相連不便的缺點(diǎn)。針對以上缺點(diǎn),采用MSP430[2]系列單片機(jī)、MAX1270模/數(shù)轉(zhuǎn)換器,并利用Modbus-RTU協(xié)議,成功地開發(fā)出了低成本、便攜、智能的峰值表設(shè)備。
1 測量原理
由于供電電網(wǎng)的波動(dòng)及電網(wǎng)的電壓波形是一種非標(biāo)準(zhǔn)正弦波,其峰值不能通過平均值或有效值間接計(jì)算。該系統(tǒng)采用對非標(biāo)準(zhǔn)正弦波在一個(gè)周期內(nèi)多次采樣,并通過冒泡法比較采樣值,得到電壓的最大值或最小值作為其正峰值和負(fù)峰值。顯然只要采樣密度適當(dāng),完全可以得到真實(shí)的電壓峰值。我國交流電的頻率為50 Hz,設(shè)計(jì)中采樣頻率設(shè)置為10 kHz,即每個(gè)交流波形周期中采樣200次,足以正確地反映出電壓的變化情況,從而確定電壓的峰值。
2 硬件設(shè)計(jì)
設(shè)計(jì)中,以MSP430F449[3]單片機(jī)、MAX1270模/數(shù)轉(zhuǎn)換器為主要器件。前端A/D輸入采用電阻分壓方式將交流電進(jìn)行降壓;采用RS 485芯片作為通信接口芯片,硬件框圖如圖1所示。
圖1 硬件框圖
2.1 A/D輸入調(diào)理保護(hù)電路設(shè)計(jì)
以220 V交流電為例,其理論峰值電壓為311 V,但考慮到電網(wǎng)波動(dòng)、正弦波失真等,電壓峰值很可能超過311 V,這時(shí)可根據(jù)工作經(jīng)驗(yàn)和實(shí)測情況,選定一個(gè)電壓值作為電壓可能達(dá)到的最大值,假定為500 V。如果MAX1270的輸入范圍設(shè)置為±5 V,則分壓電阻的分壓比應(yīng)設(shè)置為100∶1。分壓后的電壓經(jīng)過運(yùn)放緩沖后作為A/D芯片的輸入,為保護(hù)后級A/D轉(zhuǎn)換芯片,設(shè)置兩個(gè)穩(wěn)壓二極管組成限幅電路。輸入調(diào)理電路如圖2所示。
圖2 A/D輸入信號調(diào)理保護(hù)電路
2.2 A/D轉(zhuǎn)換電路
A/D轉(zhuǎn)換電路采用MAX1270[4]芯片,MAX1270是8通道、多量程雙極性輸入、串行輸
出、逐次逼近型12位A/D轉(zhuǎn)換器,最高采樣率為110 kS/s。在單+5 V電源供電下,可通過編程實(shí)現(xiàn)±5 V,±10 V,5 V,10 V量程。其中,雙極性輸入十分適合作為交流電壓測量。
MAX1270轉(zhuǎn)換電路如圖2所示,由MSP430F449的I/O口線控制MAX1270的串行接口。由于MAX1270在5 V電壓供電下,輸出4.5 V以上高電平,而MSP430F449的I/O口電平為3.3 V,因此必須附加一個(gè)接口芯片,以實(shí)現(xiàn)5~3.3 V的電平轉(zhuǎn)換,這里采用MAX3001雙向電平轉(zhuǎn)換芯片。A/D轉(zhuǎn)換電路如圖3所示。
2.3 RS 485接口電路
該設(shè)計(jì)采用RS 485總線[5],可通過電纜或光纖將信號有效地遠(yuǎn)傳上千米,配合Modbus-RTU協(xié)議,可方便地與符合Modbus-RTU協(xié)議的控制設(shè)備連接。設(shè)計(jì)中采用MAX3485芯片作為RS 485接口芯片,電路如圖4所示。
圖3 A/D轉(zhuǎn)換及電平轉(zhuǎn)換電路
圖4 RS 485接口電路
3 軟件設(shè)計(jì)
設(shè)計(jì)中,主要的軟件模塊包括A/D轉(zhuǎn)換,Modbus-RTU協(xié)議和串口編程。對于串口編程不再贅述,主要對MAX1270[6]和Modbus-RTU[7]協(xié)議進(jìn)行說明。
3.1 MAX1270編程
MAX1270的控制字格式如表1所示,最高START為起始位,保持為“1”;SEL2~SEL0為輸入通道選擇位;RNG,BIP分別為量程和極性選擇位;PD1和PD0為掉電和時(shí)鐘模式選擇位。各位的具體意義請參考MAX1270數(shù)據(jù)手冊。該設(shè)計(jì)中,MAX1270設(shè)置為:量程10 V,雙極性輸入(即實(shí)現(xiàn)±5 V測量)、外部時(shí)鐘25 CLK/s正常操作模式,使用通道CH0作為輸入通道,控制字的格式為10000101。
表1 MAX1270控制字
BIT7(MSB)BIT6BIT5BIT4BIT3BIT2BIT1BIT0(LSB)
STARTSEL2SEL1SEL0RNGBIPPD1PD0
/*函數(shù):max1270_ACQ()功能:讀取A/D轉(zhuǎn)換數(shù)據(jù)*/
unsigned int max1270_ACQ()
{
unsigned char cmd;
cmd=0x85;//雙極性正負(fù)5 V輸入范圍,通道0,常規(guī)操作、外部時(shí)鐘模式
unsigned char t=8;
do//寫入控制字
{
max1270_CLK_CLR;
_NOP();
if((cmd & 0x80)==0x80)
max1270_DI_SET;
else
max1270_DI_CLR;
cmd
_NOP();
max1270_CLK_SET;
_NOP();_NOP();
}
while (--t!= 0);
max1270_DI_CLR;
//等待轉(zhuǎn)換完成
for(int i=5;i>0;i--)
{
max1270_CLK_CLR;//時(shí)鐘下降沿
_NOP();_NOP();
max1270_CLK_SET;//時(shí)鐘上升沿
_NOP();_NOP();
}
//讀出轉(zhuǎn)換結(jié)果
unsigned int dat=0;
t=12;
do
{
max1270_CLK_CLR;
_NOP();
dat
if(max1270_DO)//DO的輸出為1
dat++;
max1270_CLK_SET;
_NOP();
}
while (--t!=0);
_NOP();_NOP();
max1270_DI_CLR;
max1270_CLK_CLR;
_NOP();_NOP();
return dat;
}
3.2 Modbus-RTU協(xié)議
Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其他設(shè)備之間可以通信。Modbus-RTU是Modbus[8]協(xié)議的一種傳輸模式,在該模式下,消息中的每個(gè)8 b包含2個(gè)4 b的16進(jìn)制字符。Modbus協(xié)議的核心程序是CRC校驗(yàn)[9]程序的編寫。該系統(tǒng)中采用CRC-16校驗(yàn)法,具體程序?qū)崿F(xiàn)如下:
//CRC生成和校驗(yàn):用于CRC生成和校驗(yàn),其中frame為數(shù)組指針,n為數(shù)據(jù)個(gè)數(shù)//
unsigned int CRC(unsigned char *frame,int n)
{
int i,j;
unsigned int flag,crc;
crc=0xffff;
for(i=0;i
{
crc^=*frame++;
for(j=0;j
{
flag=crc&0x0001;
crc>>=1;
crc&=0x7fff;//crc高位補(bǔ)零
if(flag)
{
crc^=0xa001;//crc xor A001
}
}
}
flag=crc%256;//取模求余得到crc低字節(jié)
i=(crc-flag)/256;
crc=flag*256+i;//高低字節(jié)交換
return(crc);
}
3.3 其他重要子程序
程序中采用定時(shí)器中斷觸發(fā)每次采樣,保證采集周期的精度,同時(shí)每次采集時(shí)都以過零點(diǎn)作為采集數(shù)據(jù)的開始。這兩點(diǎn)都有利于提高系統(tǒng)精度。
//定時(shí)器設(shè)置
CCR0=399;//400×0.25 μs=0.1 ms,即采樣周期
設(shè)定為10 kHz(10 k/50=200)
TACTL=TASSEL_2+MC_1+TACLR;//MCLK=4 M,Up Mode,CCTL0=CCIE;//CCR0中斷使能
//正過零點(diǎn)判斷
if(AD_Result
Start_Flag=1;//Start_Flag為開始存儲(chǔ)數(shù)據(jù)的標(biāo)志
else
Start_Flag=0;
4 測試結(jié)果
通過施加標(biāo)準(zhǔn)正弦波、非標(biāo)準(zhǔn)正弦波、三角波測試,可使該表的峰值測量精度高于1級,完全滿足工業(yè)現(xiàn)場設(shè)備供電檢測的需求。該表與工控組態(tài)軟件MCGS[10]配合,工作良好。此外,該表除了測量峰值以外,還擴(kuò)展了電壓平均值、有效值的計(jì)算,設(shè)計(jì)成一個(gè)具有多功能的智能儀表。
5 結(jié) 語
該設(shè)計(jì)以MSP430F449單片機(jī)、MAX1270為核心,編寫了Modbus-RTU協(xié)議,同時(shí)利用RS 485接口可方便地進(jìn)行數(shù)據(jù)遠(yuǎn)傳或與符合Modbus-RTU協(xié)議的設(shè)備相連,該表的體積小,功耗低,可使用干電池或蓄電池供電,非常適合作為編攜式設(shè)備,隨身攜帶,也可作為功能模塊直接安裝在工業(yè)現(xiàn)場設(shè)備對電網(wǎng)供電電壓峰值、有效值等參數(shù)進(jìn)行監(jiān)測。
參考文獻(xiàn)
[1]李玉峰.自動(dòng)切換量程的峰值電壓檢測系統(tǒng)[J].電測與儀表,1999,36(12):14-16.
[2]陶維青.基于430單片機(jī)的新型配電變壓器遠(yuǎn)方終端的開發(fā)[J].繼電器,2005,33(19):66-69.
[3]魏小龍.MSP430系列單片機(jī)接口技術(shù)及設(shè)計(jì)實(shí)例[M].北京:北京航空航天大學(xué)出版社,2002.
[4]王立新.串行A/D轉(zhuǎn)換器MAX1270及其應(yīng)用[J].微計(jì)算機(jī)信息,2006(12):305-307.
[5]陳樹廣,武君勝.RS 485總線在智能抄表系統(tǒng)中的應(yīng)用研究[J].微計(jì)算機(jī)信息,2008(13):148-150.
[6]Maxim Corporation.MAX1270 Datasheet\.2007
[7]王興貴,張明智,杜瑩.Modbus RTU通信協(xié)議在智能儀表與工控機(jī)通信中的應(yīng)用[J].低壓電器,2008(2):8-11.
[8]Modbus協(xié)議[EB/OL].,2007.
篇5
關(guān)鍵詞:風(fēng)電場;遠(yuǎn)程監(jiān)控;SCADA;Modbus/TCP;PLC
中圖分類號:TP277 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:1674-7712 (2014) 02-0000-01
對風(fēng)力發(fā)電機(jī)組進(jìn)行遠(yuǎn)程監(jiān)視控制十分必要,而風(fēng)電廠遠(yuǎn)程監(jiān)控系統(tǒng)的軟件則是重中之重,它直接決定了整個(gè)系統(tǒng)的穩(wěn)定性和效率。
Modbus/TCP協(xié)議目前應(yīng)用廣泛,絕大多數(shù)廠商的PLC都支持Modbus/TCP協(xié)議,其具有良好的通用性,因此基于Modbus/TCP協(xié)議開發(fā)客戶端程序已成為風(fēng)電遠(yuǎn)程監(jiān)控系統(tǒng)一種行之有效的方法。
一、Modbus/TCP協(xié)議
Modbus/TCP協(xié)議以一種非常簡單的方式將Modbus幀嵌入到TCP幀中,使其成為工業(yè)以太網(wǎng)應(yīng)用層協(xié)議,Modbus協(xié)議層在TCP之上,其主要完成的任務(wù)為:在服務(wù)器端,負(fù)責(zé)解譯來自客戶端的Modbus幀,執(zhí)行相應(yīng)的請求[1]。
Modbus TCP協(xié)議的幀格式如表1所示。應(yīng)用協(xié)議報(bào)頭分為4個(gè)部分,數(shù)據(jù)標(biāo)識(shí)符用來標(biāo)識(shí)Modbus幀的次序,每多發(fā)送一個(gè)Modbus幀,該值加1;協(xié)議標(biāo)識(shí)符用來確認(rèn)是不是Modbus協(xié)議,如果是Modbus協(xié)議用1表示,其他協(xié)議用0表示;接下來2個(gè)字節(jié)用來表示后續(xù)字節(jié)數(shù),即從單元標(biāo)識(shí)符開始一直到數(shù)據(jù)域結(jié)束的字節(jié)數(shù),單元標(biāo)識(shí)符用來標(biāo)識(shí)Modbus串行線上的某個(gè)設(shè)備單元,由于風(fēng)機(jī)都是網(wǎng)絡(luò)結(jié)構(gòu),所以這一字節(jié)并沒有實(shí)際意義,填0x0或0xFF即可。功能碼的含義如表2所示。數(shù)據(jù)域則添加要發(fā)送的數(shù)據(jù),如果是向PLC發(fā)送讀請求的話,數(shù)據(jù)域?yàn)橐x取的寄存器起始地址和要讀取的寄存器個(gè)數(shù),如果是向PLC發(fā)送寫請求,則數(shù)據(jù)域?yàn)橐獙懭氲募拇嫫髌鹗嫉刂泛鸵獙懭氲募拇嫫鱾€(gè)數(shù)、需要寫入的字節(jié)數(shù)以及需要寫入的數(shù)據(jù)。
一、運(yùn)用C#編程實(shí)現(xiàn)通訊
C#是微軟公司設(shè)計(jì)的一種編程語言,是從C和C++派生來的一種簡單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z言,并且能夠與.NET框架完美結(jié)合[2]。
為了簡化網(wǎng)絡(luò)編程復(fù)雜度,.NET對套接字又進(jìn)行了封裝,封裝后的類就是.Sockets命名空間下的TcpListener類和TcpClient類。但是要注意,TcpListener和TcpClient只支持標(biāo)準(zhǔn)協(xié)議編程。如果希望編寫非標(biāo)準(zhǔn)協(xié)議的程序,只能使用套接字來實(shí)現(xiàn)[3]。
核心代碼
值得一提的是,由于PLC與計(jì)算機(jī)的數(shù)據(jù)存儲(chǔ)方式可能不同,因此需要進(jìn)行大小端判斷及轉(zhuǎn)換,轉(zhuǎn)換可以采用Reverse()方法。軟件界面的設(shè)計(jì)如圖2所示,通過該界面可以實(shí)現(xiàn)對風(fēng)機(jī)進(jìn)行啟停控制,功率調(diào)節(jié),數(shù)據(jù)采集,繪制圖表,查看故障等功能,可滿足風(fēng)電場遠(yuǎn)程監(jiān)控系統(tǒng)的絕大部分需求。
三、結(jié)束語
實(shí)踐表明,該軟件通過Modbus TCP協(xié)議與風(fēng)力發(fā)電機(jī)組實(shí)現(xiàn)了數(shù)據(jù)交互,可通過上位機(jī)對機(jī)組進(jìn)行啟動(dòng)、停機(jī)、復(fù)位、限定功率等控制,查看機(jī)組各傳感器反饋數(shù)據(jù),查看故障代碼,運(yùn)行穩(wěn)定,操作簡單,具有實(shí)際價(jià)值。
參考文獻(xiàn):
[1]郝曉弘,祖守圓,徐維濤.基于VC的Modbus/TCP協(xié)議模型通信測試軟件的實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2006.
篇6
關(guān)鍵詞:Modbus TCP/IP;制冷機(jī)組;套接字
中圖分類號:TP393文獻(xiàn)標(biāo)識(shí)碼:A文章編號:1009-3044(2008)30-0553-02
Based on The Mobus TCP/IP Protocol Realization
WANG Ke-peng
(Tongji University, Shanghai 201804, China)
Abstract: Based on the combination of the Modbus protocol and TCP/IP protocol, remote network communication was realized. Due to adopting technology of socket and multithread, it makes information of Modbus protocol to be transmited in Internet via TCP/IP protocol, more expanded application of Modbus protocol, and realized remote network communication in Modbus network that is made up of the controller and related chiller devices.
Key words: modbus TCP/IP; chiller; socket
1 引言
Modbus是一種通訊協(xié)議,是基于客戶機(jī)端和服務(wù)器端方式連設(shè)備,實(shí)現(xiàn)設(shè)備間的數(shù)據(jù)交換。基于Modbus應(yīng)用協(xié)議族的工業(yè)以太網(wǎng)解決方案已經(jīng)逐漸應(yīng)用于各種現(xiàn)場測控領(lǐng)域。而工業(yè)以太網(wǎng)的領(lǐng)先者M(jìn)odbus TCP/IP也正逐漸成為一種自動(dòng)化控制的通信協(xié)議標(biāo)準(zhǔn),在我們的風(fēng)洞監(jiān)控系統(tǒng)中的子系統(tǒng)制冷機(jī)組的監(jiān)控功能就是利用Modbus TCP/IP 協(xié)議來實(shí)現(xiàn)了對遠(yuǎn)程制冷機(jī)組的數(shù)據(jù)提取和數(shù)據(jù)傳輸從而達(dá)到監(jiān)控目的。
2 Modbus TCP/IP協(xié)議簡介
Modbus/TCP報(bào)文服務(wù)采用客戶端/服務(wù)器的模式交換實(shí)時(shí)信息,該模式基于以下四種類型的報(bào)文:Modbus請求、Modbus確認(rèn)、Modbus指示和Modbus響應(yīng)。(如圖1)
請求(Request):客戶端為開始事物處理而發(fā)出的信息。
指示(Indication):服務(wù)器端接收到的請求信息。
響應(yīng)(Response):由服務(wù)器端發(fā)出的響應(yīng)信息。
確認(rèn)(Confirmation):客戶端接收到響應(yīng)信息。
3 Modbus TCP/IP協(xié)議結(jié)構(gòu)
常用的Modbus報(bào)文格式由附加地址、功能代碼、數(shù)據(jù)域組成,與通常的Modbus不同,在Modbus/TCP報(bào)文不再需要CRC-16或LRC校驗(yàn)域。因?yàn)門CP/IP協(xié)議和以太網(wǎng)的鏈路層校驗(yàn)機(jī)制保證了數(shù)據(jù)包傳遞的正確性。報(bào)文的具體格式(如圖2)。
另外,報(bào)文中增加的專用的MAPH頭(Modbus Application Protocol Header),用以識(shí)別Modbus應(yīng)用數(shù)據(jù)單元ADU(Application Data Unit),該頭的具體組成及含義如表1所示。
Modbus TCP功能代碼概要:功能代碼劃分:按應(yīng)用深淺,可分為3個(gè)類別。
類別0,對于客戶機(jī)/服務(wù)器最小的可用子集:讀多個(gè)保持寄存器(fc.3);寫多個(gè)保持寄存器(fc.16)。
類別1,可實(shí)現(xiàn)基本互易操作的常用代碼:讀線圈(fc.1);讀開關(guān)量輸入(fc.2);讀輸入寄存
(fc.4);寫線圈(fc.5);寫單一寄存器(fc.6)。
類別2,用于人機(jī)界面、監(jiān)控系統(tǒng)的例行操作和數(shù)據(jù)傳送功能:強(qiáng)制多個(gè)線圈(fc.15);讀通用寄存器(fc.20);寫通用寄存器(fc.21);屏蔽寫寄存器(fc.22);讀寫寄存器(fc.23)
4 結(jié)合Modbus TCP/IP在風(fēng)洞監(jiān)測系統(tǒng)的應(yīng)用
涉及到Modbus TCP/IP通信的模塊流程:其中該模塊用到的Modbus的功能代碼為寫線圈(fc.5)、讀多個(gè)保持寄存器(fc.3)。
該模塊對象在風(fēng)動(dòng)系統(tǒng)中為chiller,其中封裝了寫線圈(fc.5)和讀多個(gè)保持寄存器(fc.3),在模塊對象chiller的接口分別為
ForeceSingleCoils(int _transaction, int _protocolIdentifier, int _length, byte _unitId, byte _function, int _dataAddress, int _inputData)
ReadHoldingRegister(int _transaction, int _protocolIdentifier, int _length, byte _unitId, byte _function, int _dataAddress, int _numUnit)
在服務(wù)端有兩臺(tái)制冷機(jī)組 compressor F1,compressor F2
1) 開關(guān)控制步驟:其中A1為對compressor F1的開關(guān)控制,A2為對compressor F2的開關(guān)控制
首先向server發(fā)送連接請求進(jìn)行基于tcp的以太網(wǎng)的連接,如果連接成功,則做A1到F1的連接,起動(dòng)過程如下:
由B判斷是否與Server連接成功,如果未連接成功,則轉(zhuǎn)向繼續(xù)想Server請求連接,如果連接成功,則轉(zhuǎn)向C調(diào)用chiller.ForceSingleCoils()再到D調(diào)用Assemble()返回封裝好的buffer,最后到E調(diào)用m_Socket.SendData().,其中compressor1_ID是compressor F1的unitId。
發(fā)命令:chiller.ForceSingleCoils(1, 0, 6, compressor1_ID, 5, 61, 1))->
SubSystemSocket.m_Socket.SendData(Assemble(1, 0, 6, compressor1_ID, 5, 61, 1))(其中Assemble()是根據(jù)Modbus tcp規(guī)定對數(shù)據(jù)進(jìn)行封裝的過程,并返回一個(gè)數(shù)據(jù)塊buffer供套接字作參數(shù)發(fā)送到server再根據(jù)其中的unitId找到對應(yīng)的compressor,并將其設(shè)置為開啟狀態(tài),如果開啟成功,則返回原命令,如果開啟不成功,則把5+80作為functioncode的值返回。
2) 監(jiān)測compressor各參數(shù)數(shù)值步驟:
當(dāng)發(fā)送一個(gè)讀取數(shù)據(jù)的命令時(shí)由B判斷是否與compressor F1連接成功,如果未連接成功,則轉(zhuǎn)向繼續(xù)向compressor F1請求連接,如果連接成功,則轉(zhuǎn)向C調(diào)用chiller.ReadHoldingRegitsters再到D調(diào)用Assemble()返回封裝好的buffer,最后到E調(diào)用m_Socket.SendData().,其中compressor1_ID是compressor F1的unitId)
發(fā)命令:chiller.ReadHoldingRegisters(1, 0, 6, compressor1_ID, 3, 62, 5))->
SubSystemSocket.m_Socket.SendData(Assemble(1, 0, 6, compressor1_ID, 3, 62, 5))其中Assemble()是根據(jù)Modbus tcp規(guī)定對數(shù)據(jù)進(jìn)行封裝的過程,并返回一個(gè)數(shù)據(jù)塊buffer供套接字作參數(shù)發(fā)送到server再根據(jù)其中的unitId找到對應(yīng)的compressor,并讀取從_dataAddress開始的連續(xù)_numUnit個(gè)值,如果讀取成功,則返回值,如果讀取不成功,則把3+80作為functioncode的值返回。
篇7
引 言
每一個(gè)油田都擁有眾多的油氣井, 并且分布在山川曠野里,油氣井的管理方式多為由人工每日值守,定時(shí)檢查設(shè)備運(yùn)行情況,記錄相關(guān)數(shù)據(jù)。這種方式增加了用工人數(shù),加大了護(hù)井工勞動(dòng)強(qiáng)度,最重要的是影響對設(shè)備的監(jiān)控。當(dāng)抽油機(jī)、電泵出現(xiàn)微小故障時(shí),往往很難被人工及時(shí)發(fā)現(xiàn),從而得不到有效地防護(hù)與控制[9]。
為了能有效地發(fā)現(xiàn)油井、地層、油藏的變化,可用油井遠(yuǎn)程測控系統(tǒng),通過在抽油機(jī)上安裝位移傳感器和載荷傳感器,檢測抽油機(jī)的工況,實(shí)時(shí)在線監(jiān)測抽油機(jī)工作參數(shù),及時(shí)發(fā)現(xiàn)故障并報(bào)警,及時(shí)維護(hù)。本文提出了一種基于rtu的油井遠(yuǎn)程測控系統(tǒng)的數(shù)據(jù)采集與傳輸層設(shè)計(jì)方案,并將該方案用于實(shí)際的井場應(yīng)用中。
1 油井遠(yuǎn)程測控系統(tǒng)總體架構(gòu)
油井遠(yuǎn)程測控系統(tǒng)的總體架構(gòu)如圖1所示,整個(gè)測控系統(tǒng)的組網(wǎng)架構(gòu)分為現(xiàn)場局域網(wǎng)、企業(yè)信息網(wǎng)兩大部分。網(wǎng)絡(luò)拓?fù)洳捎梅謱有切屯負(fù)洌菫榱嗽谥醒霚y控室的中央測控服務(wù)器與現(xiàn)場局域網(wǎng)的各個(gè)測控服務(wù)器的測控對象之間建立更有效的連接方式。每個(gè)測控分站設(shè)測控服務(wù)器,實(shí)時(shí)發(fā)送或讀取的井場設(shè)備數(shù)據(jù)先經(jīng)測控服務(wù)器處理后再并行傳輸?shù)街醒霚y控服務(wù)器,這樣既讓等級高的設(shè)備預(yù)警信號得到現(xiàn)場級的及時(shí)響應(yīng),又減輕了中央測控服務(wù)器處理數(shù)據(jù)的壓力。web服務(wù)器與中央測控服務(wù)器通過數(shù)據(jù)庫服務(wù)器連接,這種連接方式使web服務(wù)器面向的對象是數(shù)據(jù)庫服務(wù)器,有利于web服務(wù)器在處理管理用戶的指令時(shí)與中央監(jiān)控服務(wù)器保持一定的時(shí)差,避免了相互動(dòng)作間的沖突[2]。而所有這些數(shù)據(jù)來自于測控服務(wù)器通過井場數(shù)據(jù)采集與傳輸層得到的。it目前最常見的數(shù)據(jù)采集與傳輸層的工作方式有圖1所示的兩種情況。其中井場1針對安裝多個(gè)傳感器的油氣井,在每個(gè)油氣井處安裝一個(gè)rtu從站,能夠?qū)υ撚蜌饩膫鞲衅鬟M(jìn)行統(tǒng)一管理,并在每個(gè)井場設(shè)置一個(gè)rtu主站,采用主叫/從響應(yīng)的方式,采集各從站的傳感器數(shù)據(jù),然后將各從站數(shù)據(jù)上傳到上位機(jī)(測控服務(wù)器);井場2針對安裝幾個(gè)傳感器的油氣井,在每個(gè)井場放置一個(gè)rtu,直接將傳感器的數(shù)據(jù)采集后發(fā)送到上位機(jī);為了能夠兼容這兩種工作方式,本文設(shè)計(jì)了一個(gè)基于rtu的數(shù)據(jù)采集與傳輸層系統(tǒng)軟件。
2 數(shù)據(jù)采集與傳輸層硬件基礎(chǔ)——rtu
有些油氣田由于地理原因,不易鋪設(shè)電纜,本系統(tǒng)引入物聯(lián)網(wǎng)技術(shù),加入無線通信zigbee模塊,并利用其自組織原理,實(shí)現(xiàn)在井場無線自組織尋址和數(shù)據(jù)傳輸,可以簡單、方便地實(shí)現(xiàn)井場實(shí)時(shí)數(shù)據(jù)采集,利用這些有效數(shù)據(jù)指導(dǎo)油田油氣生產(chǎn),提高產(chǎn)量,其構(gòu)成一個(gè)物聯(lián)網(wǎng)回路,改變了油田生產(chǎn)方式[5]。
油井遠(yuǎn)程測控系統(tǒng)rtu采用samsung公司的s3c2440a,具有400 mhz的工作頻率,主要控制數(shù)據(jù)流的輸入輸出;采用具有2 mb存儲(chǔ)能力的nor flash (en29lv160ab)存儲(chǔ)程序;用有128 mb存儲(chǔ)能力的nand flash(k9f2g08u0b)存儲(chǔ)數(shù)據(jù);利用ad轉(zhuǎn)換器ads7952采集8通道12位模擬數(shù)據(jù);系統(tǒng)環(huán)境溫度由溫度傳感器tmp100獲得;考慮到zigbee模塊的接口以及有線方式下的長距離傳輸?shù)纫蛩兀瑀tu的串行鏈路口為rs 232及rs 485;為與測控服務(wù)器pc機(jī)相連,rtu采用dm9000實(shí)現(xiàn)以太網(wǎng)連接;rtu的初始配置信息采用e2prom存儲(chǔ);rtu內(nèi)還包含隔離電路、控制單元等幾個(gè)部分。rtu的硬件框圖如圖2所示。
3 數(shù)據(jù)采集與傳輸層系統(tǒng)軟件
3.1 數(shù)據(jù)采集與傳輸層通信協(xié)議
modbus通信協(xié)議已經(jīng)非常廣泛地應(yīng)用于自動(dòng)控制和通信領(lǐng)域中,通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以實(shí)現(xiàn)通信。modbus網(wǎng)絡(luò)屬于一種主從網(wǎng)絡(luò),允許一個(gè)主站和一個(gè)或多個(gè)從站通信。它采用命令/應(yīng)答方式,每種命令報(bào)文都對應(yīng)著一種應(yīng)答報(bào)文。網(wǎng)絡(luò)中的每個(gè)從站都必須分配一個(gè)唯一的地址。主站發(fā)出的命令中含有要求訪問的從站地址,只有具有該地址的從站才會(huì)對該命令響應(yīng)。
3.1.1 modbus/rtu通信協(xié)議
rtu主/從站串口通信時(shí),通常使用的是modbus/rtu傳輸模式。在modbus報(bào)文rtu幀中,如果兩個(gè)字符之間的空閑間隔大于1.5個(gè)字符時(shí)間,那就認(rèn)為報(bào)文幀不完整,此時(shí)接收站應(yīng)該丟棄這個(gè)報(bào)文。時(shí)長至少為3.5個(gè)字符時(shí)間的空閑間隔將報(bào)文幀區(qū)分。rtu消息幀的典型格式如表1所列。
表1 modbus/rtu消息幀典型格式
地址設(shè)備功能碼數(shù)據(jù)crc校驗(yàn)
8 bits8 bits8n bits16 bits
轉(zhuǎn)貼于
3.1.2 modbus/tcp通信協(xié)議
modbus/tcp是一種應(yīng)用層的協(xié)議,上層為 modbus協(xié)議,下層為 tcp協(xié)議,它規(guī)定了網(wǎng)絡(luò)互聯(lián)節(jié)點(diǎn)間的請求/應(yīng)答的通信方式。幀格式必須嚴(yán)格遵守協(xié)議所規(guī)定的adu(application data unit)格式,才能在以太網(wǎng)上實(shí)現(xiàn)數(shù)據(jù)的傳輸。圖3所示即為 modbus/tcp的數(shù)據(jù)幀格式[3]。
mbap報(bào)文頭 (modbus application protocol header)是tcp/ip使用的專用報(bào)文頭,用來識(shí)別modbus的應(yīng)用數(shù)據(jù)單元。mbap共有 7個(gè)字節(jié),其具體組成及含義如表 2所列。
國際互聯(lián)網(wǎng)編號分配管理機(jī)構(gòu)iana(internet assigned numbers authority)專門為其賦予了一個(gè)tcp端口號502端口,利用tcp發(fā)送所有的modbus/tcp adu[1]。
3.1.3 modbus/tcp與modbus rtu數(shù)據(jù)幀的區(qū)別
modbus/tcp雖然包括了從站地址、功能碼和傳輸?shù)臄?shù)據(jù),但是沒有校驗(yàn)控制碼,這是因?yàn)閙odbus/tcp校驗(yàn)功能已經(jīng)在下面的四層如 tcp/ip協(xié)議和鏈路層的校驗(yàn)機(jī)制得到了保證。
3.2 數(shù)據(jù)采集與傳輸層系統(tǒng)軟件設(shè)計(jì)
油井遠(yuǎn)程測控系統(tǒng)的數(shù)據(jù)采集與傳輸層主要完成的功能:傳感器數(shù)據(jù)的采集、傳輸和對繼電器的控制。圖1中提到了兩種常見的工作方式。在井場1中存在rtu主站和從站:主站主要負(fù)責(zé)對各從站進(jìn)行輪詢、數(shù)據(jù)打包和向上位機(jī)發(fā)送數(shù)據(jù),從站主要負(fù)責(zé)數(shù)據(jù)的采集、繼電器的控制和輪詢命令的響應(yīng),主從站之間的通信使用的是modbus/rtu。在井場2中只存在一個(gè)rtu,主要完成數(shù)據(jù)的采集、繼電器的控制和向上位機(jī)發(fā)送數(shù)據(jù),通信使用的是modbus/tcp。在數(shù)據(jù)采集與傳輸層的工作過程中,考慮到系統(tǒng)的兼容性,對rtu軟件設(shè)計(jì)提出了可配置的要求,不需要重新下載程序,只需要使用系統(tǒng)配置軟件就可選擇不同的工作方式和通信方式,這就保證了系統(tǒng)的可操作性和兼容性,系統(tǒng)的適應(yīng)性大大加強(qiáng)。
在軟件開發(fā)過程中,考慮到串行通信速度較慢的特點(diǎn),采用多線程技術(shù),故引入實(shí)時(shí)操作系統(tǒng)μc/os_ii,將modbus/rtu通信、modbus/tcp通信等放在單獨(dú)的線程中進(jìn)行,而數(shù)據(jù)采集和控制等則采用另外的線程實(shí)現(xiàn)。
3.2.1 μc/os_ii的移植
μc/os_ii是可移植、可剪裁的搶占式實(shí)時(shí)多任務(wù)操作系統(tǒng)內(nèi)核,適用于工業(yè)控制中的實(shí)時(shí)監(jiān)控。本系統(tǒng)成功地將實(shí)時(shí)操作系統(tǒng)μc/os_ii移植到s3c2440a微處理器上,并實(shí)現(xiàn)了modbus通信協(xié)議。
μc/os_ii可以管理64個(gè)任務(wù),具有信號量、互斥信號量、消息隊(duì)列、任務(wù)管理、時(shí)間管理和內(nèi)存塊管理等系統(tǒng)功能。μc/os_ii的移植主要包括三部分代碼:μc/os_ii核心代碼、μc/os_ii配置代碼、μc/os_ii移植代碼。其中μc/os_ii移植代碼包括1個(gè)匯編文件、1個(gè)c程序文件和1個(gè)頭文件。這部分代碼與微處理器相關(guān),是移植的關(guān)鍵[6]。
3.2.2 modbus通信的實(shí)現(xiàn)
rtu與上位機(jī)使用modbus/tcp進(jìn)行以太網(wǎng)通信時(shí),需不斷接收上位機(jī)發(fā)送的查詢命令,處于服務(wù)器(從站)狀態(tài)。rtu在使用modbus/rtu進(jìn)行串口通信時(shí),需單獨(dú)完成主從站功能。在實(shí)際應(yīng)用中,不存在modbus/tcp和modbus/rtu的從站并存在同一rtu的情況,因而在程序編寫過程中,modbus/tcp和modbus/rtu的從站使用同一個(gè)modbus從站庫,但對其幀頭的處理略有不同。以下分別講述modbus/tcp服務(wù)器(從站)在tcp/ip協(xié)議棧上的實(shí)現(xiàn)以及modbus/rtu主站在串口通信上的實(shí)現(xiàn)。
(1) modbus/tcp通信協(xié)議實(shí)現(xiàn)
由于操作系統(tǒng)μc/os_ii本身沒有tcp/ip協(xié)議棧,故先移植嵌入tcp/ip協(xié)議棧,再編寫modbus/tcp服務(wù)器(從站)程序。在μc/os_ii下嵌入了tcp/ip協(xié)議棧后就監(jiān)聽tcp502端口的連接請求,只有在與客戶機(jī)建立了連接之后才能進(jìn)行數(shù)據(jù)處理。服務(wù)器端在收到客戶機(jī)的請求之后,會(huì)確認(rèn)和客戶機(jī)的連接,同時(shí)接收并分析客戶機(jī)的請求報(bào)文。如果 mbap報(bào)文頭正確,則讀完所有的報(bào)文,只有協(xié)議類型值為0x00時(shí)才對請求幀進(jìn)行下一步操作,否則直接丟棄報(bào)文。接著分析 pdu中的功能代碼,不同的功能對參數(shù)要求也不同,最后根據(jù)數(shù)據(jù)域中的參數(shù)規(guī)定,執(zhí)行相應(yīng)的操作。若有錯(cuò)誤出現(xiàn),直接丟棄報(bào)文,仍繼續(xù)處理 pdu的數(shù)據(jù)顯得不必要,影響實(shí)時(shí)性。根據(jù)對客戶端請求報(bào)文的分析處理,有兩種響應(yīng)結(jié)果,一種是正常的響應(yīng)報(bào)文,另一種是異常響應(yīng)報(bào)文,即返回的是錯(cuò)誤信息。其modbus/tcp的從站通信流程如圖4所示。
圖4 modbus/tcp服務(wù)器(從站)設(shè)計(jì)流程圖
(2) modbus/rtu通信協(xié)議實(shí)現(xiàn)
modbus主站需要處理發(fā)送請求幀、等待應(yīng)答、處理應(yīng)答、處理差錯(cuò)和等待轉(zhuǎn)換延時(shí)等事件。其主站設(shè)計(jì)流程如圖5所示。
modbus/rtu報(bào)文幀是否完整和幀與幀之間的區(qū)分可以通過空閑間隔來實(shí)現(xiàn),但這需要使用定時(shí)器完成1.5個(gè)字符和3.5個(gè)字符的定時(shí),并在定時(shí)到后,進(jìn)入接收處理函數(shù),然后實(shí)現(xiàn)adu數(shù)據(jù)到pdu數(shù)據(jù)的處理。
3.2.3 系統(tǒng)軟件的實(shí)現(xiàn)
系統(tǒng)上電后,首先進(jìn)行初始化操作,主要包括設(shè)置串口、定時(shí)器等內(nèi)容,并讀取eeprom中的配置信轉(zhuǎn)貼于
息,對rtu進(jìn)行配置,包括主從工作模式選擇、ip地址設(shè)置、輪詢的通信方式選擇、傳感器的開關(guān)狀態(tài)、繼電器輸出狀態(tài)等。若處于主站狀態(tài),還可以獲取從站配置信息并配置從站,配置成功后,主站開始對各從站進(jìn)行掃描,并對從站報(bào)文進(jìn)行處理;每掃描完一個(gè)從站,主站就對輪詢到的數(shù)據(jù)進(jìn)行存儲(chǔ);在掃描從站的同時(shí),如果主站傳感器和外部繼電器處于開狀態(tài),會(huì)同時(shí)采集模擬通道和數(shù)字通道的數(shù)據(jù)并控制外部繼電器,采集到的數(shù)據(jù)存于相應(yīng)寄存器中,等待上位機(jī)請求命令,按照modbus協(xié)議將相應(yīng)數(shù)據(jù)打包,并上傳到上位機(jī)。若處于從站,采集模擬通道和數(shù)字通道的數(shù)據(jù)并控制外部繼電器,采集到的數(shù)據(jù)存于相應(yīng)寄存器中,并等待rtu主站輪詢命令,當(dāng)輪詢到該從站時(shí),按modbus協(xié)議打包數(shù)據(jù)并發(fā)送到rtu主站。不管該rtu是主站還是從站,其tcp/ip的服務(wù)器程序一直等待系統(tǒng)配置軟件的配置信息,當(dāng)收到配置信息后,將數(shù)據(jù)存入eeprom并復(fù)位系統(tǒng)程序,整個(gè)系統(tǒng)設(shè)計(jì)流程圖如圖6所示。
從圖6中可以同時(shí)看到modbus/rtu和modbus/tcp的從站處理函數(shù),在實(shí)際應(yīng)用中,rtu處于modbus/rtu主站時(shí),其modbus/rtu從站的處理任務(wù)不運(yùn)行,modbus/tcp從站的處理任務(wù)運(yùn)行,該狀態(tài)下rtu可用于圖1中井場1的rtu主站和井場2的rtu兩種情況;處于modbus/rtu從站時(shí),該狀態(tài)下rtu可用于圖1中井場1的從站情況,以太網(wǎng)服務(wù)器任務(wù)只等待配置信息。
4 測試
本系統(tǒng)的測試采用了第三方的modbus測試工具modbus poll v4.3.3、modbus slave v4.3.1和實(shí)驗(yàn)室自主開發(fā)的配置軟件。
4.1 輪詢測試
利用系統(tǒng)配置軟件的界面如圖7所示,設(shè)置一個(gè)rtu主站和兩個(gè)rtu從站,在一臺(tái)pc機(jī)上運(yùn)行modbus poll程序,模擬modbus/tcp客戶機(jī),通過以太網(wǎng)與rtu主站相連,rtu主從站之間通過無線zigbee模塊(或rs 485模塊)相連。串行通信的波特率設(shè)置為38 400 b/s,無校驗(yàn)位,停止位為1位。
pc端的modbus/tcp客戶機(jī)可向rtu主站發(fā)送命令,并讀取存于rtu主站輸入寄存器的從站數(shù)據(jù)。當(dāng)從站的數(shù)字輸入端接高電平(24 v)時(shí),從modbus poll的對應(yīng)地址可讀取到1,圖8所示是modbus/tcp客戶機(jī)接收到的輪詢數(shù)據(jù),其中地址500~507為從站1中8通道數(shù)字輸入端對應(yīng)的狀態(tài)值;地址508~515為從站2中8通道數(shù)字輸入端對應(yīng)的狀態(tài)值。經(jīng)多次測量,均正確無誤。
4.2 控制測試
pc端模擬的modbus/tcp客戶機(jī)向rtu的保持寄存器寫入數(shù)據(jù),rtu會(huì)將對應(yīng)寄存器的數(shù)據(jù)輸出到對應(yīng)的數(shù)字輸出端口,例如地址100對應(yīng)數(shù)字輸出端口0,當(dāng)對地址100置1時(shí),對應(yīng)指示燈亮,輸出高電平。
4.3 數(shù)據(jù)采集測試
轉(zhuǎn)貼于
rtu模擬輸入端0接一定頻率的正弦波,數(shù)字輸入端接高電平信號,利用modbus poll查詢r(jià)tu模擬輸入端與數(shù)字輸入端的數(shù)據(jù)。
圖9所示為modbus/tcp客戶機(jī)所接收到的采集數(shù)據(jù)。
rtu采集到數(shù)字輸入端的脈沖值以及開關(guān)狀態(tài),地址0~7對應(yīng)相應(yīng)通道的脈沖值,地址8~15對應(yīng)相應(yīng)通道的開關(guān)狀態(tài)值;地址19為rtu板上的溫度傳感器的值,當(dāng)前rtu的溫度是24 ℃;地址20~49為模擬通道0采集到的正弦波信號,之后為其他通道采集到的ad值,每個(gè)通道的采樣點(diǎn)數(shù)和頻率可調(diào)。
篇8
關(guān)鍵詞:PCC, Modbus RTU協(xié)議,變頻器,通訊故障
0引言:
隨著工業(yè)的發(fā)展,以PLC或PCC為主的自動(dòng)化儀表系統(tǒng)應(yīng)用越來越廣泛,這些系統(tǒng)中應(yīng)用到了各種通信協(xié)議,在系統(tǒng)設(shè)計(jì)中,可能會(huì)出現(xiàn)各種通信故障,通訊故障的來源可能是硬件或者軟件,排除時(shí)要一一隔離檢測。本文介紹的是一種基于軟件測試硬件的方法。
淄博一家企業(yè)的復(fù)合管材生產(chǎn)線采用了先進(jìn)的自動(dòng)化儀表系統(tǒng),主要由觸摸屏,PCC和變頻器組成。其中變頻器的通信協(xié)議為MODBUS RTU協(xié)議。在系統(tǒng)初步設(shè)計(jì)中,變頻器與PCC的通訊出現(xiàn)故障,變頻器不能執(zhí)行來自PCC的指令。通過應(yīng)用MBRTU軟件,發(fā)現(xiàn)了故障根源所在,解決了通訊問題。
1MODBUS RTU協(xié)議與MBRTU:
1.1 Modbus 協(xié)議
Modbus 協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以通信。它已經(jīng)成為一通用工業(yè)標(biāo)準(zhǔn)。有了它,不同廠商生產(chǎn)的控制設(shè)備可以連成工業(yè)網(wǎng)絡(luò),進(jìn)行集中監(jiān)控。
此協(xié)議定義了一個(gè)控制器能認(rèn)識(shí)使用的消息結(jié)構(gòu),而不管它們是經(jīng)過何種網(wǎng)絡(luò)進(jìn)行通信的。它描述了控制器請求訪問其它設(shè)備的過程,如果回應(yīng)來自其它設(shè)備的請求,以及怎樣偵測錯(cuò)誤并記錄。它制定了消息域格局和內(nèi)容的公共格式。
當(dāng)在Modbus 網(wǎng)絡(luò)上通信時(shí),此協(xié)議決定了每個(gè)控制器須要知道它們的設(shè)備地址,識(shí)別按地址發(fā)來的消息,決定要產(chǎn)生何種行動(dòng)。如果需要回應(yīng),控制器將生成反饋信息并用 Modbus 協(xié)議發(fā)出。在其它網(wǎng)絡(luò)上,包含了 Modbus 協(xié)議的消息轉(zhuǎn)換為在此網(wǎng)絡(luò)上使用的幀或包結(jié)構(gòu)。這種轉(zhuǎn)換也擴(kuò)展了根據(jù)具體的網(wǎng)絡(luò)解決節(jié)地址、路由路徑及錯(cuò)誤檢測的方法。
MODBUS 協(xié)議又可以分為MODBUS RTU協(xié)議和MODBUS ASCII協(xié)議。在MODBUS RTU協(xié)議中,最常用的是4個(gè)功能碼,依次是:01讀線圈,03讀寄存器,05寫線圈和06寫寄存器。
1.2MBRTU
MBRTU是由ICPDAS公司編寫的、為測試MODBUS RTU協(xié)議中的從站的一個(gè)小型軟件。
圖1.1 MBRTU 界面
軟件面板分為幾部分:串口狀態(tài)(COM status),協(xié)議說明(Protocol Description),查詢模式(Polling mode),計(jì)時(shí)模式(Timer mode),數(shù)據(jù)統(tǒng)計(jì)(Statistics),命令窗口(Command)以及消息幀窗口(Commands Responses)。
串口狀態(tài)用于打開通信串口,在此可以選擇合適的串口,波特率,校驗(yàn)方式(N:無校驗(yàn),E:偶校驗(yàn),O:奇校驗(yàn)),數(shù)據(jù)位(8:數(shù)據(jù)位8位,7:數(shù)據(jù)位7位)和停止位(1:停止位1位,2:停止位2位)。查詢模式打開后,軟件以零等待時(shí)間向從機(jī)發(fā)送消息幀,而計(jì)時(shí)模式打開后,軟件以固定時(shí)間間隔向從機(jī)發(fā)送消息幀,數(shù)據(jù)統(tǒng)計(jì)用以統(tǒng)計(jì)查詢和回應(yīng)的字節(jié)數(shù)以及時(shí)間等。通訊口打開后在命令窗口輸入查詢指令,點(diǎn)擊“Send Command”按鈕,軟件即可向從機(jī)發(fā)送指令,打開查詢模式,或者計(jì)時(shí)模式軟件將不間斷的向從機(jī)發(fā)送指令,反之點(diǎn)擊一次飛“Send Command”僅向從機(jī)發(fā)送一次指令。點(diǎn)擊“Clear Lists”可以將消息窗口的數(shù)據(jù)顯示清除,點(diǎn)擊“Exit Program”可以退出軟件。
2調(diào)試過程
2.1 故障現(xiàn)象
將PCC與變頻器聯(lián)接后,在PCC上寫入頻率25.0Hz,輸入啟動(dòng)命令后,電機(jī)沒有運(yùn)轉(zhuǎn),PLC數(shù)據(jù)顯示發(fā)送消息幀和接收數(shù)據(jù)幀時(shí)出錯(cuò)。
2.2調(diào)試過程
(1)將變頻器的通信參數(shù)設(shè)置為波特率9600,校驗(yàn)方式為偶校驗(yàn),停止位為1位,網(wǎng)絡(luò)地址為1,同時(shí)將變頻器的頻率指令源和運(yùn)行指令源都設(shè)為Modbus網(wǎng)絡(luò)輸入。
MBRTU的通信參數(shù)設(shè)定為與變頻器相同,即9600,E,8,1,通信口選擇COM1。用RS485-232轉(zhuǎn)換器和RS485通信線將變頻器和電腦聯(lián)接起來。
(2)在MBRTU的Command指令中輸入“01 06 00 23 01 F4”,點(diǎn)擊“Send Command”發(fā)送該指令。按照協(xié)議說明,01表示變頻器的網(wǎng)絡(luò)地址,06為寫單個(gè)寄存器的功能碼,00 23表示變頻器的頻率寄存器,地址為0x0023, 01 F4轉(zhuǎn)化成十進(jìn)制為500,即輸入頻率為50Hz。變頻器返回?cái)?shù)據(jù)位“01 86 22 C2 79”,其中22 表示變頻器不支持此功能。
在Command指令中輸入“01 05 00 01 FF 00”,即給變頻器寫入運(yùn)行命令,此時(shí)變頻的RUN指示燈亮,但電機(jī)仍不運(yùn)轉(zhuǎn)。變頻器的RUN燈亮,基本上排除了變頻器和通訊線存在故障的可能。
在不斷的試驗(yàn)中發(fā)現(xiàn),寫入功能碼01、03和05時(shí),變頻器都能按照期望值給與回復(fù),但寫入06功能碼時(shí),總是返回?cái)?shù)據(jù)變頻器不支持此功能。用03指令查詢變頻器的輸出頻率(地址為0x000A),結(jié)果顯示為0。
初步總結(jié)為變頻器的頻率輸入出現(xiàn)錯(cuò)誤。
2.2故障排除
再次查看變頻器的說明書發(fā)現(xiàn),該變頻器在網(wǎng)絡(luò)通信中,頻率來源有兩個(gè):一個(gè)是功能代碼,其寄存器地址為0x0023,另一個(gè)是網(wǎng)絡(luò)頻率輸入,其寄存器地址為0x0001。由于先前在設(shè)定變頻器參數(shù)時(shí),將其頻率源指令設(shè)為Modbus網(wǎng)絡(luò)輸入,應(yīng)該在寫入頻率時(shí),將寄存器地址寫為0x0001。
(1)在Command指令中依次輸入以下三條指令:“01 05 00 01 FF 00”(運(yùn)行),“01 05 00 02 FF 00”(正轉(zhuǎn))和“01 06 00 01 01 F4”輸入頻率50Hz),電機(jī)順時(shí)針運(yùn)轉(zhuǎn),測得轉(zhuǎn)速為1440rpm,和預(yù)期值相同。改變輸入的轉(zhuǎn)向和頻率時(shí),電機(jī)轉(zhuǎn)向和轉(zhuǎn)速都隨之變化。
(2)將變頻器的頻率指令源設(shè)為功能代碼,在Command指令中依次輸入以下三條指令:“01 05 00 01 FF 00”(運(yùn)行),“01 05 00 02 FF 00”(正轉(zhuǎn))和“01 06 00 23 01 F4”(輸入頻率50Hz)。電機(jī)順時(shí)針運(yùn)轉(zhuǎn),轉(zhuǎn)速為1440rpm,和預(yù)期值相同。改變輸入的轉(zhuǎn)向和頻率時(shí),電機(jī)轉(zhuǎn)向和轉(zhuǎn)速都隨之變化。
3.結(jié)語:
(1)不同的頻率源指令下,變頻器寫頻率的寄存器地址不同,頻率源為功能代碼時(shí),既可以在變頻器的操作器上通過調(diào)功能代碼來改變變頻器的輸出頻率,又可以通過在網(wǎng)絡(luò)中改變功能碼的寄存器中的數(shù)值來調(diào)節(jié)頻率。但是在頻率源為Modbus網(wǎng)絡(luò)輸入時(shí),只能通過調(diào)節(jié)對應(yīng)的寄存器的數(shù)值來調(diào)節(jié)頻率。
(2)運(yùn)用MBRTU可以迅速快捷的找出或排除MODBUS網(wǎng)絡(luò)中從機(jī)的通信故障。選擇正確的工具軟件可以有效縮短故障檢測和排除時(shí)間。
參考文獻(xiàn)
[1]姚福強(qiáng),高正中,姚福安.基于PLC和變頻器串行通訊的變頻恒壓供水系統(tǒng)[J]. 控制系統(tǒng),2004,(8):9-10.
[2]孫永民.變頻器結(jié)合PLC在供熱系統(tǒng)中的應(yīng)用[J]. 工程技術(shù),2010,16:70-70.
篇9
系統(tǒng)硬件主要包括主控器、8路溫度傳感器采集電路、無線數(shù)據(jù)傳輸及遠(yuǎn)程計(jì)算機(jī),數(shù)據(jù)通信采用Modbus通信協(xié)議。1.1主控器主控器選擇了一款顯控觸摸屏Samkoon-7b,26萬色的4線高精度電阻觸摸屏,兩個(gè)通信口COM(RS232、RS422、RS485),色彩豐富,顯示內(nèi)容較多,控件齊全;特別是除了顯示還可以實(shí)現(xiàn)控制,通過串口可與外部部件進(jìn)行數(shù)據(jù)的傳輸[3]。本設(shè)計(jì)使用Modbus協(xié)議,使其中一個(gè)COM口實(shí)現(xiàn)無線數(shù)據(jù)傳輸?shù)竭h(yuǎn)程計(jì)算機(jī),另外一個(gè)COM口實(shí)現(xiàn)和數(shù)據(jù)采集模塊進(jìn)行數(shù)據(jù)傳輸。同時(shí),觸摸屏實(shí)時(shí)顯示當(dāng)前溫度,顯示界面如圖2所示。觸摸數(shù)據(jù)采集系統(tǒng)按鈕還可以顯示當(dāng)前8個(gè)溫度傳感器所在的層位及溫度值,具有更加直觀的特點(diǎn)。1.2數(shù)據(jù)采集電路數(shù)據(jù)采集電路(見圖3)主要完成溫度數(shù)據(jù)的采集,以Modbus協(xié)議方式將數(shù)據(jù)傳輸?shù)接|摸屏。其中,控制部件選擇的是性價(jià)比高的STC89C51RC,它采用8051核的ISP在系統(tǒng)可編程芯片,最高工作時(shí)鐘頻率可以達(dá)到80MHz,片內(nèi)含可反復(fù)擦寫的Flash只讀程序存儲(chǔ)器,不需要外擴(kuò)存儲(chǔ)器,芯片運(yùn)行速度快、可靠性高[4]。寒地水稻灌溉曬水池中的水溫范圍在4~35℃之內(nèi),所以溫度傳感器選擇了美國DALLAS公司生產(chǎn)的數(shù)字溫度傳感器DS18B20。它的供電電壓范圍寬在3.0~5.5V,測溫范圍可達(dá)到-55~+125℃。DS18B20還具有體積小、功耗低、精度高、可靠性好的特點(diǎn),單總線易于擴(kuò)展多路測量,占用I/O口少,便于和單片機(jī)連接等優(yōu)點(diǎn)[5],適合多點(diǎn)測溫系統(tǒng)。在設(shè)計(jì)中使用了浸水封裝式傳感器,用于防水,滿足系統(tǒng)設(shè)計(jì)需要。數(shù)據(jù)采集電路設(shè)計(jì)了8路溫度采集,加入了一個(gè)4位的開關(guān)電路,用來設(shè)定本采集模塊的地址,串行口可以設(shè)計(jì)為RS485通信方式或者RS232通信方式。由于只對8點(diǎn)溫度采集,只需要一款采集板,所以選擇了RS232通信方式。若采集點(diǎn)很多,可以將電路改為RS485通信方式。這樣在整個(gè)系統(tǒng)中最多可以掛接16塊采集板,采集128點(diǎn)的溫度,也適用于其他需要多路溫度采集的應(yīng)用場合。1.3無線數(shù)據(jù)傳輸數(shù)據(jù)采集電路采集的數(shù)據(jù)需要傳輸?shù)竭h(yuǎn)程計(jì)算機(jī)中,便于存儲(chǔ)、分析、監(jiān)控。GPRS模式走流量需要花費(fèi)一定的費(fèi)用,而曬水池離控制中心距離不到2km,所以選擇了無線數(shù)傳模塊YL-500IW。它是一款高穩(wěn)定性、低功耗、高性價(jià)比的采用GFSK調(diào)制方式的無線透明數(shù)據(jù)收發(fā)模塊,傳輸距離3000m以上,線高度2m、開闊地?zé)o干擾情況下可達(dá)4000m,滿足系統(tǒng)需要。無線數(shù)傳模塊的RS232接口直接連接到觸摸屏的另外一個(gè)COM口中,實(shí)現(xiàn)和遠(yuǎn)程計(jì)算機(jī)的數(shù)據(jù)傳輸。
2系統(tǒng)軟件設(shè)計(jì)
為了實(shí)現(xiàn)觸摸屏與單片機(jī)、觸摸屏與遠(yuǎn)程計(jì)算機(jī)的通訊,需解決通訊協(xié)議的問題。本設(shè)計(jì)中使用開放的Modbus通訊協(xié)議,在觸摸屏與單片機(jī)通信中,以觸摸屏作主站,單片機(jī)作從站;在觸摸屏與遠(yuǎn)程計(jì)算機(jī)通信中,設(shè)置觸摸屏為從站,計(jì)算機(jī)為主站。Samkoon觸摸屏本身支持Modbus通訊協(xié)議,如果單片機(jī)和計(jì)算機(jī)也支持Modbus協(xié)議,它們之間就可以進(jìn)行通信了。觸摸屏與單片機(jī)之間采用的RS232接口直接連接[6],觸摸屏與計(jì)算機(jī)之間通過無線透明傳輸?shù)哪K的RS-232C接口直接連接,傳輸速率設(shè)置為9600kb/s,8位數(shù)據(jù)位,無校驗(yàn)位。2.1基于Modbus協(xié)議的數(shù)據(jù)傳輸Modbus協(xié)議具有極強(qiáng)的開放性,系統(tǒng)選用的顯控觸摸屏自帶Modbus協(xié)議庫[7]。設(shè)計(jì)者無需了解協(xié)議底層規(guī)則,直接設(shè)置觸摸屏相應(yīng)串口的外部寄存器,可自動(dòng)以MODBUS協(xié)議形式讀寫外部控制器的數(shù)據(jù),軟件開發(fā)設(shè)計(jì)非常簡便,和觸摸屏相連的計(jì)算機(jī)及單片機(jī)自編Modbus協(xié)議,就可以實(shí)現(xiàn)三方數(shù)據(jù)通信了。支持Modbus協(xié)議常用的功能碼如表1所示。通過這些功能碼,可讀寫的地址有LB(位地址)、LW(字地址)、RWI(字地址)。系統(tǒng)主要使用了Modbus協(xié)議中的ReadHoldingRegisters報(bào)文(功能碼03)來傳送信息[8]。系統(tǒng)的設(shè)計(jì)中采用了兩套采集裝置:一套用于曬水池水溫監(jiān)測:另一套用于稻田水溫監(jiān)測。所以,兩個(gè)觸摸屏作為從機(jī)時(shí),設(shè)置地址分別為01,02。在數(shù)據(jù)傳輸?shù)倪^程中,作為主機(jī)的計(jì)算機(jī)向從機(jī)觸摸屏發(fā)送指令。主機(jī)觸摸屏向從機(jī)單片機(jī)發(fā)送的指令格式如表2所示,從機(jī)應(yīng)答格式如表3所示。其數(shù)據(jù)都是以十六進(jìn)制的形式發(fā)送和接收。從機(jī)接收到的指令經(jīng)過CRC校驗(yàn),如果正確,則執(zhí)行相應(yīng)傳送命令。主機(jī)接收到數(shù)據(jù)后,同樣需要經(jīng)過CRC校驗(yàn),如果正確開始接收傳感器數(shù)據(jù)。兩個(gè)字節(jié)一個(gè)數(shù)據(jù),分別對應(yīng)各區(qū)溫度值,一共8個(gè)區(qū)16個(gè)字節(jié)數(shù)據(jù);但在顯示時(shí)需要將數(shù)據(jù)除以10,避免有浮點(diǎn)數(shù)傳輸而增加工作量,因?yàn)樵趩纹瑱C(jī)采集端已經(jīng)將數(shù)據(jù)乘以10,使數(shù)據(jù)作為整數(shù)傳輸。2.2系統(tǒng)軟件流程系統(tǒng)軟件主要分為兩部分:一是采集電路與觸摸屏間的數(shù)據(jù)通信,流程圖如圖4所示。觸摸屏作為主機(jī),單片機(jī)為從機(jī),觸摸屏發(fā)出指令,從機(jī)接收到以后送相應(yīng)的數(shù)據(jù),觸摸屏接收后顯示。二是觸摸屏與遠(yuǎn)程計(jì)算機(jī)間數(shù)據(jù)通信,流程圖如圖5所示。計(jì)算機(jī)作為主機(jī),觸摸屏設(shè)置為從機(jī),計(jì)算機(jī)發(fā)送傳輸數(shù)據(jù)指令,觸摸屏接收后,將從單片機(jī)所傳輸來的數(shù)據(jù)再傳輸給計(jì)算機(jī),完成整個(gè)數(shù)據(jù)的采集、顯示、傳輸。所有通信及定時(shí)均以中斷的方式實(shí)現(xiàn),相應(yīng)的處理程序在主程序中執(zhí)行。Modbus通信應(yīng)答程序負(fù)責(zé)完成一次Modbus通信過程,包括解析主站報(bào)文、打包從站響應(yīng)報(bào)文及控制通信接口收發(fā)操作。
3試驗(yàn)與應(yīng)用
本系統(tǒng)在黑龍江省勝利農(nóng)場進(jìn)行實(shí)際應(yīng)用,設(shè)置了兩個(gè)采集點(diǎn):一個(gè)采集曬水池中8個(gè)位置的溫度數(shù)據(jù),實(shí)現(xiàn)對水溫的監(jiān)測;另外一個(gè)采集水稻田中不同層位水溫,采集了大量數(shù)據(jù)用于分析水溫對水稻生長的影響。系統(tǒng)在運(yùn)行中數(shù)據(jù)采集誤差小于±0.5℃,沒有發(fā)現(xiàn)錯(cuò)誤數(shù)據(jù),證明該系統(tǒng)傳輸數(shù)據(jù)可靠、準(zhǔn)確。
4結(jié)語
篇10
關(guān)鍵詞,軸流風(fēng)機(jī),PLC,變頻器
中圖分類號:TN77文獻(xiàn)標(biāo)識(shí)碼: A
1 引言
津?yàn)I輕軌西段工程中,在每個(gè)車站兩端的排熱風(fēng)道內(nèi)各設(shè)置1臺(tái)單向運(yùn)轉(zhuǎn)耐高溫軸流排熱風(fēng)機(jī),它們各自承擔(dān)半個(gè)車站的軌頂排風(fēng)和站臺(tái)下排風(fēng)。其主要用于正常運(yùn)營時(shí)排除車站屏蔽門外停車線區(qū)間的余熱,以減少列車發(fā)熱量對車站區(qū)間的影響。
根據(jù)地鐵運(yùn)營中對單向軸流排熱風(fēng)機(jī)使用的實(shí)際要求,風(fēng)機(jī)控制系統(tǒng)應(yīng)根據(jù)相關(guān)傳感器的監(jiān)測數(shù)據(jù)來調(diào)節(jié)風(fēng)機(jī)的頻率,進(jìn)而通過頻率的變化來改變風(fēng)機(jī)的風(fēng)量,達(dá)到排風(fēng)的目的。本文在控制系統(tǒng)的設(shè)計(jì)上采用了PLC加變頻器技術(shù)的方法,實(shí)現(xiàn)了風(fēng)機(jī)控制在地鐵的實(shí)際應(yīng)用需要并同時(shí)滿足節(jié)能減排的要求。
2系統(tǒng)的控制原理
風(fēng)機(jī)控制系統(tǒng)主要采用了施耐德公司生產(chǎn)的Modicon系列M218型PLC和ATV61系列變頻器等電氣元件產(chǎn)品,其控制電路原理如圖1所示。
圖 1 軸流風(fēng)機(jī)控制電路原理圖
根據(jù)地鐵對設(shè)備兩級管理和三級控制的要求,風(fēng)機(jī)控制除了現(xiàn)場的就地控制,還需要滿足地鐵環(huán)境與設(shè)備監(jiān)控系統(tǒng)(BAS)對風(fēng)機(jī)的遠(yuǎn)程監(jiān)視與控制功能[1]。控制系統(tǒng)經(jīng)由風(fēng)機(jī)電氣控制柜面板上的按鈕或車控室內(nèi)的上位機(jī)軟件對變頻器的參數(shù)值和啟停命令進(jìn)行設(shè)置,PLC在接收到這些控制命令和參數(shù)后,根據(jù)邏輯判斷,然后對變頻器進(jìn)行相應(yīng)控制,這樣就通過頻率的變化達(dá)到了控制風(fēng)機(jī)風(fēng)量的目的。
為了在地鐵發(fā)生火災(zāi)的緊急情況下,能夠快速啟動(dòng)風(fēng)機(jī)配合排煙,系統(tǒng)還設(shè)計(jì)了旁路運(yùn)行控制方式,即在緊急情況下跨過用變頻器來控制風(fēng)機(jī)而采用直接工頻啟動(dòng)的方式達(dá)到滿負(fù)荷排煙的功能。
3 PLC與變頻器的Modbus通信
通過變頻器的操作面板,端子接線或模擬量信號進(jìn)行控制都無法滿足遠(yuǎn)程監(jiān)控的目的,同時(shí)采用這幾中方式還存在著配置參數(shù)只能采用本地設(shè)置,接線點(diǎn)多,模擬量傳輸不穩(wěn)定等問題。通過Modbus通信的方式實(shí)現(xiàn)PLC與變頻器的控制則能有效的克服以上變頻器控制方法的不足。
3.1 Modbus 協(xié)議
Modbus 協(xié)議是一個(gè)完全開放的分級結(jié)構(gòu) (主從式) 異步串行通訊協(xié)議,可使主站對一個(gè)或多個(gè)智能型從站進(jìn)行訪問,主站和從站之間允許多點(diǎn)連接。過此協(xié)議,控制器之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其它設(shè)備之間可以進(jìn)行通信。
Modbus協(xié)議在串行鏈路常用的串行傳輸模式有兩種方式,ASCII和RTU方式,系統(tǒng)中采用了RTU方式,這種傳輸模式的報(bào)文以純二進(jìn)制的方式傳送,即每8位字節(jié)表示兩個(gè)十六進(jìn)制數(shù)。以較高的數(shù)據(jù)密度實(shí)現(xiàn)了更快的吞吐率[3]。
Modbus串行鏈路協(xié)議作為主從協(xié)議,在同一時(shí)間,只能有一個(gè)主站連接在總線上。主站用兩種模式向從站發(fā)送Modbus請求:單播模式和廣播模式。單播模式下主站尋址單個(gè)從站,Modbus事務(wù)處理包含主站請求和從站應(yīng)答兩個(gè)報(bào)文。廣播模式下主站向所有從站發(fā)送請求從站無應(yīng)答。不同的功能碼對應(yīng)不同的請求模式[3]。
3.2PLC與變頻器的連接
M218 PLC的自帶編程接口可直接與其他支持Modbus協(xié)議的設(shè)備進(jìn)行通信,也可以擴(kuò)展端口,通過擴(kuò)展通信模塊或通信適配器實(shí)現(xiàn)擴(kuò)展第二路通信端口。
變頻器的Modbus通信采用的是Modbus RTU方式,通過RS485標(biāo)準(zhǔn)總線,采用RJ45連接端口進(jìn)行連接。PLC與變頻器的連線如圖2所示。
圖 2 M218 PLC 與 ATV61 變頻器的連接
3.3PLC程序設(shè)計(jì)
PLC的通信程序采用梯形圖編寫。梯形圖是PLC使用得較多的圖形編程語言,其與電氣控制系統(tǒng)的電路圖很相似,具有直觀易懂的優(yōu)點(diǎn),可將整個(gè)控制程序分為多個(gè)子程序段調(diào)用,邏輯清晰,方便調(diào)試[4]。PLC關(guān)于通信部分的程序如圖3所示。
圖 3 Modbus通信的子程序段
應(yīng)用Modbus通信方式進(jìn)行風(fēng)機(jī)控制的優(yōu)勢主要體現(xiàn)在以下幾個(gè)方面:
(1)通過Modbus可以實(shí)現(xiàn)遠(yuǎn)程控制和監(jiān)視。變頻器配置參數(shù)、故障報(bào)警、運(yùn)行時(shí)間等信息可以通過設(shè)置在車控室的BAS工作站的上位機(jī)軟件來顯示,并且便于數(shù)據(jù)的記錄,統(tǒng)一管理和系統(tǒng)的后續(xù)開發(fā)。車站的站務(wù)或維護(hù)人員能夠通過上位機(jī)在線對變頻器的參數(shù)進(jìn)行修改,這樣就減少了硬節(jié)點(diǎn),省去了模擬量模塊,節(jié)約了成本,系統(tǒng)的穩(wěn)定性和精度還得到了提高。
(2)通過Modbus通信實(shí)現(xiàn)了BAS系統(tǒng)對全線風(fēng)機(jī)的模式控制和統(tǒng)一調(diào)度。在正常運(yùn)行工況下,OCC工作站和車站工作站根據(jù)權(quán)限的劃分,能夠顯示并且控制軸流風(fēng)機(jī)及其相應(yīng)風(fēng)閥的工作狀態(tài),風(fēng)機(jī)按正常工況模式運(yùn)行;在車站公共區(qū)火災(zāi)工況下,風(fēng)機(jī)及其相應(yīng)的風(fēng)閥能夠接受OCC或車站的控制;而在區(qū)間事故工況下,全線的風(fēng)機(jī)可以由OCC的中央控制室統(tǒng)一調(diào)度并處理事故。
4結(jié)束語
本文提出的地鐵軸流風(fēng)機(jī)控制系統(tǒng)設(shè)計(jì)合理、自動(dòng)化程度高、可靠性好,充分發(fā)揮了PLC和變頻器的高可靠性、抗干擾性和調(diào)試方便的特點(diǎn),能夠有效地保證風(fēng)機(jī)在運(yùn)營中和緊急情況下的運(yùn)行要求。同時(shí)采用基于Modbus的通信技術(shù),實(shí)現(xiàn)了對風(fēng)機(jī)運(yùn)行和狀態(tài)的遠(yuǎn)程監(jiān)視和控制。
參考文獻(xiàn)
[1]曲立東.城市軌道交通環(huán)境與設(shè)備監(jiān)控系統(tǒng)設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2008.
[2]GB50157-2003地鐵設(shè)計(jì)規(guī)范[S].
[3]荊文利.Modbus協(xié)議中有關(guān)RTU傳輸模式的應(yīng)用[J].紡織機(jī)械,2008(5): 34-36.
[4]楊躍宗.淺談PLC梯形圖的設(shè)計(jì)方法[J].機(jī)床電器,2009(2):39-41.
作者簡介: