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