隨著各地水利、水電和給排水工程的不斷進展,無人值守或少人值守泵站逐漸增多,為保障泵站的安全運行,并解決無人值守泵站的安全防范問題,非常有必要對泵站進行監(jiān)控系統(tǒng)的建設(shè)。
如圖1所示為某泵站的工作示意圖,它包括一個蓄水池、4臺噴淋泵(1臺備用)和4臺高壓泵(1臺備用)。該泵站能在現(xiàn)場操作箱的控制下進行相應(yīng)的工作,包括各種巡檢功能、壓力控制、故障報警和火警處理等功能。
現(xiàn)需要對泵站系統(tǒng)進行遠程計算機監(jiān)控改造,以達到少人值守的目的。
根據(jù)圖1所示,該泵站監(jiān)控工作情況和要求如下:
(1)該泵站現(xiàn)在需要對8臺泵的運行與故障進行監(jiān)控,每臺運行泵2個輸入信號(即運行與故障),每臺備用泵1個輸入信號(運行信號),共計14個點;
(2)能在計算機上進行監(jiān)控顯示14個點的情況。
圖1 泵站監(jiān)控系統(tǒng)示意
小型PLC通訊系統(tǒng)是利用小型PLC的內(nèi)置通訊口1、2或者通訊模塊建立的自動化控制系統(tǒng),以便于計算機監(jiān)控、PLC控制等。具體的小型PLC通訊系統(tǒng)有二種方式,即1:1通訊系統(tǒng)和1:N通訊系統(tǒng)。
所謂1:1通訊系統(tǒng),即上位機在任何時候都只能與一臺小型PLC建立通訊關(guān)系,小型PLC之間也只能是建立一對一的連接關(guān)系。1:1通訊系統(tǒng)非常適合于小型自動化裝備系統(tǒng)的本地控制、遠程監(jiān)控和自動診斷。
1:1通訊系統(tǒng)通常有以下三種建構(gòu)方式:
通過小型PLC的內(nèi)置通信口1或者2與上位機(計算機或工控機、觸摸屏或文本操作器)外部設(shè)備之間進行1:1通信;
通過內(nèi)置通信口在主機與外部設(shè)備(監(jiān)控系統(tǒng))之間進行1:1通信;
通過通訊模塊和modem,進行遠距離的RS-232C通信。設(shè)備之間進行1:1通信。
所謂1:N通訊系統(tǒng)就是一個上位機能夠于N臺主機進行通訊,根據(jù)協(xié)議的不同,N取值會不盡相同,一般而言,RS485系統(tǒng)多采用N最大為32。
該通訊方式共有2種構(gòu)建形式,即利用擴展的通訊模塊或者利用小型PLC內(nèi)置的RS485通訊口。
西門子S7-200 PLC之間或者PLC與PC之間通信有很多種方式:自由口、PPI方式、MPI方式、Profibus方式,其中前三者屬于典型的1:1或1:N通訊系統(tǒng),而ProfiBus-DP則是S7-200具有最為簡潔的一種總線配置系統(tǒng)。
通過EM277 ProfiBus-DP擴展從站模塊,可將S7-200 CPU連接到ProfiBus-DP網(wǎng)絡(luò),該端口可以運行于9600波特率和12兆波特率之間的任何速率。
圖2所示為S7-200 PLC的通訊端口硬件,其硬件結(jié)構(gòu)為RS485,為了確保實現(xiàn)1:1或1:N系統(tǒng),通常要進行通訊端口的連接。
圖2 S7-200 PLC的通訊
當(dāng)然,西門子公司還提供了S7-200專用通訊連接器,只需要將開關(guān)位置打開或關(guān)閉即可,其原則也是首尾兩端需要在“打開”位置。
因為S7-200 PLC的編程口物理層為RS-485結(jié)構(gòu),因此西門子所提供STEP7-Micro/Win軟件,采用的是PPI(Point to Point)協(xié)議,可以用來傳輸、調(diào)試PLC程序。
西門子的PPI通訊協(xié)議采用主從式的通訊方式,一次讀寫操作的步驟包括:首先上位機發(fā)出讀寫命令,PLC作出接收正確的響應(yīng),上位機接到此響應(yīng)則發(fā)出確認申請命令,PLC則完成正確的讀寫響應(yīng),回應(yīng)給上位機數(shù)據(jù)。PPI協(xié)議是PLC內(nèi)部固化的通訊協(xié)議,并不對外公開其協(xié)議。如果上位機遵循PPI協(xié)議來讀寫PLC,就可以省略編寫PLC的通訊代碼。
在現(xiàn)場應(yīng)用中,當(dāng)需要PLC與上位機通訊時,較多的使用自定義協(xié)議與上位機通訊。在這種通訊方式中,需要編程者首先定義自己的自由通訊格式,在PLC中編寫代碼,利用中斷方式控制通訊端口的數(shù)據(jù)收發(fā)。當(dāng)PLC的通訊口定義為自由通訊口時,PLC的編程軟件無法對PLC進行監(jiān)控。
自由接口模式允許程序控制S7-200 CPU的通訊端口。用戶可以使用自由接口模式使用戶定義通訊協(xié)議與多種智能設(shè)備通訊。自由接口模式支持ASCII和二進制協(xié)議。
欲啟用自由接口模式,可使用特殊內(nèi)存字節(jié)SMB30(用于0號端口)和SMB130(用于1號端口)。用戶可以從SMB30和SMB130讀取或向SMB30和SMB130寫入。這些字節(jié)配置各自的通訊端口,進行自由口操作,并提供自由口或系統(tǒng)協(xié)議支持選擇。
用戶程序使用以下功能控制通訊端口的操作:
傳送指令(XMT)和傳送中斷:“傳送”指令允許S7-200 CPU從COM端口最多傳送255個字符。傳送完成時,傳送中斷向S7-200中的程序發(fā)出通知。
接收字符中斷:接收字符中斷通知用戶程序在COM端口中收到一個字符。程序則可根據(jù)正在執(zhí)行的協(xié)議處理該字符。
接收指令(RCV):“接收”指令從COM端口接收整條信息,完全收到信息后,為用戶程序生成中斷。您使用S7-200的SM內(nèi)存配置“接收”指令,根據(jù)定義的條件開始和停止信息接收?!敖邮铡敝噶钤试S程序根據(jù)具體字符或時間間隙開始或停止信息。大多數(shù)協(xié)議可用“接收”指令執(zhí)行。
自由接口模式僅限在S7-200處于RUN(運行)模式時才成為激活。將S7-200設(shè)為STOP(停止)模式會使所有的自由接口通訊暫停,通訊端口則返回至在S7-200系統(tǒng)塊中配置的PPI協(xié)議設(shè)置。
該泵站監(jiān)控系統(tǒng)的硬件接線中,S7-200與計算機(裝有Visual Basic軟件)通過PC/PPI電纜進行通信。
S7-200的輸入信號如表1所示。
表1 監(jiān)控系統(tǒng)的輸入信號
泵站監(jiān)控的軟件設(shè)計如下:
(1)S7-200程序的編制
泵站監(jiān)控的PLC程序包括主程序、子程序SBR_0、SBR_1和中斷子程序INT_0,程序清單及注釋如圖3~圖6所示。
圖3 主程序
圖4 子程序0
圖5 子程序1
圖6 中斷子程序
(2)Visual Basic軟件編程
Visual Basic是一種功能強大、簡單易學(xué)的程序設(shè)計語言。它不但保留了原先Basic語言的全部功能,而且還增加了面向?qū)ο蟪绦蛟O(shè)計功能。它不僅可以方便快捷地編制適用于數(shù)據(jù)處理、多媒體等方面的程序,而且利用ActiveX控件MSComm還能十分方便地開發(fā)出使用計算機串口的計算機通信程序。在泵站系統(tǒng)中,正是利用MSComm控件進行與S7-200進行通訊。
Visual Basic軟件需要先選定控件Microsoft Comm Control 6.0(如圖7所示),同時可以從工具欄中看到標識。
圖7 選定控件Microsoft Comm Control 6.0
MSComm控件提供了兩種處理通信的方式:一種為事件驅(qū)動方式,該方式相當(dāng)于一般程序設(shè)計中的中斷方式。當(dāng)串口發(fā)生事件或錯誤時,MSComm控件會產(chǎn)生OnComm事件,用戶程序可以捕獲該事件進行相應(yīng)處理。本例采用該方式,程序如圖8所示。另一種為查詢方式,在用戶程序中設(shè)計定時或不定時查詢MSComm控件的某些屬性是否發(fā)生變化,從而確定相應(yīng)處理。在程序空閑時間較多時可以采用該方式。
圖8 Visual Basic程序
在現(xiàn)場應(yīng)用中,當(dāng)需要PLC與上位機通訊時,較多的使用自定義協(xié)議與上位機通訊。在這種通訊方式中,需要編程者首先定義自己的自由通訊格式,在PLC中編寫代碼,利用中斷方式控制通訊端口的數(shù)據(jù)收發(fā)。
[1]李方園. 自動化綜合實訓(xùn)教程[M].北京:科學(xué)出版社,2011.
[2]李方園. 零起點學(xué)西門子S7-200 PLC[M].北京:機械工業(yè)出版社,2012.