1引 言
隨著環(huán)保和消防要求的提高,柴油發(fā)電機逐漸失去優(yōu)勢,而由于逆變技術(shù)的成熟發(fā)展,新型無公害、高可靠性、動力型的大型應(yīng)急電源" title="電源">電源EPS" title="EPS">EPS(Emergency Power Supply)逐步成為代替柴油發(fā)電機組的“綠色電源”,目前已經(jīng)在建筑領(lǐng)域得到大面積推廣。同時,隨著微處理器、計算機和數(shù)字通信技術(shù)的飛速發(fā)展,計算機控制已經(jīng)擴展到了幾乎所有的工業(yè)領(lǐng)域。將所有的功能集成于統(tǒng)一開放的平臺上,通過人機界面可以使復雜的控制和數(shù)據(jù)處理變得更加簡單。
2 監(jiān)控系統(tǒng)" title="監(jiān)控系統(tǒng)">監(jiān)控系統(tǒng)設(shè)計
美國電子工業(yè)協(xié)會(EIA)制定的RS 485標準作為一種多點差分數(shù)據(jù)傳輸?shù)碾姎庖?guī)范,現(xiàn)已成為業(yè)界應(yīng)用最為廣泛的標準通信接口之一。這種通信接口允許在簡單的一對雙絞線上進行多點、雙向通信。平衡發(fā)送、平衡接收,具有傳輸距離遠、通信速率高、抗干擾能力強、軟硬件支持豐富與現(xiàn)場儀表接口簡單、易于實現(xiàn)和擴展等特點。接口總線上可連接32個設(shè)備,加中繼器后最多可達255個設(shè)備。因此,許多領(lǐng)域都采用RS 485作為數(shù)據(jù)傳輸鏈路,例如汽車電子、電信設(shè)備、局域網(wǎng)、蜂窩基站、工業(yè)控制儀器儀表等。本系統(tǒng)采用一臺PC作為上位機,下位機由若干
臺P89C51單片機擔任,監(jiān)控系統(tǒng)結(jié)構(gòu)圖如圖1所示。
上位機的RS 232串行口通過RS 232/RS 485轉(zhuǎn)換器轉(zhuǎn)換為RS 485總線,各下位機通過MAX485芯片連接到總線上。各個下位機設(shè)有自己惟一的地址,且下位機之間不能通信,一切通信受上位機控制。開始時,所有下位機都處于監(jiān)聽狀態(tài),等待上位機發(fā)出指令。當上位機發(fā)出指令時,所有下位機都接收并且將其中的地址幀與自己的地址比較,如果相同則繼續(xù)接收后面的指令或數(shù)據(jù),若不同則不予理睬。
3 通信協(xié)議Modbus
Modbus" title="Modbus">Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)和其他設(shè)備之間可以通信。他已經(jīng)成為一通用工業(yè)標準,不同廠商生產(chǎn)的控制設(shè)備利用其可以連成工業(yè)網(wǎng)絡(luò),進行集中監(jiān)控。
Modbus協(xié)議定義了消息域格式和內(nèi)容的公共格式,如表1和表2所示,使控制器能認識和使用消息結(jié)構(gòu),而無需考慮通信網(wǎng)絡(luò)的拓撲結(jié)構(gòu)。他描述了一個控制器訪問其他設(shè)備的過程,當采用Modbus協(xié)議通信時,此協(xié)議規(guī)定每個控制器需要知道自己的設(shè)備地址,識別按地址發(fā)來的消息,如何響應(yīng)來自其他設(shè)備的請求,如何偵測錯誤并記錄。
系統(tǒng)通信采用主從技術(shù),即只有主設(shè)備能發(fā)出查詢,從設(shè)備響應(yīng)消息。主設(shè)備可單獨和從設(shè)備通信,從設(shè)備返回一個消息。如果采用廣播方式(地址為零)查詢,從設(shè)備不作任何回應(yīng)。
Modbus協(xié)議有兩種模式:ASCII和RTU模式。一個Modbus通信系統(tǒng)中只能選擇一種模式,不允許兩種模式混合使用。本系統(tǒng)采用RTU模式,消息的起始位以至少3.5個字符傳輸時間的停頓開始(一般采用4個),在傳輸完最后一個字符后,有一個至少3.5個字符傳輸時間的停頓來標識結(jié)束。一個新的消息可在此停頓后開始。在接收期間,如果等待接收下一個字符的時間超過1.5個字符傳輸時間,則認為是下一個消息的開始。校驗碼采用CRC16方式,只對設(shè)備地址、功能代碼和數(shù)據(jù)段進行。整個消息幀必須作為一連續(xù)的流傳輸,傳輸速率較ASCII模式高。
Modbus可能的從設(shè)備地址是0~247(十進制),單個設(shè)備的地址范圍是1~247??赡艿墓δ艽a范圍是十進制的1~255。其中有些代碼適用于所有的控制器,有些是針對某種Modicon控制器,有些是為用戶保留或備用。
4 軟件設(shè)計
本系統(tǒng)上位機軟件采用VC 6.0開發(fā),操作系統(tǒng)為Windows 98,上位機向串口讀寫數(shù)據(jù),通過485總線將控制信息送到現(xiàn)場的每臺EPS設(shè)備,就可以監(jiān)控網(wǎng)絡(luò)上任何一臺EPS設(shè)備,同時現(xiàn)場采集到的電壓、電流等信號實時顯示在上位機的界面上。
(1) 人機界面子程序
包括實時信息動態(tài)更新及數(shù)字顯示,異常判斷及報警聲音提示。
(2) 串口通信子程序
在Windows 98中將串行口和文件的操作統(tǒng)一起來。對他們打開、讀、寫、關(guān)閉等操作都使用相同的API函數(shù),但是又是有區(qū)別的,比如串行口不能像文件一樣被刪除,這些差別體現(xiàn)在API函數(shù)中部分的參數(shù)設(shè)置上。在VC中設(shè)計串行通信程序時要用到一些通信的API函數(shù),如CreateFile(),CloseHandle(),ReadFile(),WriteFile(),SetupComm(),WaitCommEvent()等。除上述幾個函數(shù)外,還要經(jīng)常用到一個重要的記錄DCB(設(shè)備控制塊)。DCB中記錄有可定義的串行口參數(shù),設(shè)置串行口參數(shù)時必須先用GetCommState函數(shù)將系統(tǒng)默認值填入DCB控制塊,然后才可把用戶想改變的自定義值設(shè)定。
PC機串行通信從調(diào)用CreateFile()函數(shù)開始,接著設(shè)置串行口波特率、數(shù)據(jù)位、校驗位、停止位等參數(shù)和超時參數(shù),最后選擇一種工作方式來讀寫串行口。在Windows環(huán)境下,串行通信有4種方式可供選擇:查詢方式、同步I/O、異步I/O和事件驅(qū)動方式。這幾種方式各有自己的優(yōu)缺點:
?、俨樵兎绞奖容^直接,但要占用大量的CPU時間;
②同步I/O方式直到讀取指定的字節(jié)數(shù)或超時的時候才返回,這樣很容易長時間地阻塞線程;
?、郛惒絀/O可以在后臺讀寫數(shù)據(jù),而在前臺做其他的事情;
?、苁录?qū)動方式是由Windows通知應(yīng)用程序某些事件什么時候發(fā)生,然后根據(jù)所發(fā)生的事情來對串口進行操作。
在監(jiān)測系統(tǒng)中,由于事件的偶然性和要求傳送的實時性,計算機常采用事件驅(qū)動I/O方式來進行現(xiàn)場監(jiān)測。事件驅(qū)動I/O方式是指線程通過監(jiān)視通信資源中的一組事件來進行I/O操作,這種方式類似于MSDOS下的中斷方式,效率比較高。在實際項目應(yīng)用和開發(fā)過程中,大多用的這種工作方式來實現(xiàn)PC機和下位機的通信。
上位機部分通信程序的實現(xiàn)過程如下:
5 系統(tǒng)抗干擾問題
實時監(jiān)控系統(tǒng)在工業(yè)中的應(yīng)用越來越多,由
于現(xiàn)場的電氣環(huán)境比較復雜,容易形成各種干擾源,特別是在較惡劣的工業(yè)環(huán)境中,因此研究解決系統(tǒng)抗干擾問題對確保系統(tǒng)的穩(wěn)定運行非常重要。RS 485本身具有較強的抗電磁干擾能力,但實際應(yīng)用中仍然會出現(xiàn)一些問題,為此應(yīng)注意以下幾個方面:
(1)RS 485支持半雙工或全雙工模式網(wǎng)絡(luò)拓撲,一般采用終端匹配的總線型結(jié)構(gòu),不支持環(huán)形或星型網(wǎng)絡(luò)。最好采用一條總線將各個節(jié)點串接起來,從總線到每個節(jié)點的引出線長度應(yīng)盡量短,以便使引出線中的反射信號對總線信號的影響最低。
(2)采用雙絞線作為RS 485傳輸線時,雖然對電磁感應(yīng)噪聲有較強的抑制能力,但對靜電感應(yīng)引起噪聲的抑制能力較差,因此應(yīng)選用帶屏蔽的雙絞線,同時雙絞線的屏蔽層要正確接地。
(3)通過在總線兩端A,B加入匹配電阻的方法,解決信號反射問題。
(4)對于RS 485網(wǎng)絡(luò),合理的接地系統(tǒng)對系統(tǒng)的可靠性很重要?;诠材8蓴_和EMI問題,選擇集中供電方式,可基本消除各處參考電位不等的情況。
(5)在切換大功率感性負載、閃電等過程中,都會產(chǎn)生幅度很高的瞬態(tài)干擾,如果不加以適當防護就會損壞接口。對于這種瞬態(tài)干擾可以采用隔離或旁路的方法加以防護。
6 結(jié) 語
本文提出的主從分布式多機通信系統(tǒng)硬件電路簡單、控制靈活。用VC語言實現(xiàn)上位機數(shù)據(jù)傳送的優(yōu)點是可有效地實現(xiàn)通信的底層控制。由于RS 485總線通信方式仍屬于串行通信方式,通信速度偏低,若要提高通信速度,還需對控制系統(tǒng)做進一步的改進。