33002516_k01_000_12

228
33002516.12 www.schneider-electric.com Unity Pro 33002516 07/2012 Unity Pro Convertisseur d’applications Concept Manuel utilisateur 07/2012

Transcript of 33002516_k01_000_12

Page 1: 33002516_k01_000_12

Unity Pro

33002516 07/2012

3300

2516

.12

www.schneider-electric.com

Unity ProConvertisseur d’applications ConceptManuel utilisateur

07/2012

Page 2: 33002516_k01_000_12

Le présent document comprend des descriptions générales et/ou des caractéris-tiques 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 d’amélioration ou de correction ou avez relevé des erreurs dans cette publication, veuillez nous en informer.

Aucune partie de ce document ne peut être reproduite sous quelque forme ou par quelque moyen que ce soit, électronique, mécanique ou photocopie, sans l’autorisation écrite expresse de Schneider Electric.

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 fonction-nement incorrect.

Le non-respect de cette consigne peut entraîner des lésions corporelles ou des dommages matériels.

© 2012 Schneider Electric. Tous droits réservés.

2 33002516 07/2012

Page 3: 33002516_k01_000_12

Table des matières

Consignes de sécurité . . . . . . . . . . . . . . . . . . . . . . . . . . . 7A propos de ce manuel . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Partie I Exigences et conversion . . . . . . . . . . . . . . . . . . . . . . 11Chapitre 1 Présentation générale du convertisseur Unity Pro

Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13Présentation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Conversion avec l’assistant de conversion . . . . . . . . . . . . . . . . . . . . . . . . 15

Chapitre 2 Exigences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17Version Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Plates-formes matérielles prises en charge . . . . . . . . . . . . . . . . . . . . . . . 19Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20Système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22EFB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Langage de programmation SFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35Langage de programmation LD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Langage de programmation ST/IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48Langage de programmation LL984 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Langage de programmation FBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Chapitre 3 Différences de langage . . . . . . . . . . . . . . . . . . . . . . . . . . 53Fonctions non disponibles dans Unity. . . . . . . . . . . . . . . . . . . . . . . . . . . . 55Remplacement d’un EFB par une fonction . . . . . . . . . . . . . . . . . . . . . . . . 56Blocs FFB non disponibles sur toutes les plates-formes. . . . . . . . . . . . . . 57Paramètres INOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61Modification du type de paramètre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62Paramètres ANY_ARRAY_WORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63Attribution d’un nom unique requise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65Génération incomplète du lien LD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66Modification de l’ordre d’exécution LD . . . . . . . . . . . . . . . . . . . . . . . . . . . 67Constantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71Indices dans ST et IL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72Calcul avec TIME et REAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73Affectations de WORD aux tableaux BOOL . . . . . . . . . . . . . . . . . . . . . . . . . 74Chevauchement de l’adresse topologique . . . . . . . . . . . . . . . . . . . . . . . . 75

33002516 07/2012 3

Page 4: 33002516_k01_000_12

Remplacer %QD par %MF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76Modification de l’alignement de la structure. . . . . . . . . . . . . . . . . . . . . . . 77Sortie non définie sur les EF désactivés . . . . . . . . . . . . . . . . . . . . . . . . . 78Variables aux broches vides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80La section SFC conserve son état lors de l’exécution d’une modification en ligne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81SFCCNTRL Le bloc fonction se comporte différemment sous Unity et sous Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Numérotation des jours de la semaine . . . . . . . . . . . . . . . . . . . . . . . . . . 83Temporisateur système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84Valeurs initiales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

Chapitre 4 Modification possible du comportement de l’application 89Général . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90Comportement de Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92Demandes CEI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93Comportement de Unity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96Conséquences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Chapitre 5 Le processus de conversion . . . . . . . . . . . . . . . . . . . . . . 105Processus de conversion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

Chapitre 6 Procédure de conversion . . . . . . . . . . . . . . . . . . . . . . . . . 107Exportation d’un projet à partir de Concept . . . . . . . . . . . . . . . . . . . . . . . 108Importation d’un projet dans Unity Pro. . . . . . . . . . . . . . . . . . . . . . . . . . . 109Types de données manquants au début de l’importation . . . . . . . . . . . . 110Conversion de parties d’une application Concept uniquement . . . . . . . . 111Retrait des macros Concept incluses non intentionnellement . . . . . . . . . 113Valeurs d’initialisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Partie II Blocs de Concept vers Unity Pro . . . . . . . . . . . . . . . 115Chapitre 7 BYTE_TO_BIT_DFB : Conversion de type. . . . . . . . . . . . 117

Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117Chapitre 8 CREADREG : Lecture permanente de registre . . . . . . . . 121

Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122Mode de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125Description des paramètres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126Codes d’erreur Modbus Plus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

Chapitre 9 CWRITREG : Ecriture permanente de registre . . . . . . . . 129Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Mode de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133Description de paramètres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Chapitre 10 DINT_AS_WORD_DFB : Conversion de type . . . . . . . . . 137Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Chapitre 11 DIOSTAT : Statut de la fonction module (DIO) . . . . . . . . 139Description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

4 33002516 07/2012

Page 5: 33002516_k01_000_12

Chapitre 12 GET_TOD : Lecture de l’horodateur (Heure du jour). . . 141Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

Chapitre 13 LIMIT_IND_DFB : Limite avec indicateur . . . . . . . . . . . . 145Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Chapitre 14 LOOKUP_TABLE1_DFB : Balayer la progression avec une interpolation du 1er degré . . . . . . . . . . . . . . . . . . . . 149Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150Description détaillée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152

Chapitre 15 DIOSTAT : Statut de la fonction automate . . . . . . . . . . . 155Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156Types de données dérivés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158Etat SPS (PLC_STAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160Etat RIO (RIO_STAT) pour Quantum . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162Etat DIO (DIO_STAT) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Chapitre 16 READREG : Lecture de registre . . . . . . . . . . . . . . . . . . . 171Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Mode de fonctionnement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175Description des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Chapitre 17 RIOSTAT : Statut de la fonction module (RIO). . . . . . . . 179Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

Chapitre 18 GET_TOD : Réglage de l’horodateur (Heure du jour) . . 183Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

Chapitre 19 WORD_AS_BYTE_DFB : Conversion de type . . . . . . . . 187Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187

Chapitre 20 BYTE_TO_BIT_DFB : Conversion de type . . . . . . . . . . . 189Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

Chapitre 21 WRITEREG : Ecriture de registre . . . . . . . . . . . . . . . . . . 193Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Mode de fonctionnement. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Description des paramètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198

Annexes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Annexe A Foire aux Questions sur les erreurs de génération. . . . 203

Généralités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204Erreur de création du lien objet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205L’objet doit être relié à un successeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . 207Lien avec variable n’est pas autorisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208Type de données ’xxxx’ attendu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209DFB vide pour remplacer EFB obsolète . . . . . . . . . . . . . . . . . . . . . . . . . . 215Symbole ’xxxx’ indéfini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216Appel d’un bloc non fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Le paramètre ’xxxx’ a été affecté . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221’ xxxx’ n’est pas un paramètre de ’yyyy’ . . . . . . . . . . . . . . . . . . . . . . . . . . 222

33002516 07/2012 5

Page 6: 33002516_k01_000_12

Composant DDT manquant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223Paramètres EHC hors plage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224Pas une adresse valide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225Configuration du module 140 NOG 111 00 non convertie . . . . . . . . . . . . 226

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

6 33002516 07/2012

Page 7: 33002516_k01_000_12

§

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 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.

33002516 07/2012 7

Page 8: 33002516_k01_000_12

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.

8 33002516 07/2012

Page 9: 33002516_k01_000_12

A propos de ce manuel

Présentation

Objectif du document

Ce document décrit les fonctionnalités et les performances du convertisseur d’applications Concept pour Unity Pro.

Champ d’application

Ce document est applicable à Unity Pro à partir de la version 6.0.

Document à consulter

Vous pouvez télécharger ces publications et autres informations techniques depuis notre site web à l’adresse : www.schneider-electric.com.

Commentaires utilisateur

Envoyez vos commentaires à l’adresse e-mail [email protected]

Titre de documentation Référence

Manuel de référence du logiciel Unity Pro -

Manuel relatif aux modes de fonctionnement du logiciel Unity Pro -

33002516 07/2012 9

Page 10: 33002516_k01_000_12

10 33002516 07/2012

Page 11: 33002516_k01_000_12

33002516 07/2012

I

Unity Pro

Exigences et conversion

33002516 07/2012

Exigences et conversion

Vue d’ensemble

Cette section contient des exigences et des informations sur la conversion.

Contenu de cette partie

Cette partie contient les chapitres suivants :

Chapitre Titre du chapitre Page

1 Présentation générale du convertisseur Unity Pro Concept 13

2 Exigences 17

3 Différences de langage 53

4 Modification possible du comportement de l’application 89

5 Le processus de conversion 105

6 Procédure de conversion 107

11

Page 12: 33002516_k01_000_12

Exigences et conversion

12 33002516 07/2012

Page 13: 33002516_k01_000_12

33002516 07/2012

1

Unity Pro

Présentation générale

33002516 07/2012

Présentation générale du convertisseur Unity Pro Concept

Vue d’ensemble

Ce chapitre comprend une présentation générale du convertisseur Unity Pro Concept.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Présentation générale 14

Conversion avec l’assistant de conversion 15

13

Page 14: 33002516_k01_000_12

Présentation générale

Présentation générale

Brève description

Le convertisseur Concept est une fonction intégrée de Unity Pro qui permet de convertir les applications Concept vers Unity Pro. Cela signifie que les programmes Concept peuvent également fonctionner dans Unity Pro.

Des objets de rechange sont utilisés à la place des objets qui ne peuvent pas être convertis. Le projet Unity Pro peut être analysé à l’aide du menu principal Créer → Analyser le projet. Des messages s’affichent ensuite dans la fenêtre de visualisation pour définir les objets de rechange.

Les éléments de l’application Concept, impossibles à convertir, sont consignés dans le rapport de conversion.

Les descriptions des différentes procédures sont disponibles dans le chapitre Conversion procedure (voir page 107).

NOTE : la conversion en sens inverse de Unity Pro vers Concept n’est pas possible.

Conversion

La conversion est réalisée en quatre étapes :1. Dans Concept : exportation de l’application Concept en utilisant le convertisseur

Concept pour créer un fichier ASCII (*.ASC).NOTE : n’utilisez pas l’option Projet avec des DFB utilisés (Reconnecter au même) lors de la création du fichier *.ASC. Unity Pro ne peut pas importer l’application si cette option est sélectionnée.

2. Dans Unity Pro : ouverture du fichier ASCII exporté (*.ASC) dans Unity Pro.3. Dans Unity Pro : conversion automatique du fichier ASCII au format fichier

source Unity Pro.4. Dans Unity Pro : importation automatique du fichier source Unity Pro.

Options de conversion des projets Concept

Vous pouvez saisir des options de conversion (voir Unity Pro, Modes de marche) dans Unity Pro avant la conversion, qui ont différents effets sur les résultats de cette dernière.

Conversion Atrium impossible

Les configurations Atrium ne peuvent pas être converties au format Unity Pro.

Assistant de conversion

Reportez-vous à la section Conversion with the Conversion Wizard (voir page 15).

14 33002516 07/2012

Page 15: 33002516_k01_000_12

Présentation générale

Conversion avec l’assistant de conversion

Conversion d’applications entières

Pour convertir une application dans son ensemble tout en conservant la même famille d’automates, s’il n’est pas nécessaire de sélectionner des parties de l’application ou de réaffecter des objets d’E/S, utilisez le convertisseur d’application Concept directement à partir du menu Fichier → Ouvrir de Unity Pro.

Conversion partielle d’une application

Si vous avez besoin de convertir partiellement une application et/ou de changer de famille d’automates ou de réaffecter des objets d’E/S, utilisez l’assistant de conversion par l’intermédiaire du menu Outils → Convertir partiellement de Unity Pro.

Pour plus d’informations, reportez-vous au Manuel des modes de marche -> Assistant de conversion.

Assistant de conversion

L’assistant de conversion fait partie intégrante de Unity Pro.

Vous pouvez l’utiliser pour effectuer les opérations suivantes :convertir des applications exportées à partir d’anciennes applications (Concept, PL7, LL984) vers Unity Pro ;convertir des anciennes applications partiellement ou en totalité.réaffecter des objets d’E/S (voies, variables, etc.) pendant la conversion à l’aide de l’assistant ;adapter simultanément la configuration matérielle de la nouvelle application dans Unity Pro ;modifier la quantité de mémoire utilisée dans l’UC.

L’assistant de conversion est disponible si vous avez opté pour l’installation d’un convertisseur (convertisseur d’applications Concept, par exemple) pendant la configuration de Unity Pro.

33002516 07/2012 15

Page 16: 33002516_k01_000_12

Présentation générale

Procédure générale

Procédure générale de conversion d’une ancienne application vers Unity Pro

Documentation de l’assistant de conversion

Pour plus d’informations sur l’assistant de conversion, reportez-vous au Manuel des modes de marche -> Assistant de conversion.

Etape Action

1 Exportez votre application à partir de l’ancien système de programmation (sous forme de fichier ASC à partir de Concept, par exemple).

2 Créez une application dans Unity Pro en sélectionnant une UC avec suffisamment de mémoire et les fonctionnalités d’accès aux E/S nécessaires.Le cas échéant, vous pouvez configurer les modules E/S à utiliser, mais vous pourrez également modifier la configuration matérielle ultérieurement (voir étape 6).

3 Lancez l’assistant de conversion dans Unity Pro en choisissant Outils → Convertir partiellement.Résultat : l’assistant de conversion vous invite à sélectionner le fichier source exporté de l’ancien système.

4 Sélectionnez le fichier source exporté de l’ancien système.Résultat : le convertisseur analyse le fichier source et affiche le résultat dans les trois onglets de l’assistant de conversion.

5 Sélectionnez les parties de l’application (ou l’application complète) à convertir dans l’onglet Structure.

6 Réaffectez les objets d’E/S pour les rendre compatibles avec la nouvelle configuration matérielle.Vous pouvez adapter simultanément la configuration matérielle de la nouvelle application dans Unity Pro.Remarque : pour enregistrer un fichier de sauvegarde de votre affectation d’E/S intermédiaire, vous pouvez utiliser le bouton Enregistrer. Le bouton Charger permet de recharger la dernière affectation d’E/S intermédiaire enregistrée.

7 Une fois les sélections effectuées et les modifications manuelles apportées, cliquez sur OK.Résultat : le convertisseur applique la réaffectation définie aux parties sélectionnées du fichier source et importe les résultats dans l’application Unity Pro ouverte.

8 Continuez à travailler sur l’application ouverte, enregistrez-la ou exportez-la en tant que fichier XEF.

16 33002516 07/2012

Page 17: 33002516_k01_000_12

33002516 07/2012

2

Unity Pro

Exigences

33002516 07/2012

Exigences

Vue d’ensemble

Ce chapitre comprend les procédures nécessaires à la conversion d’un projet Concept en un projet Unity Pro.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Version Concept 18

Plates-formes matérielles prises en charge 19

Configuration 20

Système 22

EFB 31

Langage de programmation SFC 35

Langage de programmation LD 36

Langage de programmation ST/IL 48

Langage de programmation LL984 50

Langage de programmation FBD 51

17

Page 18: 33002516_k01_000_12

Exigences

Version Concept

Généralités

Les projets Concept versions 2.11, 2.5 et 2.6 peuvent être convertis en projets Unity Pro.

Préconversion

Si un projet sous une version plus ancienne de Concept doit être converti en Unity Pro, le projet doit d’abord être converti dans Concept pour lui donner le statut de version 2.6 pour des raisons de sécurité.

18 33002516 07/2012

Page 19: 33002516_k01_000_12

Exigences

Plates-formes matérielles prises en charge

Généralités

Le convertisseur Concept accepte les applications qui utilisent les plates-formes matérielles suivantes :

QuantumCompacteMomentum

Corrections manuelles

NOTE : le convertisseur Concept convertit au maximum les modules lorsqu’il existe des équivalences. Il est obligatoire de vérifier le résultat en fonction des besoins du processus. Les réglages des modules matériels (paramètres) ne sont pas convertis. Leurs valeurs par défaut sont automatiquement rétablies, et ils doivent être saisis manuellement pour chaque module dans Unity Pro. Les objets de type voie sont convertis autant que possible. Néanmoins, le programme peut nécessiter une adaptation en fonction des différences de comportement avec le module d’origine.

Applications Quantum

Les applications Concept Quantum sont converties en applications Unity Pro Quantum.

Applications Compact

A l’issue d’une conversion globale, les applications Concept Compact sont converties en applications Quantum avec une configuration matérielle par défaut contenant une UC (140 CPU 534 14A/U) et une alimentation (140 CPS 424 00).

Avec une conversion partielle (assistant de conversion), il est recommandé de préparer une configuration matérielle Modicon M340.

Applications Momentum

A l’issue d’une conversion globale, les applications Concept Momentum sont converties en applications Quantum avec une configuration matérielle par défaut contenant une UC (140 CPU 534 14A/U) et une alimentation (140 CPS 424 00).

Avec une conversion partielle (assistant de conversion), il est recommandé de préparer une configuration matérielle Modicon M340.

Automate de sécurité

NOTE : il n’est pas possible de récupérer une application de Concept dans l’automate de sécurité Unity Pro. Pour créer un système de sécurité, reportez-vous au Manuel de sécurité.

33002516 07/2012 19

Page 20: 33002516_k01_000_12

Exigences

Configuration

Général

Unity Pro ne prend en charge que la programmation conforme CEI.

Les sections Concept créées avec le langage de programmation LL984 sont converties en langage de programmation LD dans Unity Pro dans une prochaine version.

Restrictions pour les anciennes configurations LL984

Les éléments suivants des configurations LL984 ne sont plus pris en charge par Unity Pro :

Non pris en charge par Unity Pro Pris en charge par Unity Pro

Instructions chargeables LL984 Le système Concept et les instructions chargeables CEI sont complètement intégrés.

Messages ASCII Ne seront pas convertis.

Instructions chargeables utilisateur Unity Pro fournit les EFB et DFB équivalents à la place.

Plage 6x (registre dans la mémoire étendue)

Ne sera pas convertie.

Projets programmés mixtes (LL984 + CEI)

Si vous souhaitez convertir des projets programmés mixtes, veuillez contacter l’assistance Produits de Schneider Electric.

Extension de la configuration de protection des données

Ne sera pas convertie.

20 33002516 07/2012

Page 21: 33002516_k01_000_12

Exigences

Redondance d’UC

La conversion de redondance d’UC Concept en Unity Pro présente les différences suivantes :

Le convertisseur Concept remplace l’UC de Concept par le nouveau module CPU 671 60 de redondance d’UC et le module de redondance d’UC Concept 140 CHS 111 00 est supprimé. Tous les paramètres de redondance d’UC sont transférés dans l’application Unity.

NOTE : il n’est pas possible de récupérer une application Concept dans l’automate de sécurité Unity Pro. Pour créer un système de sécurité, reportez-vous au manuel de sécurité.

NOTE : étant donné que l’UC sous Concept nécessite seulement un emplacement et que la nouvelle UC Unity en nécessite deux, des recouvrements peuvent survenir dans le rack. Ceux-ci doivent être résolus manuellement par l’utilisateur.

Concept Unity Pro

Le système de redondance d’UC sous Concept est basé sur le module 140 CHS 111 00.

Ce module n’est plus pris en charge par Unity Pro.

Le module 140 CHS 111 00 est un module de redondance d’UC pour emplacement unique. L’alimentation est fournie via le rack.

Le module UC 671 60 est un module d’UC pour deux emplacements avec une connexion affectée fixe pour l’échange de données.Le système de redondance d’UC est intégré dans le module CPU 671 60.

33002516 07/2012 21

Page 22: 33002516_k01_000_12

Exigences

Système

Sécurité

Les autorisations d’accès définies dans Concept ne sont pas converties dans Unity Pro.

La sécurité selon Unity Pro ne se réfère pas à l’installation correspondante comme elle le fait dans Concept.

Exécution du programme

L’exécution du programme est différente selon que l’on utilise Concept ou Unity Pro. Cela peut engendrer un comportement différent lors de la première exécution du programme après un redémarrage.

Exécution du programme pour Concept :1. Ecriture des sorties (exécution du programme n-1)2. Lecture des entrées (exécution du programme n)3. Traitement du programme

Exécution du programme pour Unity Pro :1. Lecture des entrées2. Traitement du programme3. Ecriture des sorties

Exemple :

Dans Concept, vous avez attribué un registre 4x à une sortie numérique et arrêté l’automate lorsque la valeur était « oui ». Après un redémarrage, la valeur reste sur « oui » lors de la première exécution du programme même si vous avez modifié les conditions de traitement.

Ordre d’exécution spécifié

L’ordre d’exécution dans le langage à blocs fonction dans Concept est avant tout déterminé par la façon dont les FFB sont positionnés. Si les FFB sont liés de manière graphique, l’ordre d’exécution est déterminé par le flux de données. Ensuite, cet ordre d’exécution peut être changé selon l’intention.

Après une conversion dans Unity Pro, il n’est pas possible de déterminer dans quel ordre les FFB ont été positionnés. Pour cette raison, si l’ordre ne peut être déterminé sans ambiguïté par la règle du flux de données seule, l’ordre est défini par le projet Concept.

La séquence d’exécution définie est affichée au moyen d’un rectangle avec le numéro de l’étape dans le coin supérieur droit du FFB.

22 33002516 07/2012

Page 23: 33002516_k01_000_12

Exigences

Fonction cycle unique

La fonction cycle unique n’est plus prise en charge par Unity Pro.

La fonctionnalité correspondante peut être réalisée dans Unity Pro en utilisant la fonction de mise au point « Points d’arrêt ».

Chargement EFB

A l’aide de Concept, tous les EFB dépendants de plates-formes peuvent être placés à tout moment et chargés sur toutes les plates-formes d’automate. Toutes les erreurs survenant durant l’exécution du programme sont écrites dans la mémoire des messages.

Dans Unity Pro, seuls les EFB valides peuvent être placés. Le téléchargement sur l’automate est uniquement possible si les EFB sont cohérents avec la plate-forme d’automate.

Editeur de données références (RDE)

Les tables RDE créées dans Concept sont converties en Unity Pro lorsqu’elles sont placées dans le même répertoire que le fichier Concept ASCII.

Valeurs de variables globales

En raison des différents comportements de redémarrage après une coupure de courant, il est possible que les variables globales de deux automates qui redémarrent différemment ne présentent pas les mêmes états après la première exécution du programme.

Il existe deux types de comportement de redémarrage :

1. Tous les automates 16 bits (tous les Momentum, Quantum 113, 213, 424) continuent à exécuter le programme au point où il a été interrompu.

2. Tous les automates 32 bits (Quantum 434, 534) démarrent l’exécution du programme au début.

Unity Pro prend en charge le 1er type de comportement de redémarrage décrit ci-dessus.

RAM d’état

Les adresses de registres de RAM d’état Concept sont affectées à des adresses conformes aux normes CEI dans Unity Pro.

Les adresses du module d’E/S sont converties en adresses « plates » ou en adresses topologiques.

33002516 07/2012 23

Page 24: 33002516_k01_000_12

Exigences

Registre de RAM d’état sans module d’E/S

Les adresses de registre de RAM d’état sans module d’E/S attribué sont représentées par des adresses « plates ».

Dans cette optique, le numéro de registre est ajouté à la fin de l’introduction.

L’adresse se présente comme suit :

%[IM][W]Numéro de registre

Registre de RAM d’état avec module d’E/S

Les adresses de registre de RAM d’état avec des modules d’E/S attribués peuvent être représentées sur Quantum avec un adressage « plat » (voir ci-dessus) ou un adressage topologique.

Pour convertir les adresses de registre de RAM d’état en adresses topologiques, ouvrez l’onglet Arrangements de conversion en choisissant Outils → Options dans Unity Pro et activez la case à cocher Adresses topologiques pour Quantum avant la conversion.

Si cette case à cocher n’est pas activée, les adresses de registre de RAM d’état sont converties en adresses « plates » (pour Quantum uniquement).

Si les applications Compact ou Momentum sont converties au moyen de l’assistant de conversion, l’adressage topologique est utilisé par défaut, que la case soit cochée ou non.

Adresses de registre de RAM d’état avec des modules d’E/S attribués (topologiques)

Concept Unity Pro

4x %MWx

3x %IWx (1)

0x %Mx

1x %Ix

(1) = Si Modicon M340 est la plate-forme cible, il n’y a pas d’équivalent pour les registres d’entrée de RAM d’état (%IWx). Les adresses sont converties de manière formelle en adresses plates et doivent être corrigées par l’utilisateur.

Concept Unity Pro

4x %QWt

3x %IWt

0x %Qt

1x %It

t = description topologique

24 33002516 07/2012

Page 25: 33002516_k01_000_12

Exigences

Les informations suivantes sont lues à partir de la configuration pour offrir une description topologique suffisante des adresses de registre de RAM d’état avec des modules d’E/S attribués :

numéro de bus (correspond au module de communication de la station dans Concept) ;station d’E/S ;rack ;module ;voie.

L’adresse complète se présente comme suit :

%[IQ][W]<\Numéro_bus.Station\>Rack.Module.Voie

Affectation de la RAM d’état via des types de données dérivés

Dans Concept, les éléments de structure de données commencent aux limites BYTE.

Dans Unity Pro, les éléments de structure de données commencent aux limites WORD.

Exemple de type de données dérivé :

TYPE SKOE: STRUCT PAR1: BOOL; PAR2: BYTE; PAR3: BOOL; PAR4: WORD; PAR5: BOOL; PAR6: WORD; END_STRUCT; END_TYPE

Types de données dérivés enregistrés dans la RAM d’état avec Concept :

33002516 07/2012 25

Page 26: 33002516_k01_000_12

Exigences

Mêmes types de données dérivés enregistrés dans la RAM d’état avec Unity Pro :

Temporisateur, date et contrôle de la pile

L’adresse du temporisateur, la date et l’heure et le contrôle de la pile ne peuvent plus être attribués à la RAM d’état avec Unity Pro. Toutes les informations nécessaires sont accessibles via le panneau de configuration.

Lors d’une conversion de Concept vers Unity Pro, des DFB sont créés et peuvent être simulés dans Unity Pro sans modification manuelle supplémentaire de ces fonctionnalités.

NOTE : le registre temporisateur Concept a une longueur de 16 bits et une précision de 10 ms. Le mot système %SW18 équivalent dans Unity Pro a une longueur de 32 bits et une précision de 100 ms. Si cette précision n’est pas suffisante, la fonction FREERUN de la Bibliothèque système peut être utilisée et offre une précision maximum de 1 ms.

NOTE : s’agissant des jours de la semaine, la valeur 1 correspond au dimanche dans Concept et au lundi dans Unity Pro.

26 33002516 07/2012

Page 27: 33002516_k01_000_12

Exigences

Mots de diagnostic Quantum

Dans Unity, des nombres de mots de diagnostic définis sont spécifiés :

E/S locales : 16 motsE/S RIO : 16 motsE/S DIO : 16 mots

Dans Concept, il est également possible de spécifier un plus petit nombre de mots de diagnostic pour les E/S individuelles.

Gardez cette différence à l’esprit car elle peut engendrer des problèmes.

Adresses topologiques

Les adresses topologiques sont attribuées de manière à ce que si la configuration du matériel reste la même, elles occupent les mêmes connexions d’E/S que celles qui leur étaient attribuées dans Concept.

L’utilisateur voit les adresses du matériel qu’il utilise dans Unity Pro sans avoir à réaliser d’étape supplémentaire via la RAM d’état.

Variable affectée

Les variables BOOL affectées dans Concept sont converties en variables EBOOL dans Unity Pro.

Unity Pro offre cette nouvelle variable EBOOL pour la détection de transitions (fronts). Ce « type BOOL élémentaire » est utilisé pour %Ix, %Mx et les variables non affectées.

Les variables EBOOL peuvent être forcées.

La variable EBOOL fournit trois éléments d’information :

la valeur courante ;la valeur historique ;les informations sur le forçage.

Seule la valeur courante peut être atteinte, les autres valeurs sont accessibles seulement via des fonctions spécifiques au produit.

Temps de cycle plus long via EBOOL

Dans Unity, contrairement à Concept, les informations sur le front et le forçage sont mises à jour par les variables EBOOL durant l’exécution du programme.

Pour cette raison, sur les plates-formes Quantum UC 434, UC 534 et UC 311, l’attribution des variables EBOOL est moitié moins rapide que celle des variables BOOL.

NOTE : si vous avez besoin de variables dans la mémoire signal, utilisez des variables BOOL et attribuez-les à la zone mémoire %MW (ex : BoolVar : BOOL AT %MW10). Sinon, utilisez des variables BOOL non affectées.

33002516 07/2012 27

Page 28: 33002516_k01_000_12

Exigences

Constantes

Les constantes dans Concept sont converties en variables protégées en écriture dans Unity Pro.

Unity Pro ne fournit pas de constantes. Une fonctionnalité comparable peut être obtenue à l’aide de variables protégées en écriture.

Registre %Mx

Dans Concept, les registres 0x n’ont pas de mémoire tampon. Ils sont remis à zéro lors de chaque démarrage à chaud.

Dans Unity Pro, les registres %Mx ont une mémoire tampon ("RETENTIVE", "VAR_RETAIN"), c’est-à-dire conforme aux normes CEI.

N’utilisez pas la possibilité de rémettre le registre 0x à zéro lors de chaque démarrage à chaud si vous utilisez un projet Concept que vous souhaitez convertir vers Unity Pro.

NOTE : si vous désirez un comportement non mémorisé, définissez le démarrage à chaud avec le bloc fonction SYSSTATE et copiez explicitement la valeur 0 (zéro) dans le registre %Mx.

Sorties forcées (%M)

AVERTISSEMENTCOMPORTEMENT INATTENDU DU SYSTEME

Ne vous fiez pas au switch de protection de mémoire

Le comportement des sorties forcées (%M) dans Modsoft/Proworx/Concept et Unity Pro a changé.

Dans Modsoft/ProWORX/Concept, vous ne pouvez pas forcer les sorties lorsque le switch de protection mémoire de l’UC Quantum est en position Activé.Dans Unity Pro, vous pouvez forcer les sorties même lorsque le switch de protection mémoire de l’UC Quantum est en position Activé.

Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

28 33002516 07/2012

Page 29: 33002516_k01_000_12

Exigences

Contrôle de station d’E/S Quantum

Dans Concept, seules les sections LL984 peuvent être attribuées aux stations d’E/S. Cela n’est pas possible dans les projets Concept avec des sections conformes aux normes CEI (FBD, LD, SFC, IL, ST).

Unity Pro offre cette option, avec une logique recréée conformément aux sections LL984. Cette logique doit cependant être saisie manuellement.

Exemple d’ordre de traitement des sections dans Unity Pro :

Section n-2

Section n-1

Appel RIO (u,v,w)

Section n

Section n+1

Appel RIO (u+1,w,x)

Section n+2

Appel RIO (u+2,x,y)

RIO (x,y,z) est ici l’appel explicite des E/S :Ecrire les sorties sur la station d’E/S x.Attendre aux entrées de la station d’E/S y.Préparer les entrées de la station d’E/S z.

NOTE : prenez ces nouveaux paramètres en considération lorsque vous structurez votre projet.

AVERTISSEMENTCOMPORTEMENT INATTENDU DU SYSTEME

Forcez de nouveau les sorties après un démarrage à froid.

Le comportement des sorties forcées (%M) dans Modsoft/Proworx/Concept et Unity Pro a changé.

Dans Modsoft/ProWORX/Concept, les sorties forcées conservent leurs valeurs après un démarrage à froid.Sous Unity Pro, les sorties forcées perdent leurs valeurs après un démarrage à froid.

Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

33002516 07/2012 29

Page 30: 33002516_k01_000_12

Exigences

Configuration cyclique des variables

Les variables non affectées ne peuvent pas être configurées de façon cyclique dans Unity Pro. Cela est possible dans Concept.

Si vous souhaitez configurer les variables de façon cyclique dans votre projet, vous devez utiliser des variables affectées.

Les registres %Mx/%1x (EBOOL) peuvent être forcés.

Les registres %MWx/%IWx peuvent être configurés de façon cyclique (seulement les valeurs numériques).

30 33002516 07/2012

Page 31: 33002516_k01_000_12

Exigences

EFB

Généralités

Les options suivantes sont disponibles pour la conversion d’EFB Concept vers Unity Pro :

Les EFB sont également pris en charge dans Unity Pro ; ils sont affectés un par un.Les EFB ne sont plus pris en charge par Unity Pro. Des DFB appropriés sont placés dans l’application à la place des EFB. La fonctionnalité n’est pas affectée par ce remplacement.Les EFB ne sont plus pris en charge par Unity Pro. Des DFB sans contenu de programmation sont placés dans l’application à la place des EFB. Ces DFB contiennent tous les paramètres Concept. Un message d’erreur indiquant que le contenu de programmation de ces DFB doit encore être créé s’affiche.

EF génériques

Il existe peu de fonctions élémentaires (EF) génériques dans Concept (MOVE, SEL, MUX, par exemple). Avec de nombreuses autres fonctions, le type de données élémentaire est ajouté au nom de la fonction.

Dans Unity Pro, un grand nombre de ces fonctions sont utilisées sans ajout du type de données élémentaire au nom (comme cela est défini dans la norme CEI 61131). Le convertisseur supprime en conséquence le type de données élémentaire ajouté au nom de la fonction.

Dans certains cas, l’utilisation de fonctions génériques dans Unity Pro entraîne des erreurs d’analyse. Dans ces situations, désactivez la case à cocher Générer des EF génériques.

Ouvrez l’onglet Arrangements de conversion en choisissant Outils → Options dans Unity Pro pour activer/désactiver la case à cocher Générer des EF génériques avant la conversion.

Lorsque cette case est cochée, le convertisseur supprime le type de données ajouté du nom de la fonction.Si cette case à cocher est désactivée, le convertisseur conserve le type de données élémentaire ajouté dans le nom de la fonction.

33002516 07/2012 31

Page 32: 33002516_k01_000_12

Exigences

Bibliothèque DIAGNO

Lors de la conversion de tous les blocs DIAGNO de Concept vers Unity Pro, le paramètre station est omis.

Les EFB suivants de la bibliothèque DIAGNO de Concept sont convertis en DFB vides dans Unity Pro.

ACT_DIAXACT_DIAERR2HMIERRMSG

NOTE : ces DFB créés dans Unity Pro possèdent tous les paramètres Concept mais n’ont pas de contenu de programmation. Un message d’erreur indiquant que le contenu de programmation de ces DFB doit encore être créé s’affiche.

Durant la création du programme dans Unity Pro, les DFB ACT_DIA et XACT_DIA sont remplacés par des DFB XACT.

Pour tous les blocs DIAGNO qui peuvent être étendus dans Concept (D_PRE, D_GRP ...), les entrées extensibles (IN1 ... INx) sont rassemblées en une entrée. Cela est possible grâce à une liaison AND logique imbriquée. Dans le langage FBD, le bloc AND est positionné au même endroit que le bloc DIAGNO par le convertisseur. Ce chevauchement doit être traité manuellement par l’utilisateur.

Bibliothèque SYSTEME

Les EFB SKP_RST_SCT_FALSE et LOOPBACK ne peuvent pas être utilisés dans Unity Pro.

Bibliothèque FUZZY

La bibliothèque FUZZY n’est pas prise en charge avec la plage Unity Pro standard, mais peut être installée sous forme de bibliothèque optionnelle.

Bibliothèque HANDTABL

La bibliothèque HANDTABL n’est plus prise en charge par Unity Pro.

32 33002516 07/2012

Page 33: 33002516_k01_000_12

Exigences

Bibliothèque EXPERTS

Les EFB Concept suivants sont convertis en DFB dans Unity Pro : ERT_TIMESIMTSX22EFB de la famille EXEFB de la famille MVBEFB de la famille ULEX

NOTE : ces DFB créés dans Unity Pro possèdent tous les paramètres Concept mais n’ont pas de contenu de programmation. Un message d’erreur indiquant que le contenu de programmation de ces DFB doit encore être créé s’affiche.

Les structures de données DPM_TIME et ERT_10_TTAG du module d’horodatage 140 ERT 854 10 ont été modifiées. L’élément MS a été divisé en MS_LSB et MS_MSB. Pour plus d’informations sur ce sujet, voir Affectation de la RAM d’état via des types de données dérivés, page 25.

Des variables événement doivent être affectées aux sorties qui décrivent les structures de données à l’aide de l’opérateur d’affectation (=>) à l’intérieur des parenthèses de paramètres dans les langages ST et IL. Cette opération est effectuée automatiquement durant la conversion (à partir de Unity 2.0). Cette fonctionnalité reste la même mais la section du programme se présente un peu différemment.

EFB qui utilisent les fonctions Heure

Dans Unity Pro, les composants fonction qui utilisent les fonctions Heure (Temporisateur, Diagnostic, Contrôle Composants) restent en mode RUN, même si le SPS est réglé sur le mode STOP.

EFB convertis

Durant la conversion, Unity Pro normalise l’offre EFB en regroupant les EFB redondants. Les EFB respectifs sont automatiquement convertis et le projet est adapté en conséquence.

ATTENTIONCOMPORTEMENT INATTENDU DU CONTROLE

Les composants fonction utilisant les fonctions Heure se comportent de façon différente dans Unity Pro et dans Concept.

Vous devez prendre ces différences de comportement en considération durant la conversion des applications Concept.

Le non-respect de ces instructions peut provoquer des blessures ou des dommages matériels.

33002516 07/2012 33

Page 34: 33002516_k01_000_12

Exigences

EFB renommés

Les EFB de diagnostic suivants sont renommés lors de la conversion de Concept vers Unity Pro :

L’EFB de configuration Quantum pour l’extension d’embase 140 XBE 100 00 est renommée lors de la conversion de Concept vers Unity Pro :

Concept Unity Pro

XACT D_ACT

XREA_DIA D_REA

XLOCK D_LOCK

XGRP_DIA D_GRP

XDYN_DIA D_DYN

XPRE_DIA D_PRE

Concept Unity Pro

XBP XBE

34 33002516 07/2012

Page 35: 33002516_k01_000_12

Exigences

Langage de programmation SFC

Généralités

Pour certains langages de programmation, il existe des restrictions à observer lors de la conversion d’un projet de Concept en Unity Pro.

Séquence parallèle/alternative

Une divergence en ET peut ne pas être directement suivie d’une divergence en OU.

Ce type de séquence n’est pas permis selon la norme CEI 1131.

Unity Pro ne prend pas en charge ce type de séquence, bien que cela soit possible sous Concept.

Le convertisseur transfère ce type de projet vers Unity Pro mais des modifications manuelles sont ensuite nécessaires.

Ce problème peut être résolu si vous insérez une étape factice entre les divergences.

33002516 07/2012 35

Page 36: 33002516_k01_000_12

Exigences

Langage de programmation LD

Généralités

Avec certains langages de programmation, des restrictions doivent être observées lors de la conversion d’un projet de Concept vers Unity Pro.

Conversion de l’image

Lors de la conversion d’un projet Concept en Unity Pro, l’image du schéma à contacts LD est également convertie, ce qui peut engendrer une restructuration de l’image.

Chevauchements des connexions entre objets booléens

Dans Concept, des connexions FFB entre objets booléens peuvent être éditées.

Cela peut engendrer des chevauchements.

Exemple de connexion FFB entre objets booléens (bobines, contacts, connexions horizontales et verticales) dans Concept :

Après la conversion de Concept vers Unity, une connexion FFB entre objets booléens peut se présenter comme suit :

36 33002516 07/2012

Page 37: 33002516_k01_000_12

Exigences

Dans l’éditeur LD Unity, une telle connexion FFB peut être :

supprimée,déplacée,copiée et collée.

Toutefois, une telle connexion FFB ne peut pas être créée dans l’éditeur LD Unity.

La connexion FFB sera conservée après le passage à Unity.

Connexion à la barre d’alimentation droite

Une connexion à la barre d’alimentation droite n’est plus nécessaire.

33002516 07/2012 37

Page 38: 33002516_k01_000_12

Exigences

Connexions créées automatiquement

Dans Concept, le contact c9 n’est pas connecté à l’ENTREE PV du composant.

Dans Unity, le contact c9 serait automatiquement connecté à l’ENTREE PV car les deux cellules se touchent directement dans Concept.

Durant la conversion de Concept vers Unity, le contact c9 est donc déplacé vers le bas pour éviter une connexion automatique dans Unity.

38 33002516 07/2012

Page 39: 33002516_k01_000_12

Exigences

Conversion de l’image de sortie

Durant la conversion, il est souhaitable que la conversion de l’image de Concept vers Unity soit la plus exacte possible. Dans cette optique, les règles ci-après sont appliquées.

Règles de positionnement des objets :

L’écart entre les deux objets doit être d’au moins une cellule.Lorsque deux FFB sont connectés, la distance minimale doit être égale au nombre de cellules de la largeur du premier FFB.Les cellules dans Unity sont plus petites. Si un FFB occupe partiellement une autre cellule, une cellule supplémentaire est nécessaire pour le FFB.Si un objet (contact ou bobines) a une connexion verticale (liaison OU), cette connexion verticale sera placée à la fin de la cellule de l’objet.Une cellule supplémentaire est nécessaire dans les cas suivants :

il existe une connexion verticale (liaison OU) avec une ENTREE FFB ;le FFB source possède des variables de sortie ;le FFB cible possède des variables d’entrée.

Une bobine ne peut pas être connectée directement à la barre d’alimentation gauche.

Règles pour la conversion des connexions FFB :

Les connexions FFB entre les variables/constantes et les FFB sont ignorées. Dans ces cas-là, Unity crée automatiquement une connexion.Les connexions FFB purement horizontales entre les objets qui ne sont pas des FFB seront remplacées par des connexions horizontales avec segments multiples.Quand deux objets OU sont connectés, une connexion horizontale est d’abord connectée au côté droit de l’objet source OU. Une connexion FFB est ensuite créée entre la connexion horizontale et l’objet cible. Cette connexion est créée pour éviter que les deux objets OU ne soient combinés durant l’importation vers Unity.Chaque point de la barre d’alimentation gauche peut uniquement être occupé par une connexion.

33002516 07/2012 39

Page 40: 33002516_k01_000_12

Exigences

Exemple d’image dans Concept :

L’image après conversion vers Unity

40 33002516 07/2012

Page 41: 33002516_k01_000_12

Exigences

Les actions suivantes ont été réalisées durant la conversion conformément aux règles ci-dessus :

L’espace qui est occupé par le FFB a été élargi à deux colonnes.Une colonne a été ajoutée au côté Entrée et au côté Sortie du FFB.Les connexions entre bobines/contacts et le FFB ont été réalisées avec des connexions FFB et non avec des connexions horizontales avec segments multiples.

Reconnaître et déconnecter les réseaux LD

Le convertisseur doit reconnaître les réseaux dans les sections LD lors de la conversion. Dans cette optique, les règles suivantes sont appliquées :

Un réseau LD est un groupe d’objets qui sont connectés entre eux sans autre connexion à d’autres objets (à l’exception de la barre d’alimentation).La distance minimale est toujours appliquée à une colonne complète d’un réseau. Cela signifie qui si un objet d’une colonne nécessite une certaine distance minimale, tous les autres objets sont également déplacés à une position horizontale plus importante ou identique.Si plusieurs réseaux se trouvent sur la même ligne dans Concept, le réseau suivant sera déplacé verticalement jusqu’à ce qu’il n’occupe plus les mêmes lignes que le réseau précédent.Pour éviter que des connexions FFB indésirables soient créées automati-quement, l’espace qui est occupé par un FFB et son espace de connexion sont vérifiés afin de déterminer les éventuels chevauchements. En cas de chevauchements, les objets suivants sont déplacés horizontalement.

33002516 07/2012 41

Page 42: 33002516_k01_000_12

Exigences

Schéma d’un réseau LD dans Concept avec chevauchements

42 33002516 07/2012

Page 43: 33002516_k01_000_12

Exigences

Schéma d’un réseau LD après conversion vers Unity

33002516 07/2012 43

Page 44: 33002516_k01_000_12

Exigences

Réseaux LD distincts

Les sections LD CEI contiennent de nombreuses zones graphiques indépendantes (réseaux).

Lors de la conversion des sections LD CEI, des colonnes supplémentaires sont ajoutées aux réseaux afin d’éviter la génération automatique de liaisons indésirables dans Unity Pro.

Si les colonnes supplémentaires insérées s’étendaient à l’ensemble de la section, le graphique d’origine subirait une modification trop importante. Les sections sont donc divisées en réseaux pendant la conversion et des colonnes supplémentaires sont insérées uniquement pour le réseau associé.

Avec l’insertion de colonnes supplémentaires, un réseau peut dépasser la largeur maximale de sa section et passer à la ligne suivante.

Si cela entraîne un chevauchement vertical des réseaux, le chevauchement de la logique peut générer des liaisons automatiques indésirables dans Unity Pro.

Ouvrez l’onglet Arrangements de conversion en choisissant Outils → Options dans Unity Pro pour activer/désactiver la case à cocher Réseaux LD distincts avant la conversion.

Si cette case à cocher est activée, les réseaux qui sont reconnus sont déplacés verticalement afin d’éviter les chevauchements.Si cette case à cocher est désactivée, les réseaux qui sont reconnus ne sont pas déplacés verticalement. La disposition verticale d’origine des graphiques est conservée, mais des messages d’erreur peuvent être générés suite à des chevauchements.

Saut de colonne LD

Avec l’insertion de colonnes supplémentaires, un réseau peut dépasser la largeur maximale de sa section et passer à la ligne suivante.

Ouvrez l’onglet Arrangements de conversion en choisissant Outils → Options dans Unity Pro pour activer/désactiver la case à cocher Saut de colonne LD avant la conversion.

Le nombre saisi ici détermine la colonne après laquelle un réseau passe à la colonne suivante.

44 33002516 07/2012

Page 45: 33002516_k01_000_12

Exigences

Réseaux trop larges passant sur la ligne suivante

Dans la mesure où la largeur des réseaux d’agrandit durant la conversion, la largeur maximale de section peut être dépassée.

Pour afficher le réseau devenu trop large, la partie du réseau qui va au-delà de la bordure droite de la section apparaît sur une nouvelle ligne.

Les connexions sont affichées en tant que connecteurs.

Exemple de réseau LD dans Concept

33002516 07/2012 45

Page 46: 33002516_k01_000_12

Exigences

Le réseau LD passant à la ligne après conversion vers Unity

Objets pour reconnaître les transitions

Les différentes façons de gérer les objets du schéma à contacts LD dans Concept (en appelant un FB) et dans Unity Pro (appel du système) rendent l’utilisation de variables de la RAM d’état (registre 0x/1x) nécessaire.

Etant donné plusieurs accès d’écriture au registre 0x/1x doivent être possibles durant le balayage cyclique, il peut y avoir des différences de comportement en ligne entre Concept et Unity Pro.

46 33002516 07/2012

Page 47: 33002516_k01_000_12

Exigences

Les objets concernés sont :Contact de détection de transitions positivesContact de détection de transitions négatives

Dans Concept, l’« ancienne valeur » pour reconnaître une transition ne sera mise à jour qu’une fois par cycle.

Dans Unity Pro l’« ancienne valeur » sera mise à jour à chaque accès en écriture.

Exemple :

Concept : Basculez %QX1 de 0 -> 1 et la valeur de %MW1 et de %MW2 augmente.

Unity Pro : Basculez %QX1 de 0 -> 1 et seule la valeur de %MW1 augmente.

NOTE : utilisez des objets pour reconnaître les transitions avec une certaine variable seulement une fois par cycle.

Voir également Variable affectée, page 27 et Manuel de référence du logiciel Unity Pro, L’utilisation des bobines de paramétrage et de réinitialisation peut engendrer une perte de fronts (voir Unity Pro, Langages de programmation et structure, Manuel de référence ).

Macros

Les macros (dont le nom commence par @) seront rejetées par le convertisseur car elles ne peuvent pas être implémentées dans Unity. Toutefois, si vous tentez d’importer une application contenant des macros, ces dernières sont remplacées par des DFB factices (indiquées par le caractère ’~’ dans le nom de l’application).

Lors de l’analyse du projet, vous obtiendrez des messages d’erreur concernant ces DFB factices. Pour corriger ces erreurs, supprimez tous les DFB créés en vue de remplacer les macros.

33002516 07/2012 47

Page 48: 33002516_k01_000_12

Exigences

Langage de programmation ST/IL

Généralités

Pour certains langages de programmation, il existe des restrictions à observer lors de la conversion d’un projet de Concept en Unity Pro.

EFB génériques

Appellent les instances de EFB génériques une seule fois.

Avec Concept 2.2, affectez les sorties directement après l’appel EFB d’une variable.

Syntaxe avec Concept 2.5 :

Utilisez uniquement la nouvelle syntaxe pour Concept 2.5 (à partir de Unity V 2.0 elle est automatiquement convertie).

Syntaxe avec Concept 2.5 :

GenEFB(in1:=x1, in2:=x2, out1=>x3, out2=>X4 ;

in1, in2, out1 et out2 sont de type ANY.

EFB génériques sous Concept

Liste des EFB génériques sous Concept :Bibliothèque COMM

XXMIT

Bibliothèque CONT_CTLDEADTIME

Bibliothèque EXTENDEDHYSTINDLIMLIMDSAH

Bibliothèque LIB984FIFOLIFOR2TSRCHT2TGET_3XGET_4XPUT_4X

48 33002516 07/2012

Page 49: 33002516_k01_000_12

Exigences

Déclaration des EFB

La déclaration des EFB sous Unity Pro se trouve dans l’éditeur de variables et plus dans les sections ST/IL comme dans Concept.

Les EFB déclarés de cette façon ne sont plus limités à une seule section.

33002516 07/2012 49

Page 50: 33002516_k01_000_12

Exigences

Langage de programmation LL984

Généralités

Pour certains langages de programmation, il existe des restrictions à observer lors de la conversion d’un projet de Concept en Unity Pro.

LL984 n’est plus pris en charge par Unity Pro.

Unity Pro prend uniquement en charge la programmation conforme CEI. Les configurations des langages de programmation LL984 et LL984 spécifiques ne sont plus prises en charge par Unity Pro :

Voir également Restrictions pour les anciennes configurations LL984, page 20.

50 33002516 07/2012

Page 51: 33002516_k01_000_12

Exigences

Langage de programmation FBD

Généralités

Pour certains langages de programmation, il existe des restrictions à observer lors de la conversion d’un projet de Concept en Unity Pro.

Macros

Lors de la conversion d’un projet Concept en Unity Pro, les sections créées utilisant des macros sont aussi converties.

Les sections peuvent également être copiées et modifiées manuellement.

33002516 07/2012 51

Page 52: 33002516_k01_000_12

Exigences

52 33002516 07/2012

Page 53: 33002516_k01_000_12

33002516 07/2012

3

Unity Pro

Différences de langage

33002516 07/2012

Différences de langage

Vue d’ensemble

Ce chapitre contient des informations sur les différences de langage.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Fonctions non disponibles dans Unity 55

Remplacement d’un EFB par une fonction 56

Blocs FFB non disponibles sur toutes les plates-formes 57

Paramètres INOUT 61

Modification du type de paramètre 62

Paramètres ANY_ARRAY_WORD 63

Attribution d’un nom unique requise 65

Génération incomplète du lien LD 66

Modification de l’ordre d’exécution LD 67

Constantes 71

Indices dans ST et IL 72

Calcul avec TIME et REAL 73

Affectations de WORD aux tableaux BOOL 74

Chevauchement de l’adresse topologique 75

Remplacer %QD par %MF 76

Modification de l’alignement de la structure 77

Sortie non définie sur les EF désactivés 78

Variables aux broches vides 80

La section SFC conserve son état lors de l’exécution d’une modification en ligne

81

53

Page 54: 33002516_k01_000_12

Différences de langage

SFCCNTRL Le bloc fonction se comporte différemment sous Unity et sous Concept

82

Numérotation des jours de la semaine 83

Temporisateur système 84

Valeurs initiales 85

Macros 87

Sujet Page

54 33002516 07/2012

Page 55: 33002516_k01_000_12

Différences de langage

Fonctions non disponibles dans Unity

Encapsulateur DFB

Les fonctions de Concept qui ne sont pas disponibles sous Unity sont encapsulées dans un bloc fonction DFB lorsqu’elles sont appelées dans les sections ST (p.ex., WORD_AS_UDINT). Par exemple :

WAUD(* UDINT *) := WORD_AS_UDINT (LOW := WAUL, (* WORD *) HIGH := WAUH(* WORD *));

. . . ressemble à ce qui suit après conversion :

WAUD(* UDINT *) := FBI_ST1_75_33 (LOW := WAUL, (* WORD *)HIGH := WAUH(* WORD *));

Correction manuelle

FBI_ST1_75_33 est le nom d’instance de l’encapsulateur DFB fourni. Toutefois, l’appel est toujours invalide pour l’analyseur, car le convertisseur ne peut pas encore apporter de corrections de syntaxe multi-objet dans ST. (elles seront disponibles dans la version V2.0).

Procédez à la correction manuelle ci-dessous :

FBI_ST1_75_33 (LOW := WAUL, (* WORD *) HIGH := WAUH(* WORD *), OUT => WAUD);

33002516 07/2012 55

Page 56: 33002516_k01_000_12

Différences de langage

Remplacement d’un EFB par une fonction

DFB d’encapsulage

Certains EFB Concept standard sont mis en œuvre dans Unity sous la forme de fonctions.

Dans ce cas, un DFB d’encapsulage est fourni de sorte que l’interface d’origine de l’EFB Concept reste valide.

56 33002516 07/2012

Page 57: 33002516_k01_000_12

Différences de langage

Blocs FFB non disponibles sur toutes les plates-formes

Présentation

Les blocs FFB (fonctions/blocs fonction) mentionnés ci-dessous peuvent uniquement être utilisés sur des plates-formes Quantum (sauf SFC_RESTORE, voir tableau ci-dessous).

Si Modicon M340 est la plate-forme cible, ces blocs FFB sont signalés en rouge et associés à une mention indiquant une erreur de type.

Blocs FFB non disponibles

Bibliothèque de communication

Famille FFB Plate-forme

Etendu CREAD_REG Quantum uniquement

CWRITE_REG

MBP_MSTR

READ_REG

WRITE_REG

MODBUSP_ADDR

SYMAX_IP_ADDR

TCP_IP_ADDR

XXMIT

33002516 07/2012 57

Page 58: 33002516_k01_000_12

Différences de langage

Bibliothèque de gestion des E/S

Famille FFB Plate-forme

Configuration des E/S analogiques

I_FILTER Quantum uniquement

I_SET

O_FILTER

O_SET

Affichage des E/S analogiques I_NORM Quantum uniquement

I_NORM_WARN

I_PHYS

I_PHYS_WARN

I_RAW

I_RAWSIM

I_SCALE

I_SCALE_WARN

O_NORM

O_NORM_WARN

O_PHYS

O_PHYS_WARN

O_RAW

O_SCALE

O_SCALE_WARN

E/S immédiates IMIO_IN Quantum uniquement

IMIO_OUT

58 33002516 07/2012

Page 59: 33002516_k01_000_12

Différences de langage

Configuration des E/S Quantum ACI030 Quantum uniquement

ACI040

ACO020

ACO130

AII330

AII33010

AIO330

AMM090

ARI030

ATI030

AVI030

AVO020

DROP

ERT_854_10

NOGSTATUS

QUANTUM

XBE

XDROP

Famille FFB Plate-forme

33002516 07/2012 59

Page 60: 33002516_k01_000_12

Différences de langage

Bibliothèque de mouvements

Bibliothèque obsolète

Bibliothèque système

Famille FFB Plate-forme

Démarrage MMF CFG_CP_F Quantum uniquement

CFG_CP_V

CFG_CS

CFG_FS

CFG_IA

CFG_RA

CFG_SA

DRV_DNLD

DRV_UPLD

IDN_CHK

IDN_XFER

MMF_BITS

MMF_ESUB

MMF_INDX

MMF_JOG

MMF_MOVE

MMF_RST

MMF_SUB

MMF_USUB

Famille FFB Plate-forme

Extensions/Compatibilité GET_3X Quantum uniquement

IEC_BMDI

Famille FFB Plate-forme

Gestion SFC SFC_RESTORE Quantum et Premium,pas pour Modicon M340

Redondance HSBY_RD Quantum uniquement

HSBY_ST

HSBY_WR

REV_XFER

60 33002516 07/2012

Page 61: 33002516_k01_000_12

Différences de langage

Paramètres INOUT

Correction manuelle

La syntaxe du paramètre INOUT dans ST (et IL) doit être corrigée manuellement. Voici quelques exemples :

Ascii_FIFO_OUT (Pile := AscFifo_Mess); .....

AscFifo_Out := Ascii_FIFO_OUT.DataOut;

. . . est corrigé manuellement par :

Ascii_FIFO_OUT (Pile := AscFifo_Mess, DataOut => AscFifo_Out);

Paramètres de sortie

Les paramètres INOUT des sections ST qui correspondaient à des paramètres de sortie dans Concept (par exemple, DataOut de FIFO) doivent être déplacés manuellement dans ST et IL vers les paramètres entre parenthèses associés à l’appel.

Si les paramètres INOUT qui correspondaient à des paramètres de sortie dans Concept sont connectés uniquement à une liaison du côté de la sortie, ils doivent également obtenir une variable déclarée manuellement du côté de l’entrée. La liaison doit être supprimée si elle n’est pas connectée à une autre variable IN/OUT. Les cibles de la liaison supprimée doivent être affectées à la variable déclarée manuellement.

Ceci s’effectue automatiquement dans la version 2.0.

Changement du type de variable

Le convertisseur change le type des variables directes au niveau des paramètres INOUT des blocs de communication en ARRAY[0..0] OF WORD.

Procédez à une correction manuelle pour respecter la taille du tableau.

33002516 07/2012 61

Page 62: 33002516_k01_000_12

Différences de langage

Modification du type de paramètre

Modification

Le type de paramètre a été changé du type WORD en un tableau de mots localisés.

Explication

Les EFB de communication Unity n’acceptent plus d’adresse WORD unique pour la zone de communication car plusieurs WORD sont écrits. Par conséquent, le convertisseur introduit un tableau artificiel (illustré dans le rapport de conversion) accessible depuis l’arborescence du projet via l’hyperlien approprié :

"For var WORD1 type ARRAY[0..0] OF WORD generated"

Le tableau ne possède qu’une taille de mot car le convertisseur ne peut pas déterminer sa taille. Par conséquent, l’utilisateur doit configurer manuellement la taille adéquate du tableau.

62 33002516 07/2012

Page 63: 33002516_k01_000_12

Différences de langage

Paramètres ANY_ARRAY_WORD

Message d’erreur

Pour les broches EF/EFB de type WORD dans Concept, qui sont passées au type ANY_ARRAY_WORD dans Unity, le message "Impossible d’importer les variables" apparaît. Dans Concept, ces broches comportent généralement une adresse de registre unique comme paramètre formel, mais elle est actuellement utilisée pour pointer vers un tableau de mots dont la taille n’a pas encore été déclarée de manière explicite.

Modification du type de paramètre

Dans Unity, un tableau de mots doit être déclaré dans ce but. C’est la raison pour laquelle le convertisseur modifie le type en ARRAY[0..0] OF WORD.

Cependant, le convertisseur ne peut pas déterminer la taille requise, car une déclaration de taille est absente dans l’application Concept. Le convertisseur définit donc un élément de données, [0..0], pour remplacer la variable d’origine.

C’est à l’utilisateur de remplacer cette plage par défaut d’un élément par le nombre d’éléments requis par l’application.

33002516 07/2012 63

Page 64: 33002516_k01_000_12

Différences de langage

Redéfinition sur un tableau WORD unidimensionnel

Dans le cas où l’application a défini des structures de données affectées à des registres qui décrivent les données à utiliser, un travail considérable de redéfinition sur un tableau WORD unidimensionnel est requis. Cependant, cette opération est nécessaire pour Unity version 1.0, par exemple :

{Echanges_CR2 : [MAST]} : (r: 42, c: 7) E1092 les types de données ne correspondent pas (’CREADREG.REG_READ:ANY_ARRAY_WORD’<->’table_rec_cr2:peer_Table’)

Exemple :

Le convertisseur Unity version 2.0 modifie ces types de paramètre EFB en ANY, permettant ainsi d’éviter ce problème.

64 33002516 07/2012

Page 65: 33002516_k01_000_12

Différences de langage

Attribution d’un nom unique requise

Nom unique

Dans les applications Concept, les noms de section ont le même nom qu’un DDT. Ce n’est pas le cas dans Unity.

Le convertisseur vérifie que les noms de section ne sont pas redondants avec les noms DDT. Si c’est le cas, le convertisseur ajoute "_Sect" au nom de section.

33002516 07/2012 65

Page 66: 33002516_k01_000_12

Différences de langage

Génération incomplète du lien LD

La génération de la liaison LD n’est pas terminée

Dans certains cas, la génération de la liaison LD n’est pas terminée. Cela peut survenir lorsque l’algorithme autorise un objet qui requiert la même position qu’un objet existant. Dans ce cas, l’objet existant est écrasé.

Pour vous en informer, des messages s’affichent :

{SAFETY_INTERLOCKS_PLC3 : [MAST]} :(r: 8, c: 3) Erreur de convertisseur E1189 : ’L’écrasement se produit lors de la création du réseau LD – voir rapport’

{SAFETY_INTERLOCKS_PLC3 : [MAST]} : (r: 8, c: 3) erreur de syntaxe E1002

Informations contenues dans le rapport de conversion

Dans le rapport de conversion que vous pouvez ouvrir après l’importation via l’hyperlien de l’arborescence du projet, vous trouverez des informations supplémen-taires sur ce message :

09:29:05.953 > Erreur : Objet LD PTFDTP1_ENABLED avec le type de bit de sortie recouvert

L’utilisateur doit comparer le résultat de la conversion avec une impression de la section d’origine et corriger en conséquence la section convertie.

66 33002516 07/2012

Page 67: 33002516_k01_000_12

Différences de langage

Modification de l’ordre d’exécution LD

Ordres d’exécution différents

NOTE : l’ordre d’exécution LD d’Unity peut être différent de celui de Concept. Dans Unity, il est possible de terminer un réseau LD avant de commencer le prochain.

Le convertisseur suit l’ordre d’exécution Concept en positionnement graphique, permettant à l’utilisateur d’accéder à l’ordre d’origine. Cependant, étant donné que Unity calcule de nouveau l’ordre (sans la possibilité de le forcer à partir du convertisseur), des incohérences risquent d’apparaître dans l’ordre d’exécution.

Générer des indicateurs ConvError

Ouvrez l’onglet Arrangements de conversion en choisissant Outils → Options dans Unity Pro pour activer/désactiver la case à cocher Générer des indicateurs ConvError avant la conversion.

Si cette case à cocher est activée, des objets ConvError sont générés dans les programmes LD pendant la conversion afin d’attirer l’attention sur des problèmes précis.Si cette case à cocher est désactivée, aucun objet ConvError n’est généré pendant la conversion.

Concept

Lors d’une analyse dans Concept, l’ordre d’exécution est calculé. Le résultat est indiqué entre parenthèses après les noms d’instances dans cette image.

Le bloc sélectionné est exécuté au milieu de l’autre réseau, même s’il n’y est pas directement connecté. Concept calcule l’ordre d’exécution depuis la position du bloc.

33002516 07/2012 67

Page 68: 33002516_k01_000_12

Différences de langage

Voici la section d’origine telle qu’elle apparaît dans Concept :

Les variables utilisées sont initialisées de manière à ce que le résultat du comparateur EQ_INT devienne « true » après l’exécution du premier cycle dans Concept :

68 33002516 07/2012

Page 69: 33002516_k01_000_12

Différences de langage

L’exécution de tests en mode de cycle unique dans Concept indique le résultat prévu. Le résultat du comparateur devient « true » après le premier cycle :

33002516 07/2012 69

Page 70: 33002516_k01_000_12

Différences de langage

Unity

Le réseau converti reflète l’ordre d’exécution Concept dans le positionnement graphique des blocs :

L’image indique également l’état d’exécution arrêté à un point d’arrêt du premier cycle. Le comparateur EQ_INT est déjà exécuté et ne fournit pas de résultat « true », car le premier bloc intégrateur ADD_INT est exécuté après lui.

Solution

A l’aide d’une variable, remplacez la connexion par une liaison pour obtenir le même résultat que dans Concept.

70 33002516 07/2012

Page 71: 33002516_k01_000_12

Différences de langage

Constantes

Perte du comportement de lecture seule

Les constantes ne sont pas acceptées en tant que variables DFB privées. Par conséquent, elles sont converties en variables initialisées dans les DFB, perdant ainsi le comportement de lecture seule.

33002516 07/2012 71

Page 72: 33002516_k01_000_12

Différences de langage

Indices dans ST et IL

Haute résolution

Outre INT, DINT sera désormais autorisé comme type d’index de tableau dans tous les domaines de Unity Pro, mais avec des fourchettes de valeurs limitées.

Pour DINT, l’index peut contenir uniquement des valeurs INT (-32768 ... 32767).

72 33002516 07/2012

Page 73: 33002516_k01_000_12

Différences de langage

Calcul avec TIME et REAL

Correction manuelle

Lorsque les variablesTIME et REAL sont multipliées dans ST, REAL_TO_DINT doit être inséré manuellement dans la variable REAL.

33002516 07/2012 73

Page 74: 33002516_k01_000_12

Différences de langage

Affectations de WORD aux tableaux BOOL

Correction manuelle

Les affectations de HEX WORDS aux tableaux Bool complets envoyés aux registres de mot sont possibles dans Concept, mais pas dans Unity. Une correction manuelle, semblable à l’exemple ci-dessous, doit être effectuée :

(’AR2_BOOL[0]:BOOL’<->’16#0100:DINT’)

(’AR2_BYTE[0]:BYTE’<->’16#55AA:DINT’)

(’AR2_BYTE[0]:BYTE’<->’16#AA55:DINT’)

Résolution

Le code ST doit être changé en affectations de composant unique.

Le mot hexadécimal doit être fractionné en bits individuels :

AR2_BOOL[17] := oui;

74 33002516 07/2012

Page 75: 33002516_k01_000_12

Différences de langage

Chevauchement de l’adresse topologique

Adresse topologique identique

Sous Unity, vous êtes informé (lors de l’analyse de l’application) si une même adresse topologique est affectée à plusieurs variables.

33002516 07/2012 75

Page 76: 33002516_k01_000_12

Différences de langage

Remplacer %QD par %MF

Introduction

Les variables qui sont directement adressées dans Concept à l’aide de %QD peuvent être des constantes flottantes initialisées ou des constantes à double mot.

Si les constantes flottantes sont en majorité, il est conseillé d’activer la case à cocher Remplacer %QD par %MF.

Arrangements de conversion

Ouvrez l’onglet Arrangements de conversion en choisissant Outils → Options dans Unity Pro pour activer/désactiver la case à cocher Remplacer %QD par %MF avant la conversion.

Si cette case à cocher est activée, les variables %QD sont converties en variables %MF.Si cette case à cocher est désactivée, les variables %QD sont converties en variables %MW.

76 33002516 07/2012

Page 77: 33002516_k01_000_12

Différences de langage

Modification de l’alignement de la structure

Structure DPM_Time

Pour accélérer l’accès aux composants de la structure, Unity utilise un alignement sur 2 octets pour les structures, à la différence de Concept (1 octet). Ceci impacte sur les structures du système affectées à la mémoire d’état, car les mêmes structures dans Unity peuvent être plus importantes, avec y compris certains écarts d’octets.

La structure concernée est DPM_Time, qui a été redéfinie pour Unity pour une nouvelle affectation aux adresses matérielles adéquates.

Définition de DPM_Time Unity :

sync: BOOLms: WORD...

Définition de DPM_Time Unity :

sync: BOOLms_lsb: BYTEms_msb: BYTE...

Correction manuelle

Si une application qui inclut la structureDPM_time est convertie, le processus d’analyse/de génération échoue pour les composants de structure redéfinis (dans l’exemple ci-dessus, ms_lsb, ms_msb).

L’utilisateur doit donc modifier manuellement l’utilisation de ces composants de structure dans l’application.

33002516 07/2012 77

Page 78: 33002516_k01_000_12

Différences de langage

Sortie non définie sur les EF désactivés

Sorties des EF non conservées

Si EN passe de OUI à NON, les sorties des EF du cycle précédent ne sont pas conservées dans Unity. Ceci réduit l’utilisation de la mémoire de l’automate. Les EFB, quant à eux, conservent la valeur du cycle précédent. Concept utilise des liaisons statiques pour mémoriser la valeur du cycle précédent.

Variation au niveau de l’exécution

Si une application Concept s’appuie sur les sorties des EF pour conserver leurs anciennes valeurs, le comportement de l’exécution dans UNITY varie considérablement.

Correction manuelle

L’application doit être modifiée manuellement.

Les liaisons des sorties, supposées conserver leur valeur, doivent être remplacées par des variables. Si l’EN d’un EF est défini sur Non, EF n’est pas exécuté et une variable connectée n’est pas affectée.

Concept

La sortie de l’EF SEL désactivé est conservée et utilisée comme entrée pour le bloc fonction EQ_INT :

78 33002516 07/2012

Page 79: 33002516_k01_000_12

Différences de langage

Unity

La sortie de l’EF SEL désactivé prend une valeur non définie, dans ce cas 0. Par conséquent, la sortie du bloc fonction EQ_INT est redéfinie sur Oui :

Résolution

Si l’EN de SEL est défini sur Non, l’ENO de EQ_INT est également défini sur Non, mais la variable de sortie connectée conserve la valeur du cycle précédent :

NOTE : L’utilisation d’une variable est obligatoire pour conserver les résultats du réseau en cas de désactivation d’un EF.

33002516 07/2012 79

Page 80: 33002516_k01_000_12

Différences de langage

Variables aux broches vides

Introduction

Dans Unity Pro, il est nécessaire de remplir les entrées et sorties fournies pour les types de données dérivés ou réglages d’E/S (cela n’est pas nécessaire dans Concept).

Si ces types ne sont pas génériques, le convertisseur remplit les entrées et sorties initialement vides par des variables qu’il crée.

Arrangements de conversion

Ouvrez l’onglet Arrangements de conversion en choisissant Outils → Options dans Unity Pro pour activer/désactiver la case à cocher Variables aux broches vides avant la conversion.

Si cette case à cocher est activée, les points de liaison vides sont remplis à l’aide de variables créées par le convertisseur.Si cette case à cocher est désactivée, les points de liaison vides ne sont pas remplis à l’aide de variables créées par le convertisseur.

80 33002516 07/2012

Page 81: 33002516_k01_000_12

Différences de langage

La section SFC conserve son état lors de l’exécution d’une modification en ligne

Modifications en ligne sans réinitialisation

Dans Unity, il est possible d’apporter des modifications en ligne à un graphe SFC sans le réinitialiser. Le graphe SFC conserve son état et continue l’exécution.

NOTE : Dans Concept, la modification en ligne d’un graphe SFC entraîne généralement la réinitialisation du graphe.

33002516 07/2012 81

Page 82: 33002516_k01_000_12

Différences de langage

SFCCNTRL Le bloc fonction se comporte différemment sous Unity et sous Concept

RESETSFC vs INIT

Sous Concept, l’entrée RESETSFC de SFCCNTRL met à zéro les actions de la section SFC associée.

Sous Unity, l’entrée INIT de SFCCNTRL (qui a une fonction similaire à l’entrée RESETSFC sous Concept) met uniquement à zéro les variables d’action qui ont été établies par l’étape SFC. Par exemple, les variables d’action établies par la logique utilisateur ou la table d’animation ne seront pas mises à zéro.

82 33002516 07/2012

Page 83: 33002516_k01_000_12

Différences de langage

Numérotation des jours de la semaine

Numérotation différente

Sous Unity, la numérotation des jours de la semaine est différente de celle de Concept :

SET_TOD / GET_TOD

Blocs fonction : SET_TOD et GET_TOD sont convertis au format Unity en tant que DFB, ceci fonctionne dans les deux sens.

SET_TOD attend un jour de la semaine avec la numérotation "Concept" et le traduit comme une valeur codée Unity. De même, GET_TOD lit la valeur Unity et renvoie à l’utilisateur la valeur Concept.

Mot système %SW49

NOTE : Il n’est pas recommandé de programmer GET_TOD et SET_TOD et d’utiliser simultanément des mots système (par ex. %SW49) dans la même application.

Numéro Unity Concept

1 Lundi Dimanche

7 Dimanche Samedi

33002516 07/2012 83

Page 84: 33002516_k01_000_12

Différences de langage

Temporisateur système

Concept

Le temporisateur système Concept a été localisé sur un mot de registre défini par l’utilisateur (16 bits) et incrémenté par intervalles de 10 ms.

Unity

Unity fournit un temporisateur incrémentiel avec une mise à jour toutes les 100 ms (%SW18).

Un temporisateur 10 ms peut être créé logiquement à l’aide de la fonction FREERUN (temporisateur sec).

84 33002516 07/2012

Page 85: 33002516_k01_000_12

Différences de langage

Valeurs initiales

Définition des valeurs initiales

Concept permet la définition des valeurs initiales sur les broches DFB d’un tableau structuré.

Unity interdit cette option pour les broches de type tableau. Cette option est réservée pour les broches de sortie de type structure.

Le convertisseur indique ceci par le message d’erreur suivant dans le journal de conversion :

Erreur : Impossible de convertir les valeurs initiales des données d’appel par référence (broche Add_PV.in1)

Broches à connecter

Au même moment, Unity utilise les broches de type tableau et les broches d’entrée du type structuré à connecter, qui, dans ce cas, génère des erreurs d’analyse :

{ALL:[MAST]}: (r:26, c:68) E1194 Paramètre ´IN2´doit être affecté {ALL:[MAST]}: (r:26, c:68) E1194 Paramètre ́ IN1´doit être affecté

33002516 07/2012 85

Page 86: 33002516_k01_000_12

Différences de langage

Résolution

Pour remédier à ce problème, créez une variable du type de la broche et initialisez-la avec les valeurs d’origine.

Connectez cette constante à la broche appropriée de chaque instance DFB.

Exemple

Résolution : Ajoutez la variable initialisée.

86 33002516 07/2012

Page 87: 33002516_k01_000_12

Différences de langage

Macros

Remplacement des macros par des DFB factices

Le convertisseur refuse les macros (dont le nom commence par @), car Unity ne les implémente pas. Cependant, si vous tentez d’importer une application contenant des macros, ces dernières sont remplacées par des DFB factices (indiquées par le caractère ’~’ dans le nom de l’application).

Lors de l’analyse du projet, vous obtiendrez des messages d’erreur concernant ces DFB factices. Pour corriger ces erreurs, supprimez tous les DFB créés en vue de remplacer les macros.

Paramètres AXx et EPARx

Les paramètres AXx et EPARx des blocs de mouvement extensibles Concept sont automatiquement appelés avec le dernier tableau requis plutôt qu’avec les anciennes broches extensibles Unity. Les constantes présentes au niveau des broches Concept sont également placées comme des valeurs d’initialisation à ces tableaux. Cependant, les variables et liaisons doivent être connectées manuellement aux blocs de mouvement de ces tableaux.

33002516 07/2012 87

Page 88: 33002516_k01_000_12

Différences de langage

88 33002516 07/2012

Page 89: 33002516_k01_000_12

33002516 07/2012

4

Unity Pro

Modification possible du comportement de l’application

33002516 07/2012

Modification possible du comportement de l’application

Vue d’ensemble

Ce chapitre contient des informations sur la modification possible du comportement de l’application lors de la migration de Concept vers Unity Pro.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Général 90

Comportement de Concept 92

Demandes CEI 93

Comportement de Unity 96

Conséquences 98

89

Page 90: 33002516_k01_000_12

Modification possible du comportement de l’application

Général

Concept

Dans Concept et Unity, les interfaces de bloc fonction sont mises en œuvre avec des structures de données (zones d’instance) qui collectent des paramètres, conformément à la norme CEI 61131 à laquelle les deux systèmes se réfèrent.

Les appels de blocs fonction se réfèrent à ces structures de données. Concept n’inclut toutefois pas de paramètres de sortie dans ces zones d’instance. Tous les paramètres de DFB/EFB (Elementary Function Block - Bloc fonction élémentaire) sont généralement gérés par référence, de sorte que les paramètres de sortie sont directement écrits par le code de bloc fonction dans Concept. Les DFB/EFB Unity stockent les paramètres de sortie dans la zone d’instance, comme le préconise la norme CEI 61131.

Le comportement de Concept était utilisé pour permettre, par exemple, une mise en œuvre aisée du mode manuel des blocs fonction de régulation.

Si la sortie est écrite une seule fois par cycle, le comportement est le même dans les deux systèmes. Si les valeurs de sortie ne sont pas écrites dans tous les cas d’appel, mais sont affectées par plusieurs instances de bloc fonction, il peut en résulter un comportement différent dans les deux systèmes.

Si la variable concernée est écrite par une autre partie de commande avant un bloc fonction ayant le même paramètre de sortie, appelé dans un cas où le bloc fonction n’écrit pas la sortie, rien ne change dans Concept, alors que dans Unity, la valeur du tampon de la variable dans la zone d’instance résultant d’un appel précédent est affectée au paramètre de sortie.

90 33002516 07/2012

Page 91: 33002516_k01_000_12

Modification possible du comportement de l’application

Pour gérer de tels cas, les affectations multiples de variables élémentaires ou de composants de types de données dérivés de blocs fonction sont détectées par le convertisseur Concept, si l’option appropriée est cochée :

Détectées pour les blocs fonction élémentaires et dérivés.Option prise en charge dans les sections de DFB et de programme.Rapports lors de la conversion dans l’onglet de génération de la fenêtre de sortie avec une identification textuelle des emplacements concernés.Le même rapport textuel apparaît dans le rapport Conversion.Rapports dans les sections FBD et LD avec blocs ‘ConvError’ placés au-dessus des blocs fonctions concernés.Les messages lors de l’analyse apparaissent dans l’onglet d’analyse/de génération de la fenêtre de sortie, qui peut être ouverte en double-cliquant sur la section concernée afin de l’ouvrir et d’accéder directement au bloc fonction en question.

À l’aide de ce rapport, l’utilisateur peut adapter ce code afin d’obtenir un fonction-nement commun, par exemple en changeant les sorties DFB en paramètres d’entrée/sortie, qui permettent une écriture directe dans Unity également.

NOTE : si l’application utilise l’affectation multiple des sorties EFB, lisez attentivement le chapitre qui suit afin de vérifier que l’application convertie fonctionne de la manière attendue (les EFB ne peuvent pas être modifiés par l’utilisateur, qui peut uniquement en introduire de nouveaux).

33002516 07/2012 91

Page 92: 33002516_k01_000_12

Modification possible du comportement de l’application

Comportement de Concept

Les paramètres sont gérés par référence

Dans Concept, l’expression "tous les paramètres de bloc fonction sont gérés par référence" signifie que le bloc reçoit un pointeur vers les données de chaque broche du bloc fonction et fonctionne directement sur la variable connectée.

Variables connectées :

Code de bloc fonction

Par conséquent, dans Concept, c’est le code de bloc fonction qui décide :de se comporter conformément à CEI ;d’écrire vers des données d’entrée ;de lire des données de sortie ; de ne pas écrire vers des données de sortie.

92 33002516 07/2012

Page 93: 33002516_k01_000_12

Modification possible du comportement de l’application

Demandes CEI

Bloc fonction

Pour les langages de programmation de l’automate programmable, un bloc fonction est une unité organisationnelle du programme qui, une fois exécutée, produit une ou plusieurs valeurs.

Plusieurs instances (copies) nommées d’un bloc fonction peuvent être créées.

Chaque instance doit avoir son propre identificateur (nom de l’instance), une structure de données contenant ses variables de sortie et internes et, selon l’implémentation, des valeurs ou des référence à ses variables d’entrée.

Toutes les valeurs des variables de sortie, ainsi que les variables internes nécessaires de cette structure de données sont conservées d’une exécution du bloc fonction à une autre.

Par conséquent, l’appel d’un bloc fonction avec les mêmes arguments (variables d’entrée) ne doit pas toujours produire les mêmes variables de sortie.

Affectation d’une valeur

L’affectation d’une valeur à une variable de sortie d’un bloc fonction n’est pas autorisée, sauf à partir du bloc fonction.

L’affectation d’une valeur à l’entrée d’un bloc fonction est autorisée uniquement au cours de l’appel du bloc fonction.

Les entrées non affectées ou non connectées d’un bloc fonction conservent leurs valeurs initialisées ou les valeurs du dernier appel, le cas échéant.

L’utilisation autorisée des entrées et sorties du bloc fonction est indiquée dans le tableau ci-dessous, à l’aide du bloc fonction FF75 de type SR.

33002516 07/2012 93

Page 94: 33002516_k01_000_12

Modification possible du comportement de l’application

Les exemples sont indiqués en langage ST.

EN et ENO dans les blocs fonction

Pour les blocs fonction, le fabricant ou l’utilisateur peut également fournir une entrée EN (Enable) et/ou une sortie ENO (Enable Out) booléenne supplémentaire, selon les déclarations.

Lorsque ces variables sont utilisées, l’exécution des opérations définies par le bloc fonction est contrôlée conformément aux règles suivantes :1. Si la valeur de EN est NON (0) lorsque l’instance du bloc fonction est appelée,

les affectations des valeurs courantes aux entrées du bloc fonction peuvent ou non être effectuées en fonction de l’implémentation, les opérations définies par la structure du bloc fonction ne sont pas exécutées et la valeur de ENO est réinitialisée sur NON (0) par l’automate programmable.

2. Sinon, la valeur de ENO est réglée sur OUI (1) par l’automate programmable, les affectations des valeurs courantes aux entrées du bloc fonction sont effectuées et les opérations définies par la structure du bloc fonction sont exécutées. Ces opérations peuvent comprendre l’affectation d’une valeur booléenne à ENO.

3. Si la sortie ENO est évaluée sur NON (0), les valeurs des sorties du bloc fonction (VAR_OUTPUT) conservent l’état du précédent appel.

Utilisation A l’intérieur du bloc fonction A l’extérieur du bloc fonction

Lecture de l’entrée

IF IN1 THEN ... Non autorisé 1, 2

Affectation de l’entrée

Non autorisé 1 FB_INST(IN1:=A,IN2:=B);

Lecture de la sortie

OUT := OUT AND NOT IN2; C := FB_INST.OUT;

Affectation de la sortie

OUT := 1; Non autorisé 1

Lecture entrée-sortie

IF INOUT THEN ... IF FB1.INOUT THEN...

Affectation entrée-sortie

INOUT := OUT OR IN1; 3 FB_INST(INOUT:=D);

1 Les utilisations répertoriées comme « non autorisȆª dans ce tableau peuvent entraîner une dépendance de l’implémentation et une action imprévisible.

2 La lecture et l’écriture vers des variables d’entrée, de sortie et internes d’un bloc fonction peuvent être exécutées par la « fonction de communication », la « fonction d’interface de l’opérateur » ou les « fonctions de programmation, de test et de surveillance » définies dans CEI 61131-1.

3 La modification depuis le bloc fonction d’une variable déclarée dans un bloc VAR_IN_OUT est autorisée.

94 33002516 07/2012

Page 95: 33002516_k01_000_12

Modification possible du comportement de l’application

Entrées EN non connectées

Lorsque les entrées EN ne sont pas connectées, les blocs concernés ne sont pas exécutés dans Concept, alors qu’ils le seraient dans Unity Pro.

Pour éliminer cette différence, le convertisseur Concept applique une valeur booléenne constante de type FALSE aux entrées EN non connectées. On obtient ainsi le même comportement que dans Concept.

Variables d’entrée/de sortie

Les variables d’entrée et de sortie sont des types de variables spécifiques utilisés avec des unités organisationnelles de programme (POU), c’est-à-dire, des fonctions, des blocs fonction et des programmes.

Elles ne représentent aucune donnée directement, mais désignent d’autres données du type approprié. Elles sont déclarées par l’utilisation du mot clé VAR_IN_OUT. Il est possible d’appliquer des opérations de lecture et d’écriture aux variables d’entrée et de sortie.

Dans un POU, les variables d’entrée/de sortie permettent d’accéder à l’instance d’origine d’une variable au lieu d’une copie locale de la valeur contenue dans la variable.

Appel du bloc fonction

L’appel d’un bloc fonction établit des valeurs pour les variables d’entrée du bloc fonction et entraîne l’exécution du code de programme correspondant à la structure du bloc fonction.

Ces valeurs peuvent être établies de manière graphique en connectant les variables ou les sorties d’autres fonctions ou blocs fonction aux entrées correspondantes, ou de manière textuelle en répertoriant les affectations de valeurs aux variables d’entrée.

Si aucune valeur n’est établie pour une variable dans l’appel du bloc fonction, une valeur par défaut est utilisée.

Selon l’implémentation, les variables d’entrée peuvent être des valeurs de variables courantes, des adresses de localisation des valeurs de variables courantes ou une combinaison des deux.

Ces valeurs sont toujours transférées au code d’exécution dans la structure de données associée à l’instance du bloc fonction.

Les résultats de l’exécution du bloc fonction sont également renvoyés dans cette structure de données.

Par conséquent, si l’appel du bloc fonction est implémenté comme un appel de procédure, un seul argument (l’adresse de la structure de données d’instance) doit être transféré à la procédure pour exécution.

33002516 07/2012 95

Page 96: 33002516_k01_000_12

Modification possible du comportement de l’application

Comportement de Unity

Modification de la gestion du paramètre

Pour respecter les demandes CEI, la gestion du paramètre EDT (Elementary Data Types) normal a été modifiée de Concept à Unity.

La figure suivante représente l’implémentation actuelle dans Unity.

Les EFB n’ont plus de pointeurs vers leurs variables de broche connectées.

Ils obtiennent toujours les données par valeur.

A chaque cycle, le code d’application met à jour la copie des données d’entrée dans les données d’instance, avant l’appel du bloc fonction (1).

La copie des données de broche est située dans les données d’instance du bloc et le code du bloc fonction fonctionne toujours sur les données d’instance (2).

Après l’exécution du code du bloc fonction, le code d’application copie les données de sortie du bloc fonction mises à jour, des données d’instance vers les variables de sortie connectées (3).

Ceci est valable pour tous les EDT. Dans certains cas, les types de données dérivés, ainsi que des types de données plus complexes sont encore gérés par référence.

96 33002516 07/2012

Page 97: 33002516_k01_000_12

Modification possible du comportement de l’application

Modes d’adressage

Le mode d’adressage d’un élément d’un bloc fonction est directement lié au type de l’élément.

Voici les modes d’adressage actuellement identifiés :Par valeur (VAL)Par adresse (L-ADR)Par adresse + nombre d’éléments (L-ADR-LG)

Tableau avec quatre colonnes et légende

Appel du bloc fonction

Respectez les règles suivantes lors de l’appel d’une instance de bloc fonction :Tous les paramètres d’entrée/de sortie doivent être renseignésTous les paramètres d’entrée utilisant les modes d’adressage L-ADR ou L-ADR-LG doivent être renseignésTous les paramètres de sortie utilisant les modes d’adressage L-ADR ou L-ADR-LG doivent être renseignés

Tous les autres types de paramètres peuvent être omis lors de l’appel de l’instance du bloc fonction.

Pour les paramètres d’entrée, les règles suivantes doivent être appliquées (dans l’ordre donné) :

Les valeurs de l’appel précédent sont utilisées.S’il n’y a pas eu de précédent appel, les valeurs initiales sont utilisées.

- EDT (sauf STRING)

STRING Tableau DDT

Struct DDT

ANY_ ARRAY

ANY...

Paramètre d’entrée

VAL L-ADR-LG L-ADR-LG L-ADR L-ADR-LG L-ADR-LG

Paramètre d’entrée/de sortie

L-ADR 1 L-ADR-LG L-ADR-LG L-ADR L-ADR-LG L-ADR-LG

Paramètre de sortie

VAL VAL L-ADR-LG VAL L-ADR-LG L-ADR-LG

Variable publique

VAL VAL - VAL - -

Variable privée

VAL VAL - VAL - -

1 A l’exception du type BOOL, le mode d’adressage est VAL.

33002516 07/2012 97

Page 98: 33002516_k01_000_12

Modification possible du comportement de l’application

Conséquences

Problèmes potentiels

NOTE :

Lorsqu’une application est migrée de l’architecture Concept vers l’architecture Unity, vous devez évaluer les conséquences de cette migration, tout particuliè-rement dans les cas suivants :

Multi-affectation de variables de sortie connectées :Dans Concept, certains blocs fonction, principalement dans la zone de régulation, n’écrivent pas leurs valeurs de sortie dans les variables connectées, dans des modes de fonctionnement spécifiques (mode manuel). Dans ces modes spécifiques, il était possible d’écrire les variables depuis d’autres emplacements de l’application. Ceci n’est possible que dans Unity, si les variables sont écrites après l’appel du bloc fonction.Si elles sont écrites avant l’appel du bloc fonction, le processus de copie des données de l’instance dans les variables connectées remplace cette valeur par l’ancienne valeur des données de l’instance.Contrôle des variables de sortie via une table d’animation ou l’IHM :Si un bloc n’écrit pas ses sorties dans des modes de fonctionnement spécifiques (tels que le mode manuel, voir ci-dessus), il était possible de modifier les variables de sortie connectées via des tables d’animation ou l’IHM.Cette opération n’est plus possible dans Unity, car le processus de copie des données de l’instance dans les variables connectées du bloc fonction remplace la valeur modifiée par l’ancienne valeur des données de l’instance.

Modification de la structure des EFB

Pour simplifier la situation, la structure de nombreux blocs fonction (principalement dans les zones de mouvement et CLC) a été modifiée dans Unity par rapport à Concept afin de garantir le mode de fonctionnement souhaité.

Le type des broches concernées a été modifié de OUT en IN/OUT.

Dans presque tous les cas, la modification reflète mieux la réalité, car le type est lu à partir des broches de sortie concernées. Celles-ci sont en fait des broches IN/OUT.

AVERTISSEMENTCOMPORTEMENT INATTENDU DE L’APPLICATION

Soyez très attentif lors de la migration d’une application de Concept vers Unity.

Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.

98 33002516 07/2012

Page 99: 33002516_k01_000_12

Modification possible du comportement de l’application

Les tableaux suivants récapitulent les EFB, où au moins une broche OUT a été modifiée en IN/OUT lors de la migration de Concept vers Unity.

Bibliothèque CONT_CTL :

Bibliothèque Motion :

Famille Bloc fonction Broche concernée

Contrôleur PI_B OUT

PIDFF OUT

Traitement en sortie MS OUT

Gestion de consigne SP_SEL SP

Famille Bloc fonction Broche concernée

Démarrage MMF CFG_CP_F MFB, CFG_BLK

CFG_CP_V MFB, CFG_BLK

CFG_CS MFB, CFG_BLK

CFG_FS MFB, CFG_BLK

CFG_IA MFB, CFG_BLK

CFG_RA MFB, CFG_BLK

CFG_SA MFB, CFG_BLK

DRV_DNLD MFB

DRV_UPLD MFB

IDN_CHK MFB

IDN_XFER MFB

MMF_BITS MFB

MMF_ESUB MFB

MMF_INDX MFB

MMF_JOG MFB

MMF_MOVE MFB

MMF_RST MFB

MMF_SUB MFB

MMF_USUB MFB

33002516 07/2012 99

Page 100: 33002516_k01_000_12

Modification possible du comportement de l’application

Bibliothèque Obsolete Lib :

Comportement du convertisseur Concept

Généralement, lorsqu’une application Concept est importée dans Unity, le convertisseur Concept gère la modification de la structure de la manière suivante :

Cas 1 : Une variable est connectée à la broche de sortie dans Concept :Le convertisseur Concept conserve la variable du côté de la sortie de la broche IN/OUT et ajoute la variable du côté de l’entrée de la broche.Cas 2 : Une liaison est connectée à la broche de sortie dans Concept :Le convertisseur Concept supprime la liaison, crée une variable du type requis et écrit celle-ci à la position de début et de fin de la liaison supprimée. De plus, la variable est ajoutée du côté de l’entrée de la broche.

Famille Bloc fonction Broche concernée

CLC_PRO ALIM Y

COMP_PID Y, YMAN_N, OFF_N, SP_CAS_N

DERIV Y

INTEG Y

LAG Y

LAG2 Y

LEAD_LAG Y

PD_OR_PI Y

PI Y

PID Y

PID_P Y

PIP Y

PPI Y

VLIM Y

Extensions/compatibilité R2T Désactivée

SRCH INDEX

T2T Désactivée

100 33002516 07/2012

Page 101: 33002516_k01_000_12

Modification possible du comportement de l’application

Autres problèmes potentiels

Les tableaux suivants contiennent des blocs sur lesquels le changement d’architecture Concept en architecture Unity peut avoir des conséquences en cas de multi-affectation. En effet, dans Concept :

L’écriture des blocs sur les broches de sortie répertoriées est impossible en cas d’erreur au niveau du bloc.L’écriture des blocs sur les broches de sortie répertoriées est impossible lors de la scrutation COLD ou WARM INIT.L’écriture des blocs sur les broches de sortie répertoriées est possible selon le mode de fonctionnement interne.

Bibliothèque CONT_CTL :

Famille Bloc fonction Broche concernée

Conditionnement DTIME OUT

SCALING OUT

TOTALIZER OUT, INFO

Contrôleur AUTOTUNE TRI, INFO

PI_B OUT_D, DEV

PIDFF OUT_D, INFO

STEP2 DEV

STEP3 DEV

Traitement des sorties MS OUTD, STATUS

MS_DB OUTD, STATUS

SPLRG OUT1, OUT2

Gestion de consigne RAMP SP

RATIO KACT, SP

SP_SEL LSP_MEM

33002516 07/2012 101

Page 102: 33002516_k01_000_12

Modification possible du comportement de l’application

Bibliothèque de gestion des E/S :

Bibliothèque Motion :

Famille Bloc fonction Broche concernée

Configuration des E/S analogiques

I_SET CHANNEL

O_SET CHANNEL

Mise à l’échelle des E/S analogiques

I_NORM_WARN WARN

I_PHYS_WARN WARN

I_SCALE_WARN WARN

Configuration des E/S Quantum

ACI040 CHANNL1..16

ACO130 CHANNEL1..8

AII330 CHANNEL1..8, INTERNAL

AII33010 CHANNEL1..8

AIO330 CHANNEL1..8

ARI030 CHANNEL1..8

Famille Bloc fonction Broche concernée

Démarrage MMF CFG_CP_F Q, ERROR

CFG_CP_V Q, ERROR

CFG_CS Q, ERROR

CFG_FS Q, ERROR

CFG_IA Q, ERROR

CFG_RA Q, ERROR

CFG_SA Q, ERROR

DRV_DNLD Q, ERROR, IDN_CNT

DRV_UPLD Q, ERROR, REG_CNT, DATA_B, LK

IDN_CHK Q, ERROR, NOT_EQ

IDN_XFER Q, ERROR, OUT_RAW, OUTCONV

MMF_ESUB Q, ERROR, RET1, RET2, RET§

MMF_INDX Q, ERROR

MMF_JOG Q, ERROR

MMF_MOVE Q, ERROR

MMF_RST Q

MMF_SUB Q, ERROR, RET1, RET2, RET§

MMF_USUB Q, ERROR, RET1, RET2, RET§

102 33002516 07/2012

Page 103: 33002516_k01_000_12

Modification possible du comportement de l’application

Bibliothèque Obsolete Lib :

NOTE : les broches n’ont pas été modifiées, car dans le mode de fonctionnement normal des blocs, ceci n’a aucun impact.

Famille Bloc fonction Broche concernée

CLC DELAY Y

PI1 ERR

PID1 ERR

PIDP1 ERR

THREE_STEP_CON1 ERR_EFF

THREEPOINT_CON1 ERR_EFF

TWOPOINT_CON1 ERR_EFF

CLC_PRO COMP_PID STATUS, ERR

DEADTIME Y

FGEN Y, N

INTEG STATUS

PCON2 ERR_EFF

PCON3 ERR_EFF

PD_OR_PI ERR, STATUS

PDM Y_POS, Y_NEG

PI ERR, STATUS

PID ERR, STATUS

PID_P ERR, STATUS

PIP ERR, SP2, STATUS

PPI ERR, SP2, STATUS

PWM Y_POS, Y_NEG

QPWM Y_POS, Y_NEG

SCON3 ERR_FF

VLIM STATUS

Extensions/compatibilité FIFO EMPTY, FULL

LIFO EMPTY, FULL

33002516 07/2012 103

Page 104: 33002516_k01_000_12

Modification possible du comportement de l’application

104 33002516 07/2012

Page 105: 33002516_k01_000_12

33002516 07/2012

5

Unity Pro

Le processus de conversion

33002516 07/2012

Le processus de conversion

Processus de conversion

Généralités

Un projet Concept est exporté à partir de Concept et est ensuite converti automati-quement en projet Unity Pro en utilisant le convertisseur Unity Pro Concept.

Processus de conversion

Représentation du processus de conversion :

105

Page 106: 33002516_k01_000_12

Le processus de conversion

Description des niveaux de conversion :

Rapport d’erreurs et analyse

Les erreurs qui surviennent durant la conversion sont reportées dans un rapport d’erreurs et affichées dans une fenêtre de visualisation.

Des objets de rechange sont utilisés à la place des objets qui ne peuvent pas être convertis. Le projet Unity Pro peut être analysé à l’aide du menu principalCréer → Analyser projet. Des messages s’affichent ultérieurement dans la fenêtre de visualisation pour trouver les objets de rechange.

Les erreurs affichées dans la fenêtre de visualisation doivent être corrigées manuellement pour s’assurer que le projet Unity Pro soit exécuté correctement.

Niveau Description

1 Un projet est exporté à partir de Concept.Un fichier ASCII est créé.

2 Appel du convertisseur Unity Pro Concept.Le fichier ASCII est converti en fichier XEF.

3 Le fichier XEF est importé dans Unity Pro.Un projet Unity Pro est créé.

4 Le rapport d’erreur est vérifié.Il ne doit pas y avoir d’erreurs.

5 Le projet est maintenant disponible sous Unity Pro et peut être généré et ensuite être chargé dans un automate ou bien sous Unity Pro.

106 33002516 07/2012

Page 107: 33002516_k01_000_12

33002516 07/2012

6

Unity Pro

Procédure de conversion

33002516 07/2012

Procédure de conversion

Vue d’ensemble

Ce chapitre comprend les procédures nécessaires à la conversion d’un projet Concept en projet Unity Pro.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Exportation d’un projet à partir de Concept 108

Importation d’un projet dans Unity Pro 109

Types de données manquants au début de l’importation 110

Conversion de parties d’une application Concept uniquement 111

Retrait des macros Concept incluses non intentionnellement 113

Valeurs d’initialisation 114

107

Page 108: 33002516_k01_000_12

Procédure de conversion

Exportation d’un projet à partir de Concept

Généralités

Un projet Concept qui doit être utilisé sous Unity Pro doit d’abord être exporté à partir de Concept. Il est ensuite possible d’utiliser le convertisseur Unity Concept pour réaliser une conversion en projet Unity Pro

Exporter un projet

Pour exporter un projet, procédez comme suit :

Etape Procédure

1 Démarrez le programme convertisseur Concept à partir du groupe programme Concept.

2 Sélectionnez Fichier → Exporter..., pour ouvrir le menu de sélection de l’option d’exportation.

3 Choisissez l’option exporter :Projet avec DFB : Toutes les informations sur le projet comprenant des DFB et des structures de données (types de données dérivés) utilisées dans le projet sont exportées.Projet sans DFB : Toutes les informations sur le projet comprenant des structures de données (types de données dérivés), mais pas de DFB ni de macros, sont exportées.

Résultat : La boîte de dialogue de sélection des fichiers à exporter s’ouvre.

4 Sélectionnez l’extension de fichier suivante :Exporter des projets : Sélectionnez l’extension .prj à partir de cette liste de formats.

5 Sélectionnez le projet et confirmez en cliquant sur OK.Résultat : Le projet est enregistré dans le répertoire courant en tant que fichier ASCII (.asc).

6 Fermez le programme convertisseur Concept en cliquant sur Fichier → Quitter.

108 33002516 07/2012

Page 109: 33002516_k01_000_12

Procédure de conversion

Importation d’un projet dans Unity Pro

Général

Un projet Concept qui doit être utilisé dans Unity Pro doit d’abord être exporté à partir de Concept. Il est ensuite possible d’utiliser le convertisseur Unity Concept pour réaliser une conversion en projet Unity Pro.

Importation du projet

Pour convertir et importer un projet, procédez comme suit :

Etape Procédure

1 Démarrez Unity Pro.

2 Ouvrez le projet exporté depuis Concept en sélectionnant Fichier → Ouvrir. Sélectionnez le type de données PROJETS CONCEPT (*.ASC).NOTE : n’utilisez pas l’option Projet avec des DFB utilisés (Reconnecter au même) lors de la création du fichier *.ASC. Unity Pro ne peut pas importer l’application si cette option est sélectionnée.

3 Résultat :Le fichier ASCII est converti en format fichier source Unity Pro et importé automatiquement.Les erreurs et les messages d’importation concernant des objets qui ne peuvent être convertis et qui sont remplacés par des objets de rechange s’affichent dans une fenêtre de visualisation.

4 Modifiez manuellement les erreurs et les messages affichés dans la fenêtre de visualisation pour assurer le bon fonctionnement de Unity Pro.

5 Pour vérifier qu’un projet ne contient plus d’erreurs, sélectionnez Génération → Analyser le projet.

33002516 07/2012 109

Page 110: 33002516_k01_000_12

Procédure de conversion

Types de données manquants au début de l’importation

Généralités

Si la boîte de dialogue, qui apparaît au début de l’importation, signale des DDT inconnus, recherchez les déclarations locales dans ces DDT et identifiez ceux qui ne sont pas définis.

En outre, les types non utilisés, mais présents dans le fichier *.asc ouvert, sont déclarés comme inconnus dans la boîte de dialogue d’importation.

Type de données du système Concept

Cela concerne les types de données du système Concept, qui sont considérés par Concept comme étant toujours présents et qui ne sont donc pas inclus dans l’export.

Lorsque cela s’avère nécessaire, le convertisseur inclut automatiquement et individuellement les types de données standard du système Concept. Ces derniers font partie de la commande du convertisseur et incluent le fichier CConv.xml présent dans le répertoire d’exécution de Unity.

Si l’indicateur de lecture seule est supprimé, ce fichier peut être étendu pour inclure des types de données supplémentaires pour les bibliothèques EFB des utilisateurs.

Ces fichiers de types de données, non répertoriés comme des données globales/locales, sont placés dans le sous-répertoire lib de Concept, afin d’être fusionnés avec l’application Concept, mais n’apparaissent PAS dans le fichier d’exportation Concept.

Fichiers *.dty Concept

La version V1.1 du convertisseur Concept sera capable d’ajouter à l’application convertie des fichiers *.dty Concept stockés dans le même répertoire que le fichier *.asc, comme si leur contenu apparaissait dans le fichier *.asc.

110 33002516 07/2012

Page 111: 33002516_k01_000_12

Procédure de conversion

Conversion de parties d’une application Concept uniquement

Généralités

Le convertisseur Concept est conçu pour convertir des applications complètes ou des parties d’application.

Si seules certaines parties d’une application Concept sont nécessaires,utilisez une exportation d’application réduite dans Concept (voir les sections ci-après) ouutilisez l’assistant d’enregistrement (voir Conversion avec l’assistant de conversion, page 15).

DFB unique

Si un DFB unique est requis, générez une nouvelle application constituée d’une seule section et insérez-y un appel vers le DFB souhaité.

Exportez l’application à l’aide de l’élément de menu Exporter avec DFB utilisés dans Concept.

Convertissez le fichier *.asc résultant dans Unity Pro en choisissant Fichier → Ouvrir.

Sous-ensemble de sections

Pour exporter un sous-ensemble de sections, choisissez Fichier → Exporter → Programme : Section(s) dans Concept.

Sélectionnez l’application source et les sections souhaitées et suivez les instructions pour obtenir une application réduite.

Toutefois, si la section comporte des références aux étapes SFC, Concept exige également l’exportation de cette section SFC référencée.

Convertissez le fichier *.sec résultant dans Unity Pro à l’aide de l’assistant de conversion en choisissant Outils → Convertir partiellement.

33002516 07/2012 111

Page 112: 33002516_k01_000_12

Procédure de conversion

Sous-ensemble de variables

Pour exporter un sous-ensemble de variables, commencez par ouvrir l’Editeur de variables dans Concept et sélectionnez les variables souhaitées.

Utilisez ensuite le menu Fichier → Exporter → Variables : Délimitées par texte.

Convertissez le fichier *.txt résultant dans Unity Pro à l’aide de l’assistant de conversion en choisissant Outils → Convertir partiellement.

Tables d’animation

Si des fichiers de table d’animation figurent dans le répertoire d’exportation de l’application, les tables d’animation seront automatiquement incluses dans le résultat de la conversion.

112 33002516 07/2012

Page 113: 33002516_k01_000_12

Procédure de conversion

Retrait des macros Concept incluses non intentionnellement

Généralités

Si une macro Concept a été incluse dans l’exportation Concept, cette macro est convertie comme s’il s’agissait d’un DFB et apparaît comme tel dans l’arborescence de navigation du projet.

Vous devez supprimer ce DFB, car Unity Pro ne prend pas en charge les macros.

33002516 07/2012 113

Page 114: 33002516_k01_000_12

Procédure de conversion

Valeurs d’initialisation

Généralités

Dans une exportation Concept, les valeurs d’initialisation sont indiquées dans un tableau et décrivent la RAM d’état.

Dans Unity Pro, ce tableau est converti en groupes, c’est-à-dire découpé en séquences contiguës de valeurs non nulles, les valeurs à zéro simple étant tolérées.

Chaque groupe est converti en un tableau individuel, nommé LL_SRAMxxx.

114 33002516 07/2012

Page 115: 33002516_k01_000_12

33002516 07/2012

II

Unity Pro

Blocs de Concept vers Unity Pro

33002516 07/2012

Blocs de Concept vers Unity Pro

Généralités

Cette partie comprend une description des blocs qui ne font pas systématiquement partie de Unity Pro

Toutefois, si ces blocs étaient utilisés sous Concept, ils sont générés durant la conversion du projet de Concept vers Unity Pro pour affecter la fonctionnalité configurée sous Concept dans Unity Pro sur base individuelle.

Contenu de cette partie

Cette partie contient les chapitres suivants :

Chapitre Titre du chapitre Page

7 BYTE_TO_BIT_DFB : Conversion de type 117

8 CREADREG : Lecture permanente de registre 121

9 CWRITREG : Ecriture permanente de registre 129

10 DINT_AS_WORD_DFB : Conversion de type 137

11 DIOSTAT : Statut de la fonction module (DIO) 139

12 GET_TOD : Lecture de l’horodateur (Heure du jour) 141

13 LIMIT_IND_DFB : Limite avec indicateur 145

14 LOOKUP_TABLE1_DFB : Balayer la progression avec une interpolation du 1er degré

149

15 DIOSTAT : Statut de la fonction automate 155

16 READREG : Lecture de registre 171

17 RIOSTAT : Statut de la fonction module (RIO) 179

18 GET_TOD : Réglage de l’horodateur (Heure du jour) 183

19 WORD_AS_BYTE_DFB : Conversion de type 187

20 BYTE_TO_BIT_DFB : Conversion de type 189

21 WRITEREG : Ecriture de registre 193

115

Page 116: 33002516_k01_000_12

Blocs de Concept vers Unity Pro

116 33002516 07/2012

Page 117: 33002516_k01_000_12

33002516 07/2012

7

Unity Pro

BYTE_TO_BIT_DFB

33002516 07/2012

BYTE_TO_BIT_DFB : Conversion de type

Description

Description du fonctionnement

Ce bloc fonction dérivé convertit une valeur d’entrée de type BYTE en huit valeurs de sortie de type BOOL.

Les différents bits de l’octet à l’entrée sont affectés aux sorties en fonction des noms de celles-ci.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD

Représentation :

117

Page 118: 33002516_k01_000_12

BYTE_TO_BIT_DFB

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL BYTE_TO_BIT_DFB_Instance (IN:=BYTE_variable, BIT0=>BOOL_variable1, BIT1=>BOOL_variable2, BIT2=>BOOL_variable3, BIT3=>BOOL_variable4, BIT4=>BOOL_variable5, BIT5=>BOOL_variable6, BIT6=>BOOL_variable7, BIT7=>BOOL_variable8)

Représentation en ST

Représentation :

BYTE_TO_BIT_DFB_Instance (IN:=BYTE_variable, BIT0=>BOOL_variable1, BIT1=>BOOL_variable2, BIT2=>BOOL_variable3, BIT3=>BOOL_variable4, BIT4=>BOOL_variable5, BIT5=>BOOL_variable6, BIT6=>BOOL_variable7, BIT7=>BOOL_variable8) ;

118 33002516 07/2012

Page 119: 33002516_k01_000_12

BYTE_TO_BIT_DFB

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

IN BYTE Entrée

Paramètre Type Signification

BIT0 BOOL Bit de sortie 0

BIT1 BOOL Bit de sortie 1

: : :

BIT7 BOOL Bit de sortie 7

33002516 07/2012 119

Page 120: 33002516_k01_000_12

BYTE_TO_BIT_DFB

120 33002516 07/2012

Page 121: 33002516_k01_000_12

33002516 07/2012

8

Unity Pro

CREADREG

33002516 07/2012

CREADREG : Lecture permanente de registre

Introduction

Ce chapitre décrit le bloc CREADREG.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Description 122

Mode de fonctionnement 125

Description des paramètres 126

Codes d’erreur Modbus Plus 127

121

Page 122: 33002516_k01_000_12

CREADREG

Description

Description de la fonction

Ce bloc fonction dérivé permet de lire une zone de registre en continu. Il lit les données des abonnés adressés par Modbus Plus.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

NOTE : Lorsque vous programmez une fonction CREADREG, il vous faut connaître les procédures de routage utilisées par votre réseau. Les structures des itinéraires de routage Modbus Plus sont décrites en détail dans le " Guide de planification et d’installation du réseau Modbus Plus ".

NOTE : Ce bloc fonction ne gère que l’interface Modbus Plus locale (pas de NOM).

Si vous utilisez un NOM, utilisez le bloc CREAD_REG de la bibliothèque des blocs de communication.

NOTE : Ce bloc fonction n’accepte pas non plus Ethernet TCP/IP et SY/MAX.

Si vous avez besoin d’Ethernet TCP/IP ou SY/MAX, utilisez le module CREAD_REG de la bibliothèque des blocs de communication.

NOTE : Plusieurs exemplaires de ce bloc fonction peuvent être utilisés dans le programme. Il n’est cependant pas possible de procéder à une instanciation multiple de ces exemplaires.

Représentation en FBD

Représentation :

122 33002516 07/2012

Page 123: 33002516_k01_000_12

CREADREG

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL CREADREG_Instance (NODEADDR:=DeviceAddress, ROUTPATH:=RoutingPath, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_READ:=ArrayForValuesRead, STATUS=>ErrorCode)

Représentation en ST

Représentation :

CREADREG_Instance (NODEADDR:=DeviceAddress, ROUTPATH:=RoutingPath, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_READ:=ArrayForValuesRead, STATUS=>ErrorCode;

33002516 07/2012 123

Page 124: 33002516_k01_000_12

CREADREG

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres d’entrée/sortie :

Description des paramètres de sortie :

Paramètre Type Signification

NODEADDR INT Adresse équipement dans le segment du réseau cible

ROUTPATH DINT Itinéraire de routage au segment du réseau cible

SLAVEREG DINT Adresse de décalage du premier registre 4x de l’esclave devant être lu.

NO_REG INT Nombre de registres à lire dans l’esclave

Paramètre Type Signification

REG_READ ANY_ARRAY_WORD Données à lire(Une structure de données doit être déclarée en tant que variable localisée pour les données à lire.)

Paramètre Type Signification

STATUS WORD Code d’erreur

124 33002516 07/2012

Page 125: 33002516_k01_000_12

CREADREG

Mode de fonctionnement

Mode de fonctionnement des blocs CREADREG

Un grand nombre de blocs fonction CREADREG peut être programmé, mais seules quatre opérations de lecture peuvent être actives en même temps. Que celles-ci soient déclenchées par ce bloc fonction ou par d’autres (p. ex. MBP_MSTR, READREG) n’est pas significatif. Tous les blocs fonction utilisent la même session de transaction de données et nécessitent plusieurs cycles de programme pour achever une commande.

L’adresse de routage complète doit comprendre les deux parties suivantes :NODEADDR de l’abonné cible (indépendamment du fait qu’elle se trouve dans le segment local ou qu’elle se trouve dans un autre segment) et l’itinéraire de routage au cas où la connexion se réalise avec des routeurs et passerelles.

L’adresse de routage qui en résulte est composée de ces deux parties d’information.

L’itinéraire de routage est du type de données DINT qui est interprété comme une séquence d’unités d’information à deux caractères. Il n’est pas nécessaire de rajouter " 00 " (par exemple, les deux informations de routage 4711 et 47110000 sont valables, pour NODEADDR 34, l’adresse de routage qui en résulte est 47.11.34.00.00).

NOTE : Ce bloc fonction produit une lourde charge sur le réseau. Il faut donc impérativement contrôler soigneusement la performance du réseau. Si ce dernier est surchargé, le programme devra être restructuré afin de travailler avec le bloc fonction READREG, une variante du présent bloc fonction, qui fonctionne sur demande et non en mode continu.

33002516 07/2012 125

Page 126: 33002516_k01_000_12

CREADREG

Description des paramètres

NODEADDR

Désigne l’adresse de l’abonné dans le segment cible.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

ROUTPATH

Désigne l’itinéraire de routage du segment cible. Les unités d’information à deux caractères vont de 01 à 64 (voir Mode de fonctionnement, page 125). Si l’esclave se trouve dans le segment local du réseau, ROUTPATH devra être mis à " 0 " ou rester déconnecté.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

SLAVEREG

Début de la zone dans laquelle les données sont lues, dans l’esclave cible. La zone source réside toujours dans la zone de registre 4x. SLAVEREG voit l’adresse source comme un décalage à l’intérieur de la zone 4x. Le "4" de tête doit être omis (p. ex. 59 (contenu de la variable ou valeur du littéral) = 40059).

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

NO_REG

Nombre de registres à lire dans le processeur esclave (1 à 100).

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

STATUS

Code d’erreur, voir Codes d’erreur Modbus Plus, page 127

Ce paramètre peut être indiqué comme adresse, variable localisée ou variable non localisée.

REG_READ

Pour ce paramètre, un ANY_ARRAY_WORD de la taille de la transmission demandée doit être spécifié (≥ NO_REG). Le nom de ce tableau est transmis comme paramètre. Si le tableau est défini sur une taille trop réduite, la quantité de données transmise sera limitée par la place proposée dans le tableau.

Ce paramètre doit être indiqué comme variable localisée.

126 33002516 07/2012

Page 127: 33002516_k01_000_12

CREADREG

Codes d’erreur Modbus Plus

Forme du code d’erreur de fonction

La forme du code d’erreur de fonction de Modbus Plus est Mmss où :M est le code de poids fortm est le code de poids faibless est un sous-code

Code d’erreur hexadécimal

Code d’erreur hexadécimal de Modbus Plus :

Code d’erreur en Hex

Signification

1001 Abandon par l’utilisateur

2001 Détection d’un type d’opération non géré dans le bloc de commande

2002 Un ou plusieurs paramètres du bloc de commande a (ont) été modifié(s) lorsque l’élément MSTR était actif (ne vaut que pour les opérations dont l’achèvement nécessite plusieurs cycles). Les paramètres du bloc de commande ne doivent être modifiés que lorsque l’élément MSTR n’est pas actif.

2003 Valeur incorrecte dans le champ Longueur du bloc de commande

2004 Valeur incorrecte dans la zone Décalage du bloc de commande

2005 Valeur incorrecte dans les zones Longueur et Décalage du bloc de commande

2006 Zone de données incorrecte sur l’esclave

2007 Zone de réseau incorrecte sur l’esclave

2008 Itinéraire de routage de réseau incorrect sur l’esclave

2009 Itinéraire de routage équivalent à votre propre adresse

200A Tentative d’extraction de plus de mots de données globales que disponibles

30ss Réponse inhabituelle de l’esclave Modbus (voir page 128)

4001 Réponse inconséquente de l’esclave Modbus

5001 Réponse inconséquente du réseau

6mss Erreur d’itinéraire de routage (voir page 128)Le sous-champ indique l’endroit où l’erreur est survenue (la valeur 0 signifie abonné local, la valeur 2 signifie deuxième appareil sur l’itinéraire, etc.).

33002516 07/2012 127

Page 128: 33002516_k01_000_12

CREADREG

Valeur hexadécimale ss du code d’erreur 30ss

Valeur hexadécimale ss du code d’erreur 30ss :

Valeur hexadécimale ss du code d’erreur 6mss

NOTE : Le sous-champ m du code d’erreur 6mss est un indice dans l’information de routage indiquant où une erreur a été détectée (une valeur 0 indique l’abonné local, un 2 le deuxième appareil sur l’itinéraire, etc.).

Le sous-champ ss du code d’erreur 6mss se présente comme suit :

Valeur hex. ss

Signification

01 L’esclave ne gère pas l’opération sollicitée.

02 Des registres esclaves inexistants ont été demandés.

03 Une valeur de donnée non autorisée a été demandée.

05 L’esclave a accepté une commande de programme de longue durée.

06 La fonction ne peut pas être exécutée en ce moment : commande longue en cours.

07 L’esclave a rejeté une commande de programme de longue durée.

Valeur hexadécimale ss

Signification

01 Pas de réception de réponse

02 Accès refusé au programme

03 Abonné hors tension et pas en mesure de communiquer

04 Réception d’une réponse inhabituelle

05 Sessions de données d’abonné routeur occupées

06 L’esclave vient de se planter.

07 Adresse cible incorrecte

08 Type d’abonné non autorisé dans l’itinéraire de routage

10 L’esclave a rejeté la commande.

20 L’esclave a oublié la transaction activée.

40 Réception d’un chemin d’accès de sortie maître inattendu

80 Réception d’une réponse inattendue

F001 Un abonné cible incorrect a été spécifié pour l’opération MSTR.

128 33002516 07/2012

Page 129: 33002516_k01_000_12

33002516 07/2012

9

Unity Pro

CWRITEREG

33002516 07/2012

CWRITREG : Ecriture permanente de registre

Introduction

Ce chapitre décrit le bloc CWRITREG.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Description 130

Mode de fonctionnement 133

Description de paramètres 134

129

Page 130: 33002516_k01_000_12

CWRITEREG

Description

Description du fonctionnement

Ce bloc fonction dérivé permet d’écrire une zone de registre en continu. Il transfère des données depuis l’API à un équipement cible esclave spécifié via Modbus Plus.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

NOTE : Lorsque vous programmez une fonction CWRITREG, il vous faut connaître les procédures de routage utilisées par votre réseau. Les structures des itinéraires de routage Modbus Plus sont décrites en détail dans le " Guide de planification et d’installation du réseau Modbus Plus ".

NOTE : Ce bloc fonction ne gère que l’interface Modbus Plus locale (pas de NOM).

Si vous utilisez un NOM, utilisez le bloc CWRITE_REG de la bibliothèque des blocs de communication.

NOTE : Ce bloc fonction n’accepte pas non plus Ethernet TCP/IP et SY/MAX.

Si vous avez besoin d’Ethernet TCP/IP ou SY/MAX, utilisez le module CWRITE_REG de la bibliothèque des blocs de communication.

NOTE : Plusieurs exemplaires de ce bloc fonction peuvent être utilisés dans le programme. Il n’est cependant pas possible de procéder à une instanciation multiple de ces exemplaires.

Représentation en FBD

Représentation :

130 33002516 07/2012

Page 131: 33002516_k01_000_12

CWRITEREG

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL CWRITREG_Instance (NODEADDR:=DeviceAddress, ROUTPATH:=RoutingPath, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_WRIT:=SourceDataArea, STATUS=>ErrorCode)

Représentation en ST

Représentation :

CWRITREG_Instance (NODEADDR:=DeviceAddress, ROUTPATH:=RoutingPath, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_WRIT:=SourceDataArea, STATUS=>ErrorCode) ;

33002516 07/2012 131

Page 132: 33002516_k01_000_12

CWRITEREG

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres d’entrée/sortie :

Description des paramètres de sortie :

Paramètre Type Signification

NODEADDR INT Adresse équipement dans le segment du réseau cible

ROUTPATH DINT Itinéraire de routage au segment du réseau cible

SLAVEREG DINT Adresse de décalage du premier registre 4x de l’esclave dans lequel il faut écrire.

NO_REG INT Nombre de registres à écrire dans l’esclave

Paramètre Type Signification

REG_WRIT ANY_ARRAY_WORD Champ de données source(Une structure de données doit être déclarée en tant que variable localisée pour les données source.)

Paramètre Type Signification

STATUS WORD Code d’erreur

132 33002516 07/2012

Page 133: 33002516_k01_000_12

CWRITEREG

Mode de fonctionnement

Mode de fonctionnement des blocs CWRITREG

Un nombre illimité de blocs fonction CWRITREG peut être programmé simultanément, mais seules quatre opérations d’écriture peuvent être actives en même temps. Que celles-ci soient déclenchées par ce bloc fonction ou par d’autres (p. ex. MBP_MSTR, WRITEREG) n’est pas significatif. Tous les blocs fonction utilisent la même session de transaction de données et nécessitent plusieurs cycles de programme pour achever une commande.

Si plusieurs blocs fonction CWRITREG sont utilisés dans une application, ils doivent se différencier entre eux au moins par les paramètres NO_REG ou REG_WRIT.

L’adresse de routage complète doit comprendre les deux parties suivantes :NODEADDR de l’abonné cible (indépendamment du fait qu’elle se trouve dans le segment local ou qu’elle se trouve dans un autre segment) et l’itinéraire de routage au cas où la connexion se réalise avec des routeurs et passerelles.

L’adresse de routage qui en résulte est composée de ces deux parties d’information.

L’itinéraire de routage est du type de données DINT qui est interprété comme une séquence d’unités d’information à deux caractères. Il n’est pas nécessaire de rajouter " 00 " (par exemple, les deux informations de routage 4711 et 47110000 sont valables, pour NODEADDR 34, l’adresse de routage qui en résulte est 47.11.34.00.00).

NOTE : Ce bloc fonction produit une lourde charge sur le réseau. Il faut donc impérativement contrôler soigneusement la performance du réseau. Si ce dernier est surchargé, le programme devra être restructuré afin de travailler avec le bloc fonction WRITEREG, une variante du présent bloc fonction, qui fonctionne sur demande et non en mode continu.

33002516 07/2012 133

Page 134: 33002516_k01_000_12

CWRITEREG

Description de paramètres

NODEADDR

Désigne l’adresse de l’abonné dans le segment cible.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

ROUTPATH

Désigne l’itinéraire de routage du segment cible. Les unités d’information à deux caractères vont de 01 à 64 (voir Mode de fonctionnement, page 133). Si l’esclave se trouve dans le segment local du réseau, ROUTPATH devra être mis à " 0 " ou rester déconnecté.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

SLAVEREG

Début de la zone cible dans laquelle les données sont écrites dans l’esclave adressé. La zone cible réside toujours dans la zone de registre 4x. SLAVEREG voit l’adresse cible comme un décalage à l’intérieur de la zone 4x. Le "4" de tête doit être omis (p. ex. 59 (contenu de la variable ou valeur du littéral) = 40059).

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

NO_REG

Nombre de registres à écrire dans le processeur esclave (1 à 100).

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

134 33002516 07/2012

Page 135: 33002516_k01_000_12

CWRITEREG

REG_WRIT

Pour ce paramètre, un ANY_ARRAY_WORD de la taille de la transmission à effectuer doit être spécifié (≥ NO_REG) pour servir de zone de données source. Le nom de ce tableau est transmis comme paramètre. Si le tableau est défini sur une taille trop réduite, la quantité de données transmise sera limitée par la place proposée dans le tableau.

Ce paramètre doit être indiqué comme variable localisée.

STATUS

Affiche le code d’erreur MSTR, voir Codes d’erreur Modbus Plus, page 127

Ce paramètre peut être indiqué comme adresse, variable localisée ou variable non localisée.

33002516 07/2012 135

Page 136: 33002516_k01_000_12

CWRITEREG

136 33002516 07/2012

Page 137: 33002516_k01_000_12

33002516 07/2012

10

Unity Pro

DINT_AS_WORD_DFB

33002516 07/2012

DINT_AS_WORD_DFB : Conversion de type

Description

Description du fonctionnement

Ce bloc fonction dérivé convertit une valeur d’entrée de type DINT en deux valeurs de sortie de type WORD.

Les différents mots de l’entrée DINT sont affectés aux sorties en fonction des noms de celles-ci.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

137

Page 138: 33002516_k01_000_12

DINT_AS_WORD_DFB

Représentation en IL

Représentation :

CAL DINT_AS_WORD_DFB_Instance (IN:=DINT_variable, LOW=>LowWord, HIGH=>HighWord)

Représentation en ST

Représentation :

DINT_AS_WORD_DFB_Instance (IN:=DINT_variable, LOW=>LowWord, HIGH=>HighWord) ;

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

IN DINT Entrée

Paramètre Type Signification

LOW WORD Mot de poids faible

HIGH WORD Mot de poids fort

138 33002516 07/2012

Page 139: 33002516_k01_000_12

33002516 07/2012

11

Unity Pro

DIOSTAT

33002516 07/2012

DIOSTAT : Statut de la fonction module (DIO)

Description

Description du fonctionnement

Ce bloc fonction dérivé indique l’état de fonctionnement des modules d’E/S d’une station d’E/S (DIO).

Chacun des modules (emplacement) d’une station d’E/S est représenté par un bit de la sortie " Etat ". Le bit de la sortie " Etat " situé le plus à gauche correspond à l’emplacement gauche de la station d’E/S.

NOTE : Lorsqu’un module de station d’E/S est configuré et qu’il fonctionne correctement, le bit correspondant est mis à " 1 ".

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD

Représentation :

139

Page 140: 33002516_k01_000_12

DIOSTAT

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL DIOSTAT_Instance (LINK:=LinkNumber, DROP:=DropNumber, STATUS=>Status)

Représentation en ST

Représentation :

DIOSTAT_Instance (LINK:=LinkNumber, DROP:=DropNumber, STATUS=>Status) ;

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

LINK UINT N° de liaison (0...2)

DROP UINT N° de station d’E/S (1...64)

Paramètre Type Signification

STATUS WORD Chaîne de bits d’état (voir page 139) d’une station d’E/S

140 33002516 07/2012

Page 141: 33002516_k01_000_12

33002516 07/2012

12

Unity Pro

GET_TOD

33002516 07/2012

GET_TOD : Lecture de l’horodateur (Heure du jour)

Description

Description du fonctionnement

Ce bloc fonction dérivé parcourt (avec les autres blocs fonction du groupe HSBY) la configuration de l’API correspondant d’après les composants qui lui sont nécessaires. Ces composants se réfèrent toujours au matériel effectivement connecté.

C’est pourquoi un comportement correct de ce bloc fonction ne peut être assuré sur les simulateurs.

Le bloc fonction GET_TOD sert à lire l’horloge du matériel, si les registres correspondants ont été mis à disposition au sein de la configuration. Si ces registres ne sont pas disponibles, la sortie TOD_CNF est mise à " 0 ".

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD

Représentation :

141

Page 142: 33002516_k01_000_12

GET_TOD

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL GET_TOD_Instance (TOD_CNF=>RegisterPresentFlag, D_WEEK=>DayOfWeek, MONTH=>Byte_variable2, DAY=>Byte_variable3, YEAR=>Byte_variable4, HOUR=>Byte_variable5, MINUTE=>Byte_variable6, SECOND=>Byte_variable7)

Représentation en ST

Représentation :

GET_TOD_Instance (TOD_CNF=>RegisterPresentFlag, D_WEEK=>DayOfWeek, MONTH=>Byte_variable2, DAY=>Byte_variable3, YEAR=>Byte_variable4, HOUR=>Byte_variable5, MINUTE=>Byte_variable6, SECOND=>Byte_variable7) ;

142 33002516 07/2012

Page 143: 33002516_k01_000_12

GET_TOD

Description des paramètres

Description des paramètres de sortie :

Paramètre Type Signification

TOD_CNF BOOL " 1 " = le registre 4x pour l’horloge du matériel a été trouvé et l’horloge est prête à fonctionner. " 0 " = l’heure est momentanément réglée. Dans ce cas, les autres sorties conservent leurs valeurs actuelles.

D_WEEK BYTE Jour de la semaine, 1 = dimanche .. 7 = samedi

MONTH BYTE Mois 1 à 12

DAY BYTE Jour 1 à 31

YEAR BYTE Année 0 à 99

HOUR BYTE Heure 0 à 23

MINUTE BYTE Minute 0 à 59

SECOND BYTE Seconde 0 à 59

33002516 07/2012 143

Page 144: 33002516_k01_000_12

GET_TOD

144 33002516 07/2012

Page 145: 33002516_k01_000_12

33002516 07/2012

13

Unity Pro

LIMIT_IND_DFB

33002516 07/2012

LIMIT_IND_DFB : Limite avec indicateur

Description

Description du fonctionnement

Ce bloc fonction dérivé transmet la valeur d’entrée inchangée (Input) à la sortie Output quand la valeur d’entrée reste comprise entre la valeur minimale (LimitMinimum) et la valeur maximale (LimitMaximum). Quand la valeur d’entrée (Input) est en dessous de la valeur minimale (LimitMinimum), la valeur minimale est transmise à la sortie. Quand la valeur d’entrée (Input) dépasse la valeur maximale (LimitMaximum), la valeur maximale est transmise à la sortie.

Le dépassement de la valeur minimale ou maximale est signalé. Quand la valeur d’entrée (Input) reste en dessous de la valeur d’entrée (LimitMinimum), la sortie (MinimumViolation) passe à " 1 ". Quand la valeur d’entrée (Input) dépasse la valeur d’entrée (LimitMaximum), la sortie (MaximumViolation) passe à " 1 ".

Les types de données des valeurs d’entrée (LimitMinimum, Input, LimitMaximum) et celui de la valeur de sortie (Output) doivent être identiques.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Formule

Formule du bloc :

OUT = IN, si (IN ≤ MX) & IN ≥ MN

OUT = MN, si (IN < MN)

OUT = MX, si (IN > MX)

MN_IND = 0, si IN ≥ MN

MN_IND = 1, si IN < MN

MX_IND = 0, si IN ≤ MX

MX_IND = 1, si IN > MX

145

Page 146: 33002516_k01_000_12

LIMIT_IND_DFB

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL LIMIT_IND_DFB (MN:=LimitMinimum, IN:=INPUT, MX:=LimitMaximum, MN_IND=>MinimumViolation, OUT=>Output, MX_IND=>MaximumViolation)

Représentation en ST

Représentation :

LIMIT_IND_DFB (MN:=LimitMinimum, IN:=INPUT, MX:=LimitMaximum, MN_IND=>MinimumViolation, OUT=>Output, MX_IND=>MaximumViolation) ;

146 33002516 07/2012

Page 147: 33002516_k01_000_12

LIMIT_IND_DFB

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

LimitMinimum BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME

Limitation de valeur minimale

Input BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME

Entrée

LimitMaximum BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME

Limitation de valeur maximale

Paramètre Type Signification

MinimumViolation BOOL Affichage du dépassement de la valeur minimale

Output BOOL, BYTE, WORD, DWORD, INT, DINT, UINT, UDINT, REAL, TIME

Sortie

MaximumViolation BOOL Affichage du dépassement de la valeur maximale

33002516 07/2012 147

Page 148: 33002516_k01_000_12

LIMIT_IND_DFB

148 33002516 07/2012

Page 149: 33002516_k01_000_12

33002516 07/2012

14

Unity Pro

LOOKUP_TABLE1_DFB

33002516 07/2012

LOOKUP_TABLE1_DFB : Balayer la progression avec une interpolation du 1er degré

Introduction

Ce chapitre décrit le bloc LOOKUP_TABLE1_DFB.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Description 150

Description détaillée 152

149

Page 150: 33002516_k01_000_12

LOOKUP_TABLE1_DFB

Description

Description du fonctionnement

Ce bloc fonction linéarise les courbes caractéristiques par interpolation. Le bloc fonction fonctionne avec une distance entre points de calcul variable.

Le nombre des entrées XiYi peut augmenter par modification de la taille verticale du cadre de bloc à 30. Ceci correspond à un maximum de 15 paires de points de calcul.

Le nombre d’entrées doit être un nombre pair.

Les valeurs X doivent être dans l’ordre croissant.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

150 33002516 07/2012

Page 151: 33002516_k01_000_12

LOOKUP_TABLE1_DFB

Représentation en IL

Représentation :

CAL LOOKUP_TABLE1_DFB_Instance (X:=InputVariable, XiYi1:=X_Coord_1_SupportPoint, XiYi2:=Y_Coord_1_SupportPoint, Y=>OutputVariable, QXHI=>IndicatorSignalX>Xm, QXLO=>IndicatorSignalX<X1)

Représentation en ST

Représentation :

LOOKUP_TABLE1_DFB_Instance (X:=InputVariable, XiYi1:=X_Coord_1_SupportPoint, XiYi2:=Y_Coord_1_SupportPoint, Y=>OutputVariable, QXHI=>IndicatorSignalX>Xm, QXLO=>IndicatorSignalX<X1) ;

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

XiYi1 REAL Coordonnées X 1er point de calcul

XiYi2 REAL Coordonnées Y 1er point de calcul

XiYin REAL Coordonnées X m/2ème point de calcul

XiYim REAL Coordonnées Y m/2ème point de calcul

X REAL Grandeur d’entrée

Paramètre Type Signification

Y REAL Grandeur de sortie

QXHI BOOL Affichage : X > Xm

QXLO BOOL Affichage X < X1

33002516 07/2012 151

Page 152: 33002516_k01_000_12

LOOKUP_TABLE1_DFB

Description détaillée

Description des paramètres

Deux entrées consécutives (XiYi) représentent une paire de points de calcul. La première entrée XiYi correspond à X1, la suivante à Y1, celle d’après à X2, etc.

Pour la valeur d’entrée au choix se trouvant en X et située entre ces points de calcul, la valeur de sortie Y correspondante est interpolée en considérant de manière linéaire le tracé polygonal entre les points de calcul.

Si X < X 1, Y = Y 1

Si X > X m, Y = Y m

Quand la valeur à l’entrée X dépasse la valeur du dernier point de calcul Xm, la sortie QXHI passe à " 1 ".

Quand la valeur à l’entrée X n’atteint pas la valeur du premier point de calcul X1, la sortie QXLO passe à " 1 ".

Principe de l’interpolation

Tracé polygonal avec interpolation de 1er ordre

152 33002516 07/2012

Page 153: 33002516_k01_000_12

LOOKUP_TABLE1_DFB

Interpolation

Pour un point Y, on a l’algorithme suivant :

pour X i ≤ X ≤ X i+1 et i = 1 ... (m-1)

Condition : X 1 ≤ X 2 ≤ ... ≤ X i ≤ X i+1 ≤ ... ≤ X m-1 ≤ X m

Les valeurs X doivent être dans l’ordre croissant.

Deux valeurs X consécutives peuvent être identiques. Il en résulte une possibilité de courbe discontinue.

A cette occasion, on distingue le cas particulier suivant :

Y = 0,5 x (Y i + Y i+1)

pour

X i = X = X i+1 et i = 1 ... (m-1)

33002516 07/2012 153

Page 154: 33002516_k01_000_12

LOOKUP_TABLE1_DFB

154 33002516 07/2012

Page 155: 33002516_k01_000_12

33002516 07/2012

15

Unity Pro

PLCSTAT

33002516 07/2012

DIOSTAT : Statut de la fonction automate

Introduction

Ce chapitre décrit le bloc PLCSTAT.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Description 156

Types de données dérivés 158

Etat SPS (PLC_STAT) 160

Etat RIO (RIO_STAT) pour Quantum 162

Etat DIO (DIO_STAT) 164

155

Page 156: 33002516_k01_000_12

PLCSTAT

Description

Description du fonctionnement

Ce bloc fonction dérivé lit les états internes et les bits d’erreur d’un API Quantum et copie ces données dans les structures de données assignées aux sorties correspondantes.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Seules les données dont le bit d’entrée (PLC_READ, RIO_READ, DIO_READ) a la valeur " 1 " sont lues.

Evaluation

Il est possible d’évaluer PLC_STAT (état de l’API), RIO_STAT (état d’E/S) et DIO_STAT (état de communication d’E/S).

NOTE : Le nom de la sortie DIO_STAT est trompeur. Cette sortie se réfère exclusivement aux informations d’état Remote I/O Drop (S908) et non pas à l’état Distributed I/O. Pour lire l’état Distributed I/O, servez-vous du bloc fonction DIOSTAT (voir page 139).

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

156 33002516 07/2012

Page 157: 33002516_k01_000_12

PLCSTAT

Représentation en IL

Représentation :

CAL PLCSTAT_Instance (PLC_READ:=CopyPLCStatusFlag, RIO_READ:=CopyRIOStatusFlag, DIO_READ:=CopyDIOStatusFlag, PLC_STAT=>PLC_IO_Status, RIO_STAT=>RIO_IO_Status, DIO_STAT=>DIO_IO_Status)

Représentation en ST

Représentation :

PLCSTAT_Instance (PLC_READ:=CopyPLCStatusFlag, RIO_READ:=CopyRIOStatusFlag, DIO_READ:=CopyDIOStatusFlag, PLC_STAT=>PLC_IO_Status, RIO_STAT=>RIO_IO_Status, DIO_STAT=>DIO_IO_Status) ;

Description des paramètres PLCSTAT

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

PLC_READ BOOL 1 = copie l’état de l’API provenant du tableau d’états sur la sortie PLC_STAT.

RIO_READ BOOL 1 = copie l’état RIO provenant du tableau d’états sur la sortie RIO_STAT.

DIO_READ BOOL 1 = copie l’état DIO provenant du tableau d’états sur la sortie DIO_STAT.

Paramètre Type Signification

PLC_STAT PLCSTATE Contient l’état de l’API

RIO_STAT RIOSTATE Contient l’état RIO (état d’E/S) de Quantum

DIO_STAT DIOSTATE Contient l’état DIO (état de communication d’E/S) de QuantumRemarque : Le nom de cette sortie est trompeur. Cette sortie se réfère exclusivement aux informations d’état Remote I/O Drop (S908) et non pas à l’état Distributed I/O. Pour lire l’état Distributed I/O, servez-vous du bloc fonction DIOSTAT (voir page 139).

33002516 07/2012 157

Page 158: 33002516_k01_000_12

PLCSTAT

Types de données dérivés

Description d’éléments PLCSTATE

Description des éléments PLCSTATE :

Description d’éléments RIOSTATE

Description des éléments RIOSTATE :

Elément Type Signification

word1 WORD Etat UC

word2 WORD Etat de la redondance d’UC

word3 WORD Etat API

word4 WORD Etat du RIO

word5 WORD Réserve

word6 WORD Réserve

word7 WORD Réserve

word8 WORD Réserve

word9 WORD Réserve

word10 WORD Réserve

word11 WORD Réserve

Elément Type Signification

word1 WORD Station d’E/S 1, embase 1

word2 WORD Station d’E/S 1, embase 2

... ... ...

word5 WORD Station d’E/S 1, embase 5

word6 WORD Station d’E/S 2, embase 1

word7 WORD Station d’E/S 2, embase 2

... ... ...

word160 WORD Station d’E/S 32, embase 5

158 33002516 07/2012

Page 159: 33002516_k01_000_12

PLCSTAT

Description d’éléments DIOSTATE

Description des éléments DIOSTATE :

Elément Type Signification

word1 WORD Numéros d’erreurs de réarmement :

word2 WORD Erreur câble A

word3 WORD Erreur câble A

word4 WORD Erreur câble A

word5 WORD Erreur câble B

word6 WORD Erreur câble B

word7 WORD Erreur câble B

word8 WORD Etat de la communication globale

word9 WORD Compte totalisateur d’erreurs pour câble A

word10 WORD Compte totalisateur d’erreurs pour câble B

word11 WORD Station d’E/S 1 état de fonctionnement et compteur de répétitions (premier mot)

word12 WORD Station d’E/S 1 état de fonctionnement et compteur de répétitions (deuxième mot)

word13 WORD Station d’E/S 1 état de fonctionnement et compteur de répétitions (troisième mot)

word14 WORD Station d’E/S 2 état de fonctionnement et compteur de répétitions (premier mot)

... ... ...

word104 WORD Station d’E/S 32 état de fonctionnement et compteur de répétitions (premier mot)

word105 WORD Station d’E/S 32 état de fonctionnement et compteur de répétitions (deuxième mot)

word106 WORD Station d’E/S 32 état de fonctionnement et compteur de répétitions (troisième mot)

33002516 07/2012 159

Page 160: 33002516_k01_000_12

PLCSTAT

Etat SPS (PLC_STAT)

Généralités

NOTE : Ces informations correspondent aux mots 1 à 21 du tableau des états de la boîte de dialogue Etat de l’API.

Lorsque les bits sont à 1, les conditions sont vraies.

Etat de l’API (PLCSTATE : word1)

Occupation des bits :

Etat de la redondance d’UC (PLCSTATE : word2)

Occupation des bits :

Bit Occupation

10 Témoin " Run " éteint

11 Protection mémoire désactivée

12 Pile usée

Bit Occupation

1 CHS 110/S911/R911 présente et OK

11 0 = commutateur CHS sur A1 = commutateur CHS sur B

12 0 = les API ont la même logique.1 = les API ont une logique différente.

13, 14 Etat du système distant

15, 16 Etat de système local

160 33002516 07/2012

Page 161: 33002516_k01_000_12

PLCSTAT

Etat de l’API (PLCSTATE : word3)

Occupation des bits :

Etat du RIO (PLCSTATE : word4)

Occupation des bits :

Bit Occupation

1 Premier cycle

Bit Occupation

1 IOP défectueux

2 Timeout IOP

3 Bouclage IOP

4 Erreur de mémoire IOP

13-16 00 IO n’a pas répondu01 pas de réponse02 erreur de bouclage

33002516 07/2012 161

Page 162: 33002516_k01_000_12

PLCSTAT

Etat RIO (RIO_STAT) pour Quantum

Fonctions générales

NOTE : Ces informations correspondent aux mots 12 à 171 du tableau des états de la boîte de dialogue d’état de l’API.

Ces mots indiquent l’état de fonctionnement des modules d’E/S.

Cinq mots sont réservés à chacune des 32 stations d’E/S. Chacun de ces mots correspond à l’une des 2 embases possibles (au maximum) dans chaque station d’E/S.

Affichage de fonctionnement du matériel Quantum

Chacune des embases du matériel Quantum peut contenir jusqu’à 15 modules d’E/S (à l’exception de la première embase ; celle-ci contient au maximum 14 modules d’E/S). Les bits 1 à 16 dans chaque mot représentent le fonctionnement des modules d’E/S correspondants dans les embases.

Etat de fonctionnement des modules d’E/S

Occupation des bits :

Conditions pour un affichage de fonctionnement correct

Afin qu’un module d’E/S puisse indiquer un fonctionnement correct, quatre conditions doivent être remplies :

Le trafic de l’emplacement doit être surveillé.L’emplacement doit être autorisé pour le module installé.Il doit exister une communication valide entre le module et l’interface RIO des stations RIO.Il doit exister une communication valide entre l’interface RIO de la station RIO et le processeur d’E/S de l’API.

Bit Occupation

1 Emplacement 1

2 Emplacement 2

... ...

16 Emplacement 16

162 33002516 07/2012

Page 163: 33002516_k01_000_12

PLCSTAT

Mots d’état pour les panneaux de commande MMI

Les états des panneaux de commande à 32 éléments et des consoles PanelMate d’un réseau RIO peuvent également être contrôlés à l’aide d’un mot d’état de fonction d’E/S. Les panneaux de commande se trouvent à l’emplacement 4 d’une embase d’E/S et peuvent être surveillés par le bit 4 du mot d’état correspondant. Un PanelMate sur RIO se trouve à l’emplacement 1 de l’embase 1 de la station d’E/S et peut être surveillé par le bit 1 du premier mot d’état de la station d’E/S.

NOTE : La surveillance de l’état de la communication du clavier ASCII peut s’effectuer par les codes d’erreur des instructions de lecture/écriture ASCII.

33002516 07/2012 163

Page 164: 33002516_k01_000_12

PLCSTAT

Etat DIO (DIO_STAT)

Généralités

NOTE : Ces informations correspondent aux mots 172 à 277 du tableau des états de la boîte de dialogue d’état de l’API.

Ces mots contiennent l’état de la communication système d’E/S (état DIO). Les mots 1 à 10 sont des mots d’état globaux. Dans les 96 mots restants, trois sont affectés à chacune des stations d’E/S (maximum 32 stations).

word1 mémorise les codes d’erreurs à la mise sous tension. Ce mot est toujours à 0 lorsque le système fonctionne. Si une erreur survient, l’API ne démarre pas, mais génère un état d’arrêt de l’API (word5 de PLC_STAT).

Lorsque les bits sont à 1, les conditions sont vraies.

Codes d’erreurs à la mise sous tension (DIOSTATE : word1)

Lorsque les bits sont à 1, les conditions sont vraies.

Codes d’erreurs à la mise sous tension :

Code Erreur Signification (lieu de l’erreur)

01 BADTCLEN Longueur de l’affectation des E/S

02 BADLNKNUM Numéro de liaison RIO

03 BADNUMDPS Nombre de stations d’E/S dans l’affectation des E/S

04 BADTCSUM Somme de contrôle de l’affectation des E/S

10 BADDDLEN Longueur du descripteur de station d’E/S

11 BADDRPNUM Numéro de station d’E/S

12 BADHUPTIM Temps de maintien station d’E/S

13 BADASCNUM Numéro de port ASCII

14 BADNUMODS Nombre de modules de la station d’E/S

15 PRECONDRP Station d’E/S déjà configurée

16 PRECONPRT Port déjà configuré

17 TOOMNYOUT Plus de 1024 points de sortie

18 TOOMNYINS Plus de 1024 points d’entrée

20 BADSLTNUM Adresse d’emplacement du module

21 BADRCKNUM Adresse du châssis/de l’embase

22 BADOUTBC Nombre d’octets de sortie

23 BADINBC Nombre d’octets d’entrée

25 BADRF1MAP Premier numéro de référence

26 BADRF2MAP Deuxième numéro de référence

164 33002516 07/2012

Page 165: 33002516_k01_000_12

PLCSTAT

Etat du câble A (DIOSTATE : word2, word3, word4)

Occupation des bits pour word2 :

Occupation des bits pour word3 :

27 NOBYTES Pas d’octet d’entrée ou de sortie

28 BADDISMAP Bit d’E/S interne pas sur une limite de 16 bits

30 BADODDOUT Module de sortie impair dépareillé

31 BADODDIN Module d’entrée impair dépareillé

32 BADODDREF Référence de module impair dépareillé

33 BAD3X1XRF Référence 1x après registre 3x

34 BADDMYMOD Référence de module factice déjà utilisée

35 NOT3XDMY Module 3x pas de module vide

36 NOT4XDMY Module 4x pas de module vide

40 DMYREAL1X Module factice, puis module 1x réel

41 REALDMY1X Module réel, puis module factice 1x

42 DMYREAL3X Module factice, puis module 3x réel

43 REALDMY3X Module réel, puis module factice 3x

Code Erreur Signification (lieu de l’erreur)

Bit Occupation

1 - 8 Compte les erreurs de trame

9 - 16 Compte les débordements de réception DMA

Bit Occupation

1 - 8 Compte les erreurs de réception

9 - 16 Compte les mauvaises réceptions de station d’E/S

33002516 07/2012 165

Page 166: 33002516_k01_000_12

PLCSTAT

Occupation des bits pour word4 :

Etat du câble B (DIOSTATE : word5, word6, word7)

Occupation des bits pour word5 :

Occupation des bits pour word6 :

Occupation des bits pour word7 :

Bit Occupation

1 1 = trame trop courte

2 1 = pas de fin de trame

13 1 = erreur CRC

14 1 = erreur d’alignement

15 1 = erreur de débordement

Bit Occupation

1 - 8 Compte les erreurs de trame

9 - 16 Compte les débordements de réception DMA

Bit Occupation

1 - 8 Compte les erreurs de réception

9 - 16 Compte les mauvaises réceptions de station d’E/S

Bit Occupation

1 1 = trame trop courte

2 1 = pas de fin de trame

13 1 = erreur CRC

14 1 = erreur d’alignement

15 1 = erreur de débordement

166 33002516 07/2012

Page 167: 33002516_k01_000_12

PLCSTAT

Etat de la communication globale (DIOSTATE : word8)

Lorsque les bits sont à 1, les conditions sont vraies.

Occupation des bits pour word8 :

Compte totalisateur d’erreurs pour le câble A (DIOSTATE : word9)

Lorsque les bits sont à 1, les conditions sont vraies.

Occupation des bits pour word9 :

Compte totalisateur d’erreurs pour le câble B (DIOSTATE : word10)

Lorsque les bits sont à 1, les conditions sont vraies.

Occupation des bits pour word10 :

Bit Occupation

1 Affichage du fonctionnement de comm.

2 Etat câble A

3 Etat câble B

5 - 8 Compteur des communications perdues

9 - 16 Compteur totalisateur de répétitions

Bit Occupation

1 - 8 Compte les erreurs identifiées

9 - 16 Compte les réponses nulles

Bit Occupation

1 - 8 Compte les erreurs identifiées

9 - 16 Compte les réponses nulles

33002516 07/2012 167

Page 168: 33002516_k01_000_12

PLCSTAT

Etat du RIO (DIOSTATE : word11 à word106)

Les mots 11 à 106 sont utilisés pour décrire l’état de la station RIO ; trois mots d’état sont prévus pour chaque station d’E/S.

Le premier mot de chaque groupe de trois indique l’état de communication de la station E/S correspondante :

Le deuxième mot de chaque groupe de trois est le compteur totalisateur d’erreurs de station d’E/S sur le câble A de la station d’E/S correspondante :

Bit Occupation

1 Santé de la communication

2 Etat câble A

3 Etat câble B

5 - 8 Compteur des communications perdues

9 - 16 Compteur totalisateur de répétitions

Bit Occupation

1 - 8 Au moins une erreur dans les mots 2 à 4

9 - 16 Compte les réponses nulles

168 33002516 07/2012

Page 169: 33002516_k01_000_12

PLCSTAT

Le troisième mot de chaque groupe de trois est le compteur totalisateur d’erreurs de station d’E/S sur le câble B pour la station d’E/S correspondante :

NOTE : word11 à word13 sont occupés de la manière suivante pour les API sur lesquels la station d’E/S 1 est réservée à des E/S locales :

word11 indique l’état général de la station d’E/S :

word12 est utilisé comme compteur d’erreurs de bus d’E/S 16 bits.

word13 est utilisé comme compteur de répétitions de bus d’E/S 16 bits.

Bit Occupation

1 - 8 Au moins une erreur dans les mots 5 à 7

9 - 16 Compte les réponses nulles

Bit Occupation

1 Tous les modules OK

9 - 16 Compte le nombre de fois qu’un module n’a pas été considéré OK ; dépassement du compteur à 255

33002516 07/2012 169

Page 170: 33002516_k01_000_12

PLCSTAT

170 33002516 07/2012

Page 171: 33002516_k01_000_12

33002516 07/2012

16

Unity Pro

READREG

33002516 07/2012

READREG : Lecture de registre

Introduction

Ce chapitre décrit le bloc READREG.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Description 172

Mode de fonctionnement 175

Description des paramètres 176

171

Page 172: 33002516_k01_000_12

READREG

Description

Description du fonctionnement

En cas de front montant sur l’entrée REQ, ce bloc fonction lit une zone de registre d’un esclave adressé via Modbus Plus.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

NOTE : Lorsque vous programmez une fonction READREG, il vous faut connaître les procédures de routage utilisées par votre réseau. Les structures des itinéraires de routage Modbus Plus sont décrites en détail dans le " Guide de planification et d’installation du réseau Modbus Plus ".

NOTE : Ce bloc fonction ne gère que l’interface Modbus Plus locale (pas de NOM).

Si vous utilisez un NOM, utilisez le bloc CREAD_REG de la bibliothèque des blocs de communication.

NOTE : Ce bloc fonction n’accepte pas non plus Ethernet TCP/IP et SY/MAX.

Si vous avez besoin d’Ethernet TCP/IP ou SY/MAX, utilisez le bloc CREAD_REG de la bibliothèque des blocs de communication.

NOTE : Plusieurs exemplaires de ce bloc fonction peuvent être utilisés dans le programme. Il n’est cependant pas possible de procéder à une instanciation multiple de ces exemplaires.

Représentation en FBD

Représentation :

172 33002516 07/2012

Page 173: 33002516_k01_000_12

READREG

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL READREG_Instance (REQ:=StartReadOnce, NODEADDR:=DeviceAddress, ROUTPATH:=RoutingPath, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_READ:=ArrayForValuesRead, NDR=>SetAfterReadingNewData, ERROR=>SetInCaseOfError, STATUS=>ErrorCode)

Représentation en ST

Représentation :

READREG_Instance (REQ:=StartReadOnce, NODEADDR:=DeviceAddress, ROUTPATH:=RoutingPath, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_READ:=ArrayForValuesRead, NDR=>SetAfterReadingNewData, ERROR=>SetInCaseOfError, STATUS=>ErrorCode;

33002516 07/2012 173

Page 174: 33002516_k01_000_12

READREG

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres d’entrée/sortie :

Description des paramètres de sortie :

Paramètres Type Signification

REQ BOOL En cas de front montant sur l’entrée REQ, ce bloc fonction lit une zone de registre d’un esclave adressé via Modbus Plus.

NODEADDR INT Adresse équipement dans le segment du réseau cible

ROUTPATH DINT Itinéraire de routage au segment du réseau cible

SLAVEREG DINT Adresse de décalage du premier registre 4x de l’esclave devant être lu.

NO_REG INT Nombre de registres à lire dans l’esclave

Paramètre Type Signification

REG_READ ANY_ARRAY_WORD Données à lire(Une structure de données doit être déclarée en tant que variable localisée pour les données à lire.)

Paramètre Type Signification

NDR BOOL Mis à "1" pendant un cycle après la lecture de nouvelles données

ERROR BOOL Mis à "1" pendant un cycle si une erreur apparaît

STATUS WORD Code d’erreur

174 33002516 07/2012

Page 175: 33002516_k01_000_12

READREG

Mode de fonctionnement

Mode de fonctionnement des blocs READREG_DFB

Un grand nombre de blocs fonction READREG peut être programmé, mais seules quatre opérations de lecture peuvent être actives en même temps. Que celles-ci soient déclenchées par ce bloc fonction ou par d’autres (p. ex. MBP_MSTR, CREAD_REG) n’est pas significatif. Tous les blocs fonction utilisent la même session de transaction de données et nécessitent plusieurs cycles de programme pour achever une commande. Les signaux d’état NDR et ERROR signalent l’état du bloc fonction au programme utilisateur.

L’adresse de routage complète doit comprendre les deux parties suivantes :NODEADDR de l’abonné cible (indépendamment du fait qu’elle se trouve dans le segment local ou qu’elle se trouve dans un autre segment) et le chemin d’accès au cas où la connexion se réalise avec des routeurs et passerelles.

L’adresse de routage qui en résulte est composée de ces deux parties d’information.

L’itinéraire de routage est du type de données DINT qui est interprété comme une séquence d’unités d’information à deux caractères. Il n’est pas nécessaire de rajouter " 00 " (par exemple, les deux informations de routage 4711 et 47110000 sont valables, pour NODEADDR 34, l’adresse de routage qui en résulte est 47.11.34.00.00).

33002516 07/2012 175

Page 176: 33002516_k01_000_12

READREG

Description des paramètres

REQ

Un front montant déclenche la transaction de lecture.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

NODEADDR

Désigne l’adresse de l’abonné dans le segment cible.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

ROUTPATH

Désigne l’itinéraire de routage du segment cible. Les unités d’information à deux caractères vont de 01 à 64 (voir Mode de fonctionnement, page 175). Si l’esclave se trouve dans le segment local du réseau, ROUTPATH devra être mis à " 0 " ou rester déconnecté.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

SLAVEREG

Début de la zone dans l’esclave adressé dans laquelle les données sources sont lues. La zone source réside toujours dans la zone de registre 4x. SLAVEREG voit l’adresse source comme un décalage à l’intérieur de la zone 4x. Le "4" de tête doit être omis (p. ex. 59 (contenu de la variable ou valeur du littéral) = 40059).

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

NO_REG

Nombre de registres à lire dans le processeur esclave (1 à 100).

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

NDR

Le passage à l’état ON sur un cycle de programme signale la réception de nouvelles données prêtes au traitement.

Ce paramètre peut être indiqué comme adresse, variable localisée ou variable non localisée.

176 33002516 07/2012

Page 177: 33002516_k01_000_12

READREG

ERROR

Le passage à l’état ON sur un cycle de programme signifie la détection d’une nouvelle erreur.

Ce paramètre peut être indiqué comme adresse, variable localisée ou variable non localisée.

STATUS

Code d’erreur, voir Codes d’erreur Modbus Plus, page 127

Ce paramètre peut être indiqué comme adresse, variable localisée ou variable non localisée.

REG_READ

Pour ce paramètre, un ANY_ARRAY_WORD de la taille de la transmission demandée doit être spécifié (≥ NO_REG). Le nom de ce tableau est transmis comme paramètre. Si le tableau est défini sur une taille trop réduite, la quantité de données transmise sera limitée par la place proposée dans le tableau.

Ce paramètre doit être indiqué comme variable localisée.

33002516 07/2012 177

Page 178: 33002516_k01_000_12

READREG

178 33002516 07/2012

Page 179: 33002516_k01_000_12

33002516 07/2012

17

Unity Pro

RIOSTAT

33002516 07/2012

RIOSTAT : Statut de la fonction module (RIO)

Description

Description du fonctionnement

Ce bloc fonction dérivé met à disposition l’état de fonctionnement de modules d’E/S d’une station E/S (E/S locale/distante).

Il est possible d’utiliser E/S Quantum ou E/S 800.

Une sortie STATUSx est attribuée à chaque embase. Chacun des modules (emplacement) de cette embase est représenté par un bit de la sortie STATUSx correspondante. Le bit de STATUSx situé le plus à gauche correspond à l’emplacement gauche de l’embase x.

Utilisation de STATUS1 à STATUS5:E/S QuantumUne station d’E/S ne possède qu’une seule embase, c’est-à-dire que seule STATUS1 est utilisée.E/S 800Une station d’E/S peut comporter jusqu’à 5 embases, c’est-à-dire que STATUS1 correspond à l’embase 1, STATUS5 correspond à l’embase 5.

NOTE : Lorsqu’un module de l’embase a été configuré et fonctionne correctement, le bit correspondant est mis à " 1 ".

Les paramètres supplémentaires EN et ENO peuvent être configurés.

179

Page 180: 33002516_k01_000_12

RIOSTAT

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

180 33002516 07/2012

Page 181: 33002516_k01_000_12

RIOSTAT

Représentation en IL

Représentation :

CAL RIOSTAT_Instance (DROP:=Local_RemoteDropNo, STATUS1=>StatusBitPatternRack1, STATUS2=>StatusBitPatternRack2, STATUS3=>StatusBitPatternRack3, STATUS4=>StatusBitPatternRack4, STATUS5=>StatusBitPatternRack5)

Représentation en ST

Représentation :

RIOSTAT_Instance (DROP:=Local_RemoteDropNo, STATUS1=>StatusBitPatternRack1, STATUS2=>StatusBitPatternRack2, STATUS3=>StatusBitPatternRack3, STATUS4=>StatusBitPatternRack4, STATUS5=>StatusBitPatternRack5) ;

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

DROP UINT Station d’E/S locale/distante n° (1...32)

Paramètre Type Signification

STATUS1 WORD Chaîne de bits d’état de l’embase 1

STATUS2 WORD Chaîne de bits d’état de l’embase 2 (E/S 800 uniquement)

... ... ...

STATUS5 WORD Chaîne de bits d’état de l’embase 5 (E/S 800 uniquement)

33002516 07/2012 181

Page 182: 33002516_k01_000_12

RIOSTAT

182 33002516 07/2012

Page 183: 33002516_k01_000_12

33002516 07/2012

18

Unity Pro

GET_TOD

33002516 07/2012

GET_TOD : Réglage de l’horodateur (Heure du jour)

Description

Description du fonctionnement

Ce bloc fonction dérivé parcourt (avec les autres blocs fonction du groupe HSBY) la configuration de l’API correspondant d’après les composants qui lui sont nécessaires. Ces composants se réfèrent toujours au matériel effectivement connecté.

C’est pourquoi un comportement correct de ce bloc fonction ne peut être assuré sur les simulateurs.

Ce bloc fonction sert à régler l’horloge du matériel, si les registres correspondants ont été mis à disposition au sein de la configuration. Si ces registres ne sont pas disponibles, la sortie TOD_CNF est mise à " 0 ".

Sur front montant de l’entrée S_PULSE, le bloc lit les valeurs d’entrée et les transmet à l’horloge interne du matériel.

Toutes les valeurs d’entrée sont contrôlées de la manière suivante :si la valeur indiquée respective dépasse le maximum, ce dernier est alors pris en compte,si la valeur indiquée respective est inférieure au minimum, celui-ci est alors pris en compte.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

183

Page 184: 33002516_k01_000_12

GET_TOD

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

184 33002516 07/2012

Page 185: 33002516_k01_000_12

GET_TOD

Représentation en IL

Représentation :

CAL SET_TOD_Instance (S_PULSE:=InputAcceptedFlag, D_WEEK:=DayOfWeek, MONTH:=Byte_variable2, DAY:=Byte_variable3, YEAR:=Byte_variable4, HOUR:=Byte_variable5, MINUTE:=Byte_variable6, SECOND:=Byte_variable7, TOD_CNF=>ClockReady)

Représentation en ST

Représentation :

SET_TOD_Instance (S_PULSE:=InputAcceptedFlag, D_WEEK:=DayOfWeek, MONTH:=Byte_variable2, DAY:=Byte_variable3, YEAR:=Byte_variable4, HOUR:=Byte_variable5, MINUTE:=Byte_variable6, SECOND:=Byte_variable7, TOD_CNF=>ClockReady) ;

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

S_PULSE BOOL " 0 -> 1 " = les valeurs d’entrée sont reprises et inscrites dans l’horloge.

D_WEEK BYTE Jour de la semaine, 1 = dimanche .. 7 = samedi

MONTH BYTE Mois 1 à 12

DAY BYTE Jour 1 à 31

YEAR BYTE Année 0 à 99

HOUR BYTE Heure 0 à 23

MINUTE BYTE Minute 0 à 59

SECOND BYTE Seconde 0 à 59

Paramètre Type Signification

TOD_CNF BOOL " 1 " = le registre %MW (4x) pour l’horloge du matériel a été trouvé et l’horloge est prête à fonctionner." 0 " = l’heure est momentanément réglée ou l’horloge du matériel n’est pas trouvée.

33002516 07/2012 185

Page 186: 33002516_k01_000_12

GET_TOD

186 33002516 07/2012

Page 187: 33002516_k01_000_12

33002516 07/2012

19

Unity Pro

WORD_AS_BYTE_DFB

33002516 07/2012

WORD_AS_BYTE_DFB : Conversion de type

Description

Description du fonctionnement

Ce bloc fonction dérivé convertit une valeur d’entrée de type WORD en deux valeurs de sortie de type BYTE.

Les différents octets du mot à l’entrée sont affectés aux sorties en fonction des noms de celles-ci.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

187

Page 188: 33002516_k01_000_12

WORD_AS_BYTE_DFB

Représentation en IL

Représentation :

CAL WORD_AS_BYTE_DFB_Instance (IN:=WORD_variable, LOW=>LowByte, HIGH=>HighByte)

Représentation en ST

Représentation :

WORD_AS_BYTE_DFB_Instance (IN:=WORD_variable, LOW=>LowByte, HIGH=>HighByte) ;

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

IN WORD Entrée

Paramètre Type Signification

LOW BYTE Octet de poids faible

HIGH BYTE Octet de poids fort

188 33002516 07/2012

Page 189: 33002516_k01_000_12

33002516 07/2012

20

Unity Pro

WORD_TO_BIT_DFB

33002516 07/2012

BYTE_TO_BIT_DFB : Conversion de type

Description

Description du fonctionnement

Ce bloc fonction dérivé convertit une valeur d’entrée de type WORD en 16 valeurs de sortie de type BOOL.

Les différents bits du mot à l’entrée sont affectés aux sorties en fonction des noms de celles-ci.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

189

Page 190: 33002516_k01_000_12

WORD_TO_BIT_DFB

Représentation en FBD

Représentation :

Représentation en LD

Représentation :

190 33002516 07/2012

Page 191: 33002516_k01_000_12

WORD_TO_BIT_DFB

Représentation en IL

Représentation :

CAL WORD_TO_BIT_DFB_Instance (IN:=WORD_variable, BIT0=>Bit1, BIT1=>Bit2, BIT2=>Bit3, BIT3=>Bit4, BIT4=>Bit5, BIT5=>Bit6, BIT6=>Bit7, BIT7=>Bit8, BIT8=>Bit9, BIT9=>Bit10, BIT10=>Bit11, BIT11=>Bit12, BIT12=>Bit13, BIT13=>Bit14, BIT14=>Bit15, BIT15=>Bit16)

Représentation en ST

Représentation :

WORD_TO_BIT_DFB_Instance (IN:=WORD_variable, BIT0=>Bit1, BIT1=>Bit2, BIT2=>Bit3, BIT3=>Bit4, BIT4=>Bit5, BIT5=>Bit6, BIT6=>Bit7, BIT7=>Bit8, BIT8=>Bit9, BIT9=>Bit10, BIT10=>Bit11, BIT11=>Bit12, BIT12=>Bit13, BIT13=>Bit14, BIT14=>Bit15, BIT15=>Bit16) ;

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres de sortie :

Paramètre Type Signification

IN WORD Entrée

Paramètre Type Signification

BIT0 BOOL Sortie BIT0

BIT1 BOOL Sortie BIT1

: : :

BIT15 BOOL Sortie BIT15

33002516 07/2012 191

Page 192: 33002516_k01_000_12

WORD_TO_BIT_DFB

192 33002516 07/2012

Page 193: 33002516_k01_000_12

33002516 07/2012

21

Unity Pro

WRITEREG

33002516 07/2012

WRITEREG : Ecriture de registre

Introduction

Ce chapitre décrit le bloc WRITEREG.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Description 194

Mode de fonctionnement 197

Description des paramètres 198

193

Page 194: 33002516_k01_000_12

WRITEREG

Description

Description du fonctionnement

En cas de front montant sur l’entrée REQ, ce bloc fonction écrit une zone de registre de l’API sur un esclave adressé via Modbus Plus.

Les paramètres supplémentaires EN et ENO peuvent être configurés.

NOTE : Lorsque vous programmez une fonction WRITEREG, il vous faut connaître les procédures de routage utilisées par votre réseau. Les structures des itinéraires de routage Modbus Plus sont décrites en détail dans le " Guide de planification et d’installation du réseau Modbus Plus ".

NOTE : Ce bloc fonction dérivé ne gère que l’interface Modbus Plus locale (pas de NOM).

Si vous utilisez un NOM, utilisez le bloc WRITE_REG de la bibliothèque des blocs de communication.

NOTE : Ce bloc fonction dérivé n’accepte pas non plus Ethernet TCP/IP et SY/MAX.

Si vous avez besoin d’Ethernet TCP/IP ou SY/MAX, utilisez le bloc WRITE_REG de la bibliothèque des blocs de communication.

NOTE : Plusieurs exemplaires de ce bloc fonction peuvent être utilisés dans le programme. Il n’est cependant pas possible de procéder à une instanciation multiple de ces exemplaires.

Représentation en FBD

Représentation :

194 33002516 07/2012

Page 195: 33002516_k01_000_12

WRITEREG

Représentation en LD

Représentation :

Représentation en IL

Représentation :

CAL WRITEREG_Instance (REQ:=StartWriteOnce, NODEADDR:=DeviceAddress, ROUTPATH:=RoutingPath, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_WRIT:=SourceDataArea, DONE=>SetAfterWritingData,ERROR=>SetInCaseOfError, STATUS=>ErrorCode)

Représentation en ST

Représentation :

WRITEREG_Instance (REQ:=StartWriteOnce, NODEADDR:=DeviceAddress, ROUTPATH:=RoutingPath, SLAVEREG:=OffsetAddress, NO_REG:=NumberOfRegisters, REG_WRIT:=SourceDataArea, DONE=>SetAfterWritingData,ERROR=>SetInCaseOfError, STATUS=>ErrorCode) ;

33002516 07/2012 195

Page 196: 33002516_k01_000_12

WRITEREG

Description des paramètres

Description des paramètres d’entrée :

Description des paramètres d’entrée/sortie :

Description des paramètres de sortie :

Paramètre Type Signification

REQ BOOL En cas de front montant sur l’entrée REQ, ce bloc fonction écrit une zone de registre de l’API sur un esclave adressé via Modbus Plus.

NODEADDR INT Adresse équipement dans le segment du réseau cible

ROUTPATH DINT Itinéraire de routage au segment du réseau cible

SLAVEREG DINT Adresse de décalage du premier registre 4x de l’esclave dans lequel il faut écrire.

NO_REG INT Nombre de registres à écrire dans l’esclave

Paramètre Type Signification

REG_WRIT ANY_ARRAY_WORD Champ de données source(Une structure de données doit être déclarée en tant que variable localisée pour les données source.)

Paramètre Type Signification

DONE BOOL Mis à " 1 " pendant un cycle quand les données ont été écrites

ERROR BOOL Mis à "1" pendant un cycle si une erreur apparaît

STATUS WORD Code d’erreur

196 33002516 07/2012

Page 197: 33002516_k01_000_12

WRITEREG

Mode de fonctionnement

Mode de fonctionnement des blocs WRITEREG

Un grand nombre de blocs fonction WRITEREG peut être programmé, mais seules quatre commandes d’écriture peuvent être actives en même temps. Que celles-ci soient déclenchées par ce bloc fonction ou par d’autres (p. ex. MBP_MSTR, CWRITE_REG) n’est pas significatif. Tous les blocs fonction utilisent la même session de transaction de données et nécessitent plusieurs cycles de programme pour achever une commande.

Si plusieurs blocs fonction WRITEREG sont utilisés dans une application, ils doivent se différencier entre eux au moins par les paramètres NO_REG ou REG_WRIT.

Les signaux d’état DONE et ERROR signalent l’état du bloc fonction au programme utilisateur.

L’adresse de routage complète doit comprendre les deux parties suivantes :NODEADDR de l’abonné cible (indépendamment du fait qu’elle se trouve dans le segment local ou qu’elle se trouve dans un autre segment) et l’itinéraire de routage au cas où la connexion se réalise avec des routeurs et passerelles.

L’adresse de routage qui en résulte est composée de ces deux parties d’information.

L’itinéraire de routage est du type de données DINT qui est interprété comme une séquence d’unités d’information à deux caractères. Il n’est pas nécessaire de rajouter " 00 " (par exemple, les deux informations de routage 4711 et 47110000 sont valables, pour NODEADDR 34, l’adresse de routage qui en résulte est 47.11.34.00.00).

33002516 07/2012 197

Page 198: 33002516_k01_000_12

WRITEREG

Description des paramètres

REQ

Un front montant déclenche la transaction d’écriture.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

NODEADDR

Désigne l’adresse de l’abonné dans le segment cible.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

ROUTPATH

Désigne l’itinéraire de routage du segment cible. Les unités d’information à deux caractères vont de 01 à 64 (voir Mode de fonctionnement, page 197). Si l’esclave se trouve dans le segment local du réseau, ROUTPATH devra être mis à " 0 " ou rester déconnecté.

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

SLAVEREG

Début de la zone cible dans l’esclave adressé dans laquelle les données sont écrites. La zone cible réside toujours dans la zone de registre 4x. SLAVEREG voit l’adresse cible comme un décalage à l’intérieur de la zone 4x. Le "4" de tête doit être omis (p. ex. 59 (contenu de la variable ou valeur du littéral) = 40059).

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

NO_REG

Nombre de registres à écrire dans le processeur esclave (1 à 100).

Ce paramètre peut être indiqué comme adresse, variable localisée, variable non localisée ou littéral.

198 33002516 07/2012

Page 199: 33002516_k01_000_12

WRITEREG

REG_WRIT

Pour ce paramètre, un ANY_ARRAY_WORD de la taille de la transmission à effectuer doit être spécifié (≥ NO_REG) pour servir de zone de données source. Le nom de ce tableau est transmis comme paramètre. Si le tableau est défini sur une taille trop réduite, la quantité de données transmise sera limitée par la place proposée dans le tableau.

Ce paramètre doit être indiqué comme variable localisée.

DONE

Le passage à l’état ON sur un cycle de programme signifie la fin du transfert des données.

Ce paramètre peut être indiqué comme adresse, variable localisée ou variable non localisée.

ERROR

Le passage à l’état ON sur un cycle de programme signifie la détection d’une nouvelle erreur.

Ce paramètre peut être indiqué comme adresse, variable localisée ou variable non localisée.

STATUS

Code d’erreur, voir Codes d’erreur Modbus Plus, page 127

Ce paramètre peut être indiqué comme adresse, variable localisée ou variable non localisée.

33002516 07/2012 199

Page 200: 33002516_k01_000_12

WRITEREG

200 33002516 07/2012

Page 201: 33002516_k01_000_12

Unity Pro

33002516 07/2012

Annexes

33002516 07/2012 201

Page 202: 33002516_k01_000_12

202 33002516 07/2012

Page 203: 33002516_k01_000_12

33002516 07/2012

A

Unity Pro

Foire aux Questions sur les erreurs de génération

33002516 07/2012

Foire aux Questions sur les erreurs de génération

Vue d’ensemble

Ce chapitre comprend des informations sur les erreurs de génération.

Contenu de ce chapitre

Ce chapitre contient les sujets suivants :

Sujet Page

Généralités 204

Erreur de création du lien objet 205

L’objet doit être relié à un successeur 207

Lien avec variable n’est pas autorisé 208

Type de données ’xxxx’ attendu 209

DFB vide pour remplacer EFB obsolète 215

Symbole ’xxxx’ indéfini 216

Appel d’un bloc non fonction 218

Le paramètre ’xxxx’ a été affecté 221

’ xxxx’ n’est pas un paramètre de ’yyyy’ 222

Composant DDT manquant 223

Paramètres EHC hors plage 224

Pas une adresse valide 225

Configuration du module 140 NOG 111 00 non convertie 226

203

Page 204: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Généralités

Vue d’ensemble

Après la conversion d’une application Concept, le menu Régénérer tout doit être appelé.

Si l’application n’est pas générée avec cette commande, tous les messages d’erreur dans la fenêtre de sortie de la génération doivent être étudiés en cliquant deux fois sur chacun d’entre eux. Cela permet d’ouvrir la section comprenant l’origine du problème.

L’ensemble de la section doit être comparée à l’original dans Concept et les différences fonctionnelles doivent être corrigées manuellement dans l’application convertie.

Exemple

Exemples pour les messages :

{SCADA_Info : [MAST]} : (r: 172, c: 4) E1218 L’objet doit être relié à un successeur, au moins le rail d’alimentation droit{FC124_Visual_call_up_part_3 : [MAST]} : (r: 31, c: 5) E1189 Erreur de convertisseur : ’Erreur de création du lien objet (la broche Lien ne peut pas être localisée dans l’objet d’origine) : Le lien vers la broche (linkSource : row=30, col=4, Object=, Pin=OUT1.) ne peut pas être créé. L’objet n’a pas été créé lors de l’importation.’

Messages potentiels

La liste suivante comprend une forme résumée des messages potentiels, qui sont reliés aux détails d’explication :

Erreur de création du lien objet, page 205L’objet doit être relié à un successeur, page 207Lien avec variable n’est pas autorisé, page 208Type de données ’xxxx’ attendu, page 209DFB vide pour remplacer EFB obsolète, page 215Symbole ’xxxx’ indéfini, page 216Appel d’un bloc non fonction, page 218Le paramètre ’xxxx’ a été affecté, page 221’ xxxx’ n’est pas un paramètre de ’yyyy’, page 222Composant DDT manquant, page 223Paramètres EHC hors plage, page 224Pas une adresse valide, page 225

204 33002516 07/2012

Page 205: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Erreur de création du lien objet

Cause

Une raison pour l’affichage de ce message dès l’importation et lors de l’analyse peut être que le convertisseur n’a pas mis en œuvre la substitution des blocs de diagnostic extensibles avec des FB doubles.

Explication

D_GRP et D_PRE ont tout deux besoin qu’un bloc AND soit attaché à leur entrée IN. Ce bloc AND supplémentaire doit être mis en œuvre de manière à ce qu’il obtienne toutes les entrées de la zone extensible précédente. Ajoutez manuellement le bloc manquant. (IPR 20791)

33002516 07/2012 205

Page 206: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Exemple

{_9_TIME : [MAST]} : (r: 2, c: 1) E1189 Erreur de convertisseur : ’Erreur de création du lien objet (la broche Lien ne peut pas être localisée dans l’objet d’origine) : Le lien vers la broche (linkSource : row=1, col=0, Object=FBI_9_2_DRAW, Pin=OUT.) ne peut pas être créé. L’objet n’a pas été créé lors de l’importation.’

{_9_TIME : [MAST]} : (r: 2, c: 1) E1002 Erreur de syntaxe

{_9_TIME : [MAST]} : (r: 6, c: 13) E1189 Erreur de convertisseur : ’Erreur de création du lien objet (la broche Lien ne peut pas être localisée dans l’objet d’origine) : Le lien vers la broche (linkDestination: row=5, col=12, Object=FBI_9_2, Pin=.) ne peut pas être créé. L’objet n’a pas été créé lors de l’importation.’

{_9_TIME : [MAST]} : (r: 6, c: 13) E1002 Erreur de syntaxe

Schéma

206 33002516 07/2012

Page 207: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

L’objet doit être relié à un successeur

Cause

Un message similaire à celui ci-dessous peut être dû à un bogue Concept 2.1 LD :

{TANKVLVS <DFB> : [TVALVE]} : (r: 93, c: 3) E1218 L’objet doit être relié à un successeur, au moins le rail d’alimentation droit

Lors de la connexion des contacts sur un OR (court-circuit vertical), il arrive parfois que le premier contact de sortie soit relié à l’entrée de OR.

Concept indique même cela dans son graphique avec un petit point au niveau de l’entrée de OR :

Dans ce cas, la bobine ALARM est reliée UNIQUEMENT au contact V01ALARM. La sortie OR est reliée à RIEN.

Par conséquent, le convertisseur Unity V1.1 traduit ceci par :

33002516 07/2012 207

Page 208: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Lien avec variable n’est pas autorisé

Vue d’ensemble

Cette erreur est générée pour les broches INOUT.

Exemple

Résolution

Supprimez le lien et insérez la variable sur le paramètre de destination du lien.

208 33002516 07/2012

Page 209: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Type de données ’xxxx’ attendu

Exemple

Résolution

Remplacez les types de données utilisés en fonction du type requis.

L’illustration suivante indique la correction de l’erreur pour le bloc fonction 115.1 où le type de sortie (MW100) a été modifié sur le type utilisé pour l’entrée (REAL).

33002516 07/2012 209

Page 210: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Le convertisseur Concept de V1.0 estime le type à partir de l’adresse et ne prend pas en compte le type actuel. Cela est soumis à une version ultérieure.

Nouvelle saisie du paramètre EFB

Ce message peut par ex. être également dû au fait que le paramètre EFB a été saisi une nouvelle fois sur ANY_ARRAY_WORD. Voir également Type de paramètre modifié.

Combinaisons de variables, instances de variables et paramètres de Concept

Les combinaisons de variables, instances de variables et paramètres (broches) suivants proviennent de Concept :

Elément Description

Déclarations de variable

La déclaration de variable a un type qui lui est propre et peut avoir un registrePlusieurs déclarations de variables peuvent avoir différents types et le même registre

CP_GV1 "Symbol" 4:100 DPM_Time INIT: FALSE 0 EXP: FALSE RET: FALSE READONLY: FALSE MAS: FALSE TEXT: CP_GV1 "SymbolElem" 4:100 IEC_INT_ID INIT: FALSE 0 EXP: FALSE RET: FALSE READONLY: FALSE MAS: FALSE TEXT:

210 33002516 07/2012

Page 211: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

NOTE : Il y a donc trois + n types différents possibles pouvant être déclarés pour une variable de registre dans Concept (1(2=>n),4,6) .

Déclaration du type dans Unity

Unity accepte un type déclaré avec un symbole associé à un registre. Si le registre est utilisé directement, seul son type par défaut est supposé.

Pour générer le code, le type et la taille d’une variable liée à une broche doivent être déterminés sur un type. Différentes broches peuvent avoir différents types.

Instance de variable à registre

S’il y a une instance de variable à registre avec son type ainsi qu’une déclaration de variable avec un type différent et le même registre, Concept génère le code selon le type fourni avec le registre ou avec le symbole individuellement pour chaque broche.

Instances de variables

Les INSTANCES de variables provenant d’un SYMBOLE n’ont pas de type propre ni de registre. Elles utilisent le type de la déclaration de variable nécessaire.

CP_GVI NAMED_VAR: "SymbolElem" 10 9 FP_IO_OUTPUTL’instance de variable peut s’accompagner d’un registre. Dans ce cas, elle a son propre type dans la déclaration d’instance et pas de symbole.

CP_GVI REG_VAR: 4:100 27 16 FP_IO_INPUT DPM_Time EXP: FALSE RET: TRUE MAS: FALSE

Il n’est pas nécessaire d’avoir une déclaration de variable pour les instances de variable à registre:

Les déclarations anonymes textuelles (AT %MWxx:DDT;) sont l’équivalent des déclarations d’instances de variables avec registre et elles déclarent également le type.Le type est obligatoirement le même qu’une déclaration de variable existante. En cas de conflit, la déclaration est refusée dans Concept.

CP__ST AT %QW102: REAL;

Paramètres La broche à laquelle une instance de variable est fixée a un type qui lui est propre et qui n’est pas nécessairement identique à celui de l’instance de variable.Il ne peut pas être modifié et peut être générique.VS_FRM "IN1" HIDE POSL 2 FP_IO_INPUT FP_INP_NORMAL FP_LOC_OUTSIDE INT TEXT:VS_FRM "IN" HIDE POSL 2 FP_IO_INPUT FP_INP_NORMAL FP_LOC_OUTSIDE ANY TEXT:

Elément Description

33002516 07/2012 211

Page 212: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Type par défaut

Unity ne connaît qu’un type par défaut pour les registres. Si ce type doit être modifié, une variable avec un symbole doit être déclarée pour porter le type, mais deux symboles avec différents types pour un registre ne sont pas acceptés.

Unity n’importe pas la deuxième variable si cette application est importée.

Comportement des variables, instances de variables et paramètres dans Unity

Autres cas de non-correspondance du type

Les autres cas de non-correspondance du type sont signalés par un message build(=analyze) et doivent être résolus par l’utilisateur.

Si... Et que... Alors...

des symboles sont utilisés avec une instance de variable

- le type déclaré dans la déclaration avec le symbole doit être utiliséle type d’une instance de variable à registre pouvant être présent ne l’est pas

une variable de registre avec un type différent de celui par défaut doit être utilisée

une déclaration de variable avec le même registre mais un type différent existe déjà

un message d’erreur est émis pour signaler cette impossibilité.

une variable de registre avec un type différent de celui par défaut doit être utilisée

une déclaration de variable avec le même registre et le même type existe

son symbole doit être utilisé au lieu de l’adresse directe.

une variable de registre avec un type différent de celui par défaut doit être utilisée

aucune déclaration de variable avec le même registre n’existe

un symbole artificiel doit être déclaré et utilisé au lieu de l’adresse directe.

une broche dans le modèle Unity a le type ANY_ARRAY_WORD

- une variable de registre liée peut obtenir le type ARRAY[0..0] OF WORD si elle avait précédemment le type WORD.

le registre est également utilisé au niveau des broches avec le type WORD

- le registre obtient l’index [0] lié.

212 33002516 07/2012

Page 213: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Tableaux Word dans les blocs communication

Les blocs communication ont des tableaux Word comme paramètres qui sont définis dans Concept avec une référence au premier mot uniquement.

La taille du tableau est souvent définie par le contenu d’une variable qui est défini lors de l’exécution. La taille ne peut donc pas être déterminée par le convertisseur.

L’utilisateur doit déterminer la taille maximale et déclarer lui-même le tableau en conséquence.

Exemple pour Concept

Etape Action

1

Tous les membres du tableau apparaissent comme des variables uniques. Dans Unity, ils doivent être combinés en un tableau.

2 Cela est préparé par le convertisseur en déclarant une variable avec la plage [0..0].

33002516 07/2012 213

Page 214: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

3 Cela entraîne un ensemble de messages d’analyse afin de prévenir l’utilisateur qu’une correction est nécessaire. Dans ce cas, la correction de l’utilisateur doit ressembler à :

4 Le code source associé est dans ce cas :{RESET_CONV <DFB> : [RC_HSK_1]} : (r: 2, c: 2) E1063 appel d’un bloc non fonction{RESET_CONV <DFB> : [RC_HSK_1]} : (r: 4, c: 29) E1067 ’Q’ n’est pas un membre de ’SECT_CTRL’

Etape Action

214 33002516 07/2012

Page 215: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

DFB vide pour remplacer EFB obsolète

Cause

Quelques EFB standard n’ont pas été transposés de Concept à Unity.

Si le convertisseur en trouve un, il insère un DFB vide avec les mêmes paramètres que l’original pour permettre la génération de l’application et pour permettre à l’utilisateur de remplacer l’original par le code souhaité.

Résolution

Insérez le code dans le corps du DFB vide qui comprend la commande pour y générer un message similaire à celui ci-dessous :

{S1 : [REAL_W2]} : (r: 1, c: 2) E1189 Erreur de convertisseur : ’DFB vide pour remplacer EFB obsolète - à remplir par l’utilisateur’

La commande pour le message doit être supprimée si le code valide a été rempli dans le corps du DFB pour permettre la génération de l’application.

NOTE : Comme le type ANY n’est pas autorisé sur les DFB dans Unity, un problème supplémentaire se produit si ce type a été utilisé dans l’EFB remplacé (par ex. XXMIT EFB).

EFB personnalisés

Les EFB personnalisés ne sont pas convertis. Si vous voulez convertir une application en utilisant des EFB personnalisés, contactez le service d’assistance Schneider.

33002516 07/2012 215

Page 216: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Symbole ’xxxx’ indéfini

Nom de section SFC incorrect

Explication Ce message est parfois généré avec le bloc SFCCNTRL.Ce message signifie que le nom de section SFC qui a été lié à l’entrée CHARTREF n’est pas le nom d’une section SFC existante dans l’application actuelle.

Résolution Créez la section adéquate et le message disparaîtra.

216 33002516 07/2012

Page 217: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Nom d’instance incorrect

Explication Une autre raison d’un tel message peut être (IPR 20020) qu’un bloc fonction Concept maintenant dans Unity est une fonction ou une procédure. Le convertisseur effectue la conversion dans les langages textuels ST et IL de manière semi-automatique si cette incompatibilité se produit. Le nom d’instance Concept est supprimé et remplacé par le nom du type, également pour l’affectation des sorties, ce qui est alors une syntaxe non admise :LOOKUP_TABLE1(X := ODT, XiYi1 := -30.0, XiYi2 := PARA.p1,XiYi3 := -20.0, XiYi4 := PARA.p2,XiYi5 := -10.0, XiYi6 := PARA.p3,XiYi7 := 0.0, XiYi8 := PARA.p4,XiYi9 := 10.0, XiYi10:= PARA.p5,XiYi11:= 20.0, XiYi12:= PARA.p6);OUT := LOOKUP_TABLE1.Y;

Résolution La dernière ligne doit être corrigée manuellement. En utilisant l’opérateur d’affectation de sortie, cette déclaration doit être modifiée et déplacée entre les parenthèses d’appel :LOOKUP_TABLE1(X := ODT, XiYi1 := -30.0, XiYi2 := PARA.p1,XiYi3 := -20.0, XiYi4 := PARA.p2,XiYi5 := -10.0, XiYi6 := PARA.p3,XiYi7 := 0.0, XiYi8 := PARA.p4,XiYi9 := 10.0, XiYi10:= PARA.p5,XiYi11:= 20.0, XiYi12:= PARA.p6,Y=>OUT);

33002516 07/2012 217

Page 218: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Appel d’un bloc non fonction

Cause

Ce message peut s’afficher si un bloc fonction Concept maintenant dans Unity est une fonction ou une procédure.

Le convertisseur supprime le nom d’instance du bloc Concept et le remplace par le nom du type et déplace les affectations des sorties à l’intérieur des parenthèses d’invocation.

Pour les blocs GET_BIT et SET_BIT, le traitement ne s’applique pas entièrement (IPR 20015). Pendant l’analyse, des messages sont générés :

{INPUTS : [MAST]} : (r: 7, c: 4) E1063 appel d’un bloc non fonction

Les noms de fonction restent définis comme erronés après la conversion car les fonctions sont converties avec la syntaxe de procédure en ST, et non avec la syntaxe de fonction requise, comme l’indique la version corrigée. Le convertisseur a également supprimé les indices pour la variable de résultat de GET_BIT.

Exemple

Codes Concept d’origine Après conversion Version corrigée

VARINPUT_WORD : GET_BIT;END_VAR; FOR I_BASE := 1 TO 20 DOFOR I_POINT := 1 TO 16 DOINPUT_WORD (IN:=IO_SCAN_IN_WORD[I_BASE], NO:=I_POINT);INPUT[I_BASE,I_POINT] := INPUT_WORD.RES;END_FOR;END_FOR;

FOR I_BASE := 1 TO 20 DOFOR I_POINT := 1 TO 16 DOGET_BIT(IN:=IO_SCAN_IN_WORD[I_BASE], NO:=I_POINT,RES => INPUT);; END_FOR;

FOR I_BASE := 1 TO 20 DOFOR I_POINT := 1 TO 16 DOINPUT[I_BASE,I_POINT]:= GET_BIT(IN:=IO_SCAN_IN_WORD[I_BASE],NO:=I_POINT);END_FOR;END_FOR;

218 33002516 07/2012

Page 219: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Conjonction avec d’autres messages

Ce message peut apparaître en conjonction avec d’autres messages :

{RESET_CONV <DFB> : [RC_HSK_1]} : (r: 2, c: 2) E1063 appel d’un bloc non fonction{RESET_CONV <DFB> : [RC_HSK_1]} : (r: 4, c: 29) E1067 ’Q’ n’est pas un membre de ’SECT_CTRL’

Code source associé

Le code source associé est dans ce cas :

RESET_CONV147(IN := (CTRL.TB.RC_INI AND V_SYNCHRO), PT := t#500ms);T_CONVRESET := RESET_CONV147.Q;

VAROUTPUT_WORD : SET_BITX;END_VAR; FOR O_BASE := 1 TO 20 DOFOR O_POINT := 1 TO 16 DOOUTPUT_WORD (RES := IO_SCAN_OUT_WORD[O_BASE], IN := OUTPUT[O_BASE,O_POINT], NO := O_POINT);END_FOR;END_FOR;

FOR O_BASE := 1 TO 20 DOFOR O_POINT := 1 TO 16 DOSET_BIT(RES := IO_SCAN_OUT_WORD[O_BASE],IN := OUTPUT[O_BASE,O_POINT], NO := O_POINT);END_FOR;END_FOR;

FOR O_BASE := 1 TO 20 DOFOR O_POINT := 1 TO 16 DOIO_SCAN_OUT_WORD[O_BASE]:= SET_BIT(IN := OUTPUT[O_BASE,O_POINT], NO := O_POINT);END_FOR;END_FOR;

Codes Concept d’origine Après conversion Version corrigée

33002516 07/2012 219

Page 220: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Double utilisation d’un nom d’instance

Unity Pro associe le nom d’instance au type de données dérivé SECT_CTRL, même s’il est destiné à adresser un temporisateur. Cela se produit généralement si l’application Concept a utilisé deux fois le nom d’instance. Pour le savoir, procédez comme suit :

Remplacer des procédures en ST/IL

Certains EFB de Concept sont mis en œuvre en tant que procédures dans Unity Pro, sans nom d’instance.

Ouvrez l’onglet Arrangements de conversion en choisissant Outils → Options dans Unity Pro pour activer/désactiver la case à cocher Remplacer des procédures en ST/IL avant la conversion.

Si cette case à cocher est activée, le nom d’instance de l’appel Concept est remplacé par le nom du type.Si cette case à cocher est désactivée, un DFB est créé pour accéder ensuite à la procédure.

Etape Action

1 Ouvrez le fichier d’exportation .asc Concept et recherchez le nom d’instance sans les chiffres à la fin à l’aide d’une commande de recherche de l’éditeur de texte. Résultat : Dans ce cas nous trouvons :STR_RCI: (* RC Eingänge = SPS Ausgänge *)STRUCTAUTO : BOOL ; (* Betriebsart Automatik / Hand *)AXIS_EN : BOOL ; (* Achsen angewählt *)Z_UP : BOOL ; (* Z-Achse auf *)RESET_PROG : BOOL ; (* Programm abbrechen *)RESET_CONV : BOOL ; (* Förderer synchronisieren *)

2 L’introduction de ligne...STR a été omise.CP_GVS "RESET_CONV" SECT_CTRL INIT: FALSE 0 EXP: FALSE RET: TRUE READONLY: FALSE MAS: FALSE TEXT:CP_SEC "RESET_CONV" SECTK_F_SECTION LANG_ST SVB: FALSE ID: 27 EXEC: 26 TEXT:CP__STCP__ST VARCP__ST RESET_CONV : TP; (* Impuls Reset Conveyor *)Le même nom a été utilisé comme nom de composant de la structure, nom de section avec sa variable de contrôle et pour une instance de temporisateur « TP ».

3 Modifiez le type de l’instance dans l’éditeur de données pour indiquer le type « TP ».

220 33002516 07/2012

Page 221: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Le paramètre ’xxxx’ a été affecté

Cause

Pour les entrées, les broches ouvertes à gauche au niveau des blocs obtiennent une variable générée automatiquement avec le type adéquat. Pour les sorties, cela n’est pas encore fait.

Dans le cas des types de données génériques, cela peut se faire facilement.

Résolution

Dans ces cas, l’utilisateur doit tout de même déclarer les variables adéquates et les lier aux broches ouvertes à gauche.

33002516 07/2012 221

Page 222: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

’ xxxx’ n’est pas un paramètre de ’yyyy’

Cause

Les EFB de diagnostic qui ont été extensibles dans Concept n’ont pas la syntaxe d’appel adéquate dans IL. (IPR 19689)

{_9_TIME : [MAST]} : (r: 43, c: 17) E1031 ’IN1’ n’est pas un paramètre du bloc fonction ’GRP_DIA_9’

{_9_TIME : [MAST]} : (r: 44, c: 17) E1031 ’IN2’ n’est pas un paramètre du bloc fonction ’GRP_DIA_9’

Résolution

Dans le cas des EFB de diagnostic extensibles dans Concept, l’extension peut être faite avec une fonction AND logique dont la sortie est liée à l’entrée unique de la fonction de diagnostic. Cela se fait avec les trois premières lignes dans la correction.

La sortie utilisée doit être traitée par BOOL_TO_TIME qui est dérivé dans la conversion automatique et qui est corrigé dans les trois dernières lignes.

Exemple

Code Concept d’origine Après conversion Version corrigée

CAL GRP_DIA_9 (ED :=DUMMY_1_91,DTIME :=IN92,IN1 :=DUMMY_1_94,IN2 :=DUMMY_1_96)LD GRP_DIA_9.ERRBOOL_TO_TIMEST OUT90

CAL GRP_DIA_9 (ED :=DUMMY_1_91,DTIME :=IN92,IN1 :=DUMMY_1_94,IN2 :=DUMMY_1_96,ERR => OUT90)BOOL_TO_TIME

LD DUMMY_1_94 AND DUMMY_1_96ST GRP_DIA_9.INCAL GRP_DIA_9 (ED :=DUMMY_1_91,DTIME :=IN92)LD GRP_DIA_9.ERRBOOL_TO_TIMEST OUT90

222 33002516 07/2012

Page 223: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Composant DDT manquant

Cause

Les mots-clés ne peuvent pas être utilisés comme symboles de composants DDT ou comme noms de variable. L’emplacement du nom est un tel cas (IPR 19938).

Résolution

S’il manque des composants DDT ou si des conflits d’importation sont importés, procédez comme suit :

Etape Action

1 Recherchez l’occurrence du nom dans le fichier .asc avec une autre signification.

2 Modifiez le nom pour la signification causant le conflit.

33002516 07/2012 223

Page 224: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Paramètres EHC hors plage

Cause

Pour le module compteur haute vitesse, les limites des paramètres ne sont pas traitées correctement (IPR 19656).

Exemple

Paramètre <OUTPUT START ADDRESS> hors plage (erreur avec param 17)

Résolution

De tels paramètres doivent être corrigés manuellement.

224 33002516 07/2012

Page 225: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Pas une adresse valide

Cause

Un message comme ci-dessous est généré lors de l’analyse si un système Hot_Stand-By est défini de manière incomplète.

Analyse en cours...

{Cpu (1.2 ) 140 CPU 671 60} : %MW0 n’est pas une adresse valide dans Quantum

Résolution

Etape Action

1 Ouvrez le rack local de la configuration et la configuration de l’UC, puis sélectionnez l’onglet Redondance d’UC de la configuration de l’UC.

2 Dans la partie inférieure, RAM d’état et Zone de non transfert apparaissent. Généralement, les champs Start et Longueur contiennent chacun un zéro, transféré directement depuis l’application Concept.

3 Pour supprimer le message d’erreur, saisissez 1 dans le champ Start.

33002516 07/2012 225

Page 226: 33002516_k01_000_12

Foire aux Questions sur les erreurs de génération

Configuration du module 140 NOG 111 00 non convertie

Concept

Dans Concept, le module 140 NOG 111 00 est utilisé en tant que NOM.

Configuration non convertie

La conversion crée également un NOM dans Unity Pro, mais la configuration des E/S est perdue.

226 33002516 07/2012

Page 227: 33002516_k01_000_12

Unity Pro

Index

33002516 07/2012

CBA

Index

0-9140 NOG 111 00, configuration

non convertie, 226

Aanalyse

projets, 53, 105assistant de conversion pour Concept, 15

BBYTE_TO_BIT_DFB, 117, 189

Ccomportement de l’application

modifications, 89Concept

assistant de conversion, 15Configuration

différences, 20conversion

procédure, 107processus, 105

convertisseur, 11

33002516 07/2012

Convertisseur Concept - instructionsBYTE_TO_BIT_DFB, 117, 189CREADREG, 121CWRITREG, 129DINT_AS_WORD_DFB, 137DIOSTAT, 139, 155GET_TOD, 141, 183LIMIT_IND_DFB, 145LOOKUP_TABLE1_DFB, 149READREG, 171RIOSTAT, 179WORD_AS_BYTE_DFB, 187WRITEREG, 193

CREADREG, 121CWRITREG, 129

DDiffDiagramme fonctionnel en séquence

différences, 35DINT_AS_WORD_DFB, 137DIOSTAT, 139, 155

EEFB

différences, 31EN

non connectée, 95erreurs de génération, 203exécution de programme

différences, 22

227

Page 228: 33002516_k01_000_12

Index

exigences, 17exportation

DFB, 108macros, 108projets, 13, 108sections, 108

GGET_TOD, 141, 183

Iimportation

DDT, 110macros, 53, 113projets, 13, 109

instructionsdifférences, 31

LLangage à blocs fonction

différences, 51LIMIT_IND_DFB, 145liste d’introductions

différences, 48littéral structuré

différences, 48LL_SRAMxxx

tableau, 114valeurs d’initialisation, 114

LOOKUP_TABLE1_DFB, 149

Mmatériel

correspondances, 19messages d’erreur, 89, 105, 110messages d’erreur , 53

Oobjets langage, 53

différences, 22

228

objets systèmedifférences, 22

Pplates-formes matérielles

prise en charge, 19préconditions, 17

RREADREG, 171RIOSTAT, 179

Sschéma à contacts

différences, 36Schéma à contacts

différences, 50

Ttypes d’objets

différences, 53

Vvaleurs d’initialisation

groupe, 114LL_SRAMxxx, 114tableau, 114

WWORD_AS_BYTE_DFB, 187WRITEREG, 193

33002516 07/2012