# CEI 61499

La norme internationale CEI 61499, traitant du thème des blocs fonctionnels pour les systèmes de mesure et de commande du processus industriels, a été publiée initialement en 2005. La spécification de la CEI 61499 définit un modèle générique pour les systèmes de contrôle distribué et se base sur la norme CEI 61131. Les concepts de la norme CEI 61499 sont également expliqués par Lewis et Zoitl ainsi que par Vyatkin.

## Partie 1: Architecture

La norme CEI 61499-1 définit l'architecture des systèmes distribués. Le modèle d'exécution cyclique de la CEI 61131 est remplacé, dans la norme CEI 61499, par un modèle d'exécution piloté par un événement. Le modèle d'exécution entraîné par l'événement permet une spécification explicite de l'ordre d'exécution des blocs fonctionnels. Si nécessaire, les applications exécutées périodiquement peuvent être implémentées en utilisant le bloc fonction E_CYCLE pour la génération d'événements périodiques comme décrit à l'Annexe A de la norme CEI 61499-1.
CEI 61499 permet une conception orientée sur l’application, dans laquelle une ou plusieurs applications, définies par des réseaux de blocs fonction interconnectés, sont créées pour l'ensemble du système et ensuite distribuées aux équipements disponibles. Tous les périphériques d'un système sont décrits dans un modèle de périphérique. La topologie du système est reflétée par le modèle du système. La distribution d'une application est décrite dans le modèle de cartographie. Par conséquent, les applications d'un système sont distribuables mais maintenues ensemble.
Comme les blocs fonction dans la CEI 61131-3, les types de blocs fonction dans la norme CEI 61499 spécifient une interface et une implémentation. Contrairement à la CEI 61131-3, une interface CEI 61499 contient des entrées sorties d’événements ainsi que des entrées sorties de données. Les événements peuvent être associés aux entrées et sorties de données par des contraintes WITH. La norme CEI 61499 définit plusieurs types de blocs fonctions, tous pouvant contenir une description du comportement en termes de séquences de service:
* Bloc fonction de l'interface de service – SIFB (Service Interface Function Block): le code source est caché et sa fonctionnalité n'est décrite que par les séquences de service.
* Bloc de fonctions de base – BFB (Basic Function Block): sa fonctionnalité est décrite en termes de carte de contrôle d'exécution (ECC - Execution Control Chart), qui est similaire à un diagramme états-transitions state diagram (UML). Chaque état peut avoir plusieurs actions. Chaque action fait référence à un ou zéro algorithmes et à un ou zéro événement. Les algorithmes peuvent être implémentés selon les normes conformes.
* Bloc de fonctions composites – CFB (Composite Function Block): sa fonctionnalité est définie par un réseau de bloc fonction.
* Interfaces d'adaptateur: une interface d'adaptateur n'est pas un véritable bloc fonction. Il combine plusieurs événements et connexions de données au sein d'une connexion et fournit un concept d'interface pour séparer les spécifications et la mise en œuvre.
* Sous-application: sa fonctionnalité est également définie comme un réseau de blocs fonction. Contrairement aux CBFs, les sous-applications peuvent être distribuées.
Pour conserver les applications sur un périphérique, la norme CEI 61499 fournit un modèle de gestion. Le gestionnaire de périphérique maintient le cycle de vie de toute ressource et gère la communication avec les outils logiciels (par exemple, outil de configuration, agent) via des commandes de gestion. Grâce à l'interface de l'outil logiciel et aux commandes de gestion, la reconfiguration en ligne des applications CEI 61499 peut être réalisée.

## Partie 2: Les exigences de l’outil logiciel

La norme CEI 61499-2 définit les exigences pour que les outils logiciels soient conformes à la CEI 61499. Cela inclut les exigences pour la représentation et la portabilité des éléments CEI 61499 ainsi qu'un format DTD pour échanger des éléments CEI 61499 entre différents outils logiciels.
Il existe déjà des outils logiciels compatibles avec la norme CEI 61499. Parmi ceux-ci figurent les outils logiciels commerciaux, les outils logiciels open source et les développements universitaires et de recherche. Habituellement, un environnement d'exécution ainsi qu’un environnement de développement compatible avec la norme CEI 61499 sont nécessaires.

## Partie 3: Guide d’application (retrait en 2008)

La norme CEI 61499-3 a été liée à une version antérieure de la norme de spécification publiquement disponible (PAS) qui a été retirée en 2008. Cette partie répondait à une foire aux questions FAQ relatives à la norme CEI 61499 et décrivait l'utilisation des éléments de la CEI 61499 en donnant des exemples afin de résoudre des défis communs au cours de l'ingénierie des systems d'automatisation.
Parmi d'autres exemples, la norme CEI 61499-3 décrit l'utilisation des SIFB comme un service de communications permettant l'accès à distance aux données en temps réel et aux paramètres des blocs function. La norme décrit egalement l'utilisation d'interfaces d'adaptateur pour implémenter des concepts orientés objet, l'initialisation d’algorithmes dans les réseaux de blocs fonction ainsi que la mise en œuvre des ECC pour un contrôle moteur simplifié des magnétoscopes hypothétiques VCR. En outre, les impacts de la cartographie concernant les blocs fonctionnels de communication ont été expliqués. La gestion des périphériques par les applications de gestion et ses blocs fonctionnels ainsi que le principe du bloc function du gestionnaire de périphériques (DEV_MGR) ont également été illustrés.

## Partie 4: Règles pour les profils de conformité

La norme CEI 61499-4 décrit les règles qu'un système, un périphérique ou un outil logiciel doit suivre pour être conforme à la norme CEI 61499. Ces règles sont liées à l’interopérabilité, à la portabilité et à la configuration. Deux dispositifs sont interopérables s'ils peuvent travailler ensemble pour fournir la fonctionnalité spécifiée par une configuration système. Les applications conformes à la norme CEI 61499 doivent être portables, ce qui signifie qu'elles peuvent être échangées entre des outils logiciels de différents fournisseurs en tenant compte des exigences relatives aux outils logiciels décrits dans la CEI 61499-2. Les périphériques de tous fournisseurs doivent être configurés par n'importe quel outil logiciel compatible avec la norme CEI 61499.
Outre ces règles générales, la CEI 61499-4 définit également la structure des profils de conformité. Un profil de conformité décrit comment un système est conforme aux règles de la norme CEI 61499. Par exemple, la configuration d'un périphérique par un outil logiciel est déterminée par les commandes de gestion prises en charge. Le format d'échange XML qui détermine la portabilité des applications conformes à la norme CEI 61499 est défini dans la partie 2. Ceci est également complété par le profil de conformité en déclarant les extensions de nom de fichier supportées pour l'échange d'éléments de bibliothèque de logiciels par exemple.  L’interopérabilité entre les périphériques de différents fournisseurs est définie par les couches des modèles OSI. De plus, les sorties d'état, les adresses IP, les numéros de port ainsi que le codage des données des blocs fonction comme PUBLICATION / SUBSCRIPTION et CLIENT / SERVEUR, utilisés pour la communication entre appareils, doivent être pris en compte. HOLOBLOC, Inc. définit le "profil de conformité CEI 61499 pour les démonstrations de faisabilité", qui est par exemple pris en charge par FBDK et 4diac IDE, des outils logiciels compatibles avec la norme CEI 61499.