Concevoir et développer
Lorsque vous programmez graphiquement dans le diagramme de classes, vos modifications entraînent automatiquement des adaptations pour les objets du POU voir et Dispositifs voir. De nouveaux objets sont insérés dans leur structure de base et les objets existants sont adaptés. Par exemple, vous pouvez insérer des déclarations dans les POU via le diagramme de classes.
Cela vous permet de concevoir l'architecture de votre application dans un diagramme de classes et d'obtenir les POU appropriés de manière synchrone. Ensuite, vous complétez les implémentations dans les POU.
Les étapes suivantes créent un diagramme de classes pour une application.
1. Créer un projet
- Ouvrir CODESYS. 
- Cliquez sur . 
- Spécifiez le nom et l'emplacement, puis sélectionnez le Projet standard modèle. - le Projet standard la boîte de dialogue s'ouvre. 
- Pour PLC_PRG dans, sélectionnez le Texte structuré (ST) langage d'implémentation. - Le projet est créé. 
- Sélectionnez le Application coder et cliquer . - le Ajouter un diagramme de classes UML la boîte de dialogue s'ouvre. 
- Spécifiez le nom de l'objet - CD_Simple.
- Sélectionnez le Importer la structure du projet dans le diagramme de classes actif option. 
- Cliquez sur Ajouter.  
- Enregistrez le projet sous - SimpleMachine.project.
2. Identification des interfaces
Les interfaces déterminent des méthodes et des propriétés visibles publiquement afin d'implémenter des classes.
- Ouvrir l'éditeur du diagramme de classes - CD_Simple.
- Dans le Boîte à outils vue, sélectionnez une interface. 
- Faites glisser l'interface vers l'éditeur. - le Ajouter une interface la boîte de dialogue s'ouvre. 
- Précisez le nom - IBaseMachine. Cliquez sur Ajouter pour quitter la boîte de dialogue.
- Dans le Boîte à outils vue, sélectionnez une méthode. 
- Faites glisser la méthode vers l'interface. - le Ajouter une méthode d'interface la boîte de dialogue s'ouvre. 
- Précisez le nom - DoIt.
- Spécifiez le type de retour - BOOL. Cliquez sur Ajouter pour quitter la boîte de dialogue.
- Dans le Boîte à outils vue, sélectionnez une propriété. 
- Faites glisser la propriété vers l'interface. - le Ajouter une propriété d'interface la boîte de dialogue s'ouvre. 
- Précisez le nom - StateNumber.
- Spécifiez le type de retour - INT. Cliquez sur Ajouter pour quitter la boîte de dialogue. 
Astuce
Pour plus d'informations sur les interfaces, consultez : Objet : Interface et Objet : Propriété de l'interface
3. Identifier les classes et implémenter une interface
Différentes classes qui implémentent la même interface contiennent les mêmes méthodes et propriétés. Si l'interface est modifiée ou étendue ultérieurement, cela affectera toutes les classes d'implémentation.
- Ouvrir l'éditeur du diagramme de classes - CD_Simple.
- Dans le Boîte à outils vue, sélectionnez une classe. 
- Faites glisser la classe vers l'éditeur. - le Ajouter un POU la boîte de dialogue s'ouvre. 
- Précisez le nom - FB_Machine.
- Sélectionnez le Bloc fonction option. 
- Pour la langue d'implémentation, sélectionnez Organigramme UML (SC). Cliquez sur Ajouter pour quitter la boîte de dialogue. - La classe - FB_Machineest ajouté au diagramme de classes.
- Sélectionnez la classe. - Les icônes de commande sont affichées au-dessus de la classe. 
- Clique le  La concrétisation ( La concrétisation (- IMPLEMENTS) icône de commande et cliquez sur le- IMachineinterface.- le Sélectionnez la langue d'implémentation la boîte de dialogue s'ouvre. 
- Sélectionner Texte structuré (ST). - La classe - FB_Machinehérite des propriétés et des méthodes de l'interface et implémente donc l'interface- IMachine. 
4. Généraliser
En généralisation, une classe hérite des propriétés et des méthodes d'une autre classe.
- Ouvrir l'éditeur du diagramme de classes - CD_Simple.
- Dans le Boîte à outils vue, sélectionnez une classe. 
- Faites glisser une classe vers l'éditeur. - le Ajouter un POU la boîte de dialogue s'ouvre. 
- Précisez le nom - FB_Machine_A.
- Sélectionnez le Prolonge option et spécifiez la classe - FB_Machinedans le champ de saisie.- Le bloc fonction - FB_Machineest étendu et donc c'est une généralisation de- FB_Machine_A.
- Pour la langue d'implémentation, sélectionnez Organigramme UML (SC). Cliquez sur Ajouter pour quitter la boîte de dialogue. - La classe - FB_Machine_Aest créé dans le diagramme de classes. Une généralisation existe entre les classes- FB_Machineet- FB_Machine_A.- FB_Machine_Ahérite de ses propriétés et méthodes de- FB_Machine.
- Dans le Boîte à outils vue, sélectionnez le Déclaration des variables élément et faites-le glisser vers la classe - FB_Machine_A.- le Déclarer une variable la boîte de dialogue s'ouvre. 
- Précisez le nom - iCounteret le type de données- INT. Cliquez sur d'accord pour quitter la boîte de dialogue.- maintenant la classe - FB_Machine_Aa ses propres variables en plus des propriétés et méthodes héritées.
- Dans la classe - FBMachine_A, sélectionnez la méthode- DoIt()et appuyez sur le Suppr clé.- La méthode est supprimée du diagramme, ainsi que l'objet dans le Dispositifs voir. Le bloc fonction héritier - FBMachine_An'a pas besoin de sa propre implémentation spéciale pour la méthode. Au lieu de cela, il appelle la méthode- DoItdu bloc fonction de base- FBMachinequand c'est nécessaire.- Note- Lorsque vous appelez des méthodes, qui sont affectées à un bloc fonctionnel de base et héritées, utilisez le pointeur - SUPER. 
Astuce
Pour plus d'informations, voir Extension d'un bloc fonctionnel et Pointeur : SUPER.
5. Instancier
- Ouvrir l'éditeur du diagramme de classes - CD_Simple.
- Sélectionnez le programme - PLC_PRG.- Les icônes de commande sont affichées au-dessus du programme. 
- Clique le  Composition ( Composition (- VAR) icône de commande et cliquez sur le- FB_Machine_Aclasser.- le Déclaration des variables la boîte de dialogue s'ouvre. 
- Précisez le nom - fb_A.- L'object - fb_Ade la classe- FBMachine_Aest instancié. Maintenant, l'instance de la classe dans sa forme concrète est générée à l'exécution. 
Le diagramme de classes affiche tous les objets pertinents pour générer le code de l'application. Mais surtout, le diagramme de classes visualise les relations entre les objets : qui implémente qui ? Qui hérite de qui ? Qui instancie quoi ? Dans le cas contraire, ces informations sont cachées dans la déclaration et par exemple ne peuvent pas être vues dans le Dispositifs voir.
6. Mise en œuvre
- Ouvrir le bloc fonction - FBMachine.
- Déclarez les variables du bloc fonction. - FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine VAR iState: INT; iMachine : INT; END_VAR
- Implémenter le bloc fonction. - iState := iState + 1; // Dummy for control ID 
- Mettre en œuvre sa méthode - DoIt.- METHOD PUBLIC DoIt : BOOL iMachine := iMachine + 1; // Dummy 
- Implémenter la méthode Get de la propriété - StateNumberde- FBMachine.- StateNumber := iState; 
- Implémenter la méthode Set de la propriété - StateNumberde- FBMachine.- iState := StateNumber; 
- Ouvrir le bloc fonction - FBMachine_A.
- Déclarez les variables du bloc fonction. - FUNCTION_BLOCK FBMachine IMPLEMENTS IBaseMachine VAR iCounter: INT; END_VAR 
- Implémenter le bloc fonction. - iCounter := iCounter + 1; 
- Implémenter la méthode Get de la propriété - StateNumberde- FBMachine_A.- StateNumber := iCounter; 
- Implémenter la méthode Set de la propriété - StateNumberde- FBMachine_A.- iCounter := StateNumber; 
- Cliquez sur . - L'application est compilée sans erreur.  
- Téléchargez et démarrez l'application. - Vous pouvez surveiller l'instance du bloc fonction - fb_A.