1概 述
隨著計(jì)算機(jī)應(yīng)用的不斷普及,計(jì)算機(jī)遠(yuǎn)程通信的使用也越來(lái)越多。但由于電信事業(yè)發(fā)展的滯后,通信線路擁擠阻塞的問(wèn)題日益嚴(yán)重,有些地方上班時(shí)間電話線路經(jīng)常處于占線狀態(tài),使得計(jì)算機(jī)通信十分困難。若想在下班或深夜通信線路空閑時(shí)才進(jìn)行數(shù)據(jù)通信,通信雙方就要留人值班操作,十分不便。為此,采用無(wú)人值守的遠(yuǎn)程數(shù)據(jù)通信控制器。由于這種系統(tǒng)要經(jīng)受通信干擾、高溫等的影響,其工作條件十分惡劣,加上分機(jī)較多,有的又相距較遠(yuǎn),所以對(duì)整個(gè)系統(tǒng)的穩(wěn)定性、可靠性和抗干擾能力都有較高的要求,特別是對(duì)其通道的可靠性、準(zhǔn)確性要求更高。
在分布式數(shù)據(jù)采集與監(jiān)測(cè)系統(tǒng)中,往往需要將離控制中心幾公里、幾十公里甚至數(shù)百公里以外的下位機(jī)采集到的在線數(shù)據(jù)實(shí)時(shí)地送給上位控制中心。這對(duì)于一般的計(jì)算機(jī)串行通信口來(lái)說(shuō)是無(wú)法完成的,必須采取模擬載波傳輸方式或者采用微波和衛(wèi)星等無(wú)線傳輸方式,但從投資費(fèi)用及性能價(jià)格比來(lái)看,大多數(shù)還是采用模擬載波傳輸方式,也就是說(shuō),通信雙方各接入一個(gè)專用設(shè)備——調(diào)制解調(diào)器(MODEM),它將PLC送來(lái)的數(shù)字信號(hào)調(diào)制成模擬信號(hào)在電話線中傳輸,并在接受端將模擬信號(hào)還原成數(shù)字信號(hào)。
2技術(shù)現(xiàn)狀
本系統(tǒng)是以PLC為核心和可脫機(jī)的電話通信的方式實(shí)現(xiàn)的。在該系統(tǒng)中,一方面,下位機(jī)的數(shù)據(jù)采集終端必須將采集到的各種在線數(shù)據(jù)準(zhǔn)確、可靠、迅速地送到上位微機(jī)控制中心;另一方面上位機(jī)的控制命令和調(diào)度命令必須準(zhǔn)確無(wú)誤地下發(fā)到各下位機(jī),而完成這兩方面功能的關(guān)鍵在于數(shù)據(jù)通信。
一般來(lái)說(shuō)監(jiān)測(cè)設(shè)備和控制中心相距較近,可直接通過(guò)RS232接口或RS422接口進(jìn)行數(shù)據(jù)通信;當(dāng)它們相距較遠(yuǎn)時(shí),可以輔設(shè)專用的通信信息,采用異步MODEM專線傳輸方式進(jìn)行數(shù)據(jù)通信。如果距離在幾千米甚至上萬(wàn)米以上時(shí),只能借助于公用電話網(wǎng)(PSTN),采用異步MODEM撥號(hào)方式進(jìn)行數(shù)據(jù)通信。
以PLC為核心的計(jì)算機(jī)通信系統(tǒng)需要考慮的問(wèn)題主要是硬件配置、通信協(xié)議的選取及實(shí)現(xiàn)、特定操作系統(tǒng)下通信程序的編制等。
該系統(tǒng),如圖1所示。
圖1系統(tǒng)結(jié)構(gòu)圖
下位機(jī)以特定協(xié)議向上位機(jī)發(fā)送一個(gè)信息包,由上位機(jī)進(jìn)行數(shù)據(jù)處理。
目前計(jì)算機(jī)技術(shù)正朝著高速度、集成化和網(wǎng)絡(luò)化方向發(fā)展,這種高速度和網(wǎng)絡(luò)化技術(shù)的發(fā)展往往會(huì)造成高速度上位機(jī)與外部設(shè)備間的速度不匹配問(wèn)題。
3用程序?qū)崿F(xiàn)上位PC與下位PLC間的速度匹配
按照正常的軟件安裝方法安裝工作站軟件,發(fā)現(xiàn)調(diào)制解調(diào)器不能進(jìn)行初始化,通信無(wú)法正常進(jìn)行。由于通信軟件和傳輸介質(zhì)的限制,通信速度只能處在2400bps狀態(tài),如果改換其它新型的MODEM,數(shù)據(jù)傳送速度比早期的MODEM沒(méi)有什么提高。這就造成計(jì)算機(jī)與外設(shè)(MODEM)之間的速度不匹配問(wèn)題,形成設(shè)備與主機(jī)間無(wú)法進(jìn)行正常的對(duì)話,加之通信軟件設(shè)計(jì)時(shí)很難做到盡善盡美,難免使應(yīng)用程序中存在BUG,使設(shè)備與主機(jī)之間無(wú)法同步。
系統(tǒng)在執(zhí)行應(yīng)用程序時(shí),控制權(quán)并非完全交給應(yīng)用程序,將部分時(shí)間分配給系統(tǒng)的硬中斷IRQ8,以啟動(dòng)時(shí)鐘中斷進(jìn)行時(shí)鐘數(shù)據(jù)的刷新操作。由于系統(tǒng)以每秒鐘18.2次的速度驅(qū)動(dòng)硬中斷,所以應(yīng)用程序每執(zhí)行一秒鐘就調(diào)用18.2次中斷INT08H和INTICH的驅(qū)動(dòng)程序。如果通過(guò)接管這兩個(gè)驅(qū)動(dòng)程序并在其中做些延時(shí)處理,就可以控制應(yīng)用程序的執(zhí)行速度,當(dāng)延遲時(shí)間設(shè)置比較合理時(shí)就會(huì)使原來(lái)速度非常高的主機(jī)與外設(shè)速度達(dá)到同步。因此通過(guò)接管該中斷驅(qū)動(dòng)程序?qū)崿F(xiàn)比較合理。如果主機(jī)速度特別高,可以通過(guò)系統(tǒng)計(jì)時(shí)器的低級(jí)端口操作調(diào)用時(shí)鐘的頻率。將每秒系統(tǒng)調(diào)用時(shí)鐘中斷18.2次改為每秒調(diào)用次數(shù)與計(jì)算機(jī)的時(shí)鐘頻率相同。這樣設(shè)計(jì)利用擴(kuò)充中斷INTICH的方法編制了一個(gè)任意調(diào)整CPU速度的實(shí)用程序。
4遠(yuǎn)程數(shù)據(jù)通信的設(shè)計(jì)與實(shí)現(xiàn)
在計(jì)算機(jī)通信領(lǐng)域中MODEM主要是用以延伸計(jì)算機(jī)數(shù)字信號(hào)傳輸?shù)木嚯x。在上位PC和下位PLC之間要進(jìn)行正常的數(shù)據(jù)通信,必須首先建立通信信道。如果PC—PLC之間距離較遠(yuǎn)時(shí),鋪設(shè)專用的通信信道是不可能的,因此須借助公用電話網(wǎng)通過(guò)電話線路采用自動(dòng)撥號(hào)的方式進(jìn)行通信,但線路會(huì)常常出現(xiàn)異常中斷的現(xiàn)象,通信的可靠性較差。而在一般的通信軟件中難以切換線路,針對(duì)這種遠(yuǎn)程通信中存在的各種問(wèn)題,并結(jié)合課題研究,成功地開發(fā)了一套通用的基于異步MODEM自動(dòng)撥號(hào)方式的遠(yuǎn)程通信軟件模塊,其應(yīng)用程序可方便靈活地調(diào)用,如圖2所示。
圖2通信模塊流程圖
對(duì)于遠(yuǎn)程數(shù)據(jù)通信系統(tǒng)來(lái)說(shuō),由于底層通信模塊提供了線路狀態(tài)的實(shí)時(shí)監(jiān)測(cè)系統(tǒng)及自動(dòng)重連的功能,能在線路連通期間實(shí)時(shí)監(jiān)測(cè)線路狀態(tài),一旦發(fā)現(xiàn)線路異常中斷,即可自動(dòng)撥號(hào)進(jìn)行重新連線,從而大大地提高了遠(yuǎn)程通信系統(tǒng)的可靠性與靈活性。
由于應(yīng)用了底層通信模塊(即線路狀態(tài)監(jiān)測(cè)和線路控制應(yīng)用程序接口)開發(fā)基于異步MODEM的遠(yuǎn)程數(shù)據(jù)(包括實(shí)時(shí)信息和非實(shí)時(shí)信息)通信軟件,很好地完成了該系統(tǒng)中的數(shù)據(jù)自動(dòng)通信功能。
5監(jiān)測(cè)系統(tǒng)
SZ—4系統(tǒng)的PLC在監(jiān)測(cè)系統(tǒng)中主要完成信號(hào)實(shí)時(shí)采樣、脈沖量累計(jì)、預(yù)警報(bào)信號(hào)檢測(cè)與報(bào)警輸出等,并通過(guò)各種變送器與現(xiàn)場(chǎng)的傳感器連接。由上位完成復(fù)雜運(yùn)算、顯示各種實(shí)時(shí)圖形和保存大量歷史數(shù)據(jù)和打印漢字報(bào)表。上位機(jī)監(jiān)測(cè)應(yīng)用軟件的編程選用C語(yǔ)言,同時(shí)選擇了與C語(yǔ)言程序連接方便的C語(yǔ)言數(shù)據(jù)庫(kù)作為系統(tǒng)的實(shí)時(shí)與歷史數(shù)據(jù)庫(kù)。
下位機(jī)PLC采用梯形圖來(lái)編制程序,下位PLC軟件用來(lái)實(shí)現(xiàn)數(shù)據(jù)采集、脈沖計(jì)數(shù)轉(zhuǎn)換、預(yù)警報(bào)邏輯判斷及聲光報(bào)警輸出、通信數(shù)據(jù)格式的轉(zhuǎn)換。
數(shù)據(jù)通信與分離模塊完成PLC與微機(jī)間數(shù)據(jù)和命令的雙向傳遞,并將得到的數(shù)據(jù)按系統(tǒng)要求的格式分離成系統(tǒng)變量。
在硬件配置與安裝上,系統(tǒng)交流電源使用雙層隔離,輸入信號(hào)光電隔離,提高信號(hào)噪聲比,遠(yuǎn)離強(qiáng)電布線,模擬量信號(hào)和脈沖信號(hào)采用屏蔽線傳送,采用放射性一點(diǎn)接地等措施,有效地消除或減弱了共模干擾和瞬變干擾。
在軟件設(shè)計(jì)與編程上,加上一些抗干擾模塊。如采用軟件濾波技術(shù),對(duì)一些重要模擬量參數(shù)進(jìn)行延時(shí)判定,并進(jìn)一步確認(rèn)報(bào)警;在上下位通信軟件設(shè)計(jì)采用響應(yīng)碼與校驗(yàn)重校措施,大大提高了系統(tǒng)的抗干擾性能。
6通信結(jié)構(gòu)的特點(diǎn)
通信協(xié)議要解決的主要矛盾是:
(1)防止本機(jī)發(fā)送本機(jī)接收; (2)嚴(yán)禁兩個(gè)以上分機(jī)同時(shí)發(fā)送; (3)接收不同分機(jī)數(shù)據(jù)的類型識(shí)別。
為此,系統(tǒng)做了以下約定:
(1)固定通信用存貯區(qū)域; (2)固定模式周期性傳遞方式; (3)嚴(yán)格時(shí)序控制; (4)一機(jī)激活各機(jī)順序響應(yīng)。
由協(xié)議約定可知,這種通信結(jié)構(gòu)的特點(diǎn)是:信息傳送模式固定,軟件管理自成一體,周期性工作,每次都由上位機(jī)定期激活。這就不會(huì)使系統(tǒng)因某個(gè)分機(jī)通信故障而陷于癱瘓。為了確保通信工作可靠,傳送接收準(zhǔn)確穩(wěn)定,在設(shè)計(jì)中又采取了下述措施:
(1) 增加一路聯(lián)絡(luò)信號(hào),使各分機(jī)強(qiáng)行改變通信狀態(tài),實(shí)現(xiàn)系統(tǒng)硬同步。若不加外圍聯(lián)絡(luò)信號(hào),只設(shè)一根總線,也能實(shí)現(xiàn)既定的信息交流工作,這就是利用軟件計(jì)數(shù)法,即“軟同步”。
(2) 軟件上采取數(shù)字濾波的方法,提高接收信息的準(zhǔn)確性。這是一般應(yīng)用系統(tǒng)中普遍采用的一種方法。由于本系統(tǒng)是定期循環(huán)傳送,所以對(duì)于一些重要數(shù)據(jù)采用“兩次比較”和“三次取二”的處理方法。即當(dāng)本次接收到期的信息與上次相同時(shí),則予以接受;若不同時(shí),等到下次再接收到該數(shù)據(jù)信息時(shí)與前兩次比較,取出兩個(gè)相同的數(shù)據(jù)確定為正確數(shù)據(jù);若3個(gè)數(shù)據(jù)互不相同時(shí),則繼續(xù)接收并每次都取出最新接收的3個(gè)數(shù)據(jù)進(jìn)行“三次取二”處理,直到找出正確的數(shù)據(jù)從而提高了系統(tǒng)接收信息的準(zhǔn)確性。
串行通道是全雙工的,這意味著可以同時(shí)接收和發(fā)送。串行通道具有緩沖接收功能,即在前一個(gè)已接收的字節(jié)從接收寄存器讀出之前,開始接收第二個(gè)字節(jié),串行通道寄存器的存取都通過(guò)專用寄存器SBUF。寫入SBUF就是裝入發(fā)送寄存器;讀操作實(shí)際上是取接收寄存器的內(nèi)容。串行通道有4種工作方式。當(dāng)工作方式確定之后,波特率的選擇形式也就確定了。上位機(jī)子系統(tǒng)通信程序流程圖,如圖3示。
圖3通信程序
START:?jiǎn)?dòng)子程序。其功能是當(dāng)每個(gè)傳送周期開始的時(shí)候,由調(diào)用START來(lái)激活通信系統(tǒng),并使主機(jī)發(fā)送數(shù)據(jù)。
A1:串行通道中斷服務(wù)子程序。全部信息的接收`發(fā)送`分類處理及有些狀態(tài)的改變均由此程序完成。
B1:外部中斷服務(wù)子程序。其順序在記錄主機(jī)發(fā)送完數(shù)據(jù)之后,主機(jī)被引發(fā)中斷時(shí)調(diào)用。功能為:改變主機(jī)發(fā)送狀態(tài)為接收狀態(tài),并做好接收從機(jī)數(shù)據(jù)的準(zhǔn)備。
7結(jié)論
串行中斷多機(jī)通信的結(jié)構(gòu)是合理的,系統(tǒng)總體方案是可行的。由于通信模塊獨(dú)立,傳送模式周期循環(huán),給系統(tǒng)的通用性和可擴(kuò)充性創(chuàng)造了有利條件。采用PLC為核心的遠(yuǎn)程自動(dòng)監(jiān)測(cè)系統(tǒng)具有實(shí)時(shí)性好`數(shù)據(jù)獲取準(zhǔn)確以及通信過(guò)程控制方便等特點(diǎn):同時(shí),采用本系統(tǒng)設(shè)計(jì)的通信程序可移植性好`維護(hù)和擴(kuò)充方便,對(duì)同類系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)有一定的啟發(fā)。
(審核編輯: 智匯李)
分享