第四章 S 公司個案分析
4.3 S 公司軟體的模組化
4.3.3 S 公司軟體模組化的做法
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
4.3.2 軟體模組化形成概念
軟體開發的困難性在程式設計人員在開發初期時必須設計出符合客戶的多變需 求,而這些使用需求,客戶並不會在開發初期就可以提供完整,故如何規劃出具有可 擴充的程式架構將是因應未來變化的重要因素。
傳統新研發的機械設備,其軟體開發流程都需要數個月不等的時間才能完成,為 了因應市場客製化、快速化需求,必須使用更有系統及效率的方法。
依照目前遭遇到的狀況,我們必須要將整個軟體功能切割成許多小功能區塊,形 成軟體 IC 庫(Soft IC library),往後在各種專案裡即可重複使用這些已開發過的程 式碼,這就是目前軟體工程強調的可重複使用性(Reusable),其具體作法是以目前市 場主流為物件導向程式設計(Object-oriented Programming,縮寫 OOP)來實現。
4.3.3 S 公司軟體模組化的做法
1. 可程式控制器簡介
可程式邏輯控制器(Programmable Logic Controller,簡稱 PLC),一種具有微 處理機的數位電子設備,用於自動化控制的數位邏輯控制器,可以將控制指令隨時載 入記憶體內儲存與執行。可程式控制器由內部 CPU,指令及資料記憶體、輸入輸出單 元、電源模組、數位類比等單元所模組化組合成。
廣泛應用於目前的工業控制領域。在可程式邏輯控制器出現之前,一般要使用成 百上千的繼電器以及計數器才能組成具有相同功能的自動化系統,而現在,經過編程 簡單的可程式邏輯控制器模塊基本上已經代替了這些大型裝置。可程式邏輯控制器的 系統程序一般在出廠前已經初始化完畢,用戶可以根據自己的需要自行編輯相應的用
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
戶程序來滿足不同的自動化生產要求。
最初的可程式邏輯控制器只有電路邏輯控制的功能,所以被命名為可程式邏輯控 制器,後來隨著不斷的發展,這些當初功能簡單的計算機模塊已經有了包括邏輯控 制,時序控制、模擬控制、多機通信等許多的功能,名稱也改為可程式控制器
(Programmable Controller),但是由於它的簡寫也是 PC,與個人電腦(Personal Computer )的簡寫相衝突,也由於多年來的使用習慣,人們還是經常使用可程式邏 輯控制器這一稱呼,並在術語中仍沿用 PLC 這一縮寫。
現在工業上使用的可程式邏輯控制器已經相當接近於一台輕巧型電腦,甚至已經 出現整合個人電腦(採用嵌入式作業系統)與 PLC 架構的 PC-BASE 控制器,能透過數位 或類比輸入/輸出模組控制機器設備、製造處理流程、及其它控制模組的電子系統。
PLC 可接收(輸入)及發送(輸出)多種型態的電氣或電子訊號,並使用他們來控制或監 督幾乎所有種類的機械與電氣系統。
圖 4-10 常見的可程式邏輯控制器外觀
(資料來源:Siemens-可程式控制器)
2. PLC程式模組化特性 (1) 線性程式設計
傳統 PLC 程式開發是以線性開發為主,所謂線性係指程式開頭至結尾是由一連貫 的方式執行,但此種開發模式會導致難以維護及程式無法重複使用的問題。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 4-11 線性程式設計與結構化程式設計之比較 (資料來源:STEP 7 V5.5 編成手冊)
(2) 結構化程式設計
結構化程式設計提高了程式的可讀性、可重用性等,逐漸出現了將程式開發中經 常用到的相同功能,比如數學函數運算、字串操作等,獨立出來編寫成函數,然 後按照相互關係或應用領域彙集在不同的檔案裡,這些檔案構成了函數庫。函數 庫是一種對資訊的封裝,將常用的函數封裝起來,人們不必知道如何實現它們。
只需要瞭解如何調用它們即可。函數庫可以被多個應用程式共用,在具體編程環 境中,一般都有一個頭檔相伴,在這個頭檔中以標準的方式定義了庫中每個函數 的介面,根據這些介面形式可以在程式中的任何地方調用所需的函數。
程式被分解成一個個函數模組,其中既有系統函數,也有用戶定義的函數。通過 對函數的調用,程式的運行逐步被展開。閱讀程式時,由於每一塊的功能相對獨 立,因此對程式結構的理解相對耍容易,在一定程度上緩解了程式碼可讀性和可
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
重用件的矛盾,但並未徹底解決矛盾。隨著電腦程式的規模越來越大,這個問題 變得更加尖銳,於是出現了另一種編程風格—結構化程式設計。
在結構化程式設計中,任何程式段的編寫都基於 3 種結構:分支結構、迴圈結構 和順序結構。程式具有明顯的模組化特徵,每個程式模組有惟一的出口和入口語 句。結構化程式的結構簡單清晰,模組化強,描述方式貼近人們習慣的推理式思 維方式。因此可讀性強,在軟體重用性、軟體維護等方面都有所進步,在大型軟 體發展,尤其是大型科學與工程運算軟體的開發中發揮了重要作用。因此到目前 為止,仍有許多應用程式的開發採用結構化程式設計技術和方法。即使在目前流 行的面向物件軟體發展中,也不能完全脫離結構化程式設計。