Instructions : Cet article contient quelques trucs et astuces pour l'appel et le paramétrage de SFBs, SFCs et de fonctions standards IEC
- Généralités - Où peut-on obtenir des informations sur les SFBs, SFCs et fonctions standard IEC ?
- Comment se fait le paramétrage des entrées "IN1" et "IN2" de la fonction standard IEC FC11 (FIND) ?
- A quoi faut-il faire attention lors de la configuration du pointeur ANY du type ARRAY ou STRUCT à la sortie "RECORD" des SFC14/15 ?
- Comment des plages de données de type "STRING" peuvent-elles être transférées avec le SFC20 ?
- Pourquoi la valeur de retour RET_VAL du SFC20 est-elle différente en fonction de la CPU utilisée ?
- Pourquoi la fonction standard IEC FC38 délivre-t-elle un "0" comme valeur de retour, bien que la variable String se trouve dans une plage admissible ?
- Dans quels OB les blocs de communication SFB doivent-ils être appelés ?
Le tableau suivant contient des informations et des remèdes :
| Nr. |
Trucs et astuces pour l'appel et le paramétrage de SFBs, SFCs et de fonctions standards IEC : |
| 1 |
Généralités - Où peut-on obtenir des informations sur les SFBs, SFCs et fonctions standards IEC ?
Vous trouverez des informations sur les SFBs, SFCs et fonctions standards IEC pour la configuration et le paramétrage
- dans l'aide en ligne, en marquant le bloc et en appuyant sur la touche F1 et
- dans le manuel "Logiciel système pour SIMATIC S7-300/400 Fonctions standard et fonctions système" dans l'article ID: 1214574.
|
| 2 |
Comment se fait le paramétrage des entrées "IN1" et "IN2" de la fonction standard IEC FC11 (FIND) ?
La chaîne de caractères à rechercher "IN2" ne doit pas être égale à la chaîne de caractères "IN1". Si les deux chaînes de caractères sont identiques, alors le bloc FC11 (FIND) retourne aussi la valeur zéro. Utilisez le FC10 (EQ_STRNG) pour une interrogation d'égalité ou combinez les deux blocs. |
| 3 |
A quoi faut-il faire attention lors de la configuration du pointeur ANY du type ARRAY ou STRUCT à la sortie "RECORD" des SFC14/15 ?
STEP7 met les ARRAY et les STRUCT toujours aux limites de mot dans la mémoire. Un nombre d'octets impairs (par ex. ARRAY < 1... 5 >) est complété avec 1 octet si bien que le pointeur ANY délivre une longueur inexacte. Cela conduit au message d'erreur :
- 80B1: "La longueur de la zone cible indiquée diffère de la longueur configurée avec STEP7 pour les données utiles"
La longueur du pointeur ANY doit toujours être indiquée en Bytes, par ex. avec la syntaxe : "P#M280.0 BYTE 5". Nous vous recommandons d'alimenter la variable ANY des SFC14 /15 par une programmation absolue. |
| 4 |
Comment des plages de données de type "STRING" peuvent-elles être transférées avec le SFC20 ?
Avec la fonction système SFC20 (BLKMOV), vous pouvez transférer des plages de données, par ex. du bloc de bloc de données DB1 vers un bloc de données DB2. Lors de l'écriture d'une variable locale type STRING dans un bloc de données, vous devez initialiser cette variable au préalable. Vous devez alors programmer cette variable de façon symbolique (pas en absolu) pour la transmettre au SFC20. La figure 01 donne un exemple de programmation du SFC20 avec une variable STRING.

Figure 01
|
| 5 |
Pourquoi la valeur de retour RET_VAL du SFC20 est-elle différente en fonction de la CPU utilisée ?
Lors de l'affectation d'un pointeur ANY incorrect avec la longueur "0", les valeurs de retour sont différentes entre les CPUs S7-300 et S7-400. En raison d'un traitement d'erreur différent entre les différentes CPUs, il y a des différences dans les valeurs retournées par le SFC20. |
| 6 |
Pourquoi la fonction standard IEC FC38 délivre-t-elle un "0" comme valeur de retour, bien que la variable String se trouve dans une plage admissible ?
Lorsque la fonction IEC FC 38 est paramétrée par une variable String définie dans un DB sans valeur initiale, un "0" se trouve dans l'octet contenant la longueur réelle de la chaîne de caractères. La variable dans le DB n'a pas été initialisée. La variable est certes créée, avec l'information "longueur max " mais sans information sur la longueur réelle de la chaîne. Si maintenant une chaîne de caractères est inscrite dans le tableau de variables sans adapter l'octet pour la longueur réelle, alors la chaîne de caractères ne sera pas reconnue par la CPU. Ce n'est que si l'octet pour la longueur réelle est adapté à la longueur réelle que la chaîne de caractères sera reconnue par la CPU.

Figure 02
Note :
Tenez compte également des informations figurant dans l'aide en ligne de STEP 7, sous "Format du type de données STRING" . |
| 7 |
Dans quels OB les blocs de communication SFB doivent-ils être appelés ? Tous les blocs SFB nécessaires pour l'échange de données ou pour la gestion des programme ( réglage de la CPU en STOP ou en RUN ), via des liaisons configurées, doivent être appelés dans les OB de démarrage (OB100 pour les S7-300, OB100 et OB101 pour les S7-400) et également dans le bloc cyclique OB1.
Au démarrage (à chaud) de la CPU, le bloc d'organisation de démarrage OB100 est appelé automatiquement. Dans cet OB il est possible, par exemple, d'initialiser une communication via les mémentos M1.0 et M0.1. Vous trouverez dans le FAQ Nr:1819293 de plus amples informations sur la programmation et le paramétrage des blocs SFB14 / SFB15 ; ce FAQ est accompagné d'un programme exemple.
Dans le bloc OB de démarrage, vous devez renseigner les paramètres "REQ", "ID" et "PI_NAME" des blocs SFB de la manière suivante :
- "REQ" : Activation de l'échange des données si certaines conditions sont réunies. Affectez au paramètre "REQ" un contact binaire possédant l'état "0".
- "ID" : Fait référence à la description de liaison qui est attribuée par la configuration des liaisons STEP7. Affectez au paramètre "ID" une valeur, au format (Hexa) W#16#X, où X correspond au numéro "ID-Nummer" de la liaison concernée.
- "PI_NAME" : Pointeur sur la zone de mémoire contenant le nom du programme à lancer (en code ASCII). Le paramètre "PI_NAME" (SFB19 "START", SFB20 "STOP" ou SFB21 "RESUME") doit être renseigné avec la chaîne de caractères "P_PROGRAM".
Vous trouverez d'autres informations sur les paramètres des SFB dans l'aide en ligne de STEP7. |
Mots-clefs :
Comparaison de STRING
|