Brevet FR2829337A1 — publié le 20030307

avec d'autres dispositifs de communicabon pouvant dialoguer sans fil. 1 2829337 La présente invention concerne un équipement d'automatisme directement relié à un réseau de communication TCP/IP. Le protocole standard IP (Internet Protocol) définit un protocole d'interconnexion de réseaux de communication, au niveau de la couche réseau. Le protocole standard TCP (Transport Control Protocol) définit un mécanisme de transport des données qui garantit un acheminement de bout en bout. Ces deux protocoles, qui sont largement utilisés dans des réseaux globaux de type Internet, Intranet ou Extranet, sont regroupés dans le présent exposé sous le terme "réseau TCP/IP". Un équipement d'automatisme désigne ci-après un automate programmable, une station de contrôle/commande, une commande numérique ou tout équipement pouvant contenir et exécuter un programme d'application dans le but de contrôler eVou commander tout ou partie d'une application d'automatisme appartenant par exemple au domaine des automatismes industriels, des automatismes du bâtiment ou du contrôle/commande des réseaux électriques de distribution. Un équipement d'automatisme peut également comporter des modules métiers dotés eux aussi d'unité de traitement pour assurer des fonctions particulières relatives à un métier d'automatisme (tel que pesage, réqulation, positionnement,...) ainsi que d'autres modules tels que des modules d'entrées/sorties. Les modules d'un équipement d'automatisme sont reliés et synchronisés entre eux par un bus de communication interne, appelé généralement bus fond de panier, qui utilise généralement un protocole propriétaire optimisé pour les échanges temps réel d'entrées-sorties. Dans un équipement d'automatisme, il est connu de disposer d'un module de communication d'une part connecté au bus de communication interne de l'équipement d'automatisme, et d'autre part relié à un réseau TCP/IP. Ce module de communication réalise une passerelle entre d'un côté les services de communication internes et propriétaires et de l'autre le réseau TCP/IP. Cependant, dans ces conditions, il s'avère très complexe de maintenir les caractéristiques d'une communication selon le protocole TCP/IP de bout en bout entre deux entités communiquant entre elles. En effet, la passerelle d'un module réseau coupe le flux de données de TCP et n'assure pas non plus la transparence de IP. On perd ainsi les avantages en performance, en fiabilité et en transparence que procurent le protocole TCP/IP. i 2 2829337 Par ailleurs, on connaît un système de communication dans un équipement d'automatisme qui permet de réaliser, sur le bus fond de panier de communication interne, des échanges d'informations conformes au protocole de communication TCP/IP. Pour échanger entre eux des informations conformes au protocole de communication TCP/IP, les modules de l'équipement d'automatisme comportent une adresse IP propre et une pile TCP/IP exécutable par l'unité de traitement de ces modules. De plus, I'équipement d'automatisme comporte un module réseau, raccordé à un réseau TCP/IP externe et au bus fond de panier interne, permettant aux modules de l'équipement d'automatisme de réaliser directement sur le réseau TCP/IP des échanges d'informations conformes au protocole de communication TCPIIP, via le bus fond de panier interne. Néanmoins, cette solution utilise le bus fond de panier interne de l'équipement d'automatisme pour acheminer la communication TCP/IP, ce qui peut être parfois néfaste pour les performances des communications temps réel liées à l'application d'automatisme, et de plus nécessite l'emploi d'un coupleur réseau dédié. Le but de l'invention est de proposer un équipement d'automatisme possédant un accès direct au protocole TCP/IP pour des échanges sur un réseau TCP/IP, sans avoir recours à une passerelle au niveau de la couche application qui peut se révéler coûteuse. Grâce au protocole TCP/IP, I'équipement d'automatisme pourra directement se connecter à des systèmes d'information d'entreprise (ERP Enterprise Resource Planning, MES Manufacturing Execution System) et pourra utiliser les protocoles et les architectures du WEB comme par exemple les standards UDP, HTTP, XML, WAP, FTP, SMTP, SNMP, DHCP, DNS, etc.... De plus, I'invention propose de gérer la communication TCP/IP directement dans i'unité centrale de l'équipement d'automatisme, sans passer par le bus fond de panier, tout en conservant la ma^'trise des différentes affectations de l'unité centrale pour ne pas que les communications par le réseau TCP/IP ne perturbent le fonctionnement temps récl du programme d'application effectuant le contrôle/commande de l'application d'automatisme. De plus, le bus fond de panier pourra être avantageusement réservé aux échanges de type entrées/sorties ou de type messages temps réel (messages réflexes, par exemple) de l'équipement d'automatisme. 3 2829337 Pour cela, I'invention décrit un équipement d'automatisme comportant une unité centrale qui possède au moins une mémoire comprenant un système d'exploitation temps réel et un programme d'application chargé d'effectuer des fonctions de contrôle ou de comma nde dans une application d'automatis me. L'équipement d'automatisme comporte un pilote de réseau TCPIIP qui est directement intégré dans l'unité centrale sans passer par un bus de fond de panier, le système d'exploitation de l'unité centrale comprenant un module de gestion des communications sur le réseau TCP/IP et une tâche d'asservissement chargée d'asservir l'exécution du module de gestion des communications aux caractéristiques de l'application d'automatisme pour ne pas perturber le fonctionnement du programme d'application. Selon une particularité, lorsque l'exécution du programme d'application est en mode périodique, la tâche d'asservissement comprend des moyens de validation permettant d'autoriser le fonctionnement du module de gestion des communications entre la fin d'un cycle du programme d'application et le début du cycle suivant. Par ail leurs, lorsque l'exécution d u program me d'application est en mod e cycliq ue, la tâche d'asservissement comprend des moyens de validation pour autoriser, à la fin d'un cycle du programme d'application, le fonctionnement du module de gestion des communications durant une durée paramétrable par un utilisateur. Selon une autre particularité, le module de gestion des communications comprend un premier sous-module qui exploite une zone mémoire pour mémoriser des données transmises ou à destination du programme d'application. Le module de gestion des communications comprend aussi un deuxième sous-module qui exploite une zone mémoire pour mémoriser des données transmises ou à destination du réseau TCP/IP. Selon une autre particularité, le premier sous-module du module de gestion des communications transmet les données en provenance du programme d'application d'automatisme vers le deuxième sous-module du module de gestion des communications pour construire un message transmis sur le réseau TCP/IP. Selon une autre particularité, le deuxième sous-module du module de gestion des communications transmet les informations représentatives des messages en provenance du réseau TCP/IP vers le premier sous-module du module de gestion des communications afin d'être exploité par le programme d'application. 4 2829337 Les informations représentatives des messages reçus du réseau TCP/IP sont notamment des commandes de mise à jour du programme d'application, des commandes de modification des paramètres d'exécution du programme d'application dont la gestion de la cohérence doit être assurée par l'utilisateur. De même, les données mémorisées par le premier sous-module en provenance du programme d'application sont notamment des indications d'état du fonctionnement de l'automatisme dont la gestion de la cohérence doit être assurée par l'utilisateur. Selon une autre particularité, le pilote de réseau TCP/IP exécute une procédure de routage des messages reçus du réseau TCP/IP qui est basée sur des niveaux de priorité contenus dans l'adressage IP. L'invention, avec ses caractéristiques et avantages, est maintenant détaillée en référence aux dessins annexés dans lesquels: - la figure 1 représente le schéma d'une l'architecture de communication d'un équipement d'automatisme selon le principe de l'invention, - la figure 2 schématise un exemple d'architecture d'un tel équipement d 'a uto mati s me. L'équipement d'automatisme selon l'invention comprend une connexion réseau contrôlée par un pilote (40) (en anglais: driver) supportant le protocole TCP/IP. L'équipement d'automatisme comprend, de manière connue, une unité centrale (1) comportant au moins un processeur (5) et un bus mémoire (101) d'échange avec une mémoire vive (3) et avec une mémoire morte (2). L'équipement d'automatisme comprend également un bus (100) de communication interne, appelé bus fond de panier dans le présent document, un gestionnaire d'entrces-sorties (21) ainsi qu'un gestionnaire de traitement de messages temps réel (23), ces gestionnaires étant connectés sur le bus (100) de fond de panier de l'équipement d'automatisme. La mémoire morte (2) comprend le programme constructeur (10) ou système d'exploitation de l'équipement d'automatisme chargé de contrôler et commander l'exécution d'un programme d'application (20) ou programme utilisateur mémorisé habituellement dans la mémoire vive (3) de l'équipement d'automatisme. Il est rappelé que, pour contrôler eVou commander une application d'automatisme, le programme d'application (20) traite des donnces d'entrées-sorties dont le transfert est effectué par le gestionnaire d'entréss-sorties (21) et gère des données de couplage de plusieurs ! 2829337 équipements dont le transfert est effectué par le gestionnaire de traitement de messages temps réel (23). Selon l'invention, l'équipement d'automatisme comporte un pilote (40) de réseau TCP/IP qui est directement intégré à l'unité centrale (1) par un bus logiciel (102) spécifique, sans utiliser le bus (100) de fond de panier, et qui permet de connecter l'équipement d'automatisme au réseau TCP/IP (4). Le système d'exploitation (10) de l'équipement d'automatisme comprend également un gestionnaire de balayage (11) chargé de générer l'envoi de signaux de début de cycle (111) et de fin de cycle (110) du programme d'application (20). Ces signaux sont envoyés vers le gestionnaire d'entrées-sorties (21) et vers le gestionnaire de traitement de messages temps réel (23) de façon à les synchroniser avec le déroulement du programme d'application (20). Selon l'invention, le système d'exploitation (10) de l'équipement d'automatisme comprend également un module (30) de gestion des communications avec le réseau TCP/IP (4) et une tâche d'asservissement (12) de ce module (30). Le module (30) de gestion des communications réalise l'interface entre d'une part le programme d'application (20) qui exécute les fonctions de contrôle/commande d'automatisme et d'autre part le réseau TCP/IP (4). Ce logiciel est constitué de deux sous-modules (31,32). Un premier sous-module (31) présente des données qui sont facilement exploitables par le programme d'application (20) car elles sont cohérentes et compatibles avec le format des objets utilisés par le programme d'application. Leur exploitation n'implique donc pas de traitement supplémentaire susceptible de dégrader les performances temps réel du système. En outre le programme d'application (20) et le sous-module (31) partagent les mémes zones mémoires dans la mémoire vive (3). Ces données sont, à titre exemple, des résultats de traitement du programme d'appiication comme des fichiers d'historique, des valeurs de consignes, des informations de diagnostic, etc. Un second sous-module (32) reçoit les messages du réseau (4) qui ne sont pas destinés au module gestionnaire de traitement des messages temps réel (23). Ainsi, une procédure de routage est exécutée par le pilote (40) pour distinguer les messages temps réel destinés au gestionnaire (23) et les autres messages de communication destinés au module (30). Selon un mode de réalisation, cette procédure de routage est basée sur l'utilisation d'un port propriétaire donné qui est ! 6 2829337 réservé pour la messagerie temps réei circulant sur TCPIIP. Selon un autre mode de réalisation, cette procédure de routage se base sur des niveaux de priorité contenus dans l'adressage IP et qui sont en cours de standardisation au niveau de l'IETF (Internet Engineering Task Force), par exemple dans le protocole IPv6. A titre indicatif, I'aiguillage pourrait aussi être réalisé à partir du protocole d'application utilisé; les protocoles du WEB seraient alors dirigés vers le sous-module (32) de réception des messages du réseau (4). Le sous-module (32) expose, par l'intermédiaire d'une mémoire vive (36), les données qu'il reçoit en un format compréhensible pour le sous-module (31), lequel les traduit en données exploitables par le programme d'application (20). Lorsqu'un message est destiné au module (30) de gestion des communications, il est envoyé par ia liaison (35) vers le deuxième sous-module (32). Le message est dans un premier temps mémorisé dans la mémoire (36). Le deuxième sous-module (32) extrait ensuite les informations du message et les transmet au premier sous-module (31) pour traitement. Eventuellement, ces informations peuvent être mémorisées dans une mémoire intermédiaire tampon (33) pour ne pas être perdues dans le cas o l'exécution du module (30) de gestion des communications serait interrompue. Le premier sous-module (31) exécute ensuite les commandes représentatives des informations extraites du message entrant. Réciproquement, pour l'émission d'un message ou pour la réponse à un message entrant, le premier sous module (31) envoie les informations qu'il a reçues comme représenté par la flèche (34), vers le deuxième sousmodule (32). Le deuxième sous-module (32) construit alors, à partir des informations reçues du module (31) et mémorisées dans sa mémoire (36), un message conforme au protocole TCP/IP. Selon l'invention, le module (30) de gestion des communications est une application d'arrière-plan, c'est-à-dire que son exécution a une priorité plus basse que la priorité du programme d'application en ce qui concerne l'utilisation des ressources de l'équipement d'automatisme. Pour ce faire, le système (10) d'exploitation comprend une tâche d'asservissement (12) du module (30) de gestion des communications. Cette tâche d'asservissement (12) gère, par une liaison (120), le temps d'attribution de l'unité centrale et l'allocation des ressources mémoire qui sont dédiés pour le module (30) de gestion des communications, de façon à ce que l'exécution du programme d'application (20) ne soit pas perturbée par l'exécution en arrière-plan du module (30) l 7 2829337 de gestion des communications. Selon l'invention, la tâche d'asservissement (12) envoie des signaux par la liaison (120) vers le module (30) de gestion des communications, pour, d'une part valider ou invalider son exécution et d'autre part affecter les ressources mémoire et le temps d'attribution de l'unité centrale (1) à I'exécution des instructions du module (30) de gestion des communications. Lorsque le fonctionnement du programme d'application (20) est périodique, chaque début de cycle du programme d'application n'est déclenché qu'après une période de temps déterminée. Cette période du cycle du programme d'application (20) est généralement choisie par l'utilisateur en fonction du type d'application d'automatisme à contrôler. En cas de fonctionnement périodique, la tâche d'asservissement (12) valide l'exécution du module (30) de gestion des communications, par un premier signal de niveau déterminé fourni sur la liaison (120), entre d'une part le signal de fin d'un cycle (110) et d'autre part le signal (111) de début du cycle suivant du programme d'application (20), générés par le gestionnaire (11) de balayage et envoyés au gestionnaire d'entrées/sorties (21) et au gestionnaire de traitement des messages temps réel (23). Pendant l'exécution d'un cycle du programme d'application (20), la tâche d'asservissement (12) invalide l'exécution du module (30) de gestion des communications, par un deuxième niveau de signal transmis sur la liaison (120). L'invalidation consiste en une mise en veille de l'exécution de la gestion des communications, de sorte que lorsque le premier niveau de signal de validation est de nouveau reçu sur la liaison (120) par le module (30) de gestion des communications, I'exécution du module (30) de gestion des communications reprend là o elle a été arrêtée. Ainsi, la tâche (12) est toujours synchronisée avec les échanges d'entrées-sorties de l'équipement d'automatisme. Lorsque l'exécution du programme d'application (20) n'est pas périodique mais cyclique, c'est-à-dire que le début d'un cycle du programme d'application n'est pas lié au déclenchement d'une période déterminée mais dépend de la fin du cycle précédent, la tâche d'asservissement (12) valide l'exécution du module (30) de gestion des communications, par un signal sur la liaison (120), pendant un certain laps de temps, à la fin d'un cycle du programme d'application. Ce laps de temps dédié au mod u le (30) est in itialement fixé par défaut mais l'utilisateur a avantageusement la possibilité de le paramétrer pour l'optimiser tout en faisant en sorte que l'exécution du programme d'application (20) ne soit pas perturbée par l'exécution du module (30) de gestion des communications. Le début du cycle suivant du programme d'application (20) n'est alors déclenché que lorsque la durée dédiée au module (30) est écoulée ou i lorsque le module (30) n'a plus de tâche à effectuer. La valeur de paramétrage de cette durée est déterminée par l'utiilsateur en fonction des besoins de l'application d'automatisme, par exemple. On comprend que le module (30) de gestion des communications et la tâche d'asservissement (12) correspondante permettent de doter l'équipement d'automatisme d'une fonction de communication avec un réseau TCP/IP (4) sans perturber l'exécution temps réel du programme d'application de l'automatisme et sans utiliser le bus fond de panier de l'équipement d'automatisme. Ainsi, un système d'information con necté au réseau TCP/I P (4) de l'équi pement d'automatis me selon I'invention peut accéder directement à des informations de l'équipement d'automatisme sans le perturber par l'intermédiaire, par exemple, d'un navigateur de type Internet, dans la mesure o le module (30) de gestion des communications supporte le protocole correspondant. Il doit être évident pour les personnes versées dans l'art que la présente invention permet des modes de réalisation sous de nombreuses autres formes spécifiques sans l'éloigner du domaine d'application de l'invention comme revendiqué. Pa r co nséq uent, les présents mod es de réa l isation doivent être consid é rés à titre d'illustration, mais peuvent être modiflés dans le domaine défini par la portée des revendications jointes, et l'invention ne doit pas être limitée aux détails donnés ci dessus. l 9 2829337 REVENDICATIONS 1. Équipement d'automatisme comportant une unité centrale (1) qui possède au moins une mémoire (2, 3) comprenant un système d'exploitation (10) temps réel et un programme d'application (20) chargé d'effectuer des fonctions de contrôle ou de commande dans une application d'automatisme, caractérisé en ce que l'équipement d'automatisme comporte un pilote (40) de réseau TCP/IP (4) qui est directement intégré dans l'unité centrale (1) sans passer par un bus de fond de panier, le système d'exploitation (10) de l'unité centrale (1) comprenant un module (30) de gestion des communications sur le réseau TCP/IP (4) et une tâche d'asservissement (12) chargée d'asservir l'exécution du module (30) de gestion des communications aux caractéristiques de l'application d'automatisme pour ne pas perturber le fonctionnement du programme d'application (20). 2. Équipement d'automatisme selon la revendication 1, caractérisé en ce que lorsque l'exécution du programme d'application (20) est en mode périodique, la tâche d'asservissement (12) comprend des moyens de validation (120) permettant d'autoriser le fonctionnement du module de gestion (30) des communications entre la fin d'un cycle du programme d'application (20) et le début du cycle suivant. 3. Équipement d'automatisme selon la revendication 1, caractérisé en ce que lorsque l'exécution du programme d'application (20) est en mode cyclique, la tâche d'asservissement (12) comprend des moyens de validation (120) permettant d'autoriser, à la fin d'un cycle du programme d'application (20), le fonctionnement du module de gestion (30) des communications durant une durée paramétrable par un utilisateur. 4. Équipement d'automatisme selon l'une des revendications 1 à 3, caractérisé en ce que le module (30) de gestion des communications comprend un premier sous-module (31) qui exploite une zone mémoire pour mémoriser des données transmises ou à destination du programme d'application (20). 5. Équipement d'automatisme selon la revendication 4, caractérisé en ce que le module (30) de gestion des communications comprend un deuxième sous module (32) qui exploite une zone mémoire pour mémoriser des données transmises ou à destination du réseau TCP/IP (4). 1 o 2829337 6. Équipement d'automatisme selon les revendications 4 et 5, caractérisé en ce que le premier sous-module (31) du module (30) de gestion des communications transmet les données en provenance du programme d'application (20) d'automatis me vers le deuxième sous-mod ule (32) du mod u le d e gestion d es communications pour construire un message transmis sur le réseau TCP/IP (4). 7. Équipement d'automatisme selon la revendication 6, caractérisé en ce que le deuxième sous-module (32) du module (30) de gestion des communications transmet les informations représentatives des messages en provenance du réseau TCP/IP vers le premier sous-module (31) du module de gestion des communications afin d'être exploité par le programme d'application (20). 8. Équipement d'automatisme selon l'une des revendications précédentes, caractérisé en ce que le pilote (40) de réseau TCP/IP exécute une procébure de routage des messages reçus du réseau TCP/IP (4) qui est basée sur des niveaux de priorité contenus dans l'adressage IP.