33002516_k01_000_12
-
Upload
nina-oleinik -
Category
Documents
-
view
66 -
download
1
Transcript of 33002516_k01_000_12
Unity Pro
33002516 07/2012
3300
2516
.12
www.schneider-electric.com
Unity ProConvertisseur d’applications ConceptManuel utilisateur
07/2012
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
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
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
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
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
§
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
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
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
10 33002516 07/2012
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
Exigences et conversion
12 33002516 07/2012
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Exigences
Exemple d’image dans Concept :
L’image après conversion vers Unity
40 33002516 07/2012
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
Exigences
Schéma d’un réseau LD dans Concept avec chevauchements
42 33002516 07/2012
Exigences
Schéma d’un réseau LD après conversion vers Unity
33002516 07/2012 43
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
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
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
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
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
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
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
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
Exigences
52 33002516 07/2012
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Différences de langage
88 33002516 07/2012
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Modification possible du comportement de l’application
104 33002516 07/2012
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
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
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
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
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
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
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
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
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
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
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
Blocs de Concept vers Unity Pro
116 33002516 07/2012
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
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
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
BYTE_TO_BIT_DFB
120 33002516 07/2012
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
CWRITEREG
136 33002516 07/2012
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
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
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
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
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
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
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
GET_TOD
144 33002516 07/2012
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
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
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
LIMIT_IND_DFB
148 33002516 07/2012
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
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
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
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
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
LOOKUP_TABLE1_DFB
154 33002516 07/2012
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
PLCSTAT
170 33002516 07/2012
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
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
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
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
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
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
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
READREG
178 33002516 07/2012
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
RIOSTAT
Représentation en FBD
Représentation :
Représentation en LD
Représentation :
180 33002516 07/2012
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
RIOSTAT
182 33002516 07/2012
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
GET_TOD
Représentation en FBD
Représentation :
Représentation en LD
Représentation :
184 33002516 07/2012
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
GET_TOD
186 33002516 07/2012
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
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
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
WORD_TO_BIT_DFB
Représentation en FBD
Représentation :
Représentation en LD
Représentation :
190 33002516 07/2012
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
WORD_TO_BIT_DFB
192 33002516 07/2012
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
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
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
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
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
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
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
WRITEREG
200 33002516 07/2012
Unity Pro
33002516 07/2012
Annexes
33002516 07/2012 201
202 33002516 07/2012
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Unity Pro
Index
33002516 07/2012
CBA
Index0-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
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