Skip to main content

Programmation dans l'éditeur CFC

Note

Vous vous engagez sur le langage d'implémentation lors de la création du POU. Par la suite, il n'est plus possible de passer d'un langage à l'autre. Diagramme de fonctions continues (CFC) et Diagramme de fonctions continues (CFC) - orienté page langages d'implémentation.

Insertion d'éléments et câblage avec lignes de connexion

  1. Faites glisser un Module élément et un Sortie élément dans l'éditeur.

  2. Cliquez sur la sortie du Module élément.

    La sortie est marquée d'une module rouge.

  3. Faites glisser une ligne de connexion à partir de la broche de sortie du Module élément à la broche entrée du Sortie élément.

    Le symbole du curseur change lorsqu'il atteint la broche entrée .

  4. Relâchez le bouton gauche de la souris.

    La broche de sortie du module est câblée à la broche entrée de la sortie.

    _cds_img_prg_simple.png

Vous pouvez également maintenir la touche Ctrl clé, sélectionnez chaque broche, puis faites un clic droit Broches sélectionnées connectées.

Appel d'instances

  1. Créez un nouveau projet en utilisant le modèle standard et spécifiez le nom First Par exemple.

    Le projet First.project est créé.

  2. Étendez l'application avec le bloc fonctionnel FB_DoIt dans le ST langage d'implémentation avec entrées et sorties.

    Exemple:

    FUNCTION_BLOCK FB_DoIt
    VAR_INPUT
        iAlfa : INT;
        iBravo: INT;
        sCharlie : STRING := 'Charlie';
        xItem : BOOL;
    END_VAR
    VAR_OUTPUT
        iResult : INT;
        sResult : STRING;
        xResult : BOOL;
    END_VAR
    VAR
    END_VAR
    iResult := iAlfa + iBravo;
    
    IF xItem = TRUE THEN
        xResult := TRUE;
    END_IF
  3. Sélectionnez l'application et cliquez sur Ajouter un objet → POU. Sélectionnez le Diagramme de fonctions continues (CFC) langage d'implémentation et le type Program. Spécifiez le nom PrgFirst Par exemple.

    Cliquez D'ACCORD pour confirmer le dialogue.

    Le PrgFirst Le programme est créé et s'ouvre dans l'éditeur. Il est encore vide.

  4. Instanciez des blocs de fonctions et déclarez des variables.

    PROGRAM PrgFirst
    VAR
        iCounter: INT;
        fbDoIt_1 : FB_DoIt;
        fbDoIt_2 : FB_DoIt;
        iOut : INT;
        sOut: STRING;
        xOut: BOOL;
    END_VAR
  5. Faites glisser un Module élément de la Boîte à outils vue dans l'éditeur.

  6. Cliquez sur le ??? champ et tapez ADD comme nom de la module .

    Le type de module est ADD La module agit comme un additionneur.

  7. Cliquez sur la ligne 3 dans l’éditeur de déclaration.

    La ligne de déclaration de iCounter est sélectionné.

  8. Cliquez dans la sélection et faites glisser la variable sélectionnée dans l'implémentation. Concentrez-vous sur une entrée de la variable. ADD module.

    Une entrée a été créée, déclarée et connectée à la module.

  9. Cliquez à nouveau dans la sélection et faites glisser la variable vers la sortie du ADD module.

    Une sortie a été créée, déclarée et connectée à la module.

  10. Faites glisser un Entrée élément de la Boîte à outils vue de la mise en œuvre. Cliquez sur son ??? champ et tapez 1.

  11. Connectez le 1 entrée à une entrée du ADD module.

    Un réseau est programmé. À l'exécution, le réseau compte les cycles de bus et stocke le résultat dans iCounter.

    cfc_img_first_network_add.png
  12. Cliquez sur la ligne 5 dans l’éditeur de déclaration.

    La ligne est sélectionnée.

  13. Cliquez dans la sélection et faites glisser l'instance sélectionnée dans l'implémentation.

    L'instance apparaît sous forme de module dans l'éditeur. Le type, le nom et les repères de la module sont affichés en conséquence.

    cfc_img_first_network_doit.png
  14. Faites glisser le fbDoIt_2 Instance à l'éditeur. Interconnectez les instances entre elles et aux entrées et sorties.

    Exemple:

    cfc_img_first_network_add_doit1_doit2.png

    Un programme en ST avec les mêmes fonctionnalités pourrait ressembler à ceci :

    PROGRAM PrgFirstInSt
    VAR
        iCounter: INT;
    
        fbDoIt_1 : FB_DoIt;
        fbDoIt_2 : FB_DoIt;
    
        iOut : INT;
        sOut: STRING;
        xOut: BOOL;
    END_VAR
    iCounter := iCounter + 1;
    fbDoIt_1(iAlfa := 16, iBravo := 32, sCharlie := 'First', xItem := TRUE, iDelta := 2, iResult => fbDoIt_2.iAlfa, xResult => fbDoIt_2.xItem);
    fbDoIt_2(iBravo := fbDoIt_1.iResult, sCharlie := 'Second', iDelta := 2, iResult => iOut , sResult=> sOut, xResult => xOut);

Création de marques de connexion

Exigence : Un POU CFC possède des éléments connectés.

  1. Sélectionnez une ligne de connexion entre deux éléments.

    La ligne de connexion est affichée comme sélectionnée. Ses extrémités sont marquées d'un cfc_icon_selected_input.png boîtes rouges.

  2. Cliquez CFC → Étiquette de liaison.

    La connexion est séparée en un Étiquette de liaison – Source et un Étiquette de liaison – Évier Le nom de la marque est généré automatiquement.

    cfc_img_prg_simple_with_connection_mark.png
  3. Cliquez sur les marques de connexion source .

    Vous pouvez modifier le nom.

  4. Précisez le nom SimpleMark pour la étiquette de liaison source .

    La étiquette de liaison source et la étiquette de liaison cible ont le même nom.

    cfc_img_prg_simple_with_named_connection_mark.png

Résolution des collisions et fixation des lignes de connexion au moyen de points de contrôle

L'exemple suivant montre comment utiliser le Routage de toutes les liaisons commandement avec points de contrôle.

  1. Positionnez le Entrée et Sortie éléments. Reliez les éléments.

    cfc_img_prg_simple2_control_point.png
  2. Position deux Module éléments sur la ligne.

    La ligne de connexion et les cases sont marquées en rouge à cause de la collision.

    cfc_img_prg_simple2_red_linie.png
  3. Cliquez CFC → Routage → Routage de toutes les liaisons.

    La collision est résolue.

    cfc_img_prg_simple2_routed_line.png
  4. Changez progressivement les lignes de connexion.

    cfc_img_prg_simple2_manual_routed_line.png

    La ligne de connexion a été modifiée manuellement et le routage automatique est désormais bloqué. Ceci est indiqué par un symbole de cadenas à la fin de la connexion.

    _cds_img_prg_simple2_locked_routed_line.png
  5. Sélectionnez la ligne de connexion et cliquez sur CFC → Routage → Créer un point de contrôle.

    Un point de contrôle est créé sur la ligne de connexion. Cette ligne est fixée au point de contrôle.

    cfc_img_prg_simple2_locked_routed_line_with_control.png

    Vous pouvez également faire glisser un point de contrôle depuis le Boîte à outils vue sur une ligne.

  6. Modifiez la ligne de connexion comme indiqué dans l’exemple suivant.

    cfc_img_prg_simple2_changed_line_with_control.png

    Utilisez le point de contrôle pour modifier la ligne de connexion selon vos besoins. Vous pouvez définir autant de points de contrôle que vous le souhaitez.

  7. Dans le menu contextuel, cliquez sur CFC → Routage → Supprimer point de contrôle pour supprimer le point de contrôle.

  8. Cliquez Résoudre la connexion ou cliquez sur le symbole du cadenas pour déverrouiller la connexion.

  9. Sélectionnez la ligne de connexion et cliquez sur Routage de toutes les liaisons.

    La ligne de connexion est acheminée automatiquement comme indiqué à l’étape 3.

    _cds_img_prg_simple2_locked_routed_line.png

Important

Les connexions dans un groupe ne sont pas routées automatiquement.

Réduire l'affichage d'une module

Condition préalable : Un POU CFC est ouvert. Dans l'éditeur, ses cases avec toutes les broches déclarées sont affichées.

  1. Sélectionnez une module dont les broches sont partiellement déconnectées.

    Exemple: fb_DoIt_1

    cfc_img_box_with_unconnected_pins.png

    La module a besoin d'espace pour toutes les broches.

  2. Cliquez CFC → Broches → Supprimer les connexions non reliées.

    Désormais, la module nécessite moins d'espace et s'affiche uniquement avec les broches fonctionnellement pertinentes.

    cfc_img_box_without_unconnected_pins.png