title: Boîtes fonctionnelles
text: # Boîtes fonctionnelles
  
  Les boîtes fonctionnelles, ou en anglais function block diagram (FBD), constitue l'un des cinq langages de la CEI 61131-3. Il est utilisé pour les automates programmables (en anglais PLC : programmable logic controllers). C'est un langage graphique, plus évolué que le Grafcet, constitués de blocs (rectangles) qui décrit une fonction entre, à gauche, des entrées, et à droite des sorties. Chaque bloc est constitué à l'intérieur de blocs plus simples, liés les uns aux autres. Chaque sortie d'un bloc peut être reliée à une entrée d'un autre bloc (si toutefois les données transférées sont de même type).
  
  Des instructions plus ou moins complexes sont supportées, par exemple :
  
  * des fonctions logiques tels que ET, OU, NAND,
  * des fonctions mathématiques, tels que SIN, COS,
  * des fonctions de calcul sur des chaines de caractères,
  
  Les variables d'entrée et de sortie peuvent être des tableaux de variables, mais aussi des adresses pointant sur une variable en mémoire. L'intérêt principal est de créer ses propres blocs et de pouvoir les réutiliser à loisir, soit dans le même programme, soit dans d'autres programmes.
  
  La puissance de calcul des CPU actuels permet de travailler directement avec des notions de classe et d'héritage.
  
  ## Exemple de programme
  
  exemple d'une porte OU à 3 entrées
  
  l'équation est alors OUT1 = IN1 ou IN2 ou IN3
  
  en interne, le bloc utilisera les variables A1, A2, A3 comme entrée, et Q1 comme sortie.
  
  