afficher la liste des articles
ES - SIMATIC Manager -- Création de programmes -- CFC - Créer et interconnecter des composants
Comment créer et utiliser les connexions textuelles ?
Pourquoi ne puis-je pas établir une connexion à un opérande général adressé en absolu dans le CFC ou le SFC ?
Pourquoi la sortie "QBAD" d'un bloc CH_AI n'est-elle pas mise à "1" alors qu'il y a une rupture de fil sur la voie ( erreur de connexion sur paramètre IN_OUT ) ?
Déplacement des connexions SFC dans l'éditeur CFC sur PCS7 V5.x
Quelles sont les options pour interconnecter un pointeur ANY d'un type ARRAY ?
Comment les paramètres de blocs sont-ils spécifiés pour la relecture ?
Comment peut-on relire des données courantes de l'automate, qui n'ont pas été prises en compte par la fonction CFC "Diagramme > Relecture ..." ?
Comment un signal de process inférieur à 4 mA peut-il être utilisé avec un module d’entrée analogique 4-20 mA (Technologie F) ?
Comment transférer une chaîne de caractères (String) comme valeur de message associée à un bloc message ?
Comment intégrer un programme en LIST dans un diagramme CFC
Comment peut-on changer l'interconnection associée dans l'éditeur CFC quand des modifications de nom sont effectuées dans des DB globaux ?
Comment utiliser la vue d'objets process de SIMATIC Manager pour changer les interconnections de blocs dans l'éditeur de CFC ?
Comment ajouter des liaisons dans les onglets "Paramètres" et "Signaux" de la vue des objets de Process (POS) dans SIMATIC PCS 7 ?
Comment transférer une chaîne de caractères (String) comme valeur de message associée à un bloc message ?
Nº de référence:

Description
Les blocs "message" par défaut dans STEP 7/PCS7 (ALARM_S, ALARM_8P, ...) ne permettent pas de connexion de type de données "STRING" sur les paramètres in-out "SD.." pour les valeurs de message. Cet article montre néanmoins deux méthodes de transfert de chaîne de caractères (String) comme valeur de message. Une application peut par exemple transférer un message avec le code barre, le nom du matériel ou le nom de lot (SIMATIC BATCH) qui sont au format STRING. Dans l'exemple, les blocs sont créés en SCL.

Méthode 1
Cette section vous montre comment convertir une chaîne de caractères String en "ARRAY of CHAR" en utilisant la conversion de type implicite du pointeur ANY. L'avantage par rapport à la méthode conventionnelle utilisant "BLKMOV" (Methode 2) est la vitesse de traitement beaucoup plus élevée et la flexibilité de l'entrée ANY. Ceci signifie que des valeurs REAL, par exemple, peuvent encore être connectées en tant que valeurs de message.

 

Note
Les textes avec plus de 32 caractères ne sont pas transférables avec cette méthode.
 
Procédure
1 Importer les sources SCL

  SCL-Source.zip ( 1 KB )

Importer la source SCL  fournie "FlexString.SCL" dans votre projet.

  • Dans SIMATIC Manager, ouvrir le dossier "Sources"  du programme S7 ou celui de la librairie principale.
  • Sélectionner la fonction du menu "Importer > Source Externe ..." et sélectionner la source "FlexString.SCL" précédemment dézippée.
  • Assigner un numéro de FB libre pour le programme SCL directement dans le source ou utiliser la table des mnémoniques.
  • Sauvegarder et compiler la source.
2 Description du programme SCL
Les fonctions suivantes sont implémentées dans le programme SCL :
  • Déclaration d'une entrée de type ANY qui est transférée au bloc Alarm_8P. Dans l'exemple ce sont les entrées "SD_Flex_01" et "SD_Flex_02". Vous pouvez définir des entrées supplémentaires pour les paramètres SD restants.
  • Déclaration de la structure pour la manipulation du pointeur ANY.


Fig 01: Déclaration de l'entrée et de la structure du pointeur

  • Si le type de donnée du pointeur est de type "STRING", celui-ci est modifié en "CHAR".
  • Le numéro de DB et l'octet d'adresse courante sont déterminés.
  • La longueur courante de la chaine (deuxième octet de l'en-tête de la chaine) est relue et est assignée au pointeur ANY comme facteur de répétition.
  • L'octet d'adresse courante du pointeur ANY est incrémenté de 2 octets afin de tronquer l'en-tête de la chaine. Les trois bits de poids faible décrivent l'adresse de bit, ils doivent de ce fait être pris en compte lors de l'addition.


Fig 02: Conversion du type de donnée "STRING" vers "CHAR"

  • Le pointeur ANY est transféré au paramètre des valeurs de message du bloc "Alarm_8P".


Fig 03: Transfert des valeurs de message

Note
Vous trouverez davantage d'informations sur les structures de donnée et le type de donnée des pointeurs ANY dans l'aide en ligne sous "Format des paramètres de type ANY".

3 Paramétrage des messages
  • Dans le menu contextuel du bloc, ouvrir "Propriété spécifique de l'objet > Messages ...".
  • Saisir le texte de message souhaité dans le champ "Texte du message". Insérer l'instruction au format "@1%s@" dans le texte du message afin d'avoir la valeur associée affichée dans le message.

Note
L'instruction au format "@1%s@" indique que la première valeur associée (1 = SD_1) de Type String (s = STRING) doit être affichée. Toutes les valeurs associées (SD1 à SD10) seront toujours transférées avec chaque message du bloc (SIG_1 à SIG_8).

Méthode 2
 

Cette section montre comment écrire une chaine de caractères String dans un "ARRAY of CHAR" en utilisant  le bloc "BLKMOV" pour transférer le bloc message. L'avantage par rapport à la méthode 1 (1.Methode) est la mise en œuvre plus facile et la possibilité de transférer plus de 32 caractères.

 
Procédure
1 Importer les sources SCL

SCL-Source.zip ( 1 KB )

Importer la source SCL  fournie "FlexString.SCL" dans votre projet comme décrit dans la méthode 1.

2 Description du programme SCL
Les fonctions suivantes sont implémentées dans le programme SCL :
  • Déclaration des paramètres de type STRING avec un maximum de 16 caractères.
  • Déclaration des tableaux d'octets (ARRAY OF BYTE) internes avec une taille 16 octets.


Fig 04: Déclaration des variables

  • Les tableaux d'octets sont réinitialisés à 0 dans chaque élément..
  • Le texte sera transmis au moyen du bloc "BLKMOV" dans le tableau d'octets.
  • Le tableau d'octets est transmis au paramètre pour les valeurs de message-associé du bloc "Alarm_8P".


Fig 05: Code du programme de la variante avec le bloc BLKMOV

3 Paramétrage des messages
Les messages sont paramétrés comme décrit dans la méthode 1

Environnement de création
Les figures et les téléchargements de ce FAQ ont été créés avec PCS 7 V7.1 SP1.

Mots-clés
Pointeur ANY

 ID contribution:674578   Date:2010-12-02 
Cette contribution...m´a aidéne m´a pas aidé                                 
mySupport
My Documentation Manager 
Lettre d'information 
CAx-Download-Manager 
Demande d'assistance technique
A propos de cet article
Imprimer
Créer PDF 
Envoyer l'article
QuickLinks
Outil de compatibilité 
Aide
Aide en ligne
Guided Tour