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