張永根
(南京市輪渡公司,江蘇南京 210011)
可編程邏輯控制器簡稱PLC,以其運行可靠、集成度高、可擴展性強在工業控制中得到廣泛的應用,而且各個PLC生產廠家提供了多種通訊模塊,如工業以太網Ethernet模塊、點到點串行通訊模塊等。因此可以利用 PLC的通訊模塊讀取柴油機數據存儲區的數據,然后通過 PLC中的現場總線模塊連延伸報警模塊能將實時的報警信息傳遞到船員房接到監控系統中達到完美的結合[1]。
LabVIEW(Laboratory Virtual Instrument EngineeringWorkbench)是美國國家儀器公司(National Instruments)推出的一種基于圖形語言(G語言)的開發環境,編程非常方便,人機交互界面直觀友好,用戶可以創建獨立的可執行文件,能夠脫離開發環境而單獨運行,是目前最流行的虛擬儀器編程平臺,廣泛應用于測試測量、過程控制、實驗室研究與自動化等方面。將LabVIEW與PLC結合起來應用于工程實踐,不僅可以大大降低成本、縮短開發周期,而且可以使得控制操作方便、界面美觀[3]。
在設計中,需要將柴油機及其他設備的各參數讀取到Siemens公司的S7-300 PLC中,參與實際的監測控制。為了能夠將儀表的參數讀入到Siemens PLC中,采用了Siemens公司的點到點通訊模塊CP340,利用集成在CP340通訊模塊中ASCII碼通訊協議,通過 RS2422網絡讀取數據,并將LabVIEW與PLC結合起來,在上位機進行實時顯示、報警、控制、記錄。
與傳統的柴油機數據采集方式相比,該種MAN B&W柴油機將所有重要參數都存放于 4個數據存儲區中,通過通訊接口,外圍設備(如PLC,PC機等)可以從中實時的讀取設備運行參數,了解設備的運行情況。鑒于LabVIEW軟件可方便實現數據采集和信號處理,具有強大的外部接口能力,而且采用LabVIEW編寫控制程序主界面,既簡單美觀,又能節約開發時間,大大提高了程序設計效率等優點,上位機的控制程序采用LabVIEW編寫。將西門子S7-300作為終端,CP340作為通訊模塊,并采用LabVIEW作為上位機軟件是本系統的一大特點。
在以上軟硬件條件下,要在LabVIEW中實現PC與PLC的實時通信,關鍵在于如何在LabVIEW編程環境中驅動SIEMENSCP5611通訊卡。CP5611被驅動后PC機即可通過CP5611與Profibus總線連接,從 S7-300地址塊中讀出數據或往地址塊中寫入數據。SIEMENS CP5611目前沒有LabVIEW的驅動程序,如果要在LabVIEW環境中開發SIEMENSPLC的上位機控制系統,可以采取兩種方案:
(1)開發者自己開發 CP5611的驅動程序,從底層的動態鏈接庫編起;
(2)找到并安裝SIEMENS的OPC Server應用程序,利用NI的OPC Client與之進行數據交互。
顯然,第二種方案對開發者更方便、快捷,因而本文選用第二種方案。OPCOLE for Process Control是基于Windows NT技術的OLE,COM/DCOM接口的擴展,其本質是OPC Client用一種開放的、標準化的通訊方式與OPC Server進行通訊。OPC規范定義的標準接口,使得不同廠家之間軟硬件的集成易于實現。使用第三方硬件時,只要硬件開發商提供OPC Server,軟件開發人員無需編寫低層的驅動程序,通過用戶軟件的OPC Client即可與之進行數據交互[2]。
整個監控系統共有79個工況參數,其中開關量共 66個,模擬量共 13個。廢氣鍋爐綜合故障、應急配電板 DC24V失電、1號左燃油艙高位等 35個開關量均直接接入PLC的輸入輸出模塊,通過傳感器將信號實時的讀入 PLC的輸入映像區。進渦輪增壓器前排氣溫度高,主機應急控制電源故障等 31個開關量通過通訊模塊采集數據。所有模擬量如燃油進機壓力表、滑油進主軸承壓力表、汽缸冷卻高溫淡水出口溫度表等也由CP340通訊模塊完成數據采集。所有通過 CP340讀取的源數據均從柴油機數據存儲區中取得。系統硬件結構、軟件設計流程如圖1、2所示。

圖1 系統結構圖

圖2 軟件設計流程圖
S7-300與柴油機通訊,可以對 CP340設置接收幀結束方式;通訊方式:9 600,8,n,1;接口方式: RS2422,其余的設置為默認方式。丹麥 MAN B&W公司的柴油機采用的是MODBUSASCII協議,電路接口標準為 RS2422。讀取命令的數據格式包括開始位、功能碼、數據起始地址、數據量、LRC校驗碼、停止位以及結束符。接收命令的數據格式與其基本相同,只是包含了數據量。當柴油機接收到來自PLC的發送請求命令時,先根據數據的起始地址計算出LRC校驗碼,然后再與接收到的LRC校驗碼相比較,如果一致,則向PLC發送數據,否則,不做出響應。
PLC讀取數據命令實際上就是將不同的地址和校驗碼填入預先定義好的 DB塊中,然后按照上述的通訊格式,調用 CP340功能模塊將請求發送出去。因此,只需要一個發送數據 DB塊。而接收數據的DB塊,只需要定義成BYTE類型的數組,并且長度不小于 39字節,對于不同的監測量,每次從柴油機中讀取的數據則放入到不同的DB塊中。對于不同的參數,只需要變換相應的起始地址和LRC校驗碼即可。
CP340有4個專用功能塊:發送功能塊FB3,接收功能塊FB2,讀RS2232C接口信號狀態功能塊FC5和接口信號狀態設置功能塊FC6。系統中采用FB2和FB3功能塊。
首先要對FB2與FB3的屬性進行設置:FB3發送功能塊需要設置的屬性包括上升沿觸發(REQ), CP340起始地址(LADDR),發送數據塊號(DBNO),開始字節號(DBB-NO),字節長度(LEN);FB2接收功能塊需設置的屬性包括接收使能(ENR), CP340起始地址(LADDR),數據放置塊號(DBNO),開始字節號(DBB-NO)。
2.2.1 OPC Server的配置
SIEMENS公司為S7-300/S7-400提供的OPServer接口集成在SIMATIC NET軟件包內,在本系統中西門子S7系統提供OPC Server,LabVIEW作為OPC Client進行數據通信。
(1)首先要進行OPC配置,在成功安裝 SIMATINET和CP5611的驅動程序后,重新啟動計算機,開始使用SIMATIC NET軟件組態PC Station。
(2)組態好后在Step7v513軟件中OPC Server模板與CPU315-2DP進行連接。
(3)連接好之后要下載,特別注意訪問點的 Access points的設置,Options-PG/PCINTERFACE,下載到本地服務器要選本地訪問點PC internal local;下載到CPU315-2DP,訪問點要改成CP5611。
(4)屬性中設定local本地IP地址,比如192. 168.0.8,partner是CP5611,它的IP地址也要設定好,比如 192.168.0.132。這樣,配置完成后,如果PC station中小圖標變為彩色,表示OPCServer配置成功。
2.2.2 DataSocket與OPC的通信
由于LabVIEW軟件平臺支持DataSocket技術,本文采用DataSocket技術實現對OPC服務器的訪問。
DataSocket技術是基于Microsoft COM和ActiveX,源于TCP/IP協議并對其進行高度封裝,面向測量和自動化應用,用于共享和發布實時數據,是一種易用的高性能數據交換編程接口。但它不必像TCP/IP編程那樣把數據轉換為非結構化的字節流,而是以自己特有的編碼格式傳輸各種類型的數據,包括字符串、數字、布爾量以及波形等,還可以在現場數據和用戶自定義屬性之間建立聯系,一起傳送。盡管DataSocket與OPC的實現原理有所不同,但DataSocket與OPC在體系上比較相似,二者結構上都是客戶機/服務器模式,都為跨網絡傳輸數據定義了各自的傳輸協議,并以 URL的方式訪問服務器數據項目。LabVIEW中可通過DataSocket VI功能子模板上DataSocket VI支持OPC應用。在Lab-VIEW中與一個OPC Sever通過調用DataSocket Open Connection.vi圖標實現,并將對應于OPC sever URL傳給該Vi。OPC URL的基本結構為:OPC: //主機名//OPC服務器名/數據項目/刷新率。
2.3.1 越限或故障報警處理
每一個監測點都已設置閾值上限、下限或兩者都有,凡監測到的參數超過閾值時,都檢測其報警條件是否滿足,若滿足則應立即發出聲光報警。報警界面如圖 3所示。

圖3 報警界面
2.3.2 報警顯示和消聲消閃功能
當出現報警時,控制面板上的一個指示燈不停的閃爍、蜂鳴器發出聲響;當按下消聲按鈕后,報警聲響停止,報警燈光信號由閃爍變為常亮;只有在故障排除并恢復正常狀態后,報警指示燈才熄滅。
2.3.3 實時數據顯示
能在控制面板顯示所有監測點參數,并可將實時數據、歷史數據以模擬表、棒型圖和變化曲線等形式在工控機界面顯示,直觀地反映這些參數的變化狀態。柴油機監控界面如圖4所示,歷史數據查詢如圖5所示。

圖4 柴油機監測界面

圖5 歷史數據查詢
經實際運行,系統完全滿足船舶航行的要求。該系統具有實時性高、操作方便、運行穩定等特點。運用LabVIEW自帶的DataSocket與OPC通信實時可靠,適用于SIEMENS幾乎所有的通訊總線和通訊卡,具有很強的靈活性。總之,該方案大大提高了機艙自動化監控水平,具有顯著的經濟效益。
[1] 李垣江,等.基于總線控制的船舶柴油機監控系統[J].船海工程,2005,(6):47-49.
[2] 朱青,等.基于LabV IEW與OPC的船舶機艙報警系統設計[J].現代電子技術,2009,(1):129-131.
[3] 陳錫輝,張銀鴻.LabVIEW 8.20程序設計從入門到精通[M].北京:清華大學出版社,2007.