FR 3038990 A1 20170120 FR 1556654 A 20150713 1 PROCEDE DE SURVEILLANCE ET D'EXPERTISE DU FONCTIONNEMENT D'UNE INSTALLATION INDUSTRIELLE PILOTEE PAR UN CONTROLEUR PROGRAMMABLE ET EQUIPEMENT METTANT EN OEUVRE LEDIT PROCEDE Domaine technique : La présente invention concerne un procédé de surveillance et d'expertise d'une installation industrielle pilotée par un contrôleur programmable au moyen d'instructions programmées dans un programme utilisateur dudit contrôleur, ledit programme utilisateur comportant des variables internes utilisées pour coordonner l'exécution desdites instructions à chaque tour de cycle dudit contrôleur répété indéfiniment permettant le fonctionnement d'au moins une partie de ladite installation industrielle. La présente invention concerne également un équipement de surveillance et d'expertise d'une installation industrielle pilotée par un contrôleur programmable mettant en oeuvre le procédé défini ci-dessus. Technique antérieure : Les installations industrielles, pouvant être utilisées dans tout type d'industries, sont majoritairement pilotées par un ou plusieurs contrôleurs programmables, appelés communément des automates programmables industriels (API) ou en anglais Programmable Logic Controller (PLC). Chaque contrôleur fonctionne au moyen d'instructions programmées dans un programme utilisateur ou code programme qui est développé spécifiquement pour chaque installation industrielle pilotée. Ainsi, l'écriture d'un programme utilisateur est complexe et unique. De ce fait, la mise au point de chaque programme utilisateur est fastidieuse, délicate et par conséquent coûteuse. Ceci est principalement lié aux contraintes de réalisation des programmes 3038990 2 utilisateur et aux aléas de fonctionnement des programmes et/ou des installations, qui peuvent être très fréquents, et difficilement identifiables tant pendant la phase d'étude, que pendant la phase de mise en service du contrôleur programmable sur le site de production. 5 Afin de mieux comprendre les difficultés rencontrées et ainsi d'appréhender l'intérêt de l'invention proposée, les principes fondamentaux et les concepts majeurs d'une installation industrielle automatisée commandée par un ou plusieurs contrôleurs programmables sont rappelés ci-dessous. 10 Une installation industrielle automatisée est essentiellement constituée d'une partie commande et d'une partie opérative. La partie commande est l'unité de contrôle chargée de piloter les constituants physiques et les énergies qui assurent le fonctionnement de la partie opérative (machines de fabrication, lignes d'assemblages 15 ou de montage, etc.). La partie commande représentant le coeur du système est généralement pilotée par un contrôleur de logique programmée ou contrôleur programmable. 11 joue le rôle de « Chef d'orchestre » du système et sera nommé contrôleur dans la suite de la description. 11 existe fréquemment des installations industrielles automatisées comportant plusieurs contrôleurs interconnectés, mais le 20 principe de l'invention proposée est identique pour chacun d'entre eux. De nombreux équipements sont connectés à ce contrôleur et interagissent sur le fonctionnement de l'installation industrielle, tels que des : - capteurs, composants de mesures, actionneurs, etc. - pupitres de commande, lecteurs de codes à barres ou similaires, etc. 25 - robots, machines spéciales, visseuses, etc. - étiquettes de radio fréquence (RFID), etc. - ordinateurs distants, centrale de supervision, etc. - et similaires. 3038990 3 A l' aide du logiciel du constructeur disponible pour chaque type de contrôleur, l'utilisateur spécialement qualifié, appelé communément automaticien ou programmeur, conçoit et décrit la configuration de tous les équipements, les réseaux, etc. devant être connectés au contrôleur, ainsi que la logique de fonctionnement de 5 l'installation industrielle qui sera écrite dans le contrôleur sous la forme d'un programme utilisateur. A l'issue du développement de ce programme utilisateur en phase d'étude, et après une mise au point théorique « Hors ligne », le programme utilisateur est alors transféré dans le contrôleur en mode « En ligne ». Le mode « Hors ligne » signifie que le programmeur développe son programme à l' aide du 10 logiciel constructeur mais sans connexion physique avec le contrôleur de l'installation industrielle, par opposition au mode « En ligne », où le programmeur établit une connexion physique avec le contrôleur, par le biais du logiciel constructeur, pour mettre au point son programme ainsi que l'installation industrielle automatisée lorsque le contrôleur est en mode « Marche ». 15 L'ensemble de la logique programmée et développée par le programmeur décrit précisément le comportement attendu de l'installation industrielle à commander et est appelée communément le « code programme » ou « programme utilisateur ». Ce programme utilisateur présent dans le contrôleur contient essentiellement les éléments 20 suivants : - des tâches programmes : ensemble de sous-programmes et/ou de routines. On peut citer à titre d'exemple les tâches suivantes : - gestion du processus de l'installation - gestion des terminaux opérateur 25 - des sous-programmes et/ou des routines : zones du programme qui contiennent des lignes d'équations. On peut citer à titre d'exemple les routines suivantes : - gestion des Entrées / Sorties physiques du contrôleur - gestion des mouvements d'une station de l'installation - gestion des défauts d'une station de l'installation 30 3038990 4 - des lignes d'équations : dans lesquelles l'utilisateur regroupe les instructions élémentaires de l'installation industrielle, pour réaliser de la logique combinatoire, un cycle de production, des messages opérateurs, du diagnostic de défauts, etc. On peut citer à titre d'exemple le regroupement d'instructions pour réaliser les opérations 5 suivantes : - si une nouvelle pièce A est au poste, alors démarrer le Robot, - si la pièce A est soudée afficher un message pour l'évacuer, - si une pièce B se présente parmi les pièces A alors afficher un défaut. - des instructions élémentaires du contrôleur. On peut citer à titre d'exemple les 10 instructions suivantes : - logique combinatoire pour les variables booléennes ET, OU, NOT, front montants, mémorisation, etc. - logique combinatoire pour les variables numériques Addition, Soustraction, compteurs, temporisations, etc. 15 - conversion de données, fonctions trigonométriques, etc. - des modules dédiés du contrôleur qui réalisent des fonctions systèmes. On peut citer à titre d'exemple les instructions suivantes : - lecture / écriture de données dans le contrôleur, lecture de l'horodatage du contrôleur, communication avec d'autres équipements sur les réseaux, etc. 20 - des modules spécifiques créés par l'utilisateur pour l'installation industrielle concernée connus sous le nom de « module générique fonctionnel » et en anglais « addon » ou « plug-in ». On peut citer à titre d'exemple les modules suivants : module de pilotage d'un robot, module de contrôle d'un moteur, etc. - des variables internes qui représentent les actions du programme utilisateur et 25 décrivent les liens et les appels entre les instructions élémentaires, pour accomplir les fonctions requises. On peut citer à titre d'exemple les variables suivantes : PIECE A AU POSTE, TYPE REFUSE, CYCLE ROBOT, MODE AUTO, AIR OK, etc. - la configuration du matériel 30 - et similaires. 3038990 5 Outre la programmation des différents modes de fonctionnement d'une installation industrielle, le programmeur doit ajouter et mettre au point des équations destinées à informer l'opérateur sur l'état de ces modes de fonctionnement, les opérations à effectuer, etc. mais également à déclencher des messages de diagnostic pour informer 5 et aider l'utilisateur, en cas de dysfonctionnements ou d'arrêts inopinés de l'installation industrielle. La création de ces équations programmées doit permettre d'obtenir un diagnostic pertinent de tous les composants de l'installation pour signaler sans ambiguïté par exemple la présence d'une panne électrique, d'une panne mécanique, la présence d'un arrêt de sécurité, d'un arrêt de production, etc. 10 Les tâches programmes, paramétrées par le programmeur, peuvent être de différents types : - tâche périodique : exécution répétitive et automatique toutes les « x » périodes de temps. 15 - tâche évènementielle : exécution sur apparition d'un évènement extérieur ou sur une demande du programme. Lorsque le programme utilisateur contient plusieurs tâches, le contrôleur alloue alternativement des ressources à chacune d'entre elles, de telle sorte à traiter au plus vite toutes les instructions présentes dans chacun des sous-programmes qu'elle 20 contient, en tenant compte des critères de paramétrage attribués aux différentes tâches, type, durée, priorité, etc. Ce mécanisme, appelé l'ordonnancement des tâches programmes, est parfois interrompu momentanément par le contrôleur en fonction de ses ressources ou afin de répondre à une autre tâche traitement du système plus prioritaire, ou encore aux sollicitations asynchrones du logiciel constructeur des 25 systèmes externes » connectés, ou encore tels qu'à titre d'exemple des autres contrôleurs, des ordinateurs distants, une console de programmation, etc. Ces requêtes en provenance des systèmes externes sont dites asynchrones, lorsqu'elles peuvent survenir à tout instant pendant l'exécution du programme utilisateur, contrairement à des requêtes synchrones qui seraient alors traitées à un endroit et à un instant précis 30 dans le programme utilisateur et donc qui seraient encore moins efficaces qu'une 3038990 6 requête asynchrone pour le besoin évoqué. Ces échanges complémentaires aux tâches usuelles du contrôleur accentuent son travail et impactent par conséquent sur sa réactivité à répondre aux sollicitations de ces systèmes externes. L'activité et le temps de réaction du contrôleur dépendent également des paramètres temporels et des 5 priorités définies dans la configuration des équipements et des tâches. Tout ceci contribue par conséquent à ce que les temps de réponse du contrôleur à un système externe sont ni instantanés, ni répétitifs. En mode « marche », le contrôleur exécute successivement une à une toutes les lignes 10 du programme utilisateur pour appliquer le fonctionnement défini et écrit par le programmeur dans chacune des tâches qui pilotent l'installation industrielle pilotée. Chaque cycle de travail complet d'une tâche du contrôleur est appelé « tour de cycle » TC. Chaque tour de cycle TC correspond à un « temps de cycle » TC qui représente le temps total nécessaire au contrôleur pour effectuer l'ensemble des instructions 15 contenues dans une tâche du programme utilisateur, réaliser l'ensemble de ses autres propres tâches internes et répondre notamment à tous les systèmes externes connectés. Dans la suite de la description, la référence « TC » désigne soit le tour de cycle, soit le temps de cycle du contrôleur en fonction du contexte. Ce temps de cycle évolue en fonction des installations, généralement, de quelques millisecondes à quelques 20 dizaines ou centaines de millisecondes. Les tours de cycle TC sont enchaînés et répétés inlassablement par le contrôleur, excepté lorsqu'il est positionné en mode « arrêt » par l' utilisateur. Les variables internes qui coordonnent le fonctionnement et l'exécution des 25 instructions du programme utilisateur sont dénommées par la suite « variables ». Ces variables sont généralement nominatives car elles sont associées à un nom ou à un symbole explicite créé par et pour l'utilisateur pour favoriser la lisibilité et la compréhension du programme utilisateur. Elles sont parfois associées par l'utilisateur à une adresse physique de la mémoire interne de chaque contrôleur. Le terme 30 générique « variable(s) » utilisé dans la présente invention recouvre ces deux formes 3038990 7 de représentation « symbole » et « adresse » indépendamment. Ces variables sont les éléments majeurs exploités par la présente invention. Elles sont en effet très importantes dans un contrôleur puisque leur état ou leur évolution, appelé par la suite « état logique » reflète à tout instant le comportement et le fonctionnement de 5 l'installation industrielle. Elles se présentent essentiellement suivant deux catégories distinctes : - les variables booléennes, représentant deux états logiques stables d'une variable égaux à 0 ou à 1, appelés aussi « Tout Ou Rien ». On peut citer à titre d'exemple : PRESENCE PIECE A = Vrai (Etat logique 1) ou Faux (Etat logique 0) 10 - les variables numériques, caractérisées par des chiffres positifs ou négatifs. On peut citer à titre d'exemple : CODE CYCLE ROBOT = 1, 2, ... ; NOMBRE PIECES = 1, 2,.... En fonction des besoins requis, il est possible de créer soit des variables « globales », utilisables partout dans le programme utilisateur, soit des variables « locales », 15 utilisables seulement dans un seul sous-ensemble du programme ou dans un module « addon » du programme utilisateur. Dans la suite de la description, le terme « variables » regroupe l'ensemble de toutes ces variables : booléennes, numériques, globales et locales, ces types de variables n'étant pas limitatifs pour l'invention, et son adaptation à d'autres types de données spécifiques est envisageable, comme par 20 exemple les chaînes de caractères, etc. Les difficultés d'écriture et de mise au point du programme utilisateur du contrôleur, des modules « addon » utilisateur et de l'ensemble des éléments évoqués entraînent fréquemment des comportements imprévisibles et indésirables du contrôleur et/ou de 25 l'installation industrielle, et/ou l'émission de messages incorrects transmis par le contrôleur à l'utilisateur, et/ou des calculs erronés de données, et/ou la perte d'information entre les divers équipements connectés, etc. Pour tenter de déterminer la cause de ces aléas et de les corriger, le logiciel du constructeur du contrôleur dispose de certaines fonctionnalités de mise au point. Toutefois, ce procédé est soumis 30 également aux nombreux inconvénients et lacunes que ceux rencontrés dans 3038990 8 l'utilisation de systèmes d'analyse externes, proposés par certains fournisseurs spécialisés, qui tentent de répondre à ce besoin, en interrogeant périodiquement le contrôleur via un réseau de communication ou une liaison filaire pour obtenir l'évolution des variables. Ces solutions ne répondent pas complètement aux besoins et 5 sont insuffisantes pour obtenir une compréhension approfondie de certains cas de blocage ou pour résoudre des problèmes fugitifs ou complexes du fait des nombreux inconvénients évoqués ci-après. Elles nécessitent de connecter physiquement une console de programmation ou un système d'analyse externe à chaque contrôleur à analyser. Le procédé est parfois complexe et sa mise en oeuvre laborieuse, coûteuse et 10 parfois sans résultats probants. L'utilisation d'un système d'analyse externe nécessite la connaissance de ce système d'analyse externe et le développement d'une application spécifique dans ce système d'analyse externe pour l'élaboration de cette surveillance, et généralement l'ajout de variables programmes additionnelles dans le contrôleur. Ces variables additionnelles sont souvent nécessaires pour effectuer une image des 15 variables non accessibles directement par le système externe, ou encore pour effectuer un regroupement des variables à surveiller dans des tableaux de données intermédiaires, afin de réduire les contraintes liées aux multiples requêtes de lecture du système externe. Les échanges des données entre le système d'analyse externe et le contrôleur sont soumis aux temps de réponse aléatoires entre les deux équipements. 20 La surveillance des variables ne peut donc pas être effectuée en temps réel, compte tenu du décalage temporel entre le temps d'apparition d'un évènement et le temps de réception de l'information dans le système d'analyse externe. Le contrôleur ne pouvant pas répondre instantanément au système d'analyse externe, certaines évolutions de variables fugitives sont parfois indétectables. On peut citer à titre d'exemple le cas 25 d'une variable qui évolue ou change d'état plusieurs fois dans un même temps de cycle et qui, généralement, ne pourra pas être détectée par un système d'analyse externe. Le système d'analyse externe nécessite la mise en oeuvre d'une communication avec le contrôleur, parfois laborieuse à obtenir, du fait des incompatibilités de versions et 30 d'évolutions entre les équipements et logiciels. L'ajout d'échanges permanents entre 3038990 9 le système d'analyse externe et le contrôleur augmente l'activité du contrôleur, créant parfois de nouvelles perturbations dans sa communication avec les autres équipements. Les temps de communication obtenus sont étroitement liés aux performances de vitesse du contrôleur et du système externe, ce qui génère des résultats de mesure 5 différents suivant les architectures mises en oeuvre pour cette surveillance. Le système d'analyse externe génère de nombreuses requêtes périodiques à destination du contrôleur, y compris lorsque les variables du contrôleur n'évoluent pas, surchargeant inutilement les temps de communication. De plus, le système d'analyse externe ne tient pas compte de la structure du programme utilisateur ni des interactions entre les 10 tâches contenues dans le contrôleur et ne permet donc pas de localiser l'origine exacte de l'écriture des variables provoquant les aléas. Il doit rester connecté en permanence au contrôleur sans présenter lui-même des aléas de fonctionnement ni de coupure de tension. Lorsque le contrôleur est embarqué sur un mécanisme mobile, une connexion câblée est parfois physiquement impossible à réaliser entre le contrôleur et le système 15 d'analyse externe. Lorsque le système d'analyse externe est utilisé comme procédé curatif et qu'il est mis en place après avoir déjà détecté des anomalies de fonctionnement, il ne permet pas l'analyse des pannes antérieures à sa mise en place. L'accès à l'ensemble de toutes les variables du contrôleur est généralement compliqué, voire impossible pour certaines d'entre elles. Il ne permet pas par exemple d'accéder 20 aux variables internes des modules « addon » utilisateur pour analyser et mettre au point leur fonctionnement. D'une manière générale, le système d'analyse externe ne permet pas la lecture directe, et en temps réel, de toutes les variables de l'installation. Il n'existe donc pas à l'heure actuelle de solution satisfaisante. 25 Exposé de l'invention : La présente invention vise à pallier les inconvénients mentionnés ci-dessus en proposant une solution ergonomique permettant de traquer en temps réel toutes les 30 variables au coeur même du programme et des modules d'instances « addon » 3038990 10 utilisateur le comportement du contrôleur programmable et de l'installation industrielle, pour en restituer une visualisation graphique temporelle interprétable facilement par l'utilisateur, sans pénaliser les ressources du contrôleur. L'utilisateur dispose directement de toutes les variables programme présentes dans la base de 5 données du contrôleur, sans avoir recours à d'autres variables intermédiaires ou à des tables de données dédiées. Les résultats obtenus sont exploitables immédiatement par l'utilisateur avec un appareil d'expertise dédié et dissocié permettant d'effectuer sereinement une analyse des résultats soit en dehors du contexte de production permettant de définir les actions correctives nécessaires dans les meilleures conditions, 10 soit directement pendant la production en se connectant au contrôleur permettant d'accélérer le cas échéant les actions correctives. L'invention proposée peut être mise en oeuvre pour n'importe quel type de contrôleur et ce quel que soit le constructeur. Dans ce but, l'invention concerne un procédé de surveillance et d'expertise du genre 15 indiqué en préambule, caractérisé en ce que l'on implante au moins un module spécifique de surveillance à au moins un emplacement choisi dans ledit programme utilisateur ou dans l'un des modules « addon » utilisateur, l'on attribue audit module spécifique de surveillance au moins une variable à surveiller, et en ce que, pendant l'exécution des instructions dans un tour de cycle instantané dudit contrôleur, ledit 20 module spécifique de surveillance, lorsqu'il est activé et exécuté, lit en temps réel par une unité de lecture l'état logique de ladite variable dans ledit tour de cycle instantané, compare par une unité de contrôle l'état logique de ladite variable dudit tour de cycle instantané avec l'état logique de cette même variable du tour de cycle précédent préalablement enregistré, et uniquement en cas de changement dudit état logique, lit 25 par une unité d'horodatage les données temporelles correspondant au tour de cycle instantané et enregistre le nouvel état logique lu de ladite variable associé aux données temporelles dudit tour de cycle instantané formant une métadonnée dans une unité de mémoire globale dudit contrôleur par une unité d'enregistrement, et en ce que l'on analyse au moyen d'un appareil d'expertise dédié lesdites métadonnées enregistrées 30 dans ladite unité mémoire globale du contrôleur pour visualiser le fonctionnement en 3038990 11 temps réel dudit programme utilisateur et/ou de ladite installation industrielle et identifier un éventuel dysfonctionnement dans ledit programme utilisateur et/ou ladite installation industrielle. 5 Les données temporelles lues par l'unité d'horodatage dudit module spécifique de surveillance peuvent correspondre au temps réel de l'horloge interne dudit contrôleur, lorsque ledit module spécifique de surveillance est un module paramétré en mode « autonome » ou en mode « maître », ou au temps lu par un autre module spécifique de surveillance, lorsque ledit module spécifique de surveillance est un module 10 paramétré en mode « esclave » et est associé à l'autre module spécifique de surveillance paramétré en mode « maître ». De manière avantageuse, l'on peut attribuer audit module spécifique de surveillance un nombre de variables à surveiller, et en ce que l'unité de lecture dudit module 15 spécifique de surveillance lit l'état logique desdites variables surveillées dans ledit tour de cycle instantané et enregistre dans ladite unité mémoire globale dudit contrôleur l'état logique de toutes les variables surveillées dans ledit tour de cycle instantané si l'état logique d'au moins une desdites variables surveillées a changé. 20 De préférence, l'on implante plusieurs modules de surveillance à différents emplacements choisis dans ledit programme utilisateur du contrôleur, dans les routines ou modules « addons » utilisateur, concernées par les variables à surveiller, et l'on attribue à chaque module spécifique de surveillance une ou généralement plusieurs de ces variables à surveiller. Dans la suite du document, la notion de programme 25 utilisateur fera référence soit à une routine programme, soit à un module « addon » utilisateur. Pour analyser les métadonnées enregistrées dans l'unité mémoire globale dudit contrôleur et identifier un éventuel défaut dans ledit programme utilisateur et/ou ladite 30 installation industrielle, l'on récupère dans un appareil d'expertise dédié lesdites 3038990 12 métadonnées enregistrées dans l'unité mémoire globale dudit contrôleur. L'on peut alors soit procéder à une analyse statique hors ligne et de manière différée desdites métadonnées récupérées au moyen d'un logiciel d'expertise dédié, soit connecter ledit appareil d'expertise dédié audit contrôleur pour procéder à une analyse dynamique 5 desdites métadonnées en ligne et en temps réel. L'on peut récupérer lesdites métadonnées dans l'appareil d'expertise dédié épisodiquement ou périodiquement. L'on peut également exploiter les métadonnées pour effectuer diverses mesures temporelles choisies dans le groupe des mesures comprenant le diagramme de cycle 10 de l'installation industrielle appelé « signature machine », la mesure temporelle détaillée du fonctionnement de n'importe quel organe piloté par le contrôleur, les calculs de rendement, et les calculs de disponibilité de l'installation industrielle. Selon les besoins, l'on peut paramétrer par une unité de paramétrage le fonctionnement 15 du module spécifique de surveillance au moyen d'au moins un paramètre choisi dans le groupe de paramètres comprenant une fonction « marche » pour laquelle ledit module spécifique de surveillance est activé soit manuellement par une commande externe ou l'utilisateur, soit automatiquement sur conditions par ledit programme utilisateur, une fonction « arrêt » pour laquelle ledit module spécifique de surveillance 20 est désactivé, une fonction « initialisation » pour laquelle ledit module spécifique de surveillance remet à zéro ses métadonnées correspondant aux variables surveillées et enregistrées dans ladite unité mémoire globale dudit contrôleur, un mode « autonome » ou un mode « maître » dans lequel ledit module spécifique de surveillance lit le temps réel de l'horloge interne dudit contrôleur, un mode « esclave » dans lequel ledit module 25 spécifique de surveillance utilise le temps lu par un autre module spécifique de surveillance paramétré en mode « maître ». L'on peut aussi paramétrer dans ledit module spécifique de surveillance le nombre limite de métadonnées que ladite unité d'enregistrement peut enregistrer dans ladite 30 unité mémoire globale dudit contrôleur, et au-delà de cette limite, ledit module 3038990 13 spécifique de surveillance peut soit interrompre l'enregistrement des nouvelles métadonnées, soit enregistrer les nouvelles métadonnées en écrasant ou en ré-écrasant les métadonnées enregistrées initialement et en reprenant les enregistrements à l'emplacement 0 de ladite unité mémoire globale et en reprenant les 5 enregistrements depuis cet emplacement. Il est également possible d'inhiber la surveillance d'au moins une des variables dites surveillées par ledit module spécifique de surveillance. Dans ce cas, l'état logique de la variable inhibée ne sera enregistré et visualisable que lorsque l'état logique d'au 10 moins une des autres variables non inhibées de ce module spécifique de surveillance changera, permettant ainsi de réduire dans certains cas considérablement le volume des métadonnées et d'augmenter la durée d'enregistrement. Dans la forme de réalisation préférée de l'invention, pour chaque constructeur différent 15 de contrôleur, l'on conçoit un module générique dédié à la surveillance dans ledit programme utilisateur dudit contrôleur sous la forme d'un code programme unique, sous forme d'un module « addon » utilisateur, comportant au moins lesdites unités de lecture, de contrôle, d'horodatage, d'enregistrement et de paramétrage, et l'on implante chaque module spécifique de surveillance sous la forme d'un module 20 programme exécutable dudit module générique dédié à la surveillance. Dans ce but également, l'invention concerne un équipement de surveillance et d'expertise du genre indiqué en préambule, caractérisé en ce qu'il met en oeuvre le procédé de surveillance et d'expertise tel que défini ci-dessus. 25 Description sommaire des dessins : La présente invention et ses avantages apparaîtront mieux dans la description suivante d'un mode de réalisation donné à titre d'exemple non limitatif, en référence aux dessins 30 annexés, dans lesquels: 3038990 14 - la figure 1 représente l'organigramme de fonctionnement d'un module spécifique de surveillance MSy selon l'invention implanté à l'intérieur d'un programme utilisateur d'un contrôleur, la figure 2 représente l'organigramme de fonctionnement du module générique 5 de surveillance appelé par le module spécifique de surveillance de la figure 1, la figure 3 est un diagramme de l'évolution dans le temps d'une même variable V1 surveillée par trois modules spécifiques de surveillance paramétrés différemment, la figure 4 est un diagramme montrant l'évolution dans le temps d'une variable V1 surveillée par rapport au temps de cycle du contrôleur, et 10 - la figure 5 est un diagramme représentant graphiquement l'évolution de quatre variables V1 à V4 surveillées pour illustrer des anomalies, des dysfonctionnements ou le cycle périodique d'une tâche du contrôleur. Illustrations de l'invention et meilleure manière de la réaliser : 15 Le procédé de surveillance et d'expertise de la présente invention consiste à implanter, directement au sein même du programme utilisateur d'un contrôleur C qui pilote une installation industrielle, un ou plusieurs modules spécifiques de surveillance MS1 à MSt, où t désigne le nombre total de modules implantés, agencés pour surveiller tout 20 ou partie des variables internes dudit programme utilisateur. Lorsqu'on parle d'un seul module spécifique de surveillance, on le désigne MSy où y est compris entre 1 et t. On désigne par V1 à Vt le nombre total de variables surveillées par l'ensemble des modules implantés, et par V1 à Vn le nombre maximum de variables surveillées pour chaque module spécifique de surveillance MSy implanté. L'ensemble des variables 25 V1 à Vt surveillées peuvent être indifféremment des Entrées/Sorties de capteurs, composants, machines, etc., des variables internes du programme utilisateur, des variables de l'installation industrielle, des variables de communication, etc. Dans la suite de la description, la notion de « programme utilisateur » fait référence soit à une routine programme, soit à un module « addon » utilisateur, concerné par les variables 30 V1 à Vt à surveiller. 3038990 15 Les modules spécifiques de surveillance forment ainsi des « mouchards » ou des « traqueurs » au coeur même du programme utilisateur. Ils ont pour fonction de mémoriser et d'inventorier tous les changements d'états de n'importe quelle variable 5 V1 à Vt surveillée par les modules de surveillance MS1 à MSt concernés, en associant la date et l'heure Tj de chaque changement d'état. A titre d'exemple de la pertinence de cette surveillance, si l'on utilise un module spécifique de surveillance MSy implanté dans le programme utilisateur à chaque endroit où évolue une variable V1 « MEMOIRE PIECE MAUVAISE », il est possible de détecter toutes les évolutions 10 de cette variable V1 et notamment ses éventuels multiples changements d'état intervenus dans un seul et même tour de cycle TCi du contrôleur C. Cette détection est également envisageable avec un seul module spécifique de surveillance MSy, à condition de lui associer différentes variables intermédiaires à surveiller et positionnées à chaque endroit du programme où est susceptible d'évoluer la variable 15 V1. La figure 4 permet d'illustrer cet exemple. Elle représente l'évolution dans le temps des changements d'état d'une variable V1 surveillée par un module spécifique de surveillance MSy par rapport au temps de cycle TC du contrôleur C. Elle indique par 20 ailleurs la possibilité de détecter les éventuels multiples changements d'états d'une même variable V1 dans un même tour de cycle TCi (voir bulle E). Ce type d'aléa n'est pas toujours détectable et visualisable à l'aide d'un système externe de surveillance. Pour indication, la périodicité du temps de cycle TC du contrôleur est par exemple de l'ordre de quelques millisecondes à quelques dizaines de millisecondes. 25 Ensuite, les données collectées pendant plusieurs tours de cycle TCO à TCi, où i désigne le temps de cycle instantané, par les modules spécifiques de surveillance MS1 à MSt pour identifier un éventuel dysfonctionnement dans ledit programme sont exploitées au moyen d'un logiciel d'expertise dédié sur un appareil d'expertise dédié 30 qui permet d'effectuer une expertise distante ou pas. Ce logiciel d'expertise dédié 3038990 16 permet notamment de représenter les changements d'état et/ou évolutions des variables V1 à Vt surveillées sous une forme graphique en fonction du temps, représentative du fonctionnement du contrôleur C et de l'installation industrielle qu'il pilote, dans le but de pouvoir déceler l'origine d'un défaut, d'une panne ou de tout autre aléa, effectuer 5 des mesures diverses, de production, de temps de cycle, déterminer les interactions entre variables, etc. La figure 5 permet d'illustrer graphiquement l'évolution de quatre variables V1, V2, V3 et V4 qui montrent des anomalies ou dysfonctionnements. Le comportement 10 anormal de la variable V1 identifié par la bulle D peut être corrélé avec le défaut fugitif intervenu sur la variable V2 au même moment. La périodicité des changements d'état de la variable V3, qui pourrait être par exemple la périodicité d'une tâche programme, n'est pas régulière et l'évolution de la variable V4 montre des disparitions et apparitions fugitives anormales du signal. 15 Par conséquent, l'équipement permettant la mise en oeuvre du procédé de surveillance et d'expertise selon l'invention comporte au moins les modules spécifiques de surveillance MS1 à MSt, qui sont des modules programmes implantés par le programmeur dans le programme utilisateur du contrôleur C comme expliqué ci- 20 dessous, et l'appareil d'expertise dédié pourvu dudit logiciel d'expertise dédié, cet appareil pouvant être un ordinateur portable ou similaire, distant ou pas dudit contrôleur C. Les modules spécifiques de surveillance MS1 à MSt sont associés à un module 25 générique de surveillance MG, connu sous le nom de « module générique fonctionnel » et en anglais « addon » ou « plug-in » déjà évoqué précédemment, développé par l'utilisateur dans le programme utilisateur du contrôleur C à partir du logiciel du constructeur du contrôleur C. Le module générique de surveillance MG prend la forme d'un code programme unique regroupant les fonctionnalités nécessaires pour réaliser 30 la fonction de surveillance des variables V1 à Vt selon le procédé de l'invention. Ce 3038990 17 code programme unique ne peut pas être exécuté en tant que tel. Il peut par contre être appelé autant de fois que nécessaire par des modules programmes exécutables connus sous le nom d' « instances », formant lesdits modules spécifiques de surveillance MS1 à MSt. L'utilisateur peut intégrer, ou instancier, et ainsi créer très rapidement un ou 5 plusieurs modules spécifiques de surveillance qu'il identifie chacun par un nom tel que MS1 à MSt ou MSy et qu'il implante au coeur même du programme utilisateur du contrôleur C à des endroits, zones ou emplacements qu'il choisit en fonction des variables V1 à Vt qu'il souhaite surveiller, au choix ou dans une zone commune dédiée à cette surveillance. Il peut en fonction des besoins ajouter ou supprimer à sa guise et 10 très facilement un ou plusieurs modules spécifiques de surveillance et ce même pendant le fonctionnement du contrôleur C. Il attribue à chacun de ces modules spécifiques de surveillance MS1 à MSt un nombre défini de variables V1 à Vn à surveiller. Par conséquent, la logique de fonctionnement est identique pour tous les modules spécifiques de surveillance MS1 à MSt puisqu'elle est dictée par le code 15 programme unique du module générique de surveillance MG. Mais leur comportement est indépendant puisque chaque module spécifique de surveillance MSy exploite ses propres variables V1 à Vn d'entrées ainsi que ses propres paramètres de fonctionnement déterminés par l'utilisateur. 20 Chaque module spécifique de surveillance MSy permet de surveiller un nombre limité de variables V1 à Vn, ce nombre n dépendant du nombre d'entrées disponibles sur le module générique de surveillance MG choisi. Chaque variable V1 à Vn à surveiller est associée à une des entrées dudit module spécifique de surveillance MSy choisi, permettant l'enregistrement des changements d'état logique de ladite variable dans le 25 tour de cycle correspondant à cet éventuel changement d'état logique. Par conséquent, autant de modules spécifiques de surveillance MS1 à MSt que nécessaire peuvent être implantés dans le programme utilisateur du contrôleur C pour augmenter le nombre total de variables Vt à surveiller en fonction des besoins. Le 30 nombre total de modules spécifiques de surveillance MSt implantés dans le 3038990 18 programme utilisateur du contrôleur C dépend donc du nombre total de variables Vt à mesurer ou à surveiller. Pour réduire au maximum l'impact de ces modules spécifiques de surveillance MS1 à MSt sur l'unité mémoire UM dédiée du contrôleur C et sur son temps de cycle TC, des modules génériques de surveillance MG de tailles différentes 5 sont disponibles en fonction du nombre et du type de variables d'entrée souhaitées par l'utilisateur. On peut citer à titre d'exemple un module générique de surveillance MG pour huit variables, un module générique de surveillance MG pour seize variables, etc., étant précisé que ces nombres sont donnés à titre indicatif et ne sont pas limitatifs. Pour restreindre le temps d'exécution des modules spécifiques de surveillance MS1 à 10 MSt et la consommation induite sur le temps de cycle du contrôleur C, ces modules spécifiques de surveillance MSy ne sont réellement sollicités que lorsque la ou les variables V1 à Vn surveillée(s) par le module spécifique de surveillance MSy concerné évolue(nt), comme expliqué plus loin. A titre d'exemple uniquement, pour un contrôleur C travaillant avec un processeur classique de type Rockwell®, le temps 15 moyen d'exécution d'un seul module spécifique de surveillance de seize variables V1 à V16 est d'environ 100 microsecondes, valeur donnée uniquement à titre indicatif, puisque ce temps est directement lié au type de contrôleur C utilisé. La figure 1 représente sous la forme d'un organigramme la façon dont un module 20 spécifique de surveillance MSy, où y est un nombre quelconque entre 1 et t, est exécuté pendant un tour de cycle TC du contrôleur C au cours duquel les instructions programmées dans ledit programme utilisateur sont exécutées en fonction des variables V1 à V6 à surveiller associées audit module MSy. Suivant l'exemple illustré, le module spécifique de surveillance MSy comporte trois entrées de contrôle, à savoir 25 une entrée M correspondant à la fonction « marche », une entrée A correspondant à la fonction « arrêt » et une entrée I correspondant à la fonction « initialisation », ainsi que six entrées de variables V1 à V6. Ces trois entrées de contrôle permettent de modifier en permanence, si nécessaire, le mode de fonctionnement de chaque module spécifique de surveillance MSy. L'entrée M permet d'activer le fonctionnement du 30 module spécifique de surveillance MSy, l'entrée A permet d'arrêter le fonctionnement 3038990 19 du module spécifique de surveillance MSy et l'entrée I permet de réinitialiser les métadonnées du module spécifique de surveillance. Les entrées de contrôle M, A et I de chaque module spécifique de surveillance MS1 à MSt peuvent être activées par l'utilisateur de façon permanente pour être égales à 1 ou à 0. Elles peuvent aussi être 5 activées par une ligne de programme écrite dans le programme utilisateur du contrôleur C en fonction d'un contexte particulier. On peut citer à titre d'exemple : démarrage des enregistrements dans un créneau horaire particulier, arrêt des enregistrements sur détection d'une anomalie, etc. Il existe encore d'autres entrées de paramétrage de fonctionnement qui seront décrits plus loin. 10 Dans l'exemple illustré, le module spécifique de surveillance MSy comporte également des sorties d'état pour informer l'utilisateur sur l'état de fonctionnement de ce module MSy, telles que : autorisation d'utilisation après le contrôle du numéro d'identification NRID requis (OKNRID), paramétré en mode enregistrement continu 15 ou « tournant » (OKWRAP), en marche (OKRUN), mémoire déclarée saturée (OKFULL), erreur (ERR), détail des erreurs, etc. En référence à la figure 1, si le numéro d'identification NRID d'autorisation d'utilisation du module spécifique de surveillance MSy, vérifié par MSy, est conforme 20 à la valeur attendue, et si le contrôleur C est en mode « marche », c'est-à-dire respectivement que les sorties OKNRID et OKRUN sont dans un état logique égal à 1, alors le module spécifique de surveillance MSy appelle le module générique de surveillance MG pour exécuter les fonctionnalités nécessaires à la surveillance des variables V1 à V6 à chaque tour de cycle TC du contrôleur C, et ce indéfiniment à 25 chaque fois que ce tour de cycle TC se reproduit dans ledit contrôleur C. La figure 2 illustre sous la forme d'un organigramme les fonctionnalités du module générique de surveillance MG, exécutées de manière identique à chaque fois que ledit module générique de surveillance MG est appelé par un module spécifique de 30 surveillance MSy conformément à la figure 1. Ces fonctionnalités sont exprimées sous 3038990 20 la forme d'unités agencées pour réaliser une fonction, mais correspondent à des lignes de programme exécutées. A chaque appel du module générique de surveillance MG par le module spécifique de 5 surveillance MSy, une unité de lecture UL lit directement en temps réel l'état logique des variables V1 à Vn du tour de cycle instantané TCi du contrôleur C pour les stocker dans une unité mémoire locale instantanée UM_Li du contrôleur C (UL : V1 à Vn(TCi) => UM_Li). Ensuite, une unité de contrôle UC compare l'état logique de ces variables V1 à Vn du tour de cycle instantané TCi stocké dans l'unité mémoire locale instantanée 10 UM_Li avec l'état logique de ces mêmes variables V1 à Vn du tour de cycle précédent TCi-1 préalablement enregistré dans l'unité mémoire locale UM_Li-1 du contrôleur C (UC : UM_Li UM_Li-1). S'il n'y a pas de changement d'état ou d'évolution de l'une au moins desdites variables V1 à Vn, c'est-à-dire lorsque UM_Li = UM_Li-1, alors aucun enregistrement dans les métadonnées n'est effectué et l'exécution du code 15 programme unique du module générique de surveillance MG est en attente d'un prochain appel d'un autre module spécifique de surveillance MS1 à MSt. S'il y a un changement d'état ou d'évolution de l'une au moins desdites variables V1 à Vn, alors une unité d'enregistrement UE enregistre et horodate l'état logique de toutes les variables V1 à Vn du tour de cycle instantané TCi dans une unité de mémoire globale 20 UM_G du contrôleur C correspondant au module spécifique de surveillance MSy, puis incrémente d'une unité l'indice x du nombre d'enregistrements (UE : V1 à Vn(TCi) + Tj(C) => UM_G MSy puis x=>x+1). Dans ce cas, l'unité de contrôle UC réactualise l'unité mémoire locale UM L en mémorisant le nouvel état logique desdites variables V1 à Vn à la place du précédent (UM_Li => UM_Li-1). L'exécution du code 25 programme unique du module générique de surveillance MG est ensuite en attente d'un prochain appel d'un autre module spécifique de surveillance MS1 à MSt. Le module générique de surveillance MG permet en effet d'horodater simultanément les changements d'état des variables V1 à Vn surveillées par ledit module spécifique de surveillance MSy et uniquement en cas de changement d'état. A cet effet, il comporte 30 une unité d'horodatage UH des données temporelles instantanées Tj, où i désigne la 3038990 21 date et l'heure exactes correspondant au tour de cycle instantané TCi du contrôleur C (UH : Tj(TCi)). Dans ce but, l'unité d'horodatage UH lit soit le temps réel de l'horloge interne du contrôleur C lorsque ledit module spécifique de surveillance MSy est paramétré en mode « autonome » ou en mode « maître », soit le temps lu par un autre 5 module spécifique de surveillance MS1 à MSt paramétré en mode « maître » lorsque ledit module spécifique de surveillance MSy concerné est paramétré un mode « esclave » et qu'il dépend d'un module spécifique de surveillance MS1 à MSt paramétré en mode « maître » que l'utilisateur lui aura associé. Ces paramètres de fonctionnement sont expliqués plus loin. Les données temporelles instantanées Tj lues 10 sont associées au nouvel état logique des variables V1 à Vn du tour de cycle instantané TCi et forment ensemble des métadonnées (V1 à Vn(TCi) + Tj(TCi)). Ce sont ces métadonnées qui sont enregistrées par l'unité d'enregistrement UE dans l'unité mémoire globale UM_G du contrôleur C, et qui seront ensuite analysées et exploitées de manière différée ou non, sans perte de précision des données, par l'appareil 15 d'expertise dédié. Elles permettront une visualisation en temps réel du programme utilisateur et/ou de l'installation industrielle et ainsi une traçabilité très précise de leur fonctionnement. Apparaît également sur l'organigramme de la figure 2 une unité de vérification UV 20 qui vérifie les entrées de contrôle M, A, I et les paramètres de fonctionnement choisis par l'utilisateur pour ledit module spécifique de surveillance MSy, tels que la présence d'une requête de « marche » ou d'« arrêt », d'« initialisation », etc. En mode « initialisation » I du module spécifique de surveillance MSy ou lors d'un changement du numéro d'identification NRID ou encore lors d'un changement du paramétrage 25 PANBREC du nombre maximum d'enregistrements souhaité dans la mémoire globale UM_G du contrôleur C (MSy : I ou UP ou NRID = i), alors les mémoires des états logiques des variables V1 à Vn, stockées dans l'unité mémoire locale UM Li-1 et correspondant au temps de cycle précédent TCi-1, seront initialisées à la valeur opposée des états logiques instantanés des variables V1 à Vn au tour de cycle 30 instantané TCi de telle sorte à déclencher un changement d'état et un premier nouvel 3038990 22 enregistrement des métadonnées (UC : UM Li-1 = Not UM Li). Préalablement, l'unité d'enregistrement UE réinitialise l'unité mémoire globale UM_G du contrôleur C correspondant au module spécifique de surveillance MSy (UE : UM_G MSy => 0 et x=0). 5 Notons également qu'une demande d'initialisation d'un module spécifique de surveillance MSy paramétré en mode Maître provoque automatiquement une demande initialisation de tous ses modules spécifiques de surveillance MS1 à MSt paramétrés en mode esclave, associés afin de provoquer une initialisation des métadonnées des 10 modules esclaves et que l'ensemble des métadonnées mémorisées restent toujours synchronisées avec le temps du module maître. Apparaissent également sur l'organigramme de la figure 2, des fonctions relatives à la gestion des enregistrements dans l'unité mémoire globale UM_G du contrôleur C en 15 fonction des paramètres de fonctionnement du module spécifique de surveillance MSy. Une unité de saturation US vérifie si la taille mémoire maximale allouée aux métadonnées dans l'unité mémoire globale UM G, dépendant du nombre d'enregistrements fixés par l'utilisateur, est atteinte ou non. « x » est un index sur les enregistrements des métadonnées, incrémenté par l'unité mémoire globale UM_G du 20 contrôleur C de 1 en 1, à chaque enregistrement d'une nouvelle métadonnée et ce pour « x » variant de 0 à « p » où p correspond à une valeur limite. Si la limite « p » n'est pas atteinte (US : x=p => Non), l'unité d'enregistrement UE enregistre les métadonnées dans l'unité mémoire globale UM_G du contrôleur C, à l'index suivant x+1, à la suite des métadonnées précédemment enregistrées. Lorsque la limite «p » est 25 atteinte (US : x=p => Oui), une unité de rotation UR vérifie si l'option écrasement des métadonnées, ou mode « wrap », a été choisie par l'utilisateur (UR = 1). Si cette option de rotation a été choisie, alors l'unité mémoire globale UM_G initialise l'index (UM_G MSy : x=0) afin que l'unité d'enregistrement UE enregistre les nouvelles métadonnées du tour de cycle instantané TCi sur les métadonnées enregistrées 30 initialement à l'emplacement 0 de l'unité mémoire globale UM_G en écrasant, ou en 3038990 23 ré-écrasant les fois suivantes, les anciennes métadonnées présentes. Si cette option n'a pas été choisie, alors l'unité mémoire globale UM G est pleine, l'unité d'enregistrement UE stoppe les enregistrements des métadonnées et l'exécution du code programme unique du module générique de surveillance MG est en attente d'une 5 demande d' initialisation, d'une augmentation de la taille mémoire ou d'une validation du mode « wrap ». Etant donné que les modules de surveillance MS1 à MSt peuvent être implantés par le programmeur dans n'importe quelle zone du programme utilisateur, ils effectuent une 10 surveillance permanente de l'évolution des variables V1 à Vt, en toute transparence pour l'installation industrielle et sans incidence sur son fonctionnement. L'utilisateur dispose de cette façon à tout moment de l'évolution de ces variables pour expertiser précisément le comportement d'un organe ou d'une fonction de l'installation industrielle en fonction de la ou des variables V1 à Vt surveillées. De plus, ce procédé 15 de surveillance est particulièrement rapide à mettre en oeuvre. En effet, la création du module générique de surveillance MG à l'aide du logiciel constructeur ainsi que l'intégration des modules de surveillance MS1 à MSt au sein même du programme utilisateur ne prennent en général que quelques minutes. Il en est de même pour relever les métadonnées dans l'appareil d'expertise dédié. Seules l'analyse et l'expertise de 20 ces métadonnées peuvent s'avérer un peu plus longue en fonction des anomalies à élucider, mais toutefois infiniment plus rapide qu'avec n'importe quelle autre méthode de recherche et de correction usuelle. Outre l'enregistrement des variables V1 à Vt, l'implantation des modules spécifiques 25 de surveillance MS1 à MSt dans les différentes tâches du contrôleur C permet de disposer d'un outil d'expertise et de mesure du fonctionnement de l'ordonnancement des tâches du contrôleur C. La mesure des variables V1 à Vt évoluant dans chaque tâche permet également de visualiser graphiquement sous forme de créneau le temps réel d'exécution de chaque tâche (voir exemple V3 dans la figure 5). Il est ainsi 30 possible de mieux comprendre et d'ajuster au plus juste les caractéristiques de chaque 3038990 24 tâche ou par exemple pour comprendre et optimiser la fréquence de lecture et d'écriture des Entrées/Sorties dans chacune des tâches. Comme déjà évoqué, le mode de fonctionnement de chaque module spécifique de 5 surveillance MS1 à MSt est paramétrable par l'utilisateur au moyen d'une unité de paramétrage UP (non représentée sur les figures). L'utilisateur peut, à tout instant et ce même pendant le fonctionnement du contrôleur C et de l'installation industrielle, activer ou désactiver la surveillance des variables V1 à Vn attribuées à chaque module, ou encore initialiser les métadonnées de l'unité mémoire globale UM_G du contrôleur 10 C correspondant aux variables V1 à Vn de ce module MS y, avec l'entrée de contrôle I décrite précédemment. A l'aide des entrées de contrôle M et A, il est possible de suspendre puis de reprendre les enregistrements sans perte des enregistrements déjà effectués. 15 Il est également possible de paramétrer, ou d'ajuster à tout instant, le nombre d'enregistrements limite « p » pour chaque module spécifique de surveillance MS1 à MSt comme évoqué plus haut. Cette valeur limite est à définir par l'utilisateur en fonction de l'importance de l'évolution prévisible des variables V1 à Vt qu'il souhaite surveiller. Lorsque cette valeur limite «p » est atteinte, l'utilisateur peut choisir entre: 20 - arrêter l'enregistrement des nouvelles métadonnées issues des variables V1 à Vt surveillées et indiquer que l'unité mémoire globale UM_G du contrôleur C est saturée (OKFULL), ou - enregistrer les nouvelles métadonnées issues des variables V1 à Vt surveillées en écrasant, ou en ré écrasant, les métadonnées précédemment enregistrées. Ce mode de 25 fonctionnement, paramétrable par l'utilisateur, est appelé mode « tournant » ou mode « wrap ». Il permet de ne jamais interrompre l'enregistrement des métadonnées et ainsi de toujours disposer de plusieurs minutes, heures, jours, semaines, etc...de mémorisation de l'évolution des variables V1 à Vt enregistrée dans le contrôleur C par l'unité d'enregistrement UE dans l'unité mémoire globale UM_G du contrôleur C. 30 Cette durée d'enregistrement est fonction du paramétrage du nombre 3038990 25 d'enregistrements souhaités et de la fréquence des changements d'état des variables V1 à Vn surveillées par le module spécifique de surveillance MSy correspondant. Plus la mémoire déclarée sera importante et plus le nombre de changements d'état sera faible, plus la durée d'enregistrements sera importante. Cependant, un enregistrement 5 infini des métadonnées est possible si l'utilisateur effectue périodiquement une sauvegarde du programme du contrôleur C, incluant les métadonnées. 11 est par ailleurs aisé de faire évoluer la solution actuelle afin d'effectuer ces enregistrements automatiquement via le logiciel d'expertise dédié, par exemple 10 lorsque l'unité de saturation US détecte une saturation de la mémoire allouée par l'utilisateur, de telle sorte à sauvegarder les métadonnées dans des fichiers de données externes. Ceci est possible à condition toutefois de connecter le logiciel dédié au contrôleur C, au même titre qu'un système externe. Le regroupement des métadonnées dans une zone globale commune, réalisée par les modules spécifiques de surveillance 15 MS1 à MSt offre la possibilité d'effectuer ces sauvegardes en un temps extrêmement plus performant qu'un système externe classique, pour lequel les variables sont dispersées dans le contrôleur C, nécessitant alors de multiples requêtes de lecture distinctes. 20 Chaque module spécifique de surveillance MSy dispose en outre d'une option paramétrable par l'utilisateur qui lui permet de définir le mode d'enregistrement des données temporelles TO à Tj des variables V1 à Vn surveillées, à savoir : - mode « autonome » dans lequel, à chaque changement d'état d'une variable V1 à Vn, l'unité d'horodatage UH lit le temps interne Tj à partir de l'horloge du contrôleur C 25 correspondant au tour de cycle instantané TCi, et l'unité d'enregistrement UE enregistre ce temps instantané Tj lu associé au changement d'état d'une ou de plusieurs variables V1 à Vn détecté par le module de contrôle UC, - mode « maître » dans lequel, à chaque nouveau tour de cycle TCi, l'unité d'horodatage UH lit le temps interne Tj à partir de l'horloge du contrôleur C et l'unité 30 d'enregistrement UE enregistre ce temps instantané Tj lu et le communique à ses 3038990 26 modules spécifiques de surveillance MS1 à MSt associés en mode « esclave », pour utiliser ce temps de référence en l'associant au changement d'état des variables V1 à Vn détecté par son unité de contrôle UC comme dans le mode « autonome », - mode « esclave » dans lequel l'unité d'horodatage UH utilise le temps instantané Tj 5 transmis par son module spécifique de surveillance MSy paramétré en mode « maître » qui lui a été associé et non directement le temps interne instantané de l'horloge du contrôleur C. L'unité d'enregistrement UE enregistre alors ce temps reçu de son module maître pour l'associer au changement d'état des variables V1 à Vn détecté par son unité de contrôle UC. 10 Cette notion de mode « maître » / mode « esclave » est intéressante si l'on souhaite éviter les décalages de temps dans l'affichage de variables V1 à Vt évoluant dans le même tour de cycle TC et surveillées par plusieurs modules de surveillance MS1 à MSt localisés à des endroits différents dans le programme utilisateur du contrôleur C. 15 Pour illustrer ce propos, un changement d'état d'une même variable V1 surveillée par deux modules spécifiques de surveillance MS1 et MS2, implantés respectivement en début et en fin de programme, permet d'obtenir deux mesures temporelles distinctes. La mesure temporelle faite par le module spécifique de surveillance MS2 est dans ce cas égale à celle effectuée par le module spécifique de surveillance MS1, à laquelle il 20 faut ajouter le temps de cycle du contrôleur C nécessaire à son activité entre l'exécution de MS1 et MS2. Cette précision temporelle est toutefois rarement nécessaire, l'important étant davantage de contrôler la séquence des évènements les uns par rapport aux autres. Les différents temps mesurés pour une même variable V1 à Vn surveillée à différents endroits dans le programme utilisateur démontrent en 25 revanche les possibilités de la précision de mesure du procédé et de l'équipement de surveillance de l'invention. Cette précision peut être parfois très utile pour mesurer avec exactitude le temps de cycle TC du contrôleur pour l'exécution d'une seule ou de plusieurs tâches, de routines, d'instructions, etc. 3038990 27 L'exactitude et la précision de la mesure temporelle d'un changement d'état d'une variable V1 à Vn à l'aide d'un module spécifique de surveillance MSy dépend de ce fait de l'endroit où se trouve ledit module spécifique de surveillance dans le programme utilisateur par rapport à la ligne de programme qui commande ladite 5 variable V1 à Vn. Plus le module spécifique de surveillance MSy est proche de la ligne de programme qui pilote cette variable V1 à Vn, plus la mesure du temps du changement d'état sera exacte. Cette précision est limitée volontairement à lms pour réduire la taille des métadonnées dans l'unité mémoire globale UM G, mais la création d'un module générique de surveillance MG avec une précision de lmicroseconde est 10 aisément envisageable dans le cas où cela est nécessaire. Exemple : mesure du temps d'exécution d'une seule instance MSy. Si cette différence temporelle évoquée précédemment représente un inconvénient pour l'expertise de certains résultats, puisque cela génère des métadonnées dans des temps 15 très proches, alors il convient d'utiliser les modes « maître/esclave » pour éviter ce phénomène. L'intérêt de ce mécanisme « maître/esclave » est illustré par l'exemple de la figure 3 dans lequel une même variable V1 est surveillée par trois modules de surveillance MS1, MS2 et MS3 paramétrés respectivement en modes « maitre », « esclave » et « autonome ». L'association d'un module spécifique de surveillance 20 MS2 paramétré en mode « esclave » avec un module spécifique de surveillance MS1 paramétré en mode « maître » permet d'obtenir une représentation graphique identique pour une même variable V1 surveillée quel que soit l'emplacement desdits modules dans le programme utilisateur, puisque l'horodatage lu par le module spécifique de surveillance MS2 paramétré en mode « esclave » est synchronisé, dans un même tour 25 de cycle TC, avec celui du module spécifique de surveillance MS1 paramétré en mode « maître » permettant ainsi de ne pas créer plusieurs métadonnées dans des temps très proches pour des variables qui évoluent dans un même tour de cycle TC, mais au contraire de mémoriser un temps rigoureusement identique. On constate donc, sur les illustrations de la figure 3, que la représentation graphique de cette même variable V1 30 surveillée par le module spécifique de surveillance MS3 paramétré en mode 3038990 28 « autonome » est légèrement décalée d'un intervalle temps At par rapport à celle du module spécifique de surveillance MS1 paramétré en mode « maître ». Cet intervalle temps At correspond à la durée de traitement du programme utilisateur du contrôleur C entre l'exécution des modules spécifiques de surveillance MS let MS3, qui peut 5 atteindre plusieurs millisecondes, ce qui n'est pas le cas entre les modules spécifiques de surveillance MS1 et MS2. Pour faire disparaître également si nécessaire ce phénomène à l'affichage des données, lors de l'expertise, un outil complémentaire de « compactage » des données propose dans le logiciel d'expertise dédié de regrouper les changements d'état des variables selon un temps de filtrage choisi par l'utilisateur. 10 Par défaut on pourra ainsi par exemple regrouper toutes les métadonnées existant dans un intervalle de temps paramétrable, prédéfini à 10 millisecondes par défaut. Parmi les autres paramètres de fonctionnement que l'utilisateur peut sélectionner pour chacun des modules spécifiques de surveillance MS là MSt qu'il décide d'implanter 15 dans le programme utilisateur, on peut citer à titre d'exemple : Le paramètre « PAnotime » permettant d'inhiber si nécessaire l'enregistrement des données temporelles TO à Tj dans les métadonnées à chaque changement d'état ou à chaque évolution des variables V1 à Vn surveillées. Cette option permet de réduire considérablement la taille de la mémoire utilisée dans l'unité 20 mémoire globale UM_G du contrôleur C dans le cas où l'utilisateur souhaite visualiser seulement l'évolution des variables sans nécessairement disposer de l'horodatage. Le paramètre « PAinhib » permettant d'inhiber la surveillance d'une ou de plusieurs variables V1 à Vn surveillées. Cette option permet également 25 d'optimiser la mémoire utilisée dans l'unité mémoire globale UM_G du contrôleur C et le temps d'exécution du module spécifique de surveillance MS1 à MSt concerné en désactivant la surveillance de certaines variables V1 à Vn. L'état ou l'évolution de ces variables inhibées ne sera alors mémorisé dans les métadonnées que lorsque l'état d'une autre variable V1 à Vn non inhibée 30 changera ou évoluera. 3038990 29 Pour extraire les métadonnées ainsi créés par les modules spécifiques de surveillance MS1 à MSn et enregistrées dans l'unité mémoire globale UM_G du contrôleur C, l'utilisateur connecte physiquement une console de programmation adéquate pour ce 5 type de contrôleur C et active une fonction de sauvegarde dans le logiciel du constructeur, qui sauvegarde simultanément les états logiques de toutes les variables présentes dans le contrôleur C à cet instant. Cette fonction va ainsi permettre de sauvegarder l'ensemble du programme utilisateur, incluant une lecture complète de toutes les métadonnées enregistrées dans l'unité mémoire globale UM_G du contrôleur 10 C de l'index 0 à l'index «p ». Ces métadonnées sont ensuite exportées dans un fichier, dans un format standard, tel que par exemple le format XML, pour être traitées par un logiciel d'expertise dédié, développé conjointement aux modules spécifiques de surveillance MS1 à MSt et localisé dans un appareil d'expertise dédié. La fonction sauvegarde peut être effectuée épisodiquement ou périodiquement selon les besoins 15 définis par l'utilisateur ou suite à un incident par exemple de l'installation. Lorsque la sauvegarde est terminée, l'utilisateur peut déconnecter sa console de programmation pour expertiser et interpréter de manière différée les métadonnées sauvegardées et lues à l'aide de l'appareil d'expertise dédié, et ce grâce aux outils mis à disposition dans le logiciel d'expertise dédié aux modules spécifiques de surveillance MS1 à MSt. 20 Le logiciel d'expertise dédié permet d'exploiter toutes les métadonnées enregistrées, afin de visualiser précisément les évolutions de toutes les variables V1 à Vt surveillées du contrôleur C et de l'installation industrielle qu'il pilote. Ce logiciel d'expertise dédié est unique et commun pour tous les programmes utilisateur de plusieurs 25 contrôleurs C à expertiser. Ainsi, il fournit une interface graphique conviviale et adaptée pour visualiser les enregistrements des métadonnées, localiser très rapidement un dysfonctionnement ou encore effectuer une mesure temporelle entre les évènements. Il propose à l'utilisateur des outils efficaces de traitement des métadonnées lui permettant ainsi d'effectuer des dépannages, des mesures, de la 30 traçabilité et de la surveillance du contrôleur C et de l'installation industrielle pilotée 3038990 30 par ce contrôleur. Il permet en outre de regrouper et de croiser les métadonnées prélevées sur différents contrôleurs C. Ainsi, il est possible de prélever autant de variables V1 à Vt dans l'un et l'autre des contrôleurs C pour les fusionner dans un fichier de données permettant de visualiser très rapidement l'ensemble des 5 métadonnées, ce qu'aucun équipement de surveillance connu à ce jour ne permet de réaliser aussi aisément et rapidement. Pour ce faire, il est préférable que l'horodatage des contrôleurs C concernés soit identique ou le plus proche possible pour l'exactitude des mesures. Ce regroupement est par ailleurs très efficace pour obtenir par exemple un graphique des échanges entre ces contrôleurs C lorsqu'ils communiquent entre eux 10 ou partage un processus commun. Le logiciel d'expertise dédié détecte automatiquement la présence de tous les modules spécifiques de surveillance MS1 à MSt présents dans un programme utilisateur du contrôleur C pour surveiller toutes les variables V1 à Vt binaires et numériques 15 associées. Il propose ainsi à l'utilisateur la liste des modules spécifiques de surveillance MS1 à MSt à visualiser. Après sélection du module spécifique de surveillance MSy souhaité, les évolutions des métadonnées correspondantes et enregistrées par ledit module sont alors affichées instantanément à l'écran de l'appareil d'expertise dédié pour expertise, y compris lors du changement de module à afficher. 20 Il permet également de trier les variables pour un même module spécifique de surveillance MSy mais aussi entre les modules d'un ou de plusieurs contrôleurs C via des listes personnalisées. Le logiciel d'expertise dédié comporte également une fonctionnalité graphique qui 25 permet à l'utilisateur de choisir entre deux modes d'affichage et de pouvoir basculer instantanément entre ces deux modes, présentant tous deux des avantages et des inconvénients. L'utilisateur peut sélectionner un mode d'affichage sans base de temps linéaire. 30 L'avantage majeur de ce mode d'affichage est de visualiser uniquement les 3038990 31 changements d'états de toutes les variables V1 à Vn correspondant audit module spécifique de surveillance MSy analysé, sans tenir compte du temps entre deux évènements pour définir la base de temps d'affichage Ce mode d'affichage permet ainsi de visualiser sur un même écran des évolutions de variables V1 à Vn qui ont pu 5 avoir lieu dans un espace de temps important ou très différents : plusieurs microsecondes, millisecondes, secondes, minutes, heures, jours, etc. pour visualiser et comprendre l'enchaînement des évènements. Une fonction zoom permet par ailleurs de concentrer encore davantage le nombre d'évènements visibles à l'écran. L'inconvénient de ce mode d'affichage est de ne pas pouvoir comparer visuellement 10 la durée des créneaux temporels visibles sur l'écran puisqu'il n'y pas d'échelle de temps. Il peut également sélectionner un mode d'affichage avec une base de temps linéaire paramétrable. L'avantage de ce mode d'affichage est de pouvoir comparer 15 visuellement la durée des créneaux temporels visibles à l'écran. L'inconvénient majeur de ce mode d'affichage est de visualiser simultanément peu d'évènements sur un même écran, générant un manque de lisibilité globale des évènements. Cette double fonctionnalité instantanée n'est d'ailleurs pas connue à ce jour sur d'autres appareils d'analyse existants de ce type. 20 L'équipement de surveillance et d'expertise selon l'invention peut être utilisé pour des applications préventives de dépannage. Dans ce cas, il est très intéressant pour l'utilisateur d'implanter et de standardiser l'utilisation de certains modules spécifiques de surveillance MS1 à MSt dans le programme utilisateur d'un contrôleur C dès sa 25 conception pour surveiller les principales variables V1 à Vt des installations industrielles qui seront pilotées par ledit contrôleur C, afin de disposer d'un système préventif de surveillance sans attendre l'apparition d'un aléa dans ladite installation industrielle. Cette intégration des modules spécifiques de surveillance MS1 à MSt dès la conception du programme utilisateur permet ainsi de ne pas ajouter ultérieurement 30 de système externe de mesure et de ne pas risquer de perturber le fonctionnement d'une 3038990 32 installation industrielle déjà en fonctionnement. Suite à un dysfonctionnement, l'utilisateur pourra alors analyser l'évolution d'une ou de plusieurs variables V1 à Vt, rechercher et localiser l'endroit du programme utilisateur à l'origine de ces défauts. Il peut ainsi expertiser les comportements anormaux d'une installation industrielle et 5 déterminer l'origine d'une défaillance de cette installation. Il peut enregistrer et conserver des scénarios de fonctionnement ou de pannes. Il peut filtrer l'évolution de certaines variables V1 à Vt sur une période de temps. Il peut visualiser sous forme de chronogrammes le comportement des variables V1 à Vt mémorisées. Il peut créer des listes personnalisables et réutilisables de variables V1 à Vt pour un incident donné. Il 10 peut afficher les variables V1 à Vt avec une échelle de temps linéaire, ou avec une base de temps dynamique qui s'adapte automatiquement avec le temps d'apparition de chaque évènement, comme expliqué précédemment. Cette solution permet de restreindre la visualisation des variables V1 à Vt en affichant seulement les changements d'états des variables. On peut citer à titre d'exemple : si une variable 15 évolue 10 fois sur 24h, seuls les changements d'états successifs seront regroupés sur l'écran afin de ne pas devoir scruter les données sur 24h. L'outil graphique du logiciel d'expertise offre des fonctionnalités d'affichage pour le tri des variables V1 à Vt, le filtrage des variables sur un temps donné, l'ordre 20 d'affichage des variables V1, V2 ou V2, V1, la couleur d'affichage du graphique de chaque variable, etc... l'archivage de scénarios de pannes ou de production, la création et la réutilisation de liste de variables entre plusieurs modules spécifiques de surveillance MS1 à MSt, etc. A titre d'exemple, on peut citer : Si MS1 surveille V1 à V15 et MS2 surveille V16 à V31 alors on peut créer une liste qui ne contient que V1, 25 V25, V30 ou V2, V4, V8, V9 et afficher l'une de ses listes à l'écran. Le logiciel d'expertise permet la mesure temporelle des évènements. L'utilisateur peut notamment déterminer avec précision chaque évolution de n'importe quelle variable V1 à Vt surveillée en temps réel. Il peut effectuer une signature temporelle du 30 fonctionnement de l'installation industrielle en mémorisant un graphique sur une 3038990 33 période donnée pour en obtenir une référence de fonctionnement. Il peut mesurer tous les temps de cycle d'une tâche, ou d'un sous-programme, le temps de fonctionnement d'un actionneur ou d'un équipement de la partie opérative, le temps entre deux évènements quelconques, optimiser le paramétrage et le nombre des tâches à utiliser, 5 ces exemples n'étant pas limitatifs. Le logiciel d'expertise permet également de réaliser la traçabilité et la surveillance de certains évènements. L'utilisateur peut notamment surveiller et calculer des évènements, le nombre d'interventions des opérateurs, le nombre de défauts et 10 d'interventions, etc. Il peut réaliser graphiquement le suivi des données de production ou de traçabilité des produits d'une installation. Il peut encore effectuer des mesures de rendement ou de disponibilités d'une installation industrielle. Ce logiciel d'expertise dispose d'une option supplémentaire de fonctionnement, qui 15 permet de connecter l'appareil d'expertise dédié au contrôleur C et de travailler en ligne. Cette fonctionnalité est opérationnelle sous réserve que le logiciel dédié soit installé sur un ordinateur qui contient déjà un logiciel de communication compatible avec le contrôleur C à surveiller. Cette fonctionnalité permet ainsi de visualiser en dynamique sur un écran d'ordinateur, l'évolution dynamique, c'est-à-dire en temps 20 réel, d'une ou plusieurs variables V1 à Vt surveillées en fonction du temps, tout comme un système d'analyse externe connu. Toutefois, la solution proposée avec l'appareil d'expertise déporté selon l'invention, tel que décrit ci-dessus, est plus performante puisqu'elle élimine les inconvénients évoqués précédemment en référence aux systèmes d'analyse externes connus, excepté le fait de devoir connecter une console, 25 et réduit considérablement le nombre de requêtes de lecture des variables vers le contrôleur C. En effet, le logiciel d'expertise effectue la lecture des métadonnées enregistrées précédemment par les modules spécifiques de surveillance MS1 à MSt dans le contrôleur C seulement pour les quelques variables V1 à Vt présentes à l'écran, et que l'utilisateur souhaite visualiser, soit par exemple un maximum de seize variables 30 simultanément, ce chiffre n'étant pas limitatif. Le logiciel d'expertise dispose en outre 3038990 34 d'un réglage de cette période de lecture des variables V1 à Vt, pour éliminer quasiment les risques de perturbation du contrôleur C comme un système externe, et ne jamais perturber l'exactitude des mesures en temps réel qui sont toujours mémorisées en temps réel par les modules spécifiques de surveillance MS1 à MSt présents dans le 5 programme utilisateur dudit contrôleur C. Une période de temps plus élevée de cette période de scrutation se traduit simplement par un ralentissement du rafraîchissement des variables visualisées à l'écran par l'utilisateur. Mais quel que soit le réglage de ce temps de lecture des variables, il ne remet pas en cause la pertinence ni l'exactitude des résultats obtenus, puisque l'ensemble des variables V1 à Vt surveillées continuent 10 sans cesse d'être mémorisées en temps réel dans l'unité mémoire globale UM G interne du contrôleur C via les modules spécifiques de surveillance MS1 à MSt et que le logiciel d'expertise interroge uniquement les métadonnées déjà enregistrées lors des tours de cycle TC précédents et ce jusqu'au tour de cycle juste antérieur TCi- 1 . 15 Ce logiciel d'expertise comporte en outre d'autres outils complémentaires très ergonomiques et efficaces destinés à l'assistance technique du programmeur pour faciliter et optimiser au maximum la mise au point des installations automatisées, tels que par exemple : 20 l'analyse et le contrôle des programmes utilisateur, ce qui est utile par exemple dans le cadre de l'invention, pour effectuer des contrôles de cohérence du paramétrage des modules MSy, la présence d'erreurs, etc. la lecture ou l'écriture des états logiques de variables dans le contrôleur C via un fichier de données type Excel, pour effectuer des sauvegardes et restituer 25 des métadonnées, d'un contexte de production, etc. Ces outils permettent également d'envisager des évolutions de l'utilisation de l'invention pour par exemple : rechercher automatiquement toutes les variables V1 à Vt utilisées dans une ou 30 plusieurs routines choisies par l'utilisateur 3038990 générer automatiquement le code programme contenant l'appel de modules MS1 à MSt correspondant à la surveillance de tout ou partie de ces variables V1 à Vt. L'utilisateur n'aurait alors plus qu'à importer ce code généré dans le programme du contrôleur C. 5 etc. Possibilités d'application industrielle : 11 ressort clairement de cette description que l'invention permet d'atteindre les buts 10 fixés, à savoir un procédé de surveillance et d'expertise mis en oeuvre par un équipement simple, très rapide à intégrer et à paramétrer, dont l'analyse des résultats n'est pas réservée uniquement aux experts automaticiens du contrôleur C mais accessibles aux autres utilisateurs de l'installation, sans quasiment pénaliser le fonctionnement du contrôleur C et permettant par un simple relevé de données 15 d'évaluer le comportement temporel du contrôleur C et par la même occasion le comportement temporel de l'installation industrielle qu'il pilote, et de détecter des pannes et des dysfonctionnements sporadiques de fonctionnement de ladite installation industrielle afin de proposer des mesures correctives adaptées aussi bien dans le programme utilisateur du contrôleur C que dans l'installation industrielle. La rapidité, 20 la simplicité de mise en oeuvre puis la pertinence, la précision des résultats obtenus et la facilité d'expertise démontrent l'intérêt de l'invention pour la surveillance des contrôleurs programmables et des installations industrielles qu'ils pilotent. De plus, ce procédé de surveillance et d'expertise mis en oeuvre par ledit équipement 25 de l'invention permettent d'effectuer des analyses et/ou expertises complémentaires tels que : Le diagramme de cycle de l'installation industrielle appelé « signature machine », - La mesure temporelle détaillée du fonctionnement de n'importe quel des 30 organe& piloté& par l'automatisme, 3038990 36 - La mesure du temps de cycle du contrôleur C, - Le calcul du rendement et de la disponibilité de l'installation industrielle (calcul des temps d'arrêt, etc.), - L'état de production de l'installation industrielle (nombre de pièces 5 défectueuses par exemple), - Etc. La présente invention n'est pas limitée à l'exemple de réalisation décrit mais s'étend à toute modification et variante évidentes pour un homme du métier. 10 REVENDICATIONS1. Procédé de surveillance et d'expertise d'une installation industrielle pilotée par un contrôleur (C) programmable au moyen d'instructions programmées dans un programme utilisateur dudit contrôleur (C), ledit programme utilisateur comportant des variables internes utilisées pour coordonner l'exécution desdites instructions à chaque tour de cycle (TCi) dudit contrôleur (C) répété indéfiniment permettant le fonctionnement d'au moins une partie de ladite installation industrielle, procédé caractérisé en ce que l'on implante au moins un module spécifique de surveillance (MSy) à au moins un emplacement choisi dans ledit programme utilisateur, l'on attribue audit module spécifique de surveillance (MSy) au moins une variable (V1 à Vn) interne à surveiller, et en ce que, pendant l'exécution des instructions dans un tour de cycle instantané (TCi), ledit module spécifique de surveillance (MSy) lorsqu'il est activé et exécuté lit en temps réel par une unité de lecture (UL) l'état logique de ladite variable (V1 à Vn) dans ledit tour de cycle instantané (TCi), compare par une unité de contrôle (UC) l'état logique de ladite variable (V1 à Vn) dudit tour de cycle instantané (TCi) avec l'état logique de cette même variable (V1 à Vn) du tour de cycle précédent (TCi-1) préalablement enregistré, et uniquement en cas de changement dudit état logique, lit par une unité d'horodatage (UH) les données temporelles (Tj) correspondant au tour de cycle instantané (TCi) et enregistre le nouvel état logique lu de ladite variable (V1 à Vn) associé aux données temporelles (Tj) dudit tour de cycle instantané (TCi) formant une métadonnée dans une unité de mémoire globale (UM_G) du contrôleur (C) par une unité d'enregistrement (UE), et en ce que l'on analyse au moyen d'un appareil d'expertise dédié lesdites métadonnées enregistrées dans ladite unité mémoire globale (UM_G) du contrôleur (C) pour visualiser le fonctionnement en temps réel dudit programme utilisateur et/ou de ladite installation industrielle et identifier un éventuel dysfonctionnement dans ledit programme utilisateur et/ou ladite installation industrielle. 3038990 38 2. Procédé selon la revendication 1, caractérisé en ce que les données temporelles (Tj) lues par l'unité d'horodatage (UH) dudit module spécifique de surveillance (MSy) correspondent au temps réel de l'horloge interne dudit contrôleur (C), lorsque ledit module spécifique de surveillance est un module paramétré en mode « autonome » ou 5 en mode « maître ». 3. Procédé selon la revendication 2, caractérisé en ce que les données temporelles (Tj) lues par ledit module spécifique de surveillance (MSy) correspondent au temps lu par un autre module spécifique de surveillance, lorsque ledit module spécifique de 10 surveillance est un module paramétré en mode « esclave » et est associé à cet autre module spécifique de surveillance paramétré en mode « maître ». 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'on attribue audit module spécifique de surveillance (MSy) un nombre (n) de 15 variables (V1 à Vn) à surveiller, et en ce que l'unité de lecture (UL) dudit module spécifique de surveillance (MSy) lit l'état logique desdites variables surveillées dans ledit tour de cycle instantané (TCi) et enregistre dans ladite unité mémoire globale (UM_G) dudit contrôleur (C) l'état logique de toutes les variables (V1 à Vn) surveillées dans ledit tour de cycle instantané (TCi) si l'état logique d'au moins une 20 desdites variables surveillées a changé. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'on implante plusieurs modules de surveillance (MS1 à MSt) à différents emplacements choisis dans ledit programme utilisateur du contrôleur (C), et l'on 25 attribue à chaque module spécifique de surveillance (MSy où y est compris entre 1 et t) une ou plusieurs variables (V1 à Vn) à surveiller. 6. Procédé selon la revendication 1, caractérisé en ce que, pour analyser lesdites métadonnées enregistrées dans l'unité mémoire globale (UM_G) dudit contrôleur (C) et identifier un éventuel défaut dans ledit programme utilisateur et/ou ladite installation 3038990 39 industrielle, l'on récupère dans un appareil d'expertise dédié lesdites métadonnées enregistrées dans l'unité mémoire globale (UM G) dudit contrôleur (C). 7. Procédé selon la revendication 6, caractérisé en ce que l'on exploite les 5 métadonnées pour effectuer diverses mesures temporelles choisies dans le groupe des mesures comprenant le diagramme de cycle de l'installation industrielle appelé « signature machine », la mesure temporelle détaillée du fonctionnement de n'importe quel organe piloté par le contrôleur (C), les calculs de rendement, et les calculs de disponibilité de l'installation industrielle. 10 8. Procédé selon la revendication 6, caractérisé en ce que l'on procède à une analyse statique hors ligne et de manière différée desdites métadonnées récupérées sur ledit appareil d'expertise dédié au moyen d'un logiciel d'expertise dédié. 15 9. Procédé selon la revendication 6, caractérisé en ce que l'on connecte ledit appareil d'expertise dédié audit contrôleur (C) pour procéder à une analyse dynamique desdites métadonnées en ligne et en temps réel. 10. Procédé selon l'une quelconque des revendications 6 à 9, caractérisé en ce que 20 l'on récupère lesdites métadonnées dans ledit appareil d'expertise dédié épisodiquement ou périodiquement. 11. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'on paramètre par une unité de paramétrage (UP) le fonctionnement dudit 25 module spécifique de surveillance (MS y)au moyen d'au moins un paramètre choisi dans le groupe comprenant un mode « marche » dans lequel ledit module spécifique de surveillance est activé soit manuellement par une commande externe, soit automatiquement par ledit programme utilisateur, un mode « arrêt » dans lequel ledit module spécifique de surveillance est désactivé, un mode « initialisation » dans lequel 30 ledit module spécifique de surveillance remet à zéro les métadonnées correspondant 3038990 40 aux variables (V1 à Vn) surveillées et enregistrées dans ladite unité mémoire globale (UM_G) dudit contrôleur (C) , un mode « autonome » ou un mode « maître » dans lequel ledit module spécifique de surveillance lit le temps réel de l'horloge interne dudit contrôleur (C), un mode « esclave » dans lequel ledit module spécifique de 5 surveillance utilise le temps lu par un autre module spécifique de surveillance paramétré en mode « maître ». 12. Procédé selon la revendication 1, caractérisé en ce que l'on paramètre dans ledit module spécifique de surveillance (MSy) le nombre limite (p) de métadonnées 10 que ladite unité d'enregistrement (UE) peut enregistrer dans ladite unité mémoire globale (UM_G) dudit contrôleur (C), et en ce que, au-delà de cette limite (p), ledit module spécifique de surveillance interrompt l'enregistrement des nouvelles métadonnées ou enregistre les nouvelles métadonnées en écrasant ou ré écrasant les métadonnées enregistrées initialement et en reprenant les enregistrements depuis 15 l'emplacement 0 de l'unité mémoire globale (UM_G). 13. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'on inhibe au moins une des variables (V1 à Vn) dites surveillées par ledit module spécifique de surveillance (MSy), et en ce que l'état logique de la variable 20 inhibée ne sera enregistré que lorsque l'état logique d'au moins une autre variable non inhibée changera. 14. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l'on conçoit un module générique (MG) dédié à la surveillance dans ledit 25 programme utilisateur dudit contrôleur (C) sous la forme d'un code programme unique comportant au moins lesdites unités de lecture (UL), de contrôle (UC), d'horodatage (UH), d'enregistrement (UE) et de paramétrage (UP), et en ce que l'on crée chaque module spécifique de surveillance (MSy) sous la forme d'un module programme exécutable dudit module générique (MG) dédié à la surveillance implanté dans ledit 30 programme utilisateur. 3038990 41 15. Equipement de surveillance et d'expertise d'une installation industrielle pilotée par un contrôleur (C) programmable au moyen d'instructions programmées dans un programme utilisateur dudit contrôleur, ledit programme utilisateur comportant des variables internes utilisées pour coordonner l'exécution desdites instructions à chaque 5 tour de cycle (TC) dudit contrôleur (C) répété indéfiniment permettant le fonctionnement d' au moins une partie de ladite installation industrielle, équipement caractérisé en ce qu'il met en oeuvre le procédé de surveillance et d'expertise selon l'une quelconque des revendications précédentes et comporte à cet effet au moins un module spécifique de surveillance (MSy) agencé pour être implanté à au moins un 10 emplacement choisi dans ledit programme utilisateur, ledit module spécifique de surveillance (MSy) comportant au moins une entrée à laquelle est attribuée une variable (V1 à Vn) interne à surveiller, une unité de lecture (UL) agencée pour lire en temps réel l'état logique de ladite variable (V1 à Vn), lorsque ledit module spécifique de surveillance (MSy) est activé pendant l'exécution desdites instructions dans un tour 15 de cycle instantané (TCi), une unité de contrôle (UC) agencée pour comparer l'état logique de ladite variable (V1 à Vn) dudit tour de cycle instantané (TCi) avec l'état logique de la même variable (V1 à Vn) du tour de cycle précédent (TCi-1) préalablement enregistré, une unité d'horodatage (UH) agencée pour lire les données temporelles (Tj) correspondant audit tour de cycle instantané (TCi), et une unité 20 d'enregistrement (UE) agencée pour enregistrer le nouvel état logique lu de ladite variable (V1 à Vn) associé aux données temporelles (Tj) dudit tour de cycle instantané (TCi) pour former une métadonnée dans une unité de mémoire globale (UM_G) dudit contrôleur (C) uniquement en cas de changement dudit état logique, et en ce que ledit équipement comporte en outre un appareil d'expertise dédié agencé pour analyser 25 lesdites métadonnées enregistrées dans ladite unité mémoire globale (UM_G) dudit contrôleur (C) pour visualiser le fonctionnement en temps réel dudit programme utilisateur et/ou de ladite installation industrielle et identifier un éventuel dysfonctionnement dans ledit programme utilisateur et/ou ladite installation industrielle. 30 3038990 42 16. Equipement selon la revendication 15, caractérisé en ce que ledit module spécifique de surveillance (MSy) est un module paramétré en mode « autonome » ou en mode « maître » et en ce que ladite unité d'horodatage (UH) est agencée pour lire le temps réel (Tj) de l'horloge interne dudit contrôleur (C). 5 17. Equipement selon la revendication 16, caractérisé en ce que ledit module spécifique de surveillance (MSy) est un module paramétré en mode « esclave » et en ce que ladite unité d'horodatage (UH) est agencée pour lire le temps (Tj) fourni par un autre module spécifique de surveillance paramétré en mode « maître ». 10 18. Equipement selon l'une quelconque des revendications 15 à 17, caractérisé en ce que ledit module spécifique de surveillance (MSy) comporte un nombre (n) d'entrées auquel est attribué un nombre (n) de variables (V1 à Vn) à surveiller, en ce que ladite unité de lecture (UL) est agencée pour lire l'état logique desdites variables 15 (V1 à Vn) dans ledit tour de cycle instantané (TCi) et en ce que l'unité d'enregistrement (UE) est agencée pour enregistrer dans ladite unité mémoire globale (UM_G) dudit contrôleur (C) l'état logique de toutes les variables (V1 à Vn) si l'état logique d'au moins une desdites variables surveillées a changé. 20 19. Equipement selon l'une quelconque des revendications 15 à 18, caractérisé en ce qu'il comporte plusieurs modules de surveillance (MS1 à MSt) implantés à différents emplacements choisis dans ledit programme utilisateur, et en ce que chaque module spécifique de surveillance (MSy) comporte une ou plusieurs entrées auxquelles sont attribuées une ou plusieurs variables (V1 à Vn) à surveiller. 25 20. Equipement selon la revendication 15, caractérisé en ce que ledit appareil d'expertise dédié comporte une unité mémoire dans laquelle les métadonnées enregistrées dans l'unité mémoire globale (UM_G) dudit contrôleur (C) sont récupérées et un logiciel d'expertise dédié agencé pour traiter et représenter sous une 3038990 43 forme graphique lesdites métadonnées afin de visualiser le fonctionnement en temps réel dudit programme utilisateur et/ou de ladite installation industrielle. 21. Equipement selon l'une quelconque des revendications 15 à 20, caractérisé en 5 ce que ledit module spécifique de surveillance (MS y) comporte une unité de paramétrage (UP) agencée pour paramétrer son fonctionnement au moyen d'au moins un paramètre choisi dans le groupe de paramètres comprenant une fonction « marche » dans laquelle ledit module spécifique de surveillance est activé soit manuellement par une commande externe, soit automatiquement sur conditions par ledit programme 10 utilisateur, une fonction « arrêt » dans laquelle ledit module spécifique de surveillance est désactivé, une fonction « initialisation » par laquelle ledit module spécifique de surveillance remet à zéro dans ladite unité mémoire globale (UM_G) dudit contrôleur (C) les métadonnées enregistrées correspondant aux variables (V1 à Vn) surveillées, un mode « autonome » ou un mode « maître » dans lequel ledit module spécifique de 15 surveillance lit le temps réel de l'horloge interne dudit contrôleur (C), un mode « esclave » dans lequel ledit module spécifique de surveillance utilise le temps (Tj) lu par un autre module spécifique de surveillance paramétré en mode « maître ». 22. Equipement selon la revendication 21, caractérisé en ce que ladite unité de 20 paramétrage (UP) est agencée pour définir le nombre limite (p) d'enregistrements dans ladite unité mémoire (UM) du contrôleur (C), et en ce que, au-delà de cette limite (p), ladite unité d'enregistrement (UE) est agencée pour interrompre l'enregistrement des nouvelles métadonnées ou enregistrer les nouvelles métadonnées en écrasant les métadonnées enregistrées initialement et en reprenant les enregistrements depuis 25 l'emplacement 0 de l'unité mémoire globale (UM_G). 23. Equipement selon l'une quelconque des revendications 15 à 22, caractérisé en ce qu'il comporte un module générique (MG) dédié à la surveillance constitué d'un code programme unique interne audit programme utilisateur dudit contrôleur (C) et 30 comportant au moins lesdites unités de lecture (UL), de contrôle (UC), d'horodatage 3038990 44 (UH), de paramétrage (UP) et d'enregistrement (UE), et en ce que chaque module spécifique de surveillance (MS1 à MSt) implanté dans ledit programme utilisateur est un module programme exécutable dudit module générique (MG) dédié à la surveillance. 5