趙劍 孫曉琳
摘 要:控制系統中各個設備之間的通信是目前控制系統發展的重點環節。文章以基于PLC的控制系統中上下位機通訊的實現,介紹計算機通信的基本原理,PLC通信方式,VB通信控件,PC/PPI電纜的應用。并用交通燈實例說明程序實現方法,較完整的闡述了個環節之間通信的實現方式。
關鍵詞:PLC;VB;串行通信;程序
1 概述
現代控制領域中,綜合性控制系統DCS(DIstributed Control System,分散控制系統)隨著大型工業生產自動化的興起和過程控制要求的日益復雜應運而生。它是計算機技術、系統控制技術、網絡通訊技術和多媒體技術相結合的產物,可提供窗口式人機界面和強大的通信功能。電氣ECS(Electrical Control System)系統是DCS的一條重要分支,其主要應用于發電機的啟、停控制及邏輯;工廠用電系統各開關的控制及邏輯;電氣系統的各參數與設備狀態的監視;繼電保護動作情況、故障報警及時間順序記錄。因此系統中總站與從站各個設備之間的通訊,是系統控制過程中的重要一環,決定著控制決策執行的正確與否。文章以基于PLC控制系統中的通信對系統通信原理進行介紹,并附交通燈控制實例加以說明。
2 通信原理
2.1 并行通信與串行通信
工程應用中,為實現分散控制和集中管理,控制系統的各個部分必定要相互進行數據通信。按照傳輸方式,可分為并行通信與串行通信。
并行數據通信是以字節或字尾單位的數據傳輸方式,其特點是傳輸速度快,但傳輸線的根數多。適用于近距離數據傳輸。
串行數據通信是以二進制的位(bit)為單位的數據傳輸方式,每次只傳送1位,適用于舉例較遠的場合。工業控制一般使用串行通信。PC機和PLC都有通用的串行通信接口,例如RS-232C和RS-485接口。
2.2 異步通信與同步通信
在實際通信中,操作時很難保證數據接收方和發送方有相同的傳輸速率,為了保證發送過程和接受過程同步,不發生累計誤差造成的錯位。可以根據實際通信要求選用同步或異步通信方式。
異步通信發送字符的信息格式有1個起始位,7、8個數據位,1個奇偶校驗位(可省略),1、2個停止位組成。在通信開始之前,通信雙方需要對所采取的信息格式和數據傳輸速率作相同的約定。由于1個字符中包含的位數不多,及時發送方和接受方的收發頻率略有不同,也不會因兩臺設備之間的時鐘脈沖周幾的積累誤差而導致收發錯位。其特點就是傳送附加的非有效信息較多,傳輸效率稍低。
同步通信方式以字節為單位(8bit),每次傳送1、2個同步字符,若干個數據字節和校驗字節。在同步通信中,發送方和接收方要保持完全同步,因此要用調制解調的方式從數據流中提取出同步信號,使接收方得到與發送方完全相同的接收時鐘信號。其傳輸速率較高,一般用于高速通信。
2.3 單工通信方式與雙工通信方式
單工通信方式只能延單一方向發送或接收數據。雙工方式的數據可以沿兩個方向傳送,每一個站既可以發送數據也可以接收數據。雙工方式又分為全雙工和半雙工兩種方式。
3 PLC通訊功能介紹
PLC其它PLC,變頻器,PC機,遠程設備,工業以太網等按照不同的通信協議進行通信,文章主要介紹PLC與PC機之間的通信。
PLC與使用自由端口模式的PC機的通信:自由端口模式為PC機與PLC之間的通信提供了一種方便和靈活的方法。在自由端口模式,PLC的串行通信有用戶程序控制,可以用接收完成中斷、字符接收中斷、發送完成中斷、發送指令和接受指令來控制通信過程。
發送指令(XMT)啟動自由端口模式下數據緩沖區的數據發送。通過指定的通信端口,發送存儲在TBL中的信息(最多255個字符)。發送結束時可以產生中斷事件。接收指令(RCV)初始化或終止接收信息的服務(最多255個字符)。通過指定端口,接收的信息存儲在TEL中。在接收完最后一個字符時,或每接收一個字符均可產生一個中斷。
4 VB通信功能的介紹
4.1 Windows環境下上位機通信軟件介紹
在Windows環境下,上位機與PLC實現串行通信,需要有軟件提供人機交互平臺,實現通信控制。常用的可實現串行通信的軟件有WinCC flexible組態軟件和VB程序設計軟件。由于實際工程需要的多變性及復雜性,多選用VB搭建人機交互平臺。
VB不僅能實現串行通信,還能滿足各種工程實際的不同要求,設計不同的面向對象的工作窗口界面。它本身提供的各種控件,可以方便簡易的實現各種設計要求。
4.2 MSComm控件的屬性
VB提供了一個串行通信控件Miscrosoft Comm Control,即MSComm控件。編程人員只需要設置和監視MSComm控件的屬性和事件,就可以輕而易舉的實現串行通信。
MSComm控件提供了兩種處理方式,即可產生兩種事件進行通信,事件驅動方式和查詢方式。事件驅動方式:Rthreshold屬性非0時,收到的字符或傳輸線發生變化時就會產生串口事件OnCome。通過查詢CommEvernt屬性可以捕獲并處理這些通信事件。查詢方式:通過查詢接收緩沖區的字節數(InputBufferCount)屬性值,處理接收到的信息。
5 應用實例
城市交通路口信號控制充分應用了這一通訊功能的應用。現代社會多變的交通狀況。傳統的交通控制方法已經不能解決目前的城市交通問題,因此基于PLC可通信的控制系統可時效性的解決這一問題。部分通信程序如下:
(1)VB程序:
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then //如果接收到字符
S1=MSComm1.Inut //把接收緩沖區內的數據賦值給臨時變量S1
If (S1 = Chr(&H1B)) And (Len(SCOMS) > 2) Then //如果變量'S1'接收到數據并且變量'SCOMS'中的字節數大于2,則
SCOMS = " " //清空其中數據
ELSE //否則
If S1 <> Chr (&HD) Then //如果變量'S1'沒有接收到結束字符'&HOD',則
SCOMS = SCOMS&S1 //將'S1'中的數據累加到'SCOMS'中
ELSE //否則
…… //數據處理
End Sub //結束
(2)PLC程序:
RCV VB100, 0 //分配接收緩沖區
MOVB 8,VB400 //設置發送字節數為8,發送緩沖區為VB400
MOVB 16#1B, VB401 //設置發送信息的起始字符為'16#1B'
MOVB 16#0D, VB408 //設置發送信息的結束字符為'16#0D'
MOVB '1', VB402 //若Q0.0有輸出,VB402為'1'
NOT //否則
MOVB '0',VB402 //為'0'
XMT VB400, 0 //在端口0向用戶回送信息,發送緩沖區指向VB400
通過VB實現與PLC通信。使PC機可以實時的管理PLC的工作。在此通信基礎上,控制系統各部分運行良好,無誤碼出現,有效的解決了交通擁堵中紅綠燈控制的問題。
6 結束語
基于PLC控制系統的通信過程明顯將現有控制技術提升一個新的階段。通信技術已經是工業控制中不可或缺的一個重要環節,也會是未來發展的主要方向,以滿足現代工程遠程化,實時性的發展需要。