▼
Scroll to page 2
of
72
SoMachine EIO0000002412 06/2017 SoMachine SqlRemoteAccess Guide de la bibliothèque EIO0000002412.01 06/2017 www.schneider-electric.com Le présent document comprend des descriptions générales et/ou des caractéristiques techniques des produits mentionnés. Il ne peut pas être utilisé pour définir ou déterminer l'adéquation ou la fiabilité de ces produits pour des applications utilisateur spécifiques. Il incombe à chaque utilisateur ou intégrateur de réaliser l'analyse de risques complète et appropriée, l'évaluation et le test des produits pour ce qui est de l'application à utiliser et de l'exécution de cette application. Ni la société Schneider Electric ni aucune de ses sociétés affiliées ou filiales ne peuvent être tenues pour responsables de la mauvaise utilisation des informations contenues dans le présent document. Si vous avez des suggestions, des améliorations ou des corrections à apporter à cette publication, veuillez nous en informer. Vous acceptez de ne pas reproduire, excepté pour votre propre usage à titre non commercial, tout ou partie de ce document et sur quelque support que ce soit sans l'accord écrit de Schneider Electric. Vous acceptez également de ne pas créer de liens hypertextes vers ce document ou son contenu. Schneider Electric ne concède aucun droit ni licence pour l'utilisation personnelle et non commerciale du document ou de son contenu, sinon une licence non exclusive pour une consultation « en l'état », à vos propres risques. Tous les autres droits sont réservés. Toutes les réglementations locales, régionales et nationales pertinentes doivent être respectées lors de l'installation et de l'utilisation de ce produit. Pour des raisons de sécurité et afin de garantir la conformité aux données système documentées, seul le fabricant est habilité à effectuer des réparations sur les composants. Lorsque des équipements sont utilisés pour des applications présentant des exigences techniques de sécurité, suivez les instructions appropriées. La non-utilisation du logiciel Schneider Electric ou d'un logiciel approuvé avec nos produits matériels peut entraîner des blessures, des dommages ou un fonctionnement incorrect. Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels. © 2017 Schneider Electric. Tous droits réservés. 2 EIO0000002412 06/2017 Table des matières Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . A propos de ce manuel. . . . . . . . . . . . . . . . . . . . . . . . . . Partie I Informations générales . . . . . . . . . . . . . . . . . . . . . . . Chapitre 1 Informations spécifiques de sécurité . . . . . . . . . . . . . . . Qualification du Personnel. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instructions d'utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Informations relatives au produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 2 Présentation de la bibliothèque . . . . . . . . . . . . . . . . . . . Informations générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 3 Transfert de données via SQL Gateway entre SoMachine et une base de données . . . . . . . . . . . . . . . . . . . . . . . . . Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Partie II Énumérations et Structures . . . . . . . . . . . . . . . . . . . Chapitre 4 Énumérations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ET_Result . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 5 Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ST_ConnectionSettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 6 ALIAS (DUT). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ALIAS - DUT (Device Unit Type ou type d'unité d'équipement) . . . . . Partie III Variables globales . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 7 Liste des constantes globales. . . . . . . . . . . . . . . . . . . . . Liste des constantes globales (GCL). . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 8 Liste des paramètres globaux. . . . . . . . . . . . . . . . . . . . . Liste des paramètres globaux (GPL) . . . . . . . . . . . . . . . . . . . . . . . . . . Partie IV Unités d'organisation de programme (POU) . . . . . . . Chapitre 9 Blocs fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SqlDbRead. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FB_SqlDbWrite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapitre 10 Fonctions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . FC_EtResultToString . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Annexes EIO0000002412 06/2017 ......................................... 5 9 11 13 14 14 15 19 19 23 23 27 29 29 33 33 35 35 37 39 39 41 41 43 45 46 49 53 53 55 3 Annexe A Représentation des fonctions et blocs fonction . . . . . . . . Différences entre une fonction et un bloc fonction . . . . . . . . . . . . . . . . Utilisation d'une fonction ou d'un bloc fonction en langage IL . . . . . . . Utilisation d'une fonction ou d'un bloc fonction en langage ST . . . . . . Glossaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 57 58 59 63 67 71 EIO0000002412 06/2017 Consignes de sécurité Informations importantes AVIS Lisez attentivement ces instructions et examinez le matériel pour vous familiariser avec l'appareil avant de tenter de l'installer, de le faire fonctionner, de le réparer ou d'assurer sa maintenance. Les messages spéciaux suivants que vous trouverez dans cette documentation ou sur l'appareil ont pour but de vous mettre en garde contre des risques potentiels ou d'attirer votre attention sur des informations qui clarifient ou simplifient une procédure. EIO0000002412 06/2017 5 REMARQUE IMPORTANTE L'installation, l'utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l'utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction, du fonctionnement et de l'installation des équipements électriques, et ayant suivi une formation en sécurité leur permettant d'identifier et d'éviter les risques encourus. AVANT DE COMMENCER N'utilisez pas ce produit sur les machines non pourvues de protection efficace du point de fonctionnement. L'absence de ce type de protection sur une machine présente un risque de blessures graves pour l'opérateur. AVERTISSEMENT EQUIPEMENT NON PROTEGE N'utilisez pas ce logiciel ni les automatismes associés sur des appareils non équipés de protection du point de fonctionnement. N'accédez pas aux machines pendant leur fonctionnement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Cet automatisme et le logiciel associé permettent de commander des processus industriels divers. Le type ou le modèle d'automatisme approprié pour chaque application dépendra de facteurs tels que la fonction de commande requise, le degré de protection exigé, les méthodes de production, des conditions inhabituelles, la législation, etc. Dans certaines applications, plusieurs processeurs seront nécessaires, notamment lorsque la redondance de sauvegarde est requise. Vous seul, en tant que constructeur de machine ou intégrateur de système, pouvez connaître toutes les conditions et facteurs présents lors de la configuration, de l'exploitation et de la maintenance de la machine, et êtes donc en mesure de déterminer les équipements automatisés, ainsi que les sécurités et verrouillages associés qui peuvent être utilisés correctement. Lors du choix de l'automatisme et du système de commande, ainsi que du logiciel associé pour une application particulière, vous devez respecter les normes et réglementations locales et nationales en vigueur. Le document National Safety Council's Accident Prevention Manual (reconnu aux Etats-Unis) fournit également de nombreuses informations utiles. Dans certaines applications, telles que les machines d'emballage, une protection supplémentaire, comme celle du point de fonctionnement, doit être fournie pour l'opérateur. Elle est nécessaire si les mains ou d'autres parties du corps de l'opérateur peuvent entrer dans la zone de point de pincement ou d'autres zones dangereuses, risquant ainsi de provoquer des blessures graves. Les produits logiciels seuls, ne peuvent en aucun cas protéger les opérateurs contre d'éventuelles blessures. C'est pourquoi le logiciel ne doit pas remplacer la protection de point de fonctionnement ou s'y substituer. 6 EIO0000002412 06/2017 Avant de mettre l'équipement en service, assurez-vous que les dispositifs de sécurité et de verrouillage mécaniques et/ou électriques appropriés liés à la protection du point de fonctionnement ont été installés et sont opérationnels. Tous les dispositifs de sécurité et de verrouillage liés à la protection du point de fonctionnement doivent être coordonnés avec la programmation des équipements et logiciels d'automatisation associés. NOTE : La coordination des dispositifs de sécurité et de verrouillage mécaniques/électriques du point de fonctionnement n'entre pas dans le cadre de cette bibliothèque de blocs fonction, du Guide utilisateur système ou de toute autre mise en œuvre référencée dans la documentation. DEMARRAGE ET TEST Avant toute utilisation de l'équipement de commande électrique et des automatismes en vue d'un fonctionnement normal après installation, un technicien qualifié doit procéder à un test de démarrage afin de vérifier que l'équipement fonctionne correctement. Il est essentiel de planifier une telle vérification et d'accorder suffisamment de temps pour la réalisation de ce test dans sa totalité. AVERTISSEMENT RISQUES INHERENTS AU FONCTIONNEMENT DE L'EQUIPEMENT Assurez-vous que toutes les procédures d'installation et de configuration ont été respectées. Avant de réaliser les tests de fonctionnement, retirez tous les blocs ou autres cales temporaires utilisés pour le transport de tous les dispositifs composant le système. Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Effectuez tous les tests de démarrage recommandés dans la documentation de l'équipement. Conservez toute la documentation de l'équipement pour référence ultérieure. Les tests logiciels doivent être réalisés à la fois en environnement simulé et réel. Vérifiez que le système entier est exempt de tout court-circuit et mise à la terre temporaire non installée conformément aux réglementations locales (conformément au National Electrical Code des Etats-Unis, par exemple). Si des tests diélectriques sont nécessaires, suivez les recommandations figurant dans la documentation de l'équipement afin d'éviter de l'endommager accidentellement. Avant de mettre l'équipement sous tension : Enlevez les outils, les instruments de mesure et les débris éventuels présents sur l'équipement. Fermez le capot du boîtier de l'équipement. Retirez toutes les mises à la terre temporaires des câbles d'alimentation entrants. Effectuez tous les tests de démarrage recommandés par le fabricant. EIO0000002412 06/2017 7 FONCTIONNEMENT ET REGLAGES Les précautions suivantes sont extraites du document NEMA Standards Publication ICS 7.1-1995 (la version anglaise prévaut) : Malgré le soin apporté à la conception et à la fabrication de l'équipement ou au choix et à l'évaluation des composants, des risques subsistent en cas d'utilisation inappropriée de l'équipement. Il arrive parfois que l'équipement soit déréglé accidentellement, entraînant ainsi un fonctionnement non satisfaisant ou non sécurisé. Respectez toujours les instructions du fabricant pour effectuer les réglages fonctionnels. Les personnes ayant accès à ces réglages doivent connaître les instructions du fabricant de l'équipement et les machines utilisées avec l'équipement électrique. Seuls ces réglages fonctionnels, requis par l'opérateur, doivent lui être accessibles. L'accès aux autres commandes doit être limité afin d'empêcher les changements non autorisés des caractéristiques de fonctionnement. 8 EIO0000002412 06/2017 A propos de ce manuel Présentation Objectif du document Ce document décrit la bibliothèque SqlRemoteAccess. La bibliothèque fournit des blocs fonction clients SQL (Structured Query Language) qui permettent à votre contrôleur de se connecter à une base de données SQL pour exécuter des requêtes SQL de lecture et d'écriture de données. Pour utiliser les fonctions SQL, vous devez installer le logiciel SQL Gateway fourni avec SoMachine comme composant facultatif qui requiert une licence spécifique. La bibliothèque SqlRemoteAccess utilise des fonctions et des ressources système qui sont prises en charge sur certaines plates-formes de contrôleur : Modicon M241 Logic Controller Modicon M251 Logic Controller Modicon M258 Logic Controller Modicon LMC078 Motion Controller Modicon LMC058 Motion Controller Champ d'application Ce document a été actualisé pour le lancement de SoMachine V4.3. Les caractéristiques techniques des équipements décrits dans ce document sont également fournies en ligne. Pour accéder à ces informations en ligne : Etape Action 1 Accédez à la page d'accueil de Schneider Electric www.schneider-electric.com. 2 Dans la zone Search, saisissez la référence d'un produit ou le nom d'une gamme de produits. N'insérez pas d'espaces dans la référence ou la gamme de produits. Pour obtenir des informations sur un ensemble de modules similaires, utilisez des astérisques (*). 3 Si vous avez saisi une référence, accédez aux résultats de recherche Product Datasheets et cliquez sur la référence qui vous intéresse. Si vous avez saisi une gamme de produits, accédez aux résultats de recherche Product Ranges et cliquez sur la gamme de produits qui vous intéresse. 4 Si plusieurs références s'affichent dans les résultats de recherche Products, cliquez sur la référence qui vous intéresse. 5 Selon la taille de l'écran, vous serez peut-être amené à faire défiler la page pour consulter la fiche technique. EIO0000002412 06/2017 9 Etape Action 6 Pour enregistrer ou imprimer une fiche technique au format .pdf, cliquez sur Download XXX product datasheet. Les caractéristiques présentées dans ce manuel devraient être identiques à celles fournies en ligne. Toutefois, en application de notre politique d'amélioration continue, nous pouvons être amenés à réviser le contenu du document afin de le rendre plus clair et plus précis. Si vous constatez une différence entre le manuel et les informations fournies en ligne, utilisez ces dernières en priorité. Documents à consulter Titre du document Référence SoMachine - Fonctions et bibliothèques - Guide de l'utilisateur EIO0000000735 (ENG) ; EIO0000000792 (FRE) ; EIO0000000793 (GER) ; EIO0000000795 (SPA) ; EIO0000000794 (ITA) ; EIO0000000796 (CHS) SoMachine - Guide de programmation EIO0000000067 (ENG) ; EIO0000000069 (FRE) ; EIO0000000068 (GER) ; EIO0000000071 (SPA) ; EIO0000000070 (ITA) ; EIO0000000072 (CHS) SQL Gateway - Guide de l'utilisateur EIO0000002417 (ENG) ; EIO0000002418 (FRE) ; EIO0000002419 (GER) ; EIO0000002421 (SPA) ; EIO0000002420 (ITA) ; EIO0000002422 (CHS) Vous pouvez télécharger ces publications ainsi que d'autres informations techniques sur notre site Web : http://www.schneider-electric.com/en/download. 10 EIO0000002412 06/2017 SoMachine Informations générales EIO0000002412 06/2017 Partie I Informations générales Informations générales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 1 Informations spécifiques de sécurité 13 2 Présentation de la bibliothèque 19 3 Transfert de données via SQL Gateway entre SoMachine et une base de données 23 EIO0000002412 06/2017 11 Informations générales 12 EIO0000002412 06/2017 SoMachine Informations spécifiques de sécurité EIO0000002412 06/2017 Chapitre 1 Informations spécifiques de sécurité Informations spécifiques de sécurité Présentation Cette rubrique contient les informations permettant de travailler avec la bibliothèque SqlRemoteAccess. Le personnel amené à travailler avec la bibliothèque SqlRemoteAccess doit lire et observer ces informations . Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Qualification du Personnel 14 Instructions d'utilisation 14 Informations relatives au produit 15 EIO0000002412 06/2017 13 Informations spécifiques de sécurité Qualification du Personnel Présentation L’installation, l’utilisation, la réparation et la maintenance des équipements électriques doivent être assurées par du personnel qualifié uniquement. Schneider Electric décline toute responsabilité quant aux conséquences de l’utilisation de ce matériel. Une personne qualifiée est une personne disposant de compétences et de connaissances dans le domaine de la construction et du fonctionnement des équipements électriques et installations et ayant bénéficié d'une formation de sécurité afin de reconnaître et d’éviter les risques encourus. La personne qualifiée doit être capable de détecter d'éventuels dangers qui pourraient découler du paramétrage, de modifications des valeurs de paramétrage et plus généralement des équipements mécaniques, électriques ou électroniques. La personne qualifiée doit connaître les normes, dispositions et régulations liées à la prévention des accidents de travail, et doit les observer lors de la conception et de l'implémentation du système. Instructions d'utilisation Présentation Ce produit est une bibliothèque à utiliser avec un système de commande et des servoamplificateurs. La bibliothèque n'est conçue qu'en vue d'une utilisation telle que décrite dans la présente documentation, appliquée au secteur industriel. Observez en permanence les instructions applicables liées à la sécurité, les conditions spécifiques et les données techniques. Réalisez une analyse des risques en rapport avec l'utilisation spécifique avant d'utiliser ce produit. Prenez les mesures de sécurité qui découlent des résultats. Étant donné que ce produit est utilisé au sein d'un système qui l'englobe, vous devez vous assurer de la sécurité du personnel par le biais du concept de ce système global (le concept de machine, par exemple). Aucune autre utilisation n'est prévue. Toute autre utilisation pourrait être dangereuse. L’installation, l’utilisation, la réparation et la maintenance des appareils et équipements électriques doivent être assurées par du personnel qualifié uniquement. 14 EIO0000002412 06/2017 Informations spécifiques de sécurité Informations relatives au produit Informations relatives au produit AVERTISSEMENT PERTE DE CONTROLE Le concepteur d'un système de commande doit envisager les modes de défaillance possibles des chemins de commande et, pour certaines fonctions de commande critiques, prévoir un moyen d'atteindre un état sécurisé en cas de défaillance d'un chemin, et après cette défaillance. Par exemple, l'arrêt d'urgence, l'arrêt en cas de surcourse, la coupure de courant et le redémarrage sont des fonctions de commande cruciales. Des canaux de commande séparés ou redondants doivent être prévus pour les fonctions de commande critiques. Les chemins de commande système peuvent inclure les liaisons de communication. Soyez particulièrement attentif aux implications des retards de transmission imprévus ou des pannes de liaison. Respectez toutes les réglementations de prévention des accidents ainsi que les consignes de sécurité locales.1 Chaque implémentation de cet équipement doit être testée individuellement et entièrement pour s'assurer du fonctionnement correct avant la mise en service. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 1 Pour plus d'informations, consultez le document NEMA ICS 1.1 (dernière édition), « Safety Guidelines for the Application, Installation, and Maintenance of Solid State Control » (Directives de sécurité pour l'application, l'installation et la maintenance de commande statique) et le document NEMA ICS 7.1 (dernière édition), « Safety Standards for Construction and Guide for Selection, Installation, and Operation of Adjustable-Speed Drive Systems » (Normes de sécurité relatives à la construction et manuel de sélection, installation et opération de variateurs de vitesse) ou son équivalent en vigueur dans votre pays. Avant de tenter de fournir une solution (machine ou processus) pour une application spécifique en utilisant les POU trouvés dans la bibliothèque, vous devez tenir compte de la réalisation et de l'exécution des bonnes pratiques. La liste non exhaustive de ces pratiques liées à cette bibliothèque inclut l'analyse des risques, la sécurité fonctionnelle, la compatibilité des composants, les tests et la validation du système. EIO0000002412 06/2017 15 Informations spécifiques de sécurité AVERTISSEMENT MAUVAISE UTILISATION DES POU Effectuez une analyse de la sécurité de l'application et des appareils installés. Assurez-vous que les POU sont compatibles avec les appareils du système et n'ont pas d'effets inattendus sur le bon fonctionnement du système. Utilisez les paramètres appropriés, notamment les valeurs limites, et observez l'usure de la machine et son comportement à l'arrêt. Vérifiez que les capteurs et déclencheurs sont compatibles avec les POU sélectionnés. Testez de manière approfondie toutes les fonctions durant la vérification et la mise en service dans tous les modes de fonctionnement. Indiquez des méthodes indépendantes pour les fonctions de commande critiques (arrêt d'urgence, conditions de dépassement des valeurs limites, etc.) en fonction d'une analyse de la sécurité, des règles correspondantes et des réglementations. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L’EQUIPEMENT N'utilisez que le logiciel approuvé par Schneider Electric pour faire fonctionner cet équipement. Mettez à jour votre programme d'application chaque fois que vous modifiez la configuration matérielle physique. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. AVERTISSEMENT FONCTIONNEMENT INATTENDU DE L'EQUIPEMENT Actualisez votre programme d'application, si nécessaire, en portant une attention particulière aux réglages de l'adresse d'E/S, dès que vous modifiez la configuration matérielle. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 16 EIO0000002412 06/2017 Informations spécifiques de sécurité Les transferts incomplets, qu'il s'agisse de fichiers de données, d'application et/ou de micrologiciel, peuvent avoir des conséquences graves sur votre machine ou votre contrôleur. En cas coupure de courant (volontaire ou non) ou d'interruption de la communication pendant un transfert de fichier, votre machine peut devenir inopérante ou votre application peut tenter d'utiliser un fichier de données endommagé. Si une interruption survient, relancez le transfert. Veillez à inclure l'impact des fichiers de données endommagés dans votre analyse des risques. AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L'EQUIPEMENT, PERTE DE DONNEES OU FICHIER ENDOMMAGE N'interrompez pas un transfert de données en cours. Si le transfert est interrompu pour une raison quelconque, relancez-le. Ne mettez pas votre machine en service tant que le transfert de fichier n'est pas terminé, sauf si vous avez pris en compte les fichiers endommagés dans votre analyse des risques et si vous avez mis en place des mesures appropriées pour prévenir les conséquences potentiellement graves dues à des échecs de transfert. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. EIO0000002412 06/2017 17 Informations spécifiques de sécurité 18 EIO0000002412 06/2017 SoMachine Description EIO0000002412 06/2017 Chapitre 2 Présentation de la bibliothèque Présentation de la bibliothèque Informations générales Introduction La bibliothèque SqlRemoteAccess fournit des blocs fonction clients SQL (Structured Query Language) qui permettent à votre contrôleur de se connecter à une base de données SQL pour exécuter des requêtes SQL de lecture et d'écriture de données. La communication entre le contrôleur (qui se comporte comme un client SQL) et le serveur de base de données SQL transite par Schneider Electric SQL Gateway. Par conséquent, vous devez installer le logiciel SQL Gateway fourni avec SoMachine pour utiliser la fonction SQL. Ce composant facultatif requiert une licence spécifique. Pour plus d'informations, consultez le document SQL Gateway - Guide de l'utilisateur (voir page 10). 1 2 3 4 5 1 à n contrôleurs (clients SQL) Lecture de données Ecriture de données SQL Gateway 1 à n serveurs de base de données Une fois l'installation terminée, le contrôleur peut envoyer une requête SQL personnalisée au serveur de base de données. Par exemple : Interrogation des données des tables. Insertion, modification et suppression de données dans des tables. Exécution de procédures de base de données. EIO0000002412 06/2017 19 Description Le tableau suivant indique les caractéristiques de la bibliothèque : Caractéristique Valeur Titre de la bibliothèque SqlRemoteAccess Société Schneider Electric Catégorie Communication Composant Bibliothèque SQL Espace de noms par défaut SE_SQL Attribut du modèle de langage qualified-access-only (voir SoMachine, Fonctions et Bibliothèque post-compatible Oui (FCL (voir SoMachine, Fonctions et bibliothèques - Guide de l'utilisateur)) bibliothèques - Guide de l'utilisateur) NOTE : Cette bibliothèque est paramétrée en qualified-access-only. Cela signifie que l'on ne peut accéder aux POU, aux structures de données, aux énumérations, et aux constantes qu'en utilisant l'espace de nom de la bibliothèque. L'espace de noms par défaut de la bibliothèque est SE_SQL. Eléments généraux à prendre en compte Envisagez les limites suivantes pour les communications SQL : Seul le protocole IPv4 (Internet Protocol version 4) est pris en charge. Seuls les types de données conformes à la norme IEC 61131-3 sont pris en charge. La lecture et l'écriture d'objets BLOB (Binary Large Object) depuis ou dans une base de données ne sont pas prises en charge. La bibliothèque décrite dans ce document utilise la bibliothèque TcpUdpCommunication en interne. Les bibliothèques TcpUdpCommunication (Schneider Electric) et CAA Net Base Services (CAA Technical Workgroup) utilisent les mêmes ressources système sur le contrôleur. Leur utilisation simultanée dans la même application peut perturber le fonctionnement du contrôleur. AVERTISSEMENT FONCTIONNEMENT IMPREVU DE L’EQUIPEMENT N'utilisez pas la bibliothèque TcpUdpCommunication (Schneider Electric) avec la bibliothèque CAA Net Base Services (CAA Technical Workgroup) simultanément dans la même application. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. 20 EIO0000002412 06/2017 Description Éléments à prendre en compte concernant la cybersécurité Les fonctions de la bibliothèque SqlRemoteAccess ne prennent pas en charge les connexions sécurisées, telles que TLS (Transport Layer Security) ou SSL (Secure Socket Layer), vers la SQL Gateway. La communication ne peut s'effectuer qu'au sein de votre réseau industriel, isolé des autres réseaux de votre entreprise et protégé d'Internet. NOTE : Schneider Electric respecte les bonnes pratiques de l'industrie, en vigueur dans le développement et la mise en œuvre des systèmes de contrôle. Cette approche, dite de « défense en profondeur », permet de sécuriser les systèmes de contrôle industriels. Elle place les contrôleurs derrière des pare-feu pour restreindre leur accès aux seuls personnels et protocoles autorisés. AVERTISSEMENT ACCES NON AUTHENTIFIE ET EXPLOITATION PAR CONSEQUENT NON AUTORISEE DES MACHINES Estimez si votre environnement ou vos machines sont connecté(e)s à votre infrastructure vitale et, le cas échéant, prenez les mesures nécessaires de prévention, basées sur le principe de défense en profondeur, avant de connecter le système d'automatisme à un réseau quelconque. Limitez au strict nécessaire le nombre d'équipements connectés à un réseau. Isolez votre réseau industriel des autres réseaux au sein de votre société. Protégez chaque réseau contre les accès non autorisés à l'aide d'un pare-feu, d'un VPN ou d'autres mesures de sécurité éprouvées. Surveillez les activités au sein de votre système. Empêchez tout accès direct ou liaison directe aux équipements sensibles par des utilisateurs non autorisés ou des actions non authentifiées. Préparez un plan de récupération intégrant la sauvegarde des informations de votre système et de votre processus. Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels. Présentation des POU Bloc fonction / fonction Utilisation FB_SqlDbRead (voir page 46) Exécute des requêtes SQL qui lisent des données de la base de données SQL. FB_SqlDbWrite (voir page 49) Exécute des requêtes SQL qui mettent à jour ou modifient la base de données SQL. FC_EtResultToString (voir page 53) Convertit un élément d'énumération de type ET_Result en une variable de type chaîne. EIO0000002412 06/2017 21 Description Présentation des structures dans l'interface propre au module Structure Utilisation ST_ConnectionSettings (voir page 33) Contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. Présentation des énumérations 22 Énumération Utilisation ET_Result (voir page 29) Contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. EIO0000002412 06/2017 SoMachine Transfert de données via SQL Gateway entre SoMachine et une base de données EIO0000002412 06/2017 Chapitre 3 Transfert de données via SQL Gateway entre SoMachine et une base de données Transfert de données via SQL Gateway entre SoMachine et une base de données Principe Configuration système requise La configuration système requise est la suivante : Serveur (par exemple, MySQL, non fourni par Schneider Electric) Client SQL (par exemple, MySQL Workbench, non fourni par Schneider Electric) Base de données créée avec le client SQL (par exemple, MySQL Workbench) SQL Gateway (installation séparée sur le DVD de SoMachine) Bibliothèque SqlRemoteAccess (partie de l'installation de SoMachine) Transfert de données via SQL Gateway depuis SoMachine vers une base de données Pour pouvoir transférer les données, la connexion SQL doit être établie avec la SQL Gateway. Pour en savoir plus, consultez le document Passerelle SQL - Guide de l'utilisateur (voir page 10). Pour communiquer avec SQL Gateway, il peut s'avérer nécessaire de demander à l'administrateur de l'environnement SQL des informations sur SQL Gateway et sur la base de données. Il vous faut l'adresse IP de la SQL Gateway, le nom de la connexion configuré dans la SQL Gateway et le nom de la base de données. NOTE : la syntaxe SQL dans les exemples de code présentés correspond à un serveur MySQL. Si vous utilisez un autre serveur SQL, les commandes peuvent être différentes. Ecriture de données de SoMachine dans la base de données Déclaration : PROGRAM WriteData VAR fbWrite : SE_SQL.FB_SqlDbWrite; stConnSettings : SE_SQL.ST_ConnectionSettings; refRequestWstring : SE_SQL.RequestWstring; END_VAR EIO0000002412 06/2017 23 Transfert de données via SQL Gateway entre SoMachine et une base de données Mise en œuvre : stConnSettings.wsDbConnectionName := "ConnectionCountry"; stConnSettings.wGwPort := 3457; stConnSettings.wsGwIpAddress := "10.128.154.47"; stConnSettings.timSqlTimeout := T#20S; //SQL Command to insert a new Country - MySQLSyntax: INSERT INTO <database name>.<table name> (column1...columnN) va lues (value1...valueN) //SQLite-Syntax: without "<database name>.") refRequestWstring[1] := "INSERT INTO world.countries (C ountry, CapitalCity, Language)"; refRequestWstring[2] := "values ('Germany', 'Berlin', ' german')"; fbWrite( i_xExecute iq_stConnSettings i_refRequestWstring i_uiNumOfWstrings ); := := := := TRUE, stConnSettings, refRequestWstring, 2 Désignation des paramètres utilisés Etape Action 1 Dans les paramètres de ST_ConnectionSettings (voir page 33), configurez l'adresse IP (wsGwIpAddress (voir page 33)) de votre PC sur lequel la passerelle s'exécute, par exemple, 10.128.154.47. 2 Dans les paramètres de ST_ConnectionSettings (voir page 33), configurez le port (wGwPort (voir page 33)) de la passerelle (par défaut : 3457). 3 Dans les paramètres de ST_ConnectionSettings (voir page 33), configurez le nom de la connexion (wsDbConnectionName (voir page 33)) défini dans la SQL Gateway, par exemple, ConnectionCountry. 4 Dans les paramètres de ST_ConnectionSettings (voir page 33), configurez le timeout (timSqlTimeout (voir page 33)). Par exemple, T#20S. 5 Formulez votre requête d'écriture dans refRequestWstring (voir page 46), par exemple, INSERT INTO world.countries (Country) values ('France'). 6 Dans i_uiNumOfWstrings (voir page 46), configurez vos lignes dans refRequestWstring (voir page 46), par exemple, 2. 7 Appelez le bloc fonction FB_SqlDbWrite (voir page 49) avec les réglages/paramètres/variables ci-dessus. NOTE : Un appel de bloc fonction ne peut envoyer qu'une requête. 24 EIO0000002412 06/2017 Transfert de données via SQL Gateway entre SoMachine et une base de données Lecture de données de SoMachine dans la base de données Déclaration : PROGRAM ReadData VAR fbRead stConnSettings refRequestWstring refUserData END_VAR : : : : SE_SQL.FB_SqlDbRead; SE_SQL.ST_ConnectionSettings; SE_SQL.RequestWstring; SE_SQL.UserData; Mise en œuvre : stConnSettings.wsDbConnectionName stConnSettings.wGwPort stConnSettings.wsGwIpAddress stConnSettings.timSqlTimeout := := := := "ConnectionCountry"; 3457; "10.128.154.47"; T#1 M; //SQL Command to read all Countries in the database - MySQLSyntax: SELECT (column1...columnN) FROM <database name>.<table name> [w here <column>=<value>] //SQLite-Syntax: without "<database name>." refRequestWstring[1] := "SELECT * FROM world.countries"; fbRead ( i_xExecute iq_stConnSettings i_refRequestWstring i_uiNumOfWstrings i_refUserData := := := := := TRUE, stConnSettings, refRequestWstring, 1, refUserData ); Désignation des paramètres utilisés Etape Action 1 Dans les paramètres de ST_ConnectionSettings (voir page 33), configurez l'adresse IP (wsGwIpAddress (voir page 33)) de votre PC sur lequel la SQL Gateway s'exécute, par exemple, 10.128.154.47. 2 Dans les paramètres de ST_ConnectionSettings (voir page 33), configurez le port (wGwPort (voir page 33)) de la passerelle (par défaut : 3457). 3 Dans les paramètres de ST_ConnectionSettings (voir page 33), configurez le nom de la connexion (wsDbConnectionName (voir page 33)) défini dans la SQL Gateway, par exemple, ConnectionCountry. 4 Dans les paramètres de ST_ConnectionSettings (voir page 33), configurez le timeout (timSqlTimeout (voir page 33)), par exemple, T#20S. 5 Formulez votre requête de lecture dans refRequestWstring (voir page 46), par exemple, SELECT * FROM world.countries. EIO0000002412 06/2017 25 Transfert de données via SQL Gateway entre SoMachine et une base de données Etape Action 6 Dans i_uiNumOfWstrings (voir page 46), configurez vos lignes dans refRequestWstring (voir page 46), par exemple, 1. 7 Dans i_refUserData (voir page 46), configurez votre tableau UserData (voir page 46). 8 Appelez le bloc fonction FB_SqlDbRead (voir page 46) avec les réglages/paramètres/variables ci-dessus. Paramètres avancés du tampon de données/de la requête avec les paramètres globaux NOTE : Le Gestionnaire de bibliothèques vous permet de modifier les paramètres avancés en fonction de votre projet. Etape 26 Action 1 Dans Gc_uiMaxRows (voir page 41), configurez le nombre maximum de lignes du tableau ARRAY of UserData (requis uniquement pour FB_SqlDbRead (voir page 46)), par exemple, 20. Résultat : 20 lignes de la base de données configurée peuvent être lues. 2 Dans Gc_uiMaxColumns (voir page 41), configurez le nombre maximum de colonnes du tableau ARRAY of UserData (requis uniquement pour FB_SqlDbRead), par exemple, 10. Résultat : 10 colonnes de la base de données configurée peuvent être lues. 3 Dans Gc_uiTableWstringLength (voir page 41), configurez le nombre maximum de caractères du tableau ARRAY of UserData à double entrée (requis uniquement pour FB_SqlDbRead (voir page 46)), par exemple, 200. Résultat : il est possible de lire un champ de 200 caractères dans la base de données configurée. 4 Dans Gc_uiMaxRequest (voir page 41), configurez le nombre maximum de lignes du tableau ARRAY of RequestWstring, par exemple, 20. Résultat : la requête peut être divisée en 20 lignes du tableau WSTRINGs. 5 Dans Gc_uiRequestWstringLength (voir page 41), configurez le nombre maximum de caractères du tableau ARRAY of RequestWstring, par exemple, 200. Résultat : une ligne de la requête peut comprendre 200 caractères. EIO0000002412 06/2017 SoMachine Énumérations et Structures EIO0000002412 06/2017 Partie II Énumérations et Structures Énumérations et Structures Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 4 Énumérations 29 5 Structures 33 6 ALIAS (DUT) 35 EIO0000002412 06/2017 27 Énumérations et Structures 28 EIO0000002412 06/2017 SoMachine Énumérations EIO0000002412 06/2017 Chapitre 4 Énumérations Énumérations ET_Result Présentation Type : Énumération Disponible à partir de la version : V1.0.0.0 Description L'énumération ET_Result contient les valeurs possibles qui donnent les résultats des opérations exécutées par le bloc fonction. Éléments de l'énumération Nom Type de données Valeur Description Si le paramètre q_xError d'un bloc fonction (voir page 45) est FALSE, le message d'état suivant apparaît. Ok DINT 0 L'opération a abouti. Si le paramètre q_xError d'un bloc fonction (voir page 45) est TRUE, l'un des messages d'état suivants apparaît. TcpClientIssue DINT 1 L'opération TCP n'a pas abouti. Problème général de TCP. Consultez le Guide de la bibliothèque TcpUdpCommunication (voir SoMachine, TcpUdpCommunication, Guide de la bibliothèque). InvalidIP DINT 26 L'adresse IP indiquée n'est pas valide. Vérifiez la valeur de l'entrée iq_stConnSettings.wsGpIpAddress (voir page 33). ClientNotConnected DINT 28 Le client n'est pas connecté au serveur TCP. Vérifiez que le logiciel SQL Gateway est installé et en cours d'exécution avec l'adresse IP et le port spécifiés. ConnectionTimedOut DINT 41 Le système distant est indisponible ou ne répond pas à la requête. Vérifiez que le logiciel SQL Gateway est installé et en cours d'exécution avec l'adresse IP et le port spécifiés. EIO0000002412 06/2017 29 Énumérations Nom Type de données Valeur Description DbConnectionNameNull DINT 61 Le paramètre DbConnectionName est vide (valeur de type Null). Le paramètre wsDbConnectionName de l'entrée iq_stConnSettings (voir page 33) est vide. DataBufferTooSmall DINT 63 Le tampon utilisateur est trop petit pour renvoyer les données. En faisant correspondre le nombre de lignes et de colonnes renvoyées avec les paramètres de la liste des paramètres globaux (voir page 41), vous trouverez les réglages minimum du paramètre q_uiRetNumOfRows (q_uiRetNumOfColumns) du bloc fonction FB_SqlDbRead (voir page 46) après chaque exécution. SqlDatabaseBusy DINT 64 Une requête plus ancienne est en cours de traitement. Une autre instance avec la même entrée du paramètre iq_stConnSettings est en cours d'exécution (sortie de q_xBusy = TRUE). SqlGwToPlcCorruptedMessage DINT 65 Le contrôleur a reçu un message non valide de SQL Gateway. Contactez votre service d'assistance Schneider Electric local. TimeoutExpired DINT 66 Le timeout du bloc fonction a expiré. Vérifiez le réglage de l'entrée iq_stConnSettings.timSqlTimeout (voir page 33) selon la configuration du système. La valeur par défaut doit être augmentée. TransactionNumMismatch DINT 67 Numéro de transaction incohérent. Contactez votre service d'assistance Schneider Electric local. TransmissionNumMismatch DINT 68 Numéro d'émission incohérent. Contactez votre service d'assistance Schneider Electric local. ConnectionNotIdle DINT 69 Un autre service occupe la connexion du client TcpUdp. Vérifiez qu'aucune autre instance de TCPUDP.FB_TCPClient dans votre application n'occupe la connexion. SocketNotClosed DINT 70 La méthode Shutdown ou Close du client TcpUdp n'aboutit pas. Problème de connexion TCP. Redémarrez votre contrôleur. NoDataReturned DINT 71 Le bloc fonction FB_SqlDbGetData ne fournit aucune donnée. La requête SQL a été exécutée, mais n'a pas renvoyé de données. Vérifiez que la base de données associée contient des données. 30 EIO0000002412 06/2017 Énumérations Nom Type de données Valeur Description NotConnected DINT 72 Le système du client TcpUdp n'est pas prêt à recevoir ou envoyer des données. Problème de connexion TCP. Redémarrez votre contrôleur. InvalidPort DINT 80 Le numéro de port indiqué est égal à zéro. Vérifiez l'entrée iq_stConnSettings.wGwPort (voir page 33). Généralement, la valeur par défaut 3457 est utilisée. InvalidWstringNumber DINT 81 L'entrée i_uiNumOfWstrings est inférieure à 1 ou supérieure à GPL.Gc_uiMaxRequest. Vérifiez l'entrée i_uiNumOfWstrings. Au moins une chaîne WSTRING est requise. Vérifiez également que le nombre indiqué est supérieur à la limite GPL.Gc_uiMaxRequest (GPL) (voir page 41). InvalidRequestWstring DINT 82 Chaîne de requête vide ou référence incorrecte (NULL). Vérifiez l'entrée i_refRequestWstring (voir page 49). La première chaîne WSTRING (i_refRequestWstring[1]) doit contenir un ou plusieurs caractères. Vérifiez que l'entrée est affectée. InvalidUserDataWstring DINT 83 Référence de données utilisateur incorrecte (NULL). Vérifiez que l'entrée i_refUserData (voir page 46) est affectée. GplMaxRowsExceedsLimits DINT 85 GPL.Gc_uiMaxRows est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 41). GplMaxColumnsExceedsLimits DINT 86 GPL.Gc_uiMaxColumns est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 41). GplTableWstringExceedsLimits DINT 87 GPL.Gc_uiTableWstringLength est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 41). GplRequestWstringExceedsLimits DINT 88 GPL.Gc_uiRequestWstringLength est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 41). GplMaxRequestExceedsLimits DINT 89 GPL.Gc_uiMaxRequest est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 41). GplMaxRecBufferExceedsLimits DINT 91 GPL.Gc_uiRecBufferLength est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 41). EIO0000002412 06/2017 31 Énumérations Nom Type de données Valeur Description GplMaxSendBufferExceedsLimits DINT 92 GPL.Gc_uiSendBufferLength est hors limites. Vérifiez les réglages de la liste des paramètres globaux (voir page 41). ConnectionNameNotExisting DINT 100 Le nom de la connexion de SQL Gateway n'existe pas. Vérifiez les connexions de base de données disponibles, sur la console de SQL Gateway. DbConfigurationInvalid DINT 101 La configuration de la connexion de SQL Gateway ne correspond pas. Exécutez Test Database Connection depuis la console SQL Gateway. DbConnectionNotAvailable DINT 102 La connexion de SQL Gateway à la base de données ne fonctionne pas. Exécutez Test Database Connection depuis la console SQL Gateway. SqlGwProtocolError DINT 120 Erreur de protocole détectée entre la bibliothèque SQL et la passerelle. Contactez votre service d'assistance Schneider Electric local. CommandExecutionIssue DINT 150 L'exécution de la requête SQL a échoué. Vérifiez la syntaxe SQL de l'entrée i_refRequestWString (voir page 46). Consultez le manuel SQL Server. NoQueryResultAvailable DINT 151 La SQL Gateway ne répond pas. Vérifiez que la base de données interrogée contient des données, à l'aide d'une autre application. SqlGwInvalidLicense DINT 170 Problème avec la licence de SQL Gateway. Ouvrez License Manager pour vérifier que SQL pour SoMachine est correct. SqlGwUnexpectedError DINT 199 Erreur de SQL Gateway détectée. Contactez votre service d'assistance Schneider Electric local. NOTE : les valeurs comprises entre 100 et 199 sont des messages de SQL Gateway. Consultez le document Passerelle SQL - Guide de l'utilisateur (voir page 10). Utilisés par FB_SqlDbRead FB_SqlDbWrite 32 EIO0000002412 06/2017 SoMachine Structures EIO0000002412 06/2017 Chapitre 5 Structures Structures ST_ConnectionSettings Présentation Type : Structure Disponible à partir de la version : V1.0.0.0 Hérite de : – Description La structure ST_ConnectionSettings contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. Éléments de la structure Nom Type de données Description wsDbConnectionName WSTRING[40] La valeur de cet élément doit correspondre au nom de connexion configuré dans la SQL Gateway. Consultez le document Passerelle SQL - Guide de l'utilisateur (voir page 10). wsGwIpAddress WSTRINGGPL.Gc_uiIpSt ringSize Adresse IP de la SQL Gateway. Il s'agit de l'adresse IP du serveur qui exécute la passerelle. wGwPort WORD Numéro de port de la SQL Gateway. Valeur par défaut : 3457 timSqlTimeout TIME Timeout appliqué aux requêtes SQL. Valeur par défaut : 60s Utilisé par FB_SqlDbRead FB_SqlDbWrite EIO0000002412 06/2017 33 Structures 34 EIO0000002412 06/2017 SoMachine ALIAS (DUT) EIO0000002412 06/2017 Chapitre 6 ALIAS (DUT) ALIAS (DUT) ALIAS - DUT (Device Unit Type ou type d'unité d'équipement) Présentation Type : ALIAS (DUT) Disponible à partir de la version : V1.0.0.0 Hérite de : – Description Les ALIAS RequestWstring et UserData combinent des structures de données complexes dans un type de données pour contribuer à simplifier l'interface utilisateur. RequestWstring Nom Type de données Description RequestWstring ARRAY [1..GPL.Gc_uiMaxRequest] OF WSTRING(GPL.Gc_uiRequ estWstringLength) RequestWstring est un ALIAS pour un tableau de chaînes WSTRINGS. La requête STRING contient la requête d'interrogation SQL. Une requête SQL doit être divisée en plusieurs chaînes ne dépassant pas 200 caractères. Adaptez la taille des paramètres globaux (voir page 41) Gc_uiMaxRequest et Gc_uiRequestWstringLength à la longueur des requêtes SQL que vous utilisez dans votre application. Nom Type de données Description UserData ARRAY [1..GPL.Gc_uiMaxRows, 1..GPL.Gc_uiMaxColumns] OF WSTRING(GPL.Gc_uiTable WstringLength) UserData est un tableau de chaînes WSTRING qui doit être disponible sur le contrôleur pour stocker les données SQL lues dans la base de données. Adaptez la taille des paramètres globaux (voir page 41) Gc_uiMaxRows, Gc_uiMaxColums et GPL.Gc_uiTableWstringLength à la taille maximale de UserData à recevoir dans votre application. UserData EIO0000002412 06/2017 35 ALIAS (DUT) 36 EIO0000002412 06/2017 SoMachine Variables globales EIO0000002412 06/2017 Partie III Variables globales Variables globales Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre Titre du chapitre Page 7 Liste des constantes globales 39 8 Liste des paramètres globaux 41 EIO0000002412 06/2017 37 Variables globales 38 EIO0000002412 06/2017 SoMachine Liste des constantes globales EIO0000002412 06/2017 Chapitre 7 Liste des constantes globales Liste des constantes globales Liste des constantes globales (GCL) Présentation Type : Constantes globales Disponible à partir de la version : V1.0.0.0 Description La liste des constantes globales contient les constantes globales de la bibliothèque SqlRemoteAccess. Constantes globales Variable Type de données Gc_sLibraryVersion STRING[80] 1 Valeur Description 1 Vx.x.x.0 Version de bibliothèque Cette valeur varie selon la version de la bibliothèque. EIO0000002412 06/2017 39 Liste des constantes globales 40 EIO0000002412 06/2017 SoMachine Liste des paramètres globaux EIO0000002412 06/2017 Chapitre 8 Liste des paramètres globaux Liste des paramètres globaux Liste des paramètres globaux (GPL) Présentation Type : Paramètres globaux Disponible à partir de la version : V1.0.0.0 Description Cette liste contient les paramètres globaux de la bibliothèque SqlRemoteAccess. Vous pouvez les modifier en fonction de votre projet dans le Gestionnaire de bibliothèques. Les paramètres globaux de la bibliothèque SqlRemoteAccess vous permettent de définir la taille de l'ALIAS suivant des tampons de données : Alias UserData (voir page 35) qui doit être disponible dans le contrôleur, pour stocker les données SQL lues dans la base de données SQL. Alias RequestData (voir page 35) qui doit être disponible dans le contrôleur pour segmenter les requêtes SQL en plusieurs chaînes d'au maximum 200 caractères avant leur envoi à la base de données SQL. Paramètres globaux Variable Type de Valeur plage Description données Gc_uiIpStringSize UINT – Limite supérieure du type WSTRING pour l'élément wsGwIpaddress de la ST_ConnectionSettings structure (voir page 33). Valeur par défaut : 15 Gc_uiMaxRows UINT 1 à 50 Nombre maximum de lignes du tableau ARRAY de données utilisateur (voir page 48). Valeur par défaut : 20 Gc_uiMaxColumns UINT 1 à 50 Nombre maximum de colonnes du tableau ARRAY de données utilisateur (voir page 48). Valeur par défaut : 10 EIO0000002412 06/2017 41 Liste des paramètres globaux Variable Type de Valeur plage Description données Gc_uiTableWstringLength UINT 20 à 200 Longueur de la chaîne WSTRING dans le tableau ARRAY de données utilisateur (voir page 48). Valeur par défaut : 200 Gc_uiRequestWstringLength UINT 20 à 200 Longueur de la chaîne WSTRING dans le tableau ARRAY de données utilisateur. Configurez une valeur correspondant à la longueur des requêtes SQL que vous utilisez dans votre application. Valeur par défaut : 200 Gc_uiMaxRequest UINT 1 à 40 Limite supérieure du tableau ARRAY des données de la requête. Configurez une valeur correspondant à la longueur des requêtes SQL que vous utilisez dans votre application. Valeur par défaut : 20 Gc_uiRecBufferLength UINT 512 à 2000 Longueur du tampon de réponse, en octets. Valeur par défaut : 1000 Gc_uiSendBufferLength UINT 512 à 2000 Longueur du tampon d'envoi, en octets. Valeur par défaut : 1000 NOTE : les variables Gc_uiRecBufferLength et Gc_uiSendBufferLength définissent la taille des tampons internes d'envoi et de réception de données. La taille de ces tampons détermine le nombre de cycles requis pour transférer complètement une requête ou une réponse entre le contrôleur et la SQL Gateway. Les valeurs choisies peuvent avoir un impact sur la durée d'exécution des services SQL et sur la mémoire, ce qui a une incidence sur les performances globales de l'application. 42 EIO0000002412 06/2017 SoMachine Unités d'organisation de programme (POU) EIO0000002412 06/2017 Partie IV Unités d'organisation de programme (POU) Unités d'organisation de programme (POU) Contenu de cette partie Cette partie contient les chapitres suivants : Chapitre 9 10 EIO0000002412 06/2017 Titre du chapitre Page Blocs fonction 45 Fonctions 53 43 Unités d'organisation de programme (POU) 44 EIO0000002412 06/2017 SoMachine Blocs fonction EIO0000002412 06/2017 Chapitre 9 Blocs fonction Blocs fonction Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page FB_SqlDbRead 46 FB_SqlDbWrite 49 EIO0000002412 06/2017 45 Blocs fonction FB_SqlDbRead Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Tâche Le bloc fonction FB_SqlDbRead permet d'exécuter des requêtes SQL qui lisent des données dans la base de données SQL. Les données sont renvoyées dans un tableau à double entrée dont la taille est définie par les paramètres globaux (voir page 41). Description fonctionnelle Le bloc fonction FB_SqlDbRead est l'interface utilisateur qui permet de lire des données provenant de la base de données SQL. Lorsqu'un front montant est détecté sur i_xExecute, une connexion à la SQL Gateway est établie à l'aide des paramètres définis dans la structure ST_ConnectionSettings. Dès la connexion établie, le bloc fonction peut envoyer une requête SQL à la base de données SQL. Tant que le bloc fonction est exécuté, la sortie q_xBusy est TRUE. Lorsqu'une commande aboutit, la sortie q_xDone a pour valeur TRUE. Les messages d'état et informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. 46 EIO0000002412 06/2017 Blocs fonction Interface Entrée Type de données Description i_xExecute BOOL Le bloc fonction exécute une requête SQL pour lire des données de la base de données SQL en cas de front montant sur cette entrée. i_refRequestWstring REFERENCE TO [RequestWstring] Référence aux données qui contiennent la requête d'interrogation SQL (comme Select * from DB limit 10;). Une requête SQL doit être divisée en plusieurs chaînes ne dépassant pas 200 caractères. Adaptez la taille des paramètres globaux (voir page 41) Gc_uiMaxRequest et Gc_uiRequestWstringLength à la longueur des requêtes SQL que vous utilisez dans votre application. (voir page 35) NOTE : Pour concaténer des chaînes WSTRINGS, utilisez la fonction WCONCAT de la bibliothèque Standard64. i_uiNumOfWstrings UINT Nombre de chaînes WSTRINGS requises qui contiennent la requête SQL divisée. Le nombre maximum est limité par le paramètre global (voir page 41) Gc_uiMaxRequest. i_refUserData REFERENCE TO [UserData] (voir page 35) Référence aux UserData (voir page 48) qui doivent être disponibles sur le contrôleur pour stocker les données SQL lues dans la base de données. In_Out Type de données Description iq_stConnSettings ST_ConnectionSettings Contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. (voir page 33) EIO0000002412 06/2017 47 Blocs fonction Sortie Type de données Description q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. q_xDone BOOL Si cette sortie est TRUE, l'exécution s'est effectuée correctement. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[255] Fournit des informations supplémentaires de diagnostic et d'état. q_uiRetNumOfRows UINT Nombre de lignes dans les données renvoyées. Cette sortie est mise à jour avec le nombre d'enregistrements reçus de la base de données SQL. q_uiRetNumOfColumns UINT Nombre de colonnes dans les données renvoyées. Cette sortie est mise à jour avec le nombre d'enregistrements reçus de la base de données SQL. Définition d'un tableau ARRAY de données utilisateur Un tableau ARRAY à double entrée doit être disponible sur le contrôleur pour stocker temporairement les données SQL lues dans la base de données. Le tableau ARRAY à double entrée est défini dans l'ALIAS UserData (voir page 35). La taille du tableau ARRAY peut être adaptée par les paramètres globaux (voir page 41) Gc_uiMaxRows, Gc_uiMaxColumns et Gc_uiTableWstringLength. Lorsque vous configurez ces paramètres, tenez compte du volume de données SQL que vous espérez recevoir. Avant le début du transfert, les données SQL sont segmentées en fonction de la taille de ce tampon. Si les données SQL reçues dépassent la taille du tableau ARRAY, le transfert des données SQL s'interrompt et le bloc fonction signale une erreur détectée. 48 EIO0000002412 06/2017 Blocs fonction FB_SqlDbWrite Présentation Type : Bloc fonction Disponible à partir de la version : V1.0.0.0 Tâche Le bloc fonction FB_SqlDbWrite permet d'exécuter des requêtes SQL qui modifient ou mettent à jour la base de données SQL. Les requêtes ne renvoient aucune donnée. Description fonctionnelle Le bloc fonction FB_SqlDbWrite est l'interface utilisateur qui permet de modifier ou de mettre à jour la base de données SQL. Lorsqu'un front montant est détecté sur i_xExecute, une connexion à la SQL Gateway est établie à l'aide des paramètres définis dans la structure ST_ConnectionSettings (voir page 33). Une fois la connexion établie, le bloc fonction peut envoyer une requête SQL (indiqué à l'entrée i_refRequestWstring) à la base de données SQL. Tant que le bloc fonction est exécuté, la sortie q_xBusy est TRUE. Lorsqu'une commande aboutit, la sortie q_xDone a pour valeur TRUE. Les messages d'état et informations de diagnostic sont fournis à l'aide des sorties q_xError (TRUE si une erreur a été détectée), q_etResult et q_etResultMsg. EIO0000002412 06/2017 49 Blocs fonction Interface Entrée Type de données Description i_xExecute BOOL Le bloc fonction exécute une requête SQL pour modifier ou mettre à jour la base de données SQL en cas de front montant sur cette entrée. i_refRequestWstring REFERENCE TO [RequestWstring] Référence aux données qui contiennent une requête de mise à jour SQL. Les types d'interrogation SQL pris en charge sont les suivants : INSERT INTO UPDATE DELETE FROM CREATE TABLE CREATE VIEW CREATE INDEX ALTER TABLE DROP TABLE TRUNCATE TABLE (voir page 35) Une requête SQL doit être divisée en plusieurs chaînes ne dépassant pas 200 caractères. Adaptez la taille des paramètres globaux (voir page 41) Gc_uiMaxRequest et Gc_uiRequestWstringLength à la longueur des requêtes SQL que vous utilisez dans votre application. NOTE : Pour concaténer des chaînes WSTRINGS, utilisez la fonction CONCAT de la bibliothèque Standard64. UINT Nombre de chaînes WSTRINGS requises qui contiennent la requête SQL divisée. Le nombre maximum est limité par le paramètre global (voir page 41) Gc_uiMaxRequest. In_Out Type de données Description iq_stConnSettings ST_ConnectionSettings Contient les informations de connexion à une SQL Gateway et les informations concernant la base de données SQL. i_uiNumOfWstrings (voir page 33) 50 EIO0000002412 06/2017 Blocs fonction Sortie Type de données Description q_xBusy BOOL Si cette sortie est TRUE, le bloc fonction est en cours d'exécution. q_xDone BOOL Si cette sortie est TRUE, l'exécution s'est effectuée correctement. q_xError BOOL Si cette sortie est TRUE, une erreur a été détectée. Pour plus d'informations, reportez-vous à q_etResult et q_etResultMsg. q_etResult ET_Result Fournit des informations de diagnostic et d'état. q_sResultMsg STRING[255] Fournit des informations supplémentaires de diagnostic et d'état. EIO0000002412 06/2017 51 Blocs fonction 52 EIO0000002412 06/2017 SoMachine Fonctions EIO0000002412 06/2017 Chapitre 10 Fonctions Fonctions FC_EtResultToString Présentation Type : Fonction Disponible à partir de la version : V1.0.0.0 Hérite de : – Met en œuvre : – Tâche Convertir un élément d'énumération de type ET_Result en une variable de type STRING. Description fonctionnelle La fonction FC_EtResultToString permet de convertir un élément d'énumération de type ET_Result en une variable de type STRING. Interface Entrée Type de données Description i_etResult ET_Result Énumération avec le résultat. Valeur retournée Type de données Description STRING(80) ET_Result converti en texte. EIO0000002412 06/2017 53 Fonctions 54 EIO0000002412 06/2017 SoMachine EIO0000002412 06/2017 Annexes EIO0000002412 06/2017 55 56 EIO0000002412 06/2017 SoMachine Représentation des fonctions et blocs fonction EIO0000002412 06/2017 Annexe A Représentation des fonctions et blocs fonction Représentation des fonctions et blocs fonction Présentation Chaque fonction peut être représentée dans les langages suivants : IL : (Instruction List) liste d'instructions ST : (Structured Text) littéral structuré LD : (Ladder Diagram) schéma à contacts FBD : Function Block Diagram (Langage à blocs fonction) CFC : Continuous Function Chart (Diagramme fonctionnel continu) Ce chapitre fournit des exemples de représentations de fonctions et blocs fonction et explique comment les utiliser dans les langages IL et ST. Contenu de ce chapitre Ce chapitre contient les sujets suivants : Sujet Page Différences entre une fonction et un bloc fonction 58 Utilisation d'une fonction ou d'un bloc fonction en langage IL 59 Utilisation d'une fonction ou d'un bloc fonction en langage ST 63 EIO0000002412 06/2017 57 Représentation des fonctions et blocs fonction Différences entre une fonction et un bloc fonction Fonction Une fonction : est une POU (Program Organization Unit ou unité organisationnelle de programme) qui renvoie un résultat immédiat ; est directement appelée par son nom (et non par une instance) ; ne conserve pas son état entre deux appels ; peut être utilisée en tant qu'opérande dans des expressions. Exemples : opérateurs booléens (AND), calculs, conversions (BYTE_TO_INT) Bloc fonction Un bloc fonction : est une POU qui renvoie une ou plusieurs sorties ; doit être appelé par une instance (copie de bloc fonction avec nom et variables dédiées). Chaque instance conserve son état (sorties et variables internes) entre deux appels à partir d'un bloc fonction ou d'un programme. Exemples : temporisateurs, compteurs Dans l'exemple, Timer_ON est une instance du bloc fonction TON : 58 EIO0000002412 06/2017 Représentation des fonctions et blocs fonction Utilisation d'une fonction ou d'un bloc fonction en langage IL Informations générales Cette partie explique comment mettre en œuvre une fonction et un bloc fonction en langage IL. Les fonctions IsFirstMastCycle et SetRTCDrift, ainsi que le bloc fonction TON, sont utilisés à titre d'exemple pour illustrer les mises en œuvre. Utilisation d'une fonction en langage IL La procédure suivante explique comment insérer une fonction en langage IL : Etape 1 Action Ouvrez ou créez une POU en langage IL (Instruction List, ou liste d'instructions). NOTE : La procédure de création d'un POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir SoMachine, Guide de programmation). 2 Créez les variables nécessaires à la fonction. 3 Si la fonction possède une ou plusieurs entrées, chargez la première entrée en utilisant l'instruction LD. 4 Insérez une nouvelle ligne en dessous et : saisissez le nom de la fonction dans la colonne de l'opérateur (champ de gauche), ou utilisez l'Aide à la saisie pour sélectionner la fonction (sélectionnez Insérer l'appel de module dans le menu contextuel). 5 Si la fonction a plus d'une entrée et que l'assistant Aide à la saisie est utilisé, le nombre requis de lignes est automatiquement créé avec ??? dans les champs situés à droite. Remplacez les ??? par la valeur ou la variable appropriée compte tenu de l'ordre des entrées. 6 insérez une nouvelle ligne pour stocker le résultat de la fonction dans la variable appropriée : saisissez l'instruction ST dans la colonne de l'opérateur (champ de gauche) et le nom de la variable dans le champ de droite. EIO0000002412 06/2017 59 Représentation des fonctions et blocs fonction Pour illustrer la procédure, utilisons les fonctions IsFirstMastCycle (sans paramètre d'entrée) et SetRTCDrift (avec paramètres d'entrée) représentées graphiquement ci-après : Fonction Représentation graphique sans paramètre d'entrée : IsFirstMastCycle avec paramètres d'entrée : SetRTCDrift En langage IL, le nom de la fonction est utilisé directement dans la colonne de l'opérateur : Fonction Représentation dans l'éditeur IL de POU Exemple en IL d'une fonction sans paramètre d'entrée : IsFirstMastCycle 60 EIO0000002412 06/2017 Représentation des fonctions et blocs fonction Fonction Représentation dans l'éditeur IL de POU Exemple IL d'une fonction avec des paramètres d'entrée : SetRTCDrift Utilisation d'un bloc fonction en langage IL La procédure suivante explique comment insérer un bloc fonction en langage IL : Etape Action 1 Ouvrez ou créez un POU en langage IL (Instruction List, ou liste d'instructions). NOTE : La procédure de création d'un POU n'est pas détaillée ici. Pour plus d'informations, reportezvous à la section Ajout et appel de POU (voir SoMachine, Guide de programmation). 2 Créez les variables nécessaires au bloc fonction (y compris le nom de l'instance). 3 L'appel de blocs fonction nécessite l'utilisation d'une instruction CAL : Utilisez l'Aide à la saisie pour sélectionner le bloc fonction (cliquez avec le bouton droit et sélectionnez Insérer l'appel de module dans le menu contextuel). L'instruction CAL et les E/S nécessaires sont automatiquement créées. Chaque paramètre (E/S) est une instruction : Les valeurs des entrées sont définies à l'aide de « := ». Les valeurs des sorties sont définies à l'aide de « => ». 4 Dans le champ CAL de droite, remplacez les ??? par le nom de l'instance. 5 Remplacez les autres ??? par une variable ou une valeur immédiate appropriée. EIO0000002412 06/2017 61 Représentation des fonctions et blocs fonction Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON En langage IL, le nom du bloc fonction est utilisé directement dans la colonne de l'opérateur : Bloc fonction Représentation dans l'éditeur IL de POU TON 62 EIO0000002412 06/2017 Représentation des fonctions et blocs fonction Utilisation d'une fonction ou d'un bloc fonction en langage ST Informations générales Cette partie décrit comment mettre en œuvre une fonction ou un bloc fonction en langage ST. La fonction SetRTCDrift et le bloc fonction TON sont utilisés à titre d'exemple pour illustrer les mises en œuvre. Utilisation d'une fonction en langage ST La procédure suivante explique comment insérer une fonction en langage ST : Etape Action 1 Ouvrez ou créez un POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d'un POU n'est pas détaillée ici. Pour plus d'informations, reportez-vous à la section Ajout et appel de POU (voir SoMachine, Guide de programmation). 2 Créez les variables nécessaires à la fonction. 3 Utilisez la syntaxe générale dans l'éditeur ST de POU pour la représentation en langage ST d'une fonction. La syntaxe générale est la suivante : RésultatFonction:= NomFonction(VarEntrée1, VarEntrée2, … VarEntréex); Pour illustrer la procédure, utilisons la fonction SetRTCDrift représentée graphiquement ciaprès : Fonction Représentation graphique SetRTCDrift La représentation en langage ST de cette fonction est la suivante : Fonction Représentation dans l'éditeur ST de POU SetRTCDrift PROGRAM MyProgram_ST VAR myDrift: SINT(-29..29) := 5; myDay: DAY_OF_WEEK := SUNDAY; myHour: HOUR := 12; myMinute: MINUTE; myRTCAdjust: RTCDRIFT_ERROR; END_VAR myRTCAdjust:= SetRTCDrift(myDrift, myDay, myHour, myMinute); EIO0000002412 06/2017 63 Représentation des fonctions et blocs fonction Utilisation d'un bloc fonction en langage ST La procédure suivante explique comment insérer un bloc fonction en langage ST : Etape Action 1 Ouvrez ou créez un POU en langage ST (Structured Text ou Littéral structuré). NOTE : La procédure de création d'une POU n'est pas détaillée ici. Pour plus d'informations sur l'ajout, la déclaration et l'appel de POU, reportez-vous à la documentation (voir SoMachine, Guide de programmation) associée. 2 Créez les variables d'entrée, les variables de sortie et l'instance requises pour le bloc fonction : Les variables d'entrée sont les paramètres d'entrée requis par le bloc fonction. Les variables de sortie reçoivent la valeur renvoyée par le bloc fonction. 3 Utilisez la syntaxe générale dans l'éditeur ST de POU pour la représentation en langage ST d'un bloc fonction. La syntaxe générale est la suivante : BlocFonction_NomInstance(Entrée1:=VarEntrée1, Entrée2:=VarEntrée2,… Sortie1=>VarSortie1, Sortie2=>VarSortie2,…); Pour illustrer la procédure, utilisons le bloc fonction TON représenté graphiquement ci-après : Bloc fonction Représentation graphique TON 64 EIO0000002412 06/2017 Représentation des fonctions et blocs fonction Le tableau suivant montre plusieurs exemples d'appel de bloc fonction en langage ST : Bloc fonction Représentation dans l'éditeur ST de POU TON EIO0000002412 06/2017 65 Représentation des fonctions et blocs fonction 66 EIO0000002412 06/2017 SoMachine Glossaire EIO0000002412 06/2017 Glossaire A application Programme comprenant des données de configuration, des symboles et de la documentation. B bus d'extension Bus de communication électronique entre des modules d'E/S d'extension et un contrôleur. C CFC Acronyme de continuous function chart (diagramme fonctionnel continu). Langage de programmation graphique (extension de la norme IEC 61131-3) basé sur le langage de diagramme à blocs fonction et qui fonctionne comme un diagramme de flux. Toutefois, il n'utilise pas de réseaux et le positionnement libre des éléments graphiques est possible, ce qui permet les boucles de retour. Pour chaque bloc, les entrées se situent à gauche et les sorties à droite. Vous pouvez lier les sorties de blocs aux entrées d'autres blocs pour créer des expressions complexes. configuration Agencement et interconnexions des composants matériels au sein d'un système, ainsi que les paramètres matériels et logiciels qui déterminent les caractéristiques de fonctionnement du système. contrôleur Automatise des processus industriels. On parle également de contrôleur logique programmable (PLC) ou de contrôleur programmable. E E/S Entrée/sortie EIO0000002412 06/2017 67 Glossaire F FB Acronyme de function block, bloc fonction. Mécanisme de programmation commode qui consolide un groupe d'instructions de programmation visant à effectuer une action spécifique et normalisée telle que le contrôle de vitesse, le contrôle d'intervalle ou le comptage. Un bloc fonction peut comprendre des données de configuration, un ensemble de paramètres de fonctionnement interne ou externe et généralement une ou plusieurs entrées et sorties de données. I IL INT Acronyme de instruction list, liste d'instructions. Un programme écrit en langage IL est composé d'instructions textuelles qui sont exécutées séquentiellement par le contrôleur. Chaque instruction comprend un numéro de ligne, un code d'instruction et un opérande (voir la norme IEC 61131-3). Abréviation de integer, nombre entier codé sur 16 bits. L langage en blocs fonctionnels Un des 5 langages de programmation de logique ou de commande pris en charge par la norme IEC 61131-3 pour les systèmes de commande. FBD est un langage de programmation orienté graphique. Il fonctionne avec une liste de réseaux où chaque réseau contient une structure graphique de zones et de lignes de connexion représentant une expression logique ou arithmétique, un appel de bloc fonction ou une instruction de retour. LD Acronyme de ladder diagram, schéma à contacts. Représentation graphique des instructions d'un programme de contrôleur, avec des symboles pour les contacts, les bobines et les blocs dans une série de réseaux exécutés séquentiellement par un contrôleur (voir IEC 61131-3). O octet 68 Type codé sur 8 bits, de 00 à FF au format hexadécimal. EIO0000002412 06/2017 Glossaire P POU Acronyme de program organization unit, unité organisationnelle de programme. Déclaration de variables dans le code source et jeu d'instructions correspondant. Les POUs facilitent la réutilisation modulaire de programmes logiciels, de fonctions et de blocs fonction. Une fois déclarées, les POUs sont réutilisables. programme Composant d'une application constitué de code source compilé qu'il est possible d'installer dans la mémoire d'un contrôleur logique. S SQL ST Le SQL (Structured Query Language) est un langage de programmation qui permet de gérer les données stockées dans les systèmes de gestion de bases de données relationnelles (SGBDR). Acronyme de structured text, texte structuré. Langage composé d'instructions complexes et d'instructions imbriquées (boucles d'itération, exécutions conditionnelles, fonctions). Le langage ST est conforme à la norme IEC 61131-3. V variable Unité de mémoire qui est adressée et modifiée par un programme. EIO0000002412 06/2017 69 Glossaire 70 EIO0000002412 06/2017 SoMachine Index EIO0000002412 06/2017 Index A ALIAS - Type d'unité d'équipement (DUT), 35 B bibliothèques SqlRemoteAccess, 19 C communications SQL éléments à prendre en compte, 20 EIO0000002412 06/2017 E ET_Result, 29 ClientNotConnected, 29 CommandExecutionIssue, 32 ConnectionNameNotExisting, 32 ConnectionNotIdle, 30 ConnectionTimedOut, 29 DataBufferTooSmall, 30 DbConfigurationInvalid, 32 DbConnectionNameNull, 30 DbConnectionNotAvailable, 32 GplMaxColumnsExceedsLimits, 31 GplMaxRecBufferExceedsLimits, 31 GplMaxRequestExceedsLimits, 31 GplMaxRowsExceedsLimits, 31 GplMaxSendBufferExceedsLimits, 32 GplRequestWstringExceedsLimits, 31 GplTableWstringExceedsLimits, 31 InvalidIP, 29 InvalidPort, 31 InvalidRequestWstring, 31 InvalidUserDataWstring, 31 InvalidWstringNumber, 31 NoDataReturned, 30 NoQueryResultAvailable, 32 NotConnected, 31 Ok, 29 SocketNotClosed, 30 SqlDatabaseBusy, 30 SqlGwInvalidLicense, 32 SqlGwProtocolError, 32 SqlGwToPlcCorruptedMessage, 30 SqlGwUnexpectedError, 32 TcpClientIssue, 29 TimeoutExpired, 30 TransactionNumMismatch, 30 TransmissionNumMismatch, 30 71 Index F FB_SqlDbRead, 46 FB_SqlDbWrite, 49 FC_EtResultToString, 53 fonctions différences entre une fonction et un bloc fonction, 58 utilisation d'une fonction ou d'un bloc fonction en langage IL, 59 utilisation d'une fonction ou d'un bloc fonction en langage ST, 63 G GCL (liste des constantes globales) SqlRemoteAccess, 39 GPL (liste des paramètres globaux) SqlRemoteAccess, 41 Q qualification du personnel, 14 S SqlRemoteAccess, 19 FB_SqlDbRead, 46 FB_SqlDbWrite, 49 GCL (liste des constantes globales), 39 GPL (liste des paramètres globaux), 41 ST_ConnectionSettings, 33 72 EIO0000002412 06/2017