在工業自動化領域,梯形圖邏輯仍然是Zui常用的編程語言之一,但對于更加復雜的控制對象,面向對象編程不失為一種高效率的方式。下面先來談談面向對象編程:
面向對象編程是計算機gaoji語言的一種先進的編程模式,在工業控制系統的PLC程序中也可以采用這種設計思想,雖然我們無法實現面向對象的很多youxiu特點如“繼承”,甚至于它根本就不具備面向對象編程語言的特點,但面向對象編程的基本概念就是類和類的實例(即對象),我們只需要使用這種概念就可以了。在計算機編程中我們需要把一些事物抽象和歸納,才能編寫類,而在工業控制系統中,控制對象如:電機,閥等等是很明顯的控制類別,不需要抽象就可以很明顯的針對它們編寫類,以下將會用到西門子的Step7編程語言和施奈德的Unity 編程語言來講解PLC的面向對象編程。
一、 實現方式
面向對象編程在Step7中使用功能塊(即FB)編程,一談到此大家就會想到西門子提出的模塊化編程,不錯,就是這個模塊化編程,但西門子提出的模塊化、背景數據塊、多重背景等名詞并不能讓大家很明白的理解和使用這種youxiu的設計理念。
如果大家從面向對象編程的角度去理解,則可以很好的理解這種設計模式?!癋B塊”被看 成“類”,它可以被看成是對相似的控制對象的代碼歸納,如對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),而是在類里面定義,雖然會造成不同類中同一結構的重復性定義,但卻提高了類的獨立性。
在接下來的篇幅中,我們來對比一下這兩種編程方式:
面向對象編程的優點與梯形圖邏輯相比,面向對象編程有以下優點 :
? 代碼可移植,易于重復使用 ;
? 易于使用數學函數、循環等 ;
? 幾乎在每一門計算機編程課程中,都會教授面向對象編程 ;
? 代碼可以在各種硬件平臺上運行。
要掌握面向對象編程,首先需要理解對象的概念及其使用。一旦對象或模塊類編寫完成, 就很容易通過多次調用來實現重復利用。例如,創建一個對象來控制電機,用來處理所有輸入、輸出和故障。當需要時,可以通過多次實例化 該單一控制對象,來控制多個電機。這就是所謂的按需實例化。當需要控制多個電動機時, 可以多次使用該單個物體。它在需要時調用,并在使用時創建實例。
- 如何實現西門子S7-1200和西門子S7-200的modbus通訊 2024-11-23
- 西門子S7-1200 PLC 與HMI設備組態網絡的連接 2024-11-23
- 西門子PLC的實際應用,就藏在這里! 2024-11-23
- 西門子編碼器怎么實現定位功能,西門子plc怎么設計梯形圖 2024-11-23
- 西門子PLC編程在實際工作中意義有多大 2024-11-23
- 西門子PLC在自動化控制系統中都扮演了什么角色 2024-11-23
- 西門子PLC柜內部布局、接線、布線的五個雷區,你踩了幾個 2024-11-23
- 西門子PLC必懂的基礎知識匯總 2024-11-23
- 西門子PLC調試過程中的八大坑,你都經歷了么 2024-11-23
- WinCC V7.2 與西門子S7-1200 PLC以太網通訊組態步驟 2024-11-23
- 詳解西門子PLC模擬量編程 2024-11-23
- 西門子變頻器損傷電機的秘密,你知道幾個 2024-11-23
- 影響西門子RS-485總線通訊速度和通信可靠性的三個因素 2024-11-23
- 西門子RS-485/RS-422接口為何在停止通信時接收器仍有數據輸出 2024-11-23
- 西門子RS-485網口不知道Zui遠站點是哪一個,應該如何接匹配電阻呢 2024-11-23
聯系方式
- 電 話:13510737515
- 聯系人:董海波
- 手 機:13185520415
- 微 信:13185520415