Recherche d'une chaîne (Find String, FIND)

Ces informations s’appliquent aux automates CompactLogix 5370, ControlLogix 5570, Compact GuardLogix 5370, GuardLogix 5570, Compact GuardLogix 5380, CompactLogix 5380, ControlLogix 5580, GuardLogix 5580 et ControlLogix 5590.
L'instruction FIND localise la position de départ d'une chaîne précise dans une autre chaîne.
Langues disponibles
Diagramme à relais
Bloc fonctionnel
Cette instruction n'est pas disponible dans le bloc fonctionnel.
Texte structuré
FIND (Source,Search,Start,Result);
Opérandes
Il existe des règles de conversion de données pour les types de données mixtes dans une instruction. Reportez-vous à la section Conversions de données.
Un diagramme à relais et texte structuré
Opérande
Type
Format
Description
Remarques
Source
ANY_STRING
Balise
La chaîne dans laquelle la recherche doit être faite
Il existe différents types de chaînes :
Par défaut, le type de données STRING a une longueur de 82 caractères maximum pour la chaîne.
Tout nouveau type de chaîne créé avec une longueur de caractères configurable pour la chaîne.
Search
ANY_STRING
Balise
La chaîne à rechercher
Start
SINT
INT
DINT
Immédiat
balise
La position dans Source à laquelle la recherche doit être démarrée
Entrez un numéro entre 1 et la taille DATA de Source.
Result
DINT
SINT
INT
Balise
La position dans la source à laquelle la chaîne de recherche a été trouvée
Reportez-vous à la section Syntaxe du texte structuré pour plus d’informations concernant la syntaxe des expressions dans le texte structuré. Description L’instruction FIND recherche dans la chaîne de Source la chaîne de Search. Si l'instruction trouve la chaîne de Search, Result montre la position de départ de la chaîne de Search dans la chaîne de Source. Dans le cas contraire, Results affiche zéro. Affecte les indicateurs d’état mathématique. Aucun défaut majeur/mineur.
Un défaut mineur surviendra si :
Type de défaut
Code de défaut
La valeur LEN de la balise de la chaîne est supérieure à la taille DATA de la balise de la chaîne.
4
51
La valeur Start est incorrecte, ou
la chaîne de Source est vide.
4
56
Aucun spécifique à cette instruction. Reportez-vous à la section Attributs courants pour plus d’informations sur les défauts liés aux opérandes.
Exécution
Diagramme à relais
Condition
Action
Préscrutation
N/A
La condition d'entrée d'échelon est égale à faux
N/A
La condition d'entrée d'échelon est égale à vrai
L'instruction s'exécute.
Post-scrutation
N/A
Texte structuré
Condition
Action
Préscrutation
Reportez-vous à Pré-scrutation dans le tableau Diagramme à relais
Exécution normale
Reportez-vous à la condition d’entrée d’échelon est vraie dans le tableau Diagramme à relais.
Post-scrutation
Reportez-vous à Post-scrutation dans le tableau Diagramme à relais
Exemple
Un message provenant du terminal
MessageView
contient plusieurs informations. La barre oblique arrière (\) sépare chaque information. Pour localiser une information, l'instruction FIND lance la recherche à partir de la barre oblique inverse et enregistre sa position dans find_pos.
Diagramme à relais
Texte structuré
IF MV_read.EM THEN
FIND(MV_msg,find,1,find_pos);
MV_read.EM := 0;
END_IF;
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal