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_Machine
est 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 (
IMPLEMENTS
) icône de commande et cliquez sur leIMachine
interface.le Sélectionnez la langue d'implémentation la boîte de dialogue s'ouvre.
Sélectionner Texte structuré (ST).
La classe
FB_Machine
hérite des propriétés et des méthodes de l'interface et implémente donc l'interfaceIMachine
.
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_Machine
dans le champ de saisie.Le bloc fonction
FB_Machine
est étendu et donc c'est une généralisation deFB_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_A
est créé dans le diagramme de classes. Une généralisation existe entre les classesFB_Machine
etFB_Machine_A
.FB_Machine_A
hérite de ses propriétés et méthodes deFB_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
iCounter
et le type de donnéesINT
. Cliquez sur d'accord pour quitter la boîte de dialogue.maintenant la classe
FB_Machine_A
a ses propres variables en plus des propriétés et méthodes héritées.Dans la classe
FBMachine_A
, sélectionnez la méthodeDoIt()
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_A
n'a pas besoin de sa propre implémentation spéciale pour la méthode. Au lieu de cela, il appelle la méthodeDoIt
du bloc fonction de baseFBMachine
quand 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 (
VAR
) icône de commande et cliquez sur leFB_Machine_A
classer.le Déclaration des variables la boîte de dialogue s'ouvre.
Précisez le nom
fb_A
.L'object
fb_A
de la classeFBMachine_A
est 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é
StateNumber
deFBMachine
.StateNumber := iState;
Implémenter la méthode Set de la propriété
StateNumber
deFBMachine
.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é
StateNumber
deFBMachine_A
.StateNumber := iCounter;
Implémenter la méthode Set de la propriété
StateNumber
deFBMachine_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
.