基于RS485接口的MODBUS串口編程的實(shí)現(xiàn)
隨著信息技術(shù)的發(fā)展,智能化、信息化、網(wǎng)絡(luò)化成為現(xiàn)代工業(yè)控制的發(fā)展潮流。20世紀(jì)80年代以來(lái),開(kāi)放的工業(yè)控制總線(xiàn)迅速發(fā)展,徹底改變了世界的技術(shù)面貌,在此基礎(chǔ)上通過(guò)網(wǎng)絡(luò)連接到分散控制和嵌入式設(shè)備的控制技術(shù)逐步發(fā)展成熟,遠(yuǎn)程I/O就是在這種條件下發(fā)展的一類(lèi)產(chǎn)品,可以分散配置在現(xiàn)場(chǎng),連接當(dāng)?shù)氐妮斎胼敵鲂盘?hào),實(shí)現(xiàn)要求的配置。
在工業(yè)控制領(lǐng)域,現(xiàn)場(chǎng)總線(xiàn)技術(shù)將控制功能徹底下放到現(xiàn)場(chǎng)。MODBUS是現(xiàn)場(chǎng)總線(xiàn)的國(guó)際標(biāo)準(zhǔn)之一,符合IEC物理層標(biāo)準(zhǔn),有冗余的物理總線(xiàn)網(wǎng)絡(luò)和嚴(yán)格的控制信息傳輸機(jī)制。
實(shí)時(shí)工業(yè)現(xiàn)場(chǎng)開(kāi)關(guān)量數(shù)據(jù)的采集給開(kāi)發(fā)者提出了廣泛的要求,包括較高的處理性能,低功耗,高速數(shù)據(jù)I/O,較高的存儲(chǔ)能力,高可靠性等。而種類(lèi)繁多的ARM處理器具有成本低、功耗低、易開(kāi)發(fā)和性能好等特點(diǎn),可開(kāi)發(fā)出較佳性能的控制采集系統(tǒng)。S3C2440就是其中的一種工業(yè)級(jí)ARM微處理器,具有性?xún)r(jià)比高,可靠性高等特點(diǎn),因此選用它做為系統(tǒng)開(kāi)發(fā)的硬件平臺(tái)。
Linux操作系統(tǒng)由于其開(kāi)源、精簡(jiǎn)而高效的內(nèi)核,豐富的網(wǎng)絡(luò)性能以及對(duì)多種處理器結(jié)構(gòu)的支持,使其在嵌入式工業(yè)控制領(lǐng)域得到了廣泛的應(yīng)用,而實(shí)時(shí)處理工業(yè)現(xiàn)場(chǎng)開(kāi)關(guān)量數(shù)據(jù)是工業(yè)控制領(lǐng)域的主要應(yīng)用之一。
本文“基于現(xiàn)場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊的設(shè)計(jì)”實(shí)現(xiàn)了一個(gè)完整的通用嵌入式系統(tǒng)開(kāi)發(fā)平臺(tái)。介紹了基于MODBUS現(xiàn)場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊,此模塊連接了MODBUS現(xiàn)場(chǎng)總線(xiàn)和傳統(tǒng)的開(kāi)關(guān)量控制設(shè)備。首先簡(jiǎn)要介紹了系統(tǒng)總體方案設(shè)計(jì),在此基礎(chǔ)上,把系統(tǒng)設(shè)計(jì)分為硬件設(shè)計(jì)和軟件設(shè)計(jì)兩大部分。
系統(tǒng)硬件首先對(duì)A RM處理器和S3C2440微處理器進(jìn)行了簡(jiǎn)單的介紹,重點(diǎn)論述了S3C2440處理器與存儲(chǔ)器(Nand和SDRAM)、RS485、GPIO等接口的設(shè)計(jì),對(duì)開(kāi)關(guān)量輸入輸出電路進(jìn)行了深入分析,可同時(shí)進(jìn)行16路開(kāi)關(guān)量的輸出和采集,并對(duì)硬件做了相關(guān)的調(diào)試。
系統(tǒng)軟件分為上位機(jī)和下位機(jī)兩部分:上位機(jī)以WindowsXP為開(kāi)發(fā)平臺(tái),采用VC++軟件設(shè)計(jì)界面,利用MSComm控件進(jìn)行MODBUS串口編程,具有操作簡(jiǎn)單,配置靈活的特點(diǎn);下位機(jī)以嵌入式Linux為核心平臺(tái),首先構(gòu)建嵌入式Linux,主要包括bootloader、內(nèi)核的編譯與移植以及嵌入式Linux下文件系統(tǒng)的構(gòu)建。接著對(duì)MODBUS協(xié)議的移植和字符設(shè)備驅(qū)動(dòng)程序(串口、GPIO )做了深入分析,重點(diǎn)用C語(yǔ)言實(shí)現(xiàn)了基于RS485接口的MODBUS串口編程,給出了軟件流程圖及核心代碼,并對(duì)軟件進(jìn)行了調(diào)試。
1.1引言
近幾十年來(lái),工業(yè)控制系統(tǒng)從傳統(tǒng)的集中控制系統(tǒng),過(guò)渡到分散控制(DCS)系統(tǒng),但DCS仍是集中與分散相結(jié)合的控制體系。進(jìn)入90年代,隨著計(jì)算機(jī)技術(shù)及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,出現(xiàn)了現(xiàn)場(chǎng)總線(xiàn),現(xiàn)場(chǎng)總線(xiàn)與傳統(tǒng)DCS相比具有更多優(yōu)勢(shì),并能帶來(lái)巨大的經(jīng)濟(jì)效益。根據(jù)國(guó)際電工委員會(huì)IEC61158標(biāo)準(zhǔn)的定義:安裝在制造或生產(chǎn)過(guò)程區(qū)域的現(xiàn)場(chǎng)裝置與控制室內(nèi)的自動(dòng)控制裝置之間的數(shù)字式、串行、雙向、多點(diǎn)通信的數(shù)據(jù)總線(xiàn)稱(chēng)為現(xiàn)場(chǎng)總線(xiàn)。由現(xiàn)場(chǎng)總線(xiàn)與現(xiàn)場(chǎng)智能設(shè)備組成的控制系統(tǒng)稱(chēng)為現(xiàn)場(chǎng)總線(xiàn)控制系統(tǒng)FCS(FiELDbus Control System )。
衡量一個(gè)控制系統(tǒng)是否為真正的現(xiàn)場(chǎng)總線(xiàn)控制系統(tǒng)FCS有三個(gè)關(guān)鍵要點(diǎn),即:核心、基礎(chǔ)和本質(zhì)。FCS的核心是總線(xiàn)協(xié)議,只有遵循現(xiàn)場(chǎng)總線(xiàn)協(xié)議的控制系統(tǒng),才能稱(chēng)為現(xiàn)場(chǎng)總線(xiàn)控制系統(tǒng);FCS的基礎(chǔ)是數(shù)字智能現(xiàn)場(chǎng)儀表,是FCS的硬件支撐;FCS的本質(zhì)是信息處理現(xiàn)場(chǎng)化,這是FCS的系統(tǒng)效能體現(xiàn)。
FCS與DCS的本質(zhì)差異在于現(xiàn)場(chǎng)級(jí)設(shè)備的數(shù)字化、網(wǎng)絡(luò)化,實(shí)現(xiàn)了控制裝置與現(xiàn)場(chǎng)裝置的雙向通信,消除了生產(chǎn)過(guò)程監(jiān)控的信息“盲點(diǎn)”。
與DCS相比FCS有如下顯著優(yōu)點(diǎn):
●DCS有I/O模件控制柜,F(xiàn)CS很少。這樣就省去了中間環(huán)節(jié),降低了系統(tǒng)成本,節(jié)省電纜及相關(guān)的材料和安裝費(fèi)用。
●FCS使用數(shù)字通信,傳輸數(shù)據(jù)更準(zhǔn)確,信息量更大。
●DCS就像PC機(jī),設(shè)備越多,性能越差,F(xiàn)CS就像PC機(jī)構(gòu)成的網(wǎng)絡(luò),總線(xiàn)上的設(shè)備越多,在總線(xiàn)通信速率足夠快的情況下,F(xiàn)CS功能越強(qiáng)。
●具有可互操作性、可互換性,克服傳統(tǒng)DCS和PLC等含有專(zhuān)利性技術(shù)的控制系統(tǒng)所帶來(lái)的封閉性問(wèn)題,降低工程項(xiàng)目的建造和運(yùn)營(yíng)成本。
但是在生產(chǎn)力發(fā)展到一定階段之前,并不是先進(jìn)的技術(shù)就一定要完全取代落后的技術(shù)。不同層次的技術(shù)有它應(yīng)用的領(lǐng)域,可以允許FCS ,DCS ,PLC等技術(shù)共同存在,一些場(chǎng)合并不一定非要先進(jìn)的技術(shù)。只要其能在特定的地方發(fā)揮相應(yīng)的功能就行。所以討論誰(shuí)取代誰(shuí)并沒(méi)有實(shí)際的意義。從這個(gè)角度講,本論文的基于現(xiàn)場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊并不是一個(gè)過(guò)渡產(chǎn)品,在現(xiàn)場(chǎng)總線(xiàn)技術(shù)深入到儀表之后,開(kāi)關(guān)量I/0模塊還可在適當(dāng)?shù)牡胤绞褂谩?/p>
1.2研究背景
技術(shù)的發(fā)展和更新?lián)Q代是一個(gè)緩慢和逐步接受的過(guò)程,F(xiàn)CS不可能很快取代現(xiàn)有控制系統(tǒng)。在FCS逐步推廣的過(guò)程中,將所有設(shè)備全部采用FCS的可能性不大,這樣就不可避免地要與已有的設(shè)備進(jìn)行連接。
唯有比較才可體現(xiàn)FCS的優(yōu)越性,將傳統(tǒng)儀表集成到FCS系統(tǒng)也可以說(shuō)是FCS發(fā)展中的一種策略。在比較中可以體現(xiàn)出FCS控制系統(tǒng)的優(yōu)越性,這樣能夠促進(jìn)用戶(hù)使用FCS的積極性。
從生產(chǎn)現(xiàn)場(chǎng)實(shí)際情況來(lái)講,生產(chǎn)現(xiàn)場(chǎng)有許多需要開(kāi)關(guān)量控制和開(kāi)關(guān)量顯示的設(shè)備。如電機(jī)啟動(dòng)停止控制、電機(jī)行程反饋、變頻器控制和變頻器反饋、溫度開(kāi)關(guān)、壓力開(kāi)關(guān)、逆止門(mén)電磁鐵指令和電磁鐵狀態(tài)反饋等。而現(xiàn)場(chǎng)總線(xiàn)設(shè)備可能暫時(shí)還沒(méi)有相應(yīng)產(chǎn)品,或者客戶(hù)有傳統(tǒng)設(shè)備的庫(kù)存,這就需要將己有的設(shè)備集成到FCS.
另外,從成本考慮,現(xiàn)有的FCS設(shè)備成本大大高于常規(guī)儀表。有些設(shè)備的控制并不一定需要FCS設(shè)備,這樣就要用常規(guī)設(shè)備實(shí)現(xiàn)控制功能。這就需要把常規(guī)設(shè)備集成到FCS中來(lái)。因此采用開(kāi)關(guān)量I/O裝置就成為一個(gè)很好的選擇。
本文要設(shè)計(jì)的現(xiàn)場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊是完成MODBUS現(xiàn)場(chǎng)總線(xiàn)與傳統(tǒng)開(kāi)關(guān)量設(shè)備互連的控制裝置。尤其適合將傳統(tǒng)工業(yè)的控制系統(tǒng)與FCS控制系統(tǒng)結(jié)合,在所有現(xiàn)場(chǎng)設(shè)備未全部與現(xiàn)場(chǎng)總線(xiàn)融合之前,對(duì)企業(yè)原有設(shè)備與現(xiàn)場(chǎng)總線(xiàn)連接方面有很大的現(xiàn)實(shí)意義。
因此,基于以上考慮,有了市場(chǎng)和技術(shù)的巨大需求開(kāi)發(fā)基于MODBUS的開(kāi)關(guān)量I/O模塊成為必然。
1.3研究路線(xiàn)及內(nèi)容結(jié)構(gòu)
現(xiàn)場(chǎng)總線(xiàn)技術(shù)的研究,是目前工業(yè)控制領(lǐng)域的重要前沿,是當(dāng)前國(guó)內(nèi)外都非常熱門(mén)的研究方向。針對(duì)這種情況,本論文從現(xiàn)場(chǎng)總線(xiàn)上一個(gè)開(kāi)關(guān)量輸入輸出模塊的設(shè)計(jì)著手,對(duì)其進(jìn)行設(shè)計(jì)與實(shí)踐,并對(duì)MODBUS現(xiàn)場(chǎng)總線(xiàn)技術(shù)做了初步的接觸。
MODBUS的開(kāi)關(guān)量I/O模塊放在現(xiàn)場(chǎng),實(shí)現(xiàn)傳統(tǒng)儀表、執(zhí)行器與FCS的連接。本論文的目的是制作一個(gè)實(shí)現(xiàn)基于MODBUS的開(kāi)關(guān)量輸入、開(kāi)關(guān)量輸出的模塊。
1.3.1研究路線(xiàn)
本文主要是研究和實(shí)現(xiàn)一種基于現(xiàn)場(chǎng)總線(xiàn)的開(kāi)關(guān)量I/O模塊。根據(jù)需求,本模塊采用基于ARM9的S3C2440微處理器作為硬件開(kāi)發(fā)平臺(tái),嵌入式Linux2.6作為系統(tǒng)軟件開(kāi)發(fā)平臺(tái),通過(guò)串口RS485,應(yīng)用MODBUS現(xiàn)場(chǎng)總線(xiàn)協(xié)議,實(shí)現(xiàn)與上位機(jī)控制中心PC機(jī)與I/O模塊間的遠(yuǎn)程通信,從而使控制中心能夠得到所需要的數(shù)據(jù);通過(guò)可用的G PI O來(lái)控制傳統(tǒng)開(kāi)關(guān)量的采集與控制,并通過(guò)控制中心來(lái)配置輸入輸出的個(gè)數(shù),鍵盤(pán)用來(lái)做本地測(cè)試。
1.3.2內(nèi)容結(jié)構(gòu)
本文的章節(jié)安排如下:
第一章緒論:概述了課題研究的背景以及應(yīng)用領(lǐng)域,闡述了本論文研究的目的和意義、研究路線(xiàn)以及論文的架構(gòu)安排。
第二章MODBUS現(xiàn)場(chǎng)總線(xiàn)技術(shù)綜述:簡(jiǎn)單介紹了MODBUS現(xiàn)場(chǎng)總線(xiàn)的特點(diǎn),詳細(xì)闡述了MODBUS現(xiàn)場(chǎng)總線(xiàn)的通信原理。
第三章總體方案設(shè)計(jì):重點(diǎn)闡述了系統(tǒng)硬件和軟件的設(shè)計(jì)方案。
第四章開(kāi)關(guān)量I/O模塊硬件結(jié)構(gòu)設(shè)計(jì):采用ARM S3C2440作為系統(tǒng)微處理器,設(shè)計(jì)了存儲(chǔ)電路、電源電路、RJ45網(wǎng)口,JTAG接口、鍵盤(pán)模塊、輸入輸出模塊、RS485接口、復(fù)位電路、時(shí)鐘電路,完成系統(tǒng)硬件設(shè)計(jì)。
第五章操作系統(tǒng)移植與驅(qū)動(dòng)開(kāi)發(fā):完成了嵌入式Linux操作系統(tǒng)的構(gòu)建,移植了MODBUS總線(xiàn)協(xié)議,實(shí)現(xiàn)了字符設(shè)備驅(qū)動(dòng)程序。
第六章開(kāi)關(guān)量I/O模塊軟件結(jié)構(gòu)設(shè)計(jì):分上位機(jī)和下位機(jī)兩部分,介紹了基于MODBUS的串口編程,完成應(yīng)用程序的開(kāi)發(fā)。
第七章結(jié)論:總結(jié)了本文的工作,指出了進(jìn)一步研究的重點(diǎn)。
1.4關(guān)鍵技術(shù)分析
1.4.1現(xiàn)場(chǎng)總線(xiàn)技術(shù)現(xiàn)場(chǎng)總線(xiàn)的概念是隨著微電子技術(shù)的發(fā)展,數(shù)字通信網(wǎng)絡(luò)延伸到工業(yè)過(guò)程現(xiàn)場(chǎng)成為可能后,于1984年左右提出的?,F(xiàn)場(chǎng)總線(xiàn)是面向工廠底層自動(dòng)化及信息集成的數(shù)字化網(wǎng)絡(luò)技術(shù)?,F(xiàn)場(chǎng)總線(xiàn)類(lèi)型主要有:FF、ProfiBus、ControlNet、P-NET、InterBus、CAN和Modbus等。這些總線(xiàn)各有各的規(guī)范,