隨著各地水利、水電和給排水工程的不斷進展,無人值守或少人值守泵站逐漸增多,為保障泵站的安全運行,并解決無人值守泵站的安全防范問題,非常有必要對泵站進行監控系統的建設。
如圖1所示為某泵站的工作示意圖,它包括一個蓄水池、4臺噴淋泵(1臺備用)和4臺高壓泵(1臺備用)。該泵站能在現場操作箱的控制下進行相應的工作,包括各種巡檢功能、壓力控制、故障報警和火警處理等功能。
現需要對泵站系統進行遠程計算機監控改造,以達到少人值守的目的。
根據圖1所示,該泵站監控工作情況和要求如下:
(1)該泵站現在需要對8臺泵的運行與故障進行監控,每臺運行泵2個輸入信號(即運行與故障),每臺備用泵1個輸入信號(運行信號),共計14個點;
(2)能在計算機上進行監控顯示14個點的情況。

圖1 泵站監控系統示意
小型PLC通訊系統是利用小型PLC的內置通訊口1、2或者通訊模塊建立的自動化控制系統,以便于計算機監控、PLC控制等。具體的小型PLC通訊系統有二種方式,即1:1通訊系統和1:N通訊系統。
所謂1:1通訊系統,即上位機在任何時候都只能與一臺小型PLC建立通訊關系,小型PLC之間也只能是建立一對一的連接關系。1:1通訊系統非常適合于小型自動化裝備系統的本地控制、遠程監控和自動診斷。
1:1通訊系統通常有以下三種建構方式:
通過小型PLC的內置通信口1或者2與上位機(計算機或工控機、觸摸屏或文本操作器)外部設備之間進行1:1通信;
通過內置通信口在主機與外部設備(監控系統)之間進行1:1通信;
通過通訊模塊和modem,進行遠距離的RS-232C通信。設備之間進行1:1通信。
所謂1:N通訊系統就是一個上位機能夠于N臺主機進行通訊,根據協議的不同,N取值會不盡相同,一般而言,RS485系統多采用N最大為32。
該通訊方式共有2種構建形式,即利用擴展的通訊模塊或者利用小型PLC內置的RS485通訊口。
西門子S7-200 PLC之間或者PLC與PC之間通信有很多種方式:自由口、PPI方式、MPI方式、Profibus方式,其中前三者屬于典型的1:1或1:N通訊系統,而ProfiBus-DP則是S7-200具有最為簡潔的一種總線配置系統。
通過EM277 ProfiBus-DP擴展從站模塊,可將S7-200 CPU連接到ProfiBus-DP網絡,該端口可以運行于9600波特率和12兆波特率之間的任何速率。
圖2所示為S7-200 PLC的通訊端口硬件,其硬件結構為RS485,為了確保實現1:1或1:N系統,通常要進行通訊端口的連接。

圖2 S7-200 PLC的通訊
當然,西門子公司還提供了S7-200專用通訊連接器,只需要將開關位置打開或關閉即可,其原則也是首尾兩端需要在“打開”位置。
因為S7-200 PLC的編程口物理層為RS-485結構,因此西門子所提供STEP7-Micro/Win軟件,采用的是PPI(Point to Point)協議,可以用來傳輸、調試PLC程序。
西門子的PPI通訊協議采用主從式的通訊方式,一次讀寫操作的步驟包括:首先上位機發出讀寫命令,PLC作出接收正確的響應,上位機接到此響應則發出確認申請命令,PLC則完成正確的讀寫響應,回應給上位機數據。PPI協議是PLC內部固化的通訊協議,并不對外公開其協議。如果上位機遵循PPI協議來讀寫PLC,就可以省略編寫PLC的通訊代碼。
在現場應用中,當需要PLC與上位機通訊時,較多的使用自定義協議與上位機通訊。在這種通訊方式中,需要編程者首先定義自己的自由通訊格式,在PLC中編寫代碼,利用中斷方式控制通訊端口的數據收發。當PLC的通訊口定義為自由通訊口時,PLC的編程軟件無法對PLC進行監控。
自由接口模式允許程序控制S7-200 CPU的通訊端口。用戶可以使用自由接口模式使用戶定義通訊協議與多種智能設備通訊。自由接口模式支持ASCII和二進制協議。
欲啟用自由接口模式,可使用特殊內存字節SMB30(用于0號端口)和SMB130(用于1號端口)。用戶可以從SMB30和SMB130讀取或向SMB30和SMB130寫入。這些字節配置各自的通訊端口,進行自由口操作,并提供自由口或系統協議支持選擇。
用戶程序使用以下功能控制通訊端口的操作:
傳送指令(XMT)和傳送中斷:“傳送”指令允許S7-200 CPU從COM端口最多傳送255個字符。傳送完成時,傳送中斷向S7-200中的程序發出通知。
接收字符中斷:接收字符中斷通知用戶程序在COM端口中收到一個字符。程序則可根據正在執行的協議處理該字符。
接收指令(RCV):“接收”指令從COM端口接收整條信息,完全收到信息后,為用戶程序生成中斷。您使用S7-200的SM內存配置“接收”指令,根據定義的條件開始和停止信息接收?!敖邮铡敝噶钤试S程序根據具體字符或時間間隙開始或停止信息。大多數協議可用“接收”指令執行。
自由接口模式僅限在S7-200處于RUN(運行)模式時才成為激活。將S7-200設為STOP(停止)模式會使所有的自由接口通訊暫停,通訊端口則返回至在S7-200系統塊中配置的PPI協議設置。
該泵站監控系統的硬件接線中,S7-200與計算機(裝有Visual Basic軟件)通過PC/PPI電纜進行通信。
S7-200的輸入信號如表1所示。

表1 監控系統的輸入信號
泵站監控的軟件設計如下:
(1)S7-200程序的編制
泵站監控的PLC程序包括主程序、子程序SBR_0、SBR_1和中斷子程序INT_0,程序清單及注釋如圖3~圖6所示。

圖3 主程序

圖4 子程序0

圖5 子程序1

圖6 中斷子程序
(2)Visual Basic軟件編程
Visual Basic是一種功能強大、簡單易學的程序設計語言。它不但保留了原先Basic語言的全部功能,而且還增加了面向對象程序設計功能。它不僅可以方便快捷地編制適用于數據處理、多媒體等方面的程序,而且利用ActiveX控件MSComm還能十分方便地開發出使用計算機串口的計算機通信程序。在泵站系統中,正是利用MSComm控件進行與S7-200進行通訊。
Visual Basic軟件需要先選定控件Microsoft Comm Control 6.0(如圖7所示),同時可以從工具欄中看到標識。

圖7 選定控件Microsoft Comm Control 6.0
MSComm控件提供了兩種處理通信的方式:一種為事件驅動方式,該方式相當于一般程序設計中的中斷方式。當串口發生事件或錯誤時,MSComm控件會產生OnComm事件,用戶程序可以捕獲該事件進行相應處理。本例采用該方式,程序如圖8所示。另一種為查詢方式,在用戶程序中設計定時或不定時查詢MSComm控件的某些屬性是否發生變化,從而確定相應處理。在程序空閑時間較多時可以采用該方式。

圖8 Visual Basic程序
在現場應用中,當需要PLC與上位機通訊時,較多的使用自定義協議與上位機通訊。在這種通訊方式中,需要編程者首先定義自己的自由通訊格式,在PLC中編寫代碼,利用中斷方式控制通訊端口的數據收發。
[1]李方園. 自動化綜合實訓教程[M].北京:科學出版社,2011.
[2]李方園. 零起點學西門子S7-200 PLC[M].北京:機械工業出版社,2012.