Ressource

Explorer par catégories

Retour

Freelances

Freelances

Entreprise

Entreprise

Actualité

Actualité

8 min de lecture

Langage FBD

Rédigé par Antoine
le 30 Déc, 2024

Introduction au langage FBD

Le langage FBD fait partie des cinq langages standardisés par la norme IEC 61131-3.

Le langage FBD permet la programmation d’automate avec un aspect très visuel où tu manipules des blocs fonctions plutôt que du code texte. D’où son nom en Français « Digramme de blocs fonction »

Ici on détailles :

  • Les bases et la structure du FBD
  • Comment l’intégrer avec d’autres langages comme le ST dans des blocs personnalisé.
  • Les types de variables des langages automates.
  • Les meilleures pratiques pour optimiser ton code

De mon point de vue la programmation en langage ST est la meilleure manière de programmer un automate industriel, la courbe d’apprentissage est certes un peu plus raide que sur des langages graphiques mais les fonctionnalité sont beaucoup moins restrictive.

 

Variables et connexions en langage FBD

Les connexions entre blocs suivent des règles précises. Les entrées se trouvent toujours sur le côté gauche des blocs, tandis que les sorties se trouvent à droite. Tu dois respecter la compatibilité des types de données entre les connexions – une sortie numérique ne peut pas se brancher sur une entrée booléenne.

Pour créer un programme efficace :

  • Vérifie que chaque variable d’entrée correspond au type attendu par le bloc
  • Assure-toi que les sorties sont compatibles avec les variables de destination
  • Utilise les arcs de liaison pour connecter les blocs entre eux

Le flux d’exécution suit naturellement tes connexions, de gauche à droite et de haut en bas. Cette organisation te permet de visualiser facilement le cheminement logique de ton programme.

 

Blocs fonction standard en langage FBD

Les blocs fonction se divisent en plusieurs catégories principales :

Type de Bloc Fonction
Opérateurs booléens Fonctions logiques (ET, OU, NON)
Blocs mathématiques Calculs et opérations numériques
Blocs contrôle temporisation Gestion des événements et temporisation
Blocs E/S Gestion des entrées/sorties numériques et analogiques

Voici un exemple très basique de programme en FBD ici si on a IN_bool1 actif ou IN_bool2 actif et que IN_int1 est supérieur à IN_int2 alors on active la sortie booléenne OUT_bol1

 

Blocs fonction de contrôle et de temporisation

Les temporisateurs sont essentiels dans ton programme. Tu disposes de plusieurs types :

  • TON (retard à l’enclenchement) : active la sortie après un délai programmé
  • TOF (retard au déclenchement) : maintient la sortie active pendant un temps défini
  • Détection de front : réagit aux changements d’état de tes signaux

 

Fonctions mathématiques et logiques

Tu as accès à une large gamme de blocs pour tes programmes :

Catégorie Fonctions disponibles
Logique ET, OU, NON
Mathématique Addition, Soustraction, Multiplication
Conversion Mise à l’échelle, Conversion de type

Les blocs personnalisés te permettent d’optimiser tes ressources système. Tu peux les concevoir pour des fonctions spécifiques à ton application.

 

Quand tu développe ton programme automate, peu importe le langage, garde bien en tête des choses toutes bêtes mais qui aideront à ce que ton programme soit bien lisible :

  • Commente ton code pour faciliter sa reprise par d’autres développeurs.
  • Structure tes programmes en blocs logiques bien définis.
  • Utilise des noms de variables explicites pour éviter les ambiguïtés.
  • Évite les variables globales inutiles, qui peuvent consommer de la mémoire inutilement. 

création bloc fonction FBD en STLes blocs fonction sur mesure

Certaines plateformes de code comme Codesys que j’utilise permettent également de créer des blocs fonctions sur mesure.

Ces blocs peuvent être codés en d’autres langages, mais on garde l’aspect visuel dans le programme global. Voici un exemple détaillé ci-dessous :

Dans cet exemple, j’ai créé un bloc fonction qui exécute la même fonction que notre bout de programme réalisé ci-dessus.

Cela permet de garder l’aspect visuel du code FBD allié à la puissance du code ST.

Création d’un bloc fonction en langage ST

Pour commencer, il faut déclarer les variables d’entrée et de sortie du bloc. J’ai repris les mêmes que sur notre ancien bout de programme.

Les VAR_INPUT seront placés à gauche de notre bloc et les VAR_OUTPUT en sortie à droite. Le nom de notre bloc est déclaré après FUNCTION_BLOCK.

Puis, il faut réaliser le programme du bloc fonction (ici, on a répété la même fonction que sur notre exemple précédent).

On retrouve donc notre bloc fonction ayant exactement la même fonction que notre ensemble de flocs fonction standard mais dans un blocs fonction sur mesure codé en ST. 

 

Les types de variables des langages de programmation IEC 61331-3

Pour rappel voici les types de variables qui sont utilisés dans les langages de programmation de la normes IEC 61131-3 :

Types de données booléennes

Type Description Exemple
BOOL Booléen (valeur logique) TRUE/FALSE

 

Types de données numériques entiers

Type Description Exemple
SINT Entier signé sur 8 bits -128 à 127
INT Entier signé sur 16 bits -32768 à 32767
DINT Entier signé sur 32 bits -2 147 483 648 à 2 147 483 647
LINT Entier signé sur 64 bits Très grand nombre
USINT Entier non signé sur 8 bits 0 à 255
UINT Entier non signé sur 16 bits 0 à 65535
UDINT Entier non signé sur 32 bits 0 à 4 294 967 295
ULINT Entier non signé sur 64 bits Très grand nombre

 

Types de données numériques en virgule flottante

Type Description Exemple
REAL Nombre décimal en simple précision (32 bits) -3.402e38 à 3.402e38
LREAL Nombre décimal en double précision (64 bits) Très grande plage de valeurs

 

Types de données temporelles

Type Description Exemple
TIME Durée ou intervalle T#5s, T#1h30m
DATE Date DATE#2024-12-06
TIME_OF_DAY / TOD Heure du jour TOD#12:30:15
DATE_AND_TIME / DT Date et heure DT#2024-12-06-12:30:15

 

Types de données bit et mot

Type Description Exemple
BYTE Octet de 8 bits 0x00 à 0xFF
WORD Mot de 16 bits 0x0000 à 0xFFFF
DWORD Double mot de 32 bits 0x00000000 à 0xFFFFFFFF
LWORD Long mot de 64 bits Très grand nombre

 

Choisis les types de données appropriés pour économiser la mémoire. Par exemple, utilise SINT au lieu de DINT pour les petites valeurs.

 

Notre avis sur la programmation en langage FBD

Le langage FBD offre une approche visuelle intuitive pour programmer des automates industriels, pour faire la conception de processus complexes tout en simplifiant leur maintenance.

Grâce à sa compatibilité avec d’autres langages comme le ST, il combine lisibilité et puissance, permettant aux développeurs de tirer parti des avantages des types de langages.

Cependant, comme pour tout langage, la maîtrise du FBD repose sur de bonnes pratiques : structuration rigoureuse, choix judicieux des types de données, et documentation claire. Ces éléments garantissent des programmes performants, modulables et facilement transmissibles.

En combinant les forces des blocs fonction standards et personnalisés, tu pourras concevoir des solutions adaptées aux besoins spécifiques de tes installations industrielles.

À toi maintenant d’explorer et d’expérimenter le langage FBD pour optimiser tes projets ! 

Contenu

Besoin d’assistance en automatisme industriel

$

Vous allez aussi aimer