基于單片機(jī)和Modbus協(xié)議的停車器控制系統(tǒng)
掃描二維碼
隨時隨地手機(jī)看文章
摘要:針對列車停車器的控制情況,文章設(shè)計出了一種基于單片機(jī)和Modbus協(xié)議的停車器控制系統(tǒng)。對現(xiàn)有的轉(zhuǎn)轍機(jī)控制系統(tǒng)進(jìn)行改進(jìn),通過Modbus協(xié)議,實現(xiàn)了一臺主機(jī)對多臺從機(jī)的遠(yuǎn)程控制和監(jiān)督,并且可以方便地并入主系統(tǒng)??梢杂行У靥岣呦到y(tǒng)安全性、操作的方便性和控制效率。
關(guān)鍵詞:停車器;控制系統(tǒng);單片機(jī);Modbus
道岔是一種常見的鐵路配件,在鐵路的正常運行中,起著至關(guān)重要的作用。作為道岔控制系統(tǒng)的執(zhí)行機(jī)構(gòu),轉(zhuǎn)轍機(jī)(switch machine)是組成鐵路道岔系統(tǒng)的重要零件。在編組站中,為了減少中間環(huán)節(jié),列車停車器借用轉(zhuǎn)轍機(jī)控制系統(tǒng)。編組站上的列車停車器控制系統(tǒng)的可靠性、安全性和操作的方便性對于提高鐵路系統(tǒng)的安全性和效率、降低人力成本具有重要意義。為了配合控制和監(jiān)督集中化的趨勢,應(yīng)該采用集控式控制,并且通過協(xié)議實現(xiàn)和計算機(jī)的單主機(jī)多從機(jī)系統(tǒng),最終并入主系統(tǒng)。Modbus是一種開放的、免費的通訊協(xié)議,具有數(shù)據(jù)的安全性、物理媒介的廣泛適用性和網(wǎng)絡(luò)互連的多樣性等優(yōu)勢。因此,我們自行設(shè)計了一種居于單片機(jī)和Modbus協(xié)議的雙機(jī)通信控制系統(tǒng)。采用主從模式,實現(xiàn)一臺主機(jī)遠(yuǎn)程監(jiān)視和控制多臺從機(jī)。
本文重點介紹了C8051通過Modbus協(xié)議與PC機(jī)進(jìn)行串口通信以及單片機(jī)數(shù)據(jù)采集的硬件電路和軟件編程,且應(yīng)用了基于Modbus協(xié)議的報文結(jié)構(gòu),可以更有效地通信。
1 系統(tǒng)結(jié)構(gòu)及工作原理
系統(tǒng)的總體結(jié)構(gòu)由兩層組成:上層為數(shù)據(jù)監(jiān)控層,稱為主機(jī),由顯示終端PC機(jī)組成,用于控制和顯示現(xiàn)場控制情況;下層為數(shù)據(jù)采集層,稱為從機(jī),由實現(xiàn)Modbus協(xié)議的單片機(jī)(Modbus協(xié)議模塊)、實現(xiàn)控制的單片機(jī)(現(xiàn)場主控制模塊)、輸入輸出模塊、LCD、傳感器、電源模塊、復(fù)位模塊和接口電路組成;Modbus協(xié)議不需要特別的接口,典型的物理接口是RS-485,而RS-485為半雙工結(jié)構(gòu),現(xiàn)場中比全雙工往往更接近于實用,在此采用只有2條信號線的簡易型連接。因此兩層之間通過RS232-485相連,在標(biāo)準(zhǔn)的Modbus協(xié)議下進(jìn)行通信,如圖1所示。
上下層的通信方式為主從方式。首先,主機(jī)廣播請求幀,而每個從機(jī)都有自己獨立的地址,并且請求幀的首部是從地址,所有從機(jī)將請求幀的首部和白己的地址對比。如果相同,則自己是目的從機(jī),并且向主機(jī)發(fā)送以自己地址開頭的應(yīng)答幀;否則不是。
由于裝置需要實現(xiàn)多任務(wù)。為了優(yōu)化系統(tǒng)功能,采用了雙單片機(jī)的系統(tǒng)結(jié)構(gòu)設(shè)計方法。其中一個單片機(jī)模塊負(fù)責(zé)實時采集現(xiàn)場信息和控制現(xiàn)場系統(tǒng);另一個單片機(jī)模塊負(fù)責(zé)數(shù)據(jù)處理并做相應(yīng)的封裝,通過Modbus協(xié)議和PC機(jī)通信,如圖2所示。
2 硬件設(shè)計
因為主機(jī)就是PC機(jī),所以這里的硬件設(shè)計就是從機(jī)的硬件設(shè)計。
(1)控制和通信模塊(見圖3)
控制和通信模塊有現(xiàn)場主控制模塊和Modbus協(xié)議模塊組成,現(xiàn)場主控制模塊是為了實現(xiàn)本地實時采集信息和控制輸出。Modbus協(xié)議模塊是為了實現(xiàn)更加安全有效地和PC機(jī)通信。
現(xiàn)場主控制模塊僅有一片單片機(jī)組成,分兩個方向:控制采集方向和通信方向??刂撇杉较蛞舶纯刂坪筒杉譃檩敵龊洼斎雰刹糠郑瑢崿F(xiàn)根據(jù)輸入的采集信息,實時輸出相應(yīng)的控制信息。通信方向通過主從機(jī)通信方式與Modbus協(xié)議模塊進(jìn)行通信。
Modbus協(xié)議模塊只有一片單片機(jī)和RSM-485系列隔離收發(fā)模塊組成,也分兩個方向:現(xiàn)場主控制通信方向和PC機(jī)通信方向?,F(xiàn)場主控制通信方向通過主從機(jī)通信方式與現(xiàn)場主控制模塊進(jìn)行通信。PC機(jī)通信方向通過RSM485和PC通信,詳情是單片機(jī)輸出的TTL邏輯電平通過RSM485系列隔離收發(fā)模塊轉(zhuǎn)換為RS-485電平,經(jīng)過RS-485跟PC機(jī)進(jìn)行通信。有圖3可知,當(dāng)P0.6輸出高電平時,CON使能,單片機(jī)一側(cè)接收數(shù)據(jù);當(dāng)P0.6輸出低電平時,單片機(jī)一側(cè)發(fā)送數(shù)據(jù)。
[注]:計算機(jī)上一般都沒有RS-485接口(有些專業(yè)應(yīng)用的工控機(jī)上有RS-485接口),一般來說電腦要具備RS-485的連接功能的話,可以有三個方法實現(xiàn):1,使用ISA、PCI轉(zhuǎn)RS-485的轉(zhuǎn)接卡,直接像顯卡、聲卡一樣插在插槽里,轉(zhuǎn)出一個RS-485串口。2,使用RS-232轉(zhuǎn)RS-485的轉(zhuǎn)換器,將電腦的RS-232串口轉(zhuǎn)為RS-485串口。3,使用USB轉(zhuǎn)RS-485的轉(zhuǎn)換器,也可以轉(zhuǎn)接出RS-485串口。
(2)其他模塊
外部電源提供直流24V輸入,通過DC-DC電源模塊AV10-24S05,輸出直流3.3V。輸入端發(fā)光二極管PWR24V的作用是指示24V直流電源是否正確輸入。輸出端發(fā)光二極管PWRVDD的作用是指示3.3V直流電源是否正確輸出,如圖4所示。
通過輸入模塊,位置傳感器將轉(zhuǎn)轍機(jī)的行程信號輸入到控制單片機(jī)中。先經(jīng)過濾波以減小干擾,然后經(jīng)過光電隔離以保護(hù)主控電路,最后通過輸入到單片機(jī)端口上,通過發(fā)光二極管顯示輸入的電平高低情況,如圖5所示。
現(xiàn)場主控制模塊單片機(jī)輸出的TTL邏輯電平通過光電隔離后,經(jīng)過三極管放大的輸出,經(jīng)過接24 V電源的上拉電阻和顯示用的發(fā)光二極管,輸出電壓以控制繼電器,選擇正反兩個連線方案,進(jìn)而實現(xiàn)對轉(zhuǎn)轍機(jī)電動機(jī)的控制,實現(xiàn)前進(jìn)、后退和停止,如圖6所示。
3 軟件設(shè)計
(1)主機(jī)程序
主機(jī)程序流程圖如圖7所示。系統(tǒng)的初始化包括打開串口和設(shè)置串口。程序先檢測是否有按鍵按下,如果有按鍵按下,則根據(jù)按鍵封裝相應(yīng)的數(shù)據(jù)并發(fā)送,否則繼續(xù)檢測是否有按鍵按下。然后檢測串口是否收到來自從機(jī)的數(shù)據(jù),如果有收到數(shù)據(jù),則解析該數(shù)據(jù)并做相關(guān)處理,顯示出來,然后繼續(xù)檢測是否有按鍵按下,否則繼續(xù)檢測串口是否有收到數(shù)據(jù)。
(2)從機(jī)程序
從機(jī)程序流程圖如圖8所示。系統(tǒng)的初始化包括打開串口和設(shè)置串口。程序先檢測串口是否收到來自主機(jī)的控制數(shù)據(jù),此時也包括檢查數(shù)據(jù)是否發(fā)送給本機(jī),如果有收到數(shù)據(jù)則解析該數(shù)據(jù),并對電機(jī)做出相應(yīng)的控制;否則繼續(xù)檢測串口是否有數(shù)據(jù)。然后封裝并發(fā)送現(xiàn)場采集的信息,之后繼續(xù)檢測串口是否有數(shù)據(jù)。
4 結(jié)束語
此系統(tǒng)整體成本相對較低安全性、可靠性和實用性較高,實現(xiàn)集中化監(jiān)視和實時控制現(xiàn)場系統(tǒng),節(jié)約成本,而且根據(jù)需要,可以在預(yù)留的端口上接入相關(guān)設(shè)備并增加相應(yīng)程序便可并入主系統(tǒng),比如增加視頻采集設(shè)備和相關(guān)程序,便可以更方便地查看停車器現(xiàn)場的實時情況。