於宇琛 楊傳將 譚明波
(中國船舶重工集團公司第七一二研究所,武漢 430064)
升船機主提升控制系統(以下簡稱系統)作為現代化大型 PLC控制系統,結構龐大,時序復雜,采用傳統的順序編程思想會使系統開發難度大,程序冗長,代碼重復利用率低,后期維護升級困難。隨著系統復雜程度和自動化程度的不斷提高,編程思想也需要不斷的完善和發展。編程思想是指解決問題的思路,在系統分析和設計階段起到管理資源分配和規劃程序組織的作用[1]。面向對象思想以其模塊重用、結構緊湊和易維護升級等特點,已經在計算機程序設計領域中被廣泛應用[2]。本文將面向對象思想引入到 PLC控制系統分析和設計中來,應用統一建模語言(Unified Modeling Language, UML),分析系統需求,找出問題域,建立問題域模型,確定程序總體結構和流程,設計詳細功能及接口,達到規范開發過程,提高編程效率和方便維護升級的目的。
面向對象思想從現實世界中客觀存在的事物出發,強調以問題域為中心,根據事物的本質特征,將事物抽象表示為對象,作為系統基本構成單位,運用繼承、封裝、多態等方法來構造系統,使其直接映射問題域,保持問題域中事物及其相互關系的本來面貌[3]。統一建模語言是一種可視化的建模語言,能讓設計者用標準的、易于理解的方式建立起系統模型,并且提供有效的共享和交流機制[4]。
系統分析指描述和分析系統需求,找出問題域,建立用例圖,區分類和對象,通過交互視圖確定問題域中類的活動和約束,通過類圖定義類的屬性和方法,形成面向對象的程序體系結構[5]。
系統的功能需求主要表現在以下幾個方面:
1)上位機可以在遙控方式下控制船廂的運行。2)柜門按鈕可以進行安全系統的緊急制動。3)觸摸屏可以進行檢修操作或在現地方式下控制船廂的運行。
系統參與者包括上位機、液壓站和其他子站等;用例包括緊急制動、拖動系統和通訊系統等。根據參與者、用例及其之間的相互關系,建立起用例圖。通過分析得出系統主要包括緊急制動問題域、系統檢修問題域和船廂動作問題域。系統用例圖如圖1所示。

圖1 系統用例圖
通過交互視圖和類圖對問題域進行分析,確定問題域中各實體及其之間的關系,建立問題域的模型[5]。
在船廂動作問題域中,通過分解船廂動作問題域,得出該問題域主要由液壓系統,潤滑系統,拖動系統,通訊系統這四個對象以及它們之間的相互關系構成。本文采用交互視圖對問題域進行描述,通過順序圖顯示對象之間相互傳遞消息的順序關系,通過協作圖描述這些對象的控制流程和協作關系[6]。船廂動作的順序圖如圖2所示。當船廂動作時,啟動順序為潤滑系統,液壓系統和拖動系統。停止順序為拖動系統,潤滑系統和液壓系統。

圖2 船廂動作順序圖
類是具有共同屬性、操作和語義特征的對象的集合,主要包括名稱、屬性和方法。類圖描述類基本信息和類之間的聯系。以潤滑系統類為例,類的名稱是潤滑系統,每個潤滑站都是唯一標示和可區分的,都是潤滑系統類的具體對象;潤滑站對象的屬性表示潤滑站的性質,包括潤滑站號、潤滑溫度、潤滑壓力和啟停狀態;潤滑站對象的方法表示潤滑站對象的行為,包括電機控制、溫度控制和壓力控制。系統類圖如圖3所示。

圖3 系統類圖
系統設計是根據系統分析結論,結合PLC編程軟件特點,確定程序總體結構和流程,設計對象的詳細功能以及接口。
概要設計包括層次結構設計和總體功能設計,是編程設計過程的重要環節。系統分析指出系統主要包括緊急制動、系統檢修和船廂動作三個問題域以及拖動系統、液壓系統、潤滑系統和通訊系統四個對象類。從系統整體規劃和組織結構出發,將系統分成兩層,上層是問題域層,下層是對象類層,其中問題域和對象類分別對應組織塊和功能塊,形成組織塊和功能塊相結合的組織結構。這種結構方便系統調試和后期升級維護,對功能塊進行修改和測試時不會對功能塊之間相互協作和共享信息的關系造成影響。
詳細功能設計包括問題域交互視圖和類圖的詳細設計。交互視圖對應于程序流程圖,各功能塊協同配合實現系統功能需求。船廂動作問題域程序流程圖如圖4所示。

圖4 船廂動作問題域程序流程圖
類圖對應于功能塊詳細設計,主要確定功能塊的屬性和方法。潤滑功能塊詳細設計包括參數設置和動作控制。參數設置包括控制方式設置、時間設置、潤滑壓力報警點設置,潤滑溫度報警點設置,油位報警點設置;動作控制包括電機動作控制、潤滑壓力控制,潤滑溫度控制。
控制系統中,功能塊通過接口互相聯系。接口設計主要包括繼承機制和面向接口編程。繼承機制使同類的不同對象可以使用相同的功能塊和各自的背景數據塊,提高了程序的代碼重用性的同時滿足了現場同類對象間不用的工況要求。面向接口編程在保持功能塊接口不變的情況下,改變內部程序不會影響系統總體功能及其他功能塊,在增加了功能塊內聚度的同時,提高了編程的靈活性和程序的可維護性。考慮到相似對象間的微小差別,在接口設計中需要留出足夠的裕量以滿足修改未來的升級改造需要。
本文將面向對象思想結合到PLC控制系統程序開發中來,基于統一建模語言對系統進行分析和設計。在實際工程應用中,既規范了程序開發過程,減少了開發時間,又優化了程序結構,簡化了代碼,使程序邏輯更加清晰,可擴展性更強,滿足了程序運行維護、更新升級和閱讀交流的需要,使程序開發向著規范化、模塊化和系統化方向發展,形成了一套基于面向對象思想的系統程序開發體系,并為將來的系統開發提供一個可復用性的平臺。
[1]廖常初. PLC編程及應用[M]. 北京: 機械工業出版社,2003.
[2]汪成為. 面向對象分析、設計及應用[M]. 北京: 國防工業出版社, 1991.
[3]宋炎等譯. 面向對象的編程指南[M]. 北京: 電子工業出版社, 1996.
[4]王養庭. UML基礎與應用[M]. 北京: 清華大學出版社,2006.
[5]徐鋒等譯. UML2.0實戰項目開發指南[M]. 北京: 人民郵電出版社, 2007.
[6]Erich Gamma 等. 設計模式:可復用面向對象軟件的基礎[M]. 北京: 機械工業出版社, 2000.