Elemento: Classe
Una classe è un'unità logica con dati e operazioni incapsulati. Rappresenta anche un tipo di variabile che può essere istanziato. Quando l'istanza di una classe viene assegnata come variabile a un'altra classe, si parla di ruolo o espressione della classe.
Una classe può fornire un metodo FB_Init
che viene chiamato durante l'inizializzazione di un'istanza.
Una classe può ereditare da un'altra classe. Questa relazione è chiamata generalizzazione.
Una classe può istanziare un'altra classe. Questa relazione è chiamata composizione.
Una classe può riconoscere un'altra classe. Questa relazione è chiamata associazione.
Una classe può essere una POU, una libreria POU (tipo: programma), un blocco funzione o una funzione.

(1) | Icone di comando SuggerimentoQuando una classe è selezionata, i suoi simboli di comando sono visibili. |
(2) | Intestazione
|
(3) | Elenco di attributi La voce ha il seguente formato: Esempio: ID:
|
(4) | Elenco di operazioni (azioni, metodi o proprietà) Esempio:
Una voce per i metodi ha il formato:
In caso di ingresso per an Una voce per le azioni ha il formato:
Per <etichetta> vale quanto segue:
|
Proprietà
Identificatore | Nome della classe Esempio: |
Input dell'utente
La classe dispone di elenchi di attributi e operazioni espansi identificati con . Le icone dei comandi sono visibili sopra la classe. Puoi usarli per inserire elementi di relazione.
Azione | Risultato | |
---|---|---|
Nel | Il SuggerimentoDopo essere stata eliminata, la classe viene visualizzata nel file Cassetta degli attrezzi guarda dentro Riferimenti incrociati in arrivo o Riferimenti incrociati in uscita. Il requisito per questo è selezionare un elemento nel diagramma di classe che ha una relazione con la classe eliminata. | |
Clicca il | Il | |
Il | Una freccia di composizione punta dal nuovo La classe è stata estesa dalla dichiarazione di un'istanza di blocco funzione della prima classe. FUNCTION_BLOCK NewClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR InstanceBase : BaseClass; END_VAR | |
| Una freccia di composizione punta dalla seconda classe alla prima classe. La seconda classe è stata estesa dalla dichiarazione di un'istanza di blocco funzione della prima classe. FUNCTION_BLOCK SecondClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR InstanceBase : BaseClass; END_VAR | |
Il nuovo | Una freccia di associazione punta dalla nuova classe alla prima classe. Il primo Il FUNCTION_BLOCK NewClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR ptrBase : POINTER TO BaseClass; END_VAR | |
| Una freccia di associazione punta dalla prima classe alla seconda classe. La prima classe riconosce la seconda classe. La prima classe è stata estesa dalla dichiarazione di un puntatore alla seconda classe. FUNCTION_BLOCK SecondClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR ptrBase : POINTER TO BaseClass; END_VAR | |
Viene generata una nuova classe che eredita dalla prima classe. | Una generalizzazione punta dalla nuova classe alla prima classe. La nuova classe eredita dalla prima classe. La dichiarazione della nuova classe è stata generata con FUNCTION_BLOCK ClassNew EXTENDS BaseClass VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
| Una generalizzazione punta dalla prima classe alla prima classe. La dichiarazione della seconda classe è stata generata con l'estensione della prima classe.
| |
Viene generata un'interfaccia che viene implementata dalla classe in uscita. | Una freccia di implementazione punta dalla classe al nuovo Ora la classe implementa la nuova interfaccia. La dichiarazione della classe è stata estesa con l'implementazione. FUNCTION_BLOCK BaseClass IMPLEMENTS ITF_New VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
L'interfaccia è implementata dalla classe. | Una freccia di realizzazione punta dalla classe all'interfaccia. La dichiarazione della classe è stata estesa con l'implementazione dell'interfaccia. FUNCTION_BLOCK BaseClass IMPLEMENTS ITF_A VAR_INPUT END_VAR VAR_OUTPUT END_VAR VAR END_VAR | |
| Il nome dell'oggetto (nella struttura del dispositivo o nel file POU view) è stato automaticamente adattato nella dichiarazione. | |
| La modifica viene applicata al progetto in modo sincrono e automatico. | |
Fare doppio clic sull'elemento della classe. | Si apre l'editor di oggetti corrispondente. |
Esempi

FUNCTION_BLOCK Fb_D VAR VarFb_A: Fb_A; ... END_VAR

FUNCTION_BLOCK Fb_A VAR Class_2 : POINTER TO Class_2; END_VAR

FUNCTION_BLOCK Fb_A EXTENDS Fb_Base

FUNCTION_BLOCK Class_A IMPLEMENTS Itf_A