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é
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.
Aucun spécifique à cette instruction. Reportez-vous à la section Attributs courants pour plus d’informations sur les défauts liés aux opérandes.
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 |
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 |
Exécution
Diagramme à relais
Texte structuré
Exemple
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 |
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 |
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