面向對象編程是計算機gaoji語言的一種先進的編程模式,在工業控制系統的PLC程序中也可以采用這種設計思想,雖然我們無法實現面向對象的很多youxiu特點如“繼承”,甚至于它根本就不具備面向對象編程語言的特點,但面向對象編程的基本概念就是類和類的實例(即對象),我們只需要使用這種概念就可以了。在計算機編程中我們需要把一些事物抽象和歸納,才能編寫類,而在工業控制系統中,控制對象如:電機,閥等等是很明顯的控制類別,不需要抽象就可以很明顯的針對它們編寫類,以下將會用到西門子的Step7編程語言和施奈德的Unity 編程語言來講解PLC的面向對象編程。
一、 實現方式
面向對象編程在Step7中使用功能塊(即FB)編程,一談到此大家就會想到西門子提出的模塊化編程,不錯,就是這個模塊化編程,但西門子提出的模塊化、背景數據塊、多重背景等名詞并不能讓大家很明白的理解和使用這種youxiu的設計理念。如果大家從面向對象編程的角度去理解,則可以很好的理解這種設計模式。“FB塊”被看 成“類”,它可以被看成是對相似的控制對象的代碼歸納,如對MM440的變頻器可以編寫FB塊:MtrMM440,這在面向對象編程中稱為“類”,當需要 編程控制具體的電機時,可以給它分配一個背景DB塊,在面向對象編程中稱為類的實現(即創建類的實例:對象),當需要控制多個電機時,可以分配不同的背景 DB到這個FB塊,即創建類的多個實例。Step7中有另外一種程序塊,即FC塊,以FC塊為主的編程在西門子中稱為結構化編程,這也可以類比于計算機編程中的面向過程編程,即純粹以函數為主體的編程。
施奈德的Unity軟件編程可以更好的理解面向對象編程。它的DFB定義中包含輸入/輸出參數,私有/共有變量,以及代碼實現,而這正是計算機的面向對象 編程中“類”的基本元素,而創建類的實例(對象)就像創建普通的“布爾”變量一樣,只需在“Function Blocks”中定義這種“類”的變量即可。
Step7和Unity都可以采用面向過程和面向對象編程方式,這兩種編程方式的區別類似于計算機gaoji語言中的C語言和C++語言編程的區別。
以下的講解將會把Step7中的FB和Unity中的DFB稱為“類”,Step7中的FB+背景DB以及Unity中DFB的實例稱為“對象”。
二、 面向對象編程架構
以上講解的是實現細節,而編程思想是建立在程序架構上的,不是某個局部使用了面向對象方式,則可以稱之為這種編程就是面向對象編程。這種編程需要從以下方面著手:
1、 電路設計的結構化。
這里主要以自動線為主介紹,對于單機機床可以是它的簡化結構:
面向對象編程并不一定要求使用以上的結構,但好的電氣結構更利于面向對象編程。
2、 任何控制對象邏輯都在“類”中實現。
為了做到這點,必須分析與控制對象相關的信息,譬如,對于一個電機,有以下相關的信息需要考慮:
輸入信息:
風壓開關,油泵的油位開關等。
輸出信息:
.........
狀態儲存信息:
用于代碼實現的中間變量以及可以被人機界面讀出的狀態變量等。
把以上信息都整合到一個類中,并盡量使類的參數標準化。不過,同gaoji編程語言還是曾在一些差別,針對Step7,應該遵循的標準是:程序結構由FC實現,對象控制由FB實現,如下的一種結構體系(其電氣結構來自上面的介紹):這只不過是一個粗略的PLC程序架構體系,好的架構應該更完善和科學。
3、 規劃好數據結構
數據結構的定義相當重要,并盡量統一這些結構,不要顧慮存儲空間,當今的PLC內存足以容納大量的數據。說明一點的是在Step7中盡量不要在類的外部定義數據結構(UDT),而是在類里面定義,雖然會造成不同類中同一結構的重復性定義,但卻提高了類的獨立性。
在接下來的篇幅中,我們來對比一下這兩種編程方式:
面向對象編程的優點
面向對象編程的優點與梯形圖邏輯相比,面向對象編程有以下優點 :
? 代碼可移植,易于重復使用 ;
? 易于使用數學函數、循環等 ;
? 幾乎在每一門計算機編程課程中,都會教授面向對象編程 ;
? 代碼可以在各種硬件平臺上運行。
要掌握面向對象編程,首先需要理解對象的概念及其使用。一旦對象或模塊類編寫完成, 就很容易通過多次調用來實現重復利用。例如,創建一個對象來控制電機,用來處理所有輸入、輸出和故障。當需要時,可以通過多次實例化 該單一控制對象,來控制多個電機。這就是所謂的按需實例化。當需要控制多個電動機時, 可以多次使用該單個物體。 它在需要時調用,并在使用時創建實例。
每個電機的每個實例都有自己的特性,如電機停機、電機運行、電機轉速、電機過載 等。大多數編程工作都是在首次創建對象時完成的。 這是一種與梯形邏輯不同的思維方式,而且更強大,因為一旦構建了一個對象,它就很容易使用和重用。 面向對象編程更易于執行復雜的數學函數、循環計算、數組和嵌套子例程。幾乎每一門計算機編程——無論是高中、大學、還是網絡上的教程,都會教授這方面的知識。創建的代碼是可移植的,可以在各種硬件平臺上運行。
“梯形圖邏輯遵循繼電器控制 系統中使用的梯形電氣圖的格 式,大多數人都可以快速學習 并掌握它。”
面向對象編程的缺點
不過,與梯形圖邏輯相比,面向對象編程有以下缺點 :
? 費用更高 ;
? 更陡峭的學習曲線 ;
? 對于維護人員來說,故障排除不是特別 容易 ;
? 在將源代碼上傳到處理器之前,通常需要編譯。
與梯形圖邏輯相比,面向對象編程往往需要更多的內存和更強的處理能力,因此費用就更高。面向對象編程語言的學習時間可能更長。 很可能需要課堂學習,需要大量的時間、實踐、測試和應用來掌握核心概念。 編程人員必須經常研究面向對象編程,以便使用跟蹤器來追蹤代碼,或調試器來調試邏輯。使用這種類型的gaoji編程,可能很難實現實時在線監視功能。
在將源代碼下載到控制器之前,必須對其進行編譯。通常,源代碼并不保存在處理器內存中。這意味著必須小心備份源代碼,因為編譯過的代碼通常是不可編輯的。 使用面向對象編程,庫文件必須與在編譯過程中使用的其它資源相連接。如果不了解連接和資源,將很難使程序運行。
梯形圖邏輯的優勢
梯形圖邏輯是一種簡單且自文檔化的編碼方法,甚至有人懷疑它是否是一種編程語言。 它遵循繼電器控制系統中使用的梯形電氣圖的格式,大多數人都可以快速學習并掌握它。它是在過去的數十年來唯一在機器自動化領域中大規模應用的編程語言,并且在可預見的將來, 仍然是自動化行業中使用的主要編程語言之一。
隨著時間的推移,具有不同背景的人從不同領域進入該行業,各種編程語言被引入工業自動化工具箱中。其中包括功能塊編程、結構化文本、狀態編程和順序功能圖。這 4 種編程語言和梯形圖邏輯,構成了IEC61131-3 國際電工委員會 (IEC) 的標準編程語言。
IEC61131 背后的邏輯是 :如果每個供應商都遵循該標準,那么至少在某種程度上,一個人只需學習這 5 種編程語言,就可以輕松地在來自不同供應商提供的平臺之間進行切換。 然而,事實卻并非如此。
基本梯形圖邏輯(如使用繼電器觸點和線圈)也是一樣的 ;但是在編程時,必須學習每個供應商的語法和用戶體驗,以及如何使用編程平臺的詳細信息。盡管缺乏標準化,但與面向對象編程相比,梯形圖邏輯有以下優勢 :
? 非常適合機器和過程控制 ;
? 由于本質上是自文檔,因此更易于理解;
? 易于對受控系統進行故障排除 ;
? 易于調試 ;
? 源代碼通常可以存儲在處理器中。
梯形圖邏輯非常適合于機器和過程控制, 特別是具有大量離散輸入、輸出(I/O)的自動化系統。多年來,梯形圖邏輯也在不斷改進,以處理模擬量I/O,使其更適合于眾多的過程控制應用。
與機器控制應用相比,過程應用中模擬量 I/O 的比例往往較高。
因為梯形圖邏輯比面向對象編程更易于使用,因此眾多熟練的技術人員和工程人員可以快速學習梯形圖邏輯。邏輯高度系統化、有序化,再加上其具有自文檔的性質,使其更易于理解和掌握。在啟動某個設備之前,每行代碼都必須為真。如果有 5 個電機需要控制,那么至少需要 5行代碼,實現了高度簡化。
“梯形圖邏輯源代碼和描述符通常保存在控制器中,無需訪問源代碼,這可以消除程序員在試圖理解編譯程序所遭受的挫敗。”
更易于學習
對電氣工程師和維護人員來講,梯形圖邏輯非常直觀。雖然梯形圖邏輯需要有與面向對象編程不同的思維方式,但通過學習可以快速掌握,并且理解他人編寫的代碼所需的時間也較少。邏輯何時為真,何時為假,一清二楚。 即使編程經驗有限的人,也很容易弄清楚開或關、線圈通電、比較變量和常見的數學函數。
它簡單易用,簡化了故障排除和調試工作。 監視邏輯時,可以很容易明白目前正在發生的工況。無需軟件學位或gaoji編程技能。有了梯形圖邏輯,維護人員和工程人員就很容易跟蹤流程,了解正在發生的事情。可以將梯形圖邏輯看作真值表。如果左邊的邏輯為真,則右側的邏輯就會啟動。
梯形圖邏輯源代碼和描述符,通常被保存在控制器中。這可以消除程序員在試圖理解編譯程序而無法訪問源代碼時所遭受的挫敗,面向對象編程也是如此。
然而,與面向對象編程相比,梯形圖邏輯也有如下缺點 :
? 計算機程序員和 IT人員對梯形圖邏輯不熟悉 ;
? 難于進行數學函數、文本和數據處理 ;
? 依賴于掃描時間 ;
? 需要專門的硬件來執行, 如可編程邏輯控制器 (PLC) 。
梯形圖邏輯是計算機程序員和IT人員所不熟悉的一種符號語言,他們在學校里并沒有學習這種語言。在梯形圖邏輯中處理數學函數、文本字符串和數據可能會很困難,這主要是因為梯形圖邏輯Zui初并不是為了處理這些函數而設計的。
依賴掃描時間
梯形圖邏輯也依賴于掃描時間。較大的程序,需要更長的時間來掃描和處理邏輯。執行梯形 圖邏輯時,讀取輸入、掃描邏輯、 更新數據表和輸出、執行通信, 然后循環重復。可以實現中斷和其它編程技術等功能,以確保更快地執行某些邏輯。
盡管配置了梯形圖邏輯的基于軟件的PLC可以在PC上運行, 但通常硬件 ( 如 PLC)要與編程軟件相匹配,兩者zuihao都是從同一個供應商處購買的。這樣就可以確保兼容性,但如果想要更換供應商,則不是特別方便。
除了比較梯形圖邏輯和面向對象編程的利弊外,用戶還應該評估這些編程語言在將要部署的環境中的使用情況。如果工廠或設施已實現了梯形圖邏輯的標準化,那么即使面向對象編程更適合于該應用,也不鼓勵將梯形圖邏輯更換為 面向對象編程。隨著面向對象編程的使用日益增多,預計在未來幾十年內,它將與梯形圖邏輯共存。一個有遠見的自動化專業人士,zuihao要掌握這兩種語言。
- 自動化工程師:發那科機器人指令編輯 2024-12-02
- PLC控制系統?在實際調試過程中常見的3個問題 2024-12-02
- PLC串口通訊的知識!讓你輕松自學PLC通訊 2024-12-02
- 我的PLC之路,僅用三步就獨立做項目了 2024-12-02
- 西門子PLC通訊方式你知道多少? 2024-12-02
- PLC編程九步全解! 2024-12-02
- 如何實現用PLC、觸摸屏控制變頻器的頻率? 2024-12-02
- S7-200SMART定時器詳解 2024-12-02
- 精講西門子S7-1200PLC通訊全解 2024-12-02
- 老工程師總結:PLC項目調試七步法 2024-12-02
- PLC應用分享 伺服電機的三種控制方式 2024-12-02
- 新手如何學習PLC,PLC學習的幾點建議 2024-12-02
- 干了多年PLC竟然還不會調試? 2024-12-02
- PLC控制系統?在實際調試過程中常見的3個問題 2024-12-02
- PLC編程變量太多,如何規劃地址便于記憶?? 2024-12-02
聯系方式
- 電 話:13922889745
- 經理:向小姐
- 手 機:18475208684
- 微 信:18475208684