Automate programmable S7-200 Manuel système
Rechercher chaîne dans chaîne
L'opération Rechercher chaîne dans chaîne (SFND) recherche la
première occurrence de la chaîne IN2 dans la chaîne IN1. La
recherche commence à la position de début indiquée par OUT. Si une
séquence de caractères correspondant exactement à la chaîne IN2
est trouvée, la position du premier caractère dans cette séquence est
écrite dans OUT. Si la chaîne IN2 est introuvable dans la chaîne IN1,
le paramètre OUT est mis à 0.
Situations d'erreur mettant ENO à 0
H 0006 (adresse indirecte)
H 0091 (erreur de plage)
H 009B (indice = 0)
Rechercher premier caractère dans chaîne
L'opération Rechercher premier caractère dans chaîne (CFND)
recherche dans la chaîne IN1 la première occurrence d'un caractère
6
quelconque du jeu de caractères décrit dans la chaîne IN2. La
recherche commence à la position de début OUT. Si un caractère
correspondant est trouvé, la position du caractère est écrite dans OUT.
Si aucun caractère correspondant n'est trouvé, OUT est mis à 0.
Situations d'erreur mettant ENO à 0
H 0006 (adresse indirecte)
H 0091 (erreur de plage)
H 009B (indice = 0)
Tableau 6-65 Opérandes autorisés pour les opérations Rechercher chaîne dans chaîne et Rechercher premier caractère
Entrées/sorties Types de
IN1, IN2
OUT
Exemple : Opération Rechercher chaîne dans chaîne
L'exemple suivant utilise une chaîne stockée dans VB0 comme commande pour la mise en marche ou l'arrêt d'une
pompe. Une chaîne "ON" est stockée dans VB20 et une chaîne "OFF" est stockée dans VB30. Le résultat de l'opération
de recherche est stocké dans l'accumulateur AC0 (paramètre OUT). Un résultat différent de 0 signifie que la chaîne "ON"
a été trouvée dans la chaîne de commande (VB12).
Si la chaîne en VB20
a été trouvée :
188
dans chaîne
Opérandes
données
BYTE (chaîne)
VB, LB, *VD, *LD, *AC
BYTE
IB, QB, VB, MB, SMB, SB, LB, AC, *VD, *LD, *AC
VB0
12
'P'
'o'
'm'
'p'
VB20
VB22
VB30
2
'O'
'N'
AC0
11
NETWORK 1 //1. Mettre AC0 à 1
//
(AC0 sert de paramètre OUT).
//2. Rechercher dans la chaîne en VB0 la chaîne
//
en VB20 ('ON'), en commençant à la première
//
position (AC0=1).
LD
I0.0
MOVB
1, AC0
SFND
VB0, VB20, AC0
' '
'e'
's'
'u'
'r'
VB33
3
'O'
'F'
'F'
Si la chaîne en VB20
n'a pas été trouvée :
VB12
' '
'O'
'N'
AC0
0