Progettazione e Sviluppo
Quando si programma graficamente nel diagramma di classe, le modifiche apportano automaticamente adattamenti per gli oggetti in POU vista e Dispositivi Visualizza. Nuovi oggetti vengono inseriti nella loro struttura di base e gli oggetti esistenti vengono adattati. Ad esempio, è possibile inserire dichiarazioni nelle POU tramite il diagramma delle classi.
Ciò consente di progettare l'architettura della propria applicazione in un diagramma di classe e ottenere le POU adatte in modo sincrono. Quindi integri le implementazioni nelle POU.
I passaggi seguenti creano un diagramma di classe per un'applicazione.
1. Creazione di un progetto
- Aprire CODESYS. 
- Clic . 
- Specificare il nome e la posizione e selezionare il Progetto standard modello. - Il Progetto standard si apre la finestra di dialogo. 
- Per PLC_PRG in, seleziona il Testo strutturato (ST) linguaggio di attuazione. - Il progetto è creato. 
- Seleziona il Applicazione codice e fare clic . - Il Aggiungi diagramma di classe UML si apre la finestra di dialogo. 
- Specificare il nome dell'oggetto - CD_Simple.
- Seleziona il Importa la struttura del progetto nel diagramma di classe attivo opzione. 
- Clic Aggiungere.  
- Salva il progetto come - SimpleMachine.project.
2. Identificazione delle interfacce
Le interfacce determinano metodi e proprietà pubblicamente visibili per implementare le classi.
- Apri l'editor del diagramma di classe - CD_Simple.
- Nel Cassetta degli attrezzi visualizzare, selezionare un'interfaccia. 
- Trascina l'interfaccia nell'editor. - Il Aggiungi interfaccia si apre la finestra di dialogo. 
- Specificare il nome - IBaseMachine. Clic Aggiungere per uscire dalla finestra di dialogo.
- Nel Cassetta degli attrezzi visualizzare, selezionare un metodo. 
- Trascina il metodo nell'interfaccia. - Il Aggiungi metodo di interfaccia si apre la finestra di dialogo. 
- Specificare il nome - DoIt.
- Specificare il tipo di reso - BOOL. Clic Aggiungere per uscire dalla finestra di dialogo.
- Nel Cassetta degli attrezzi visualizzare, selezionare una proprietà. 
- Trascina la proprietà nell'interfaccia. - Il Aggiungi proprietà interfaccia si apre la finestra di dialogo. 
- Specificare il nome - StateNumber.
- Specificare il tipo di reso - INT. Clic Aggiungere per uscire dalla finestra di dialogo. 
Suggerimento
Per ulteriori informazioni sulle interfacce, vedere: Oggetto: interfaccia e Oggetto: Proprietà interfaccia
3. Identificazione delle classi e implementazione di un'interfaccia
Classi diverse che implementano la stessa interfaccia contengono gli stessi metodi e proprietà. Se l'interfaccia viene modificata o estesa in un secondo momento, ciò influirà su tutte le classi di implementazione.
- Apri l'editor del diagramma di classe - CD_Simple.
- Nel Cassetta degli attrezzi visualizzare, selezionare una classe. 
- Trascina la classe nell'editor. - Il Aggiungi POU si apre la finestra di dialogo. 
- Specificare il nome - FB_Machine.
- Seleziona il Blocco funzione opzione. 
- Per la lingua di implementazione, selezionare Carta di stato UML (SC). Clic Aggiungere per uscire dalla finestra di dialogo. - La classe - FB_Machineviene aggiunto al diagramma di classe.
- Seleziona la classe. - Le icone dei comandi vengono visualizzate sopra la classe. 
- Clicca il  Realizzazione ( Realizzazione (- IMPLEMENTS) icona del comando e fare clic su- IMachineinterfaccia.- Il Seleziona Lingua di implementazione si apre la finestra di dialogo. 
- Selezionare Testo strutturato (ST). - La classe - FB_Machineeredita le proprietà ei metodi dell'interfaccia e quindi implementa l'interfaccia- IMachine. 
4. Generalizzare
In generale, una classe eredita le proprietà ei metodi di un'altra classe.
- Apri l'editor del diagramma di classe - CD_Simple.
- Nel Cassetta degli attrezzi visualizzare, selezionare una classe. 
- Trascina una classe nell'editor. - Il Aggiungi POU si apre la finestra di dialogo. 
- Specificare il nome - FB_Machine_A.
- Seleziona il Si estende opzione e specificare la classe - FB_Machinenel campo di immissione.- Il blocco funzione - FB_Machineè esteso e quindi è una generalizzazione di- FB_Machine_A.
- Per la lingua di implementazione, selezionare Carta di stato UML (SC). Clic Aggiungere per uscire dalla finestra di dialogo. - La classe - FB_Machine_Aviene creato nel diagramma di classe. Esiste una generalizzazione tra le classi- FB_Machinee- FB_Machine_A.- FB_Machine_Aeredita le sue proprietà e metodi da- FB_Machine.
- Nel Cassetta degli attrezzi visualizzare, selezionare il Dichiarazione variabile elemento e trascinalo nella classe - FB_Machine_A.- Il Dichiarare la variabile si apre la finestra di dialogo. 
- Specificare il nome - iCountere il tipo di dati- INT. Clic ok per uscire dalla finestra di dialogo.- Ora la classe - FB_Machine_Aha le proprie variabili oltre alle proprietà e ai metodi ereditati.
- In classe - FBMachine_A, selezionare il metodo- DoIt()e premere il Del chiave.- Il metodo viene rimosso dal diagramma, così come l'oggetto nel file Dispositivi Visualizza. Il blocco funzione ereditario - FBMachine_Anon necessita di una propria implementazione speciale per il metodo. Invece, chiama il metodo- DoItdel blocco funzione di base- FBMachinequando necessario.- Nota- Quando si richiamano metodi assegnati a un blocco funzione di base ed ereditati, utilizzare il puntatore - SUPER. 
Suggerimento
Per ulteriori informazioni, vedere Estensione di un blocco funzione e Puntatore: SUPER.
5. Istanziare
- Apri l'editor del diagramma di classe - CD_Simple.
- Seleziona il programma - PLC_PRG.- Le icone dei comandi vengono visualizzate sopra il programma. 
- Clicca il  Composizione ( Composizione (- VAR) icona del comando e fare clic su- FB_Machine_Aclasse.- Il Dichiarazione variabile si apre la finestra di dialogo. 
- Specificare il nome - fb_A.- L'oggetto - fb_Adella classe- FBMachine_Aè istanziato. Ora, l'istanza della classe nella sua forma concreta viene generata in fase di esecuzione. 
Il diagramma di classe mostra tutti gli oggetti rilevanti per la generazione del codice dell'applicazione. Soprattutto, però, il diagramma delle classi visualizza le relazioni tra gli oggetti: chi implementa chi? Chi eredita da chi? Chi istanzia cosa? In caso contrario, queste informazioni sono nascoste nella dichiarazione e ad esempio non possono essere visualizzate nel Dispositivi Visualizza.
6. Implementazione
- Aprire il blocco funzione - FBMachine.
- Dichiarare le variabili del blocco funzione. - FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine VAR iState: INT; iMachine : INT; END_VAR
- Implementare il blocco funzione. - iState := iState + 1; // Dummy for control ID 
- Implementa il suo metodo - DoIt.- METHOD PUBLIC DoIt : BOOL iMachine := iMachine + 1; // Dummy 
- Implementare il metodo Get della proprietà - StateNumberdi- FBMachine.- StateNumber := iState; 
- Implementare il metodo Set della proprietà - StateNumberdi- FBMachine.- iState := StateNumber; 
- Aprire il blocco funzione - FBMachine_A.
- Dichiarare le variabili del blocco funzione. - FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine VAR iCounter: INT; END_VAR 
- Implementare il blocco funzione. - iCounter := iCounter + 1; 
- Implementare il metodo Get della proprietà - StateNumberdi- FBMachine_A.- StateNumber := iCounter; 
- Implementare il metodo Set della proprietà - StateNumberdi- FBMachine_A.- iCounter := StateNumber; 
- Clic . - L'applicazione viene compilata senza errori.  
- Scarica e avvia l'applicazione. - È possibile monitorare l'istanza del blocco funzione - fb_A.