afficher la liste des articles
STEP 7 (TIA Portal) -- Création de programmes S7 -- Appeler des blocs et des fonctions
Quelles différences doit-on considérer entre un stockage optimisé et un accès au bloc standard dans STEP 7 (TIA Portal) V12 ?
Quels types d'accès, colonnes et possibilités d'utilisation existe-il pour les blocs de données globaux dans STEP 7 V12?
Comment programmer les blocs TSEND_C et TRCV_C pour la communication ouverte via l'interface intégrée PROFINET de la CPU S7-1200 ?
Comment programme-t-on l'instruction TC_CONFIG, pour modifier les données de configuration du CP1242-7 effectuées sous STEP 7 ?
Comment le réglage automatique du régulateur PID est-il réalisé (optimisation) dans STEP 7 (TIA Portal) V11 en cas de courbes de température asymétriques ?
Comment peut-on modifier par programme la largeur des impulsions d'un générateur d'impulsions (PWM) d'une CPU S7-1200 ?
Avec STEP 7 (TIA Portal) V11, comment compiler des blocs protégés quand ceux-ci ont été copiés depuis un autre projet ?
Où peut-on trouver les F-FBs pour le Mobile Panel 277F IWLAN concernant l'option de sécurité de STEP 7 V5.5 et STEP 7 Professional V11 ?
Pourquoi les données locales et les variables des paramètres de bloc fonction sont-elles réécrites dans STEP 7 Basic V10.5 ?
Quels blocs d'organisation peut-on utiliser avec STEP 7 V11 ?
Comment la valeur d'un compteur rapide "HSC" pour S7-1200 est-elle sauvegardée dans STEP7 V11 lorsque la CPU est en STOP ou après un démarrage ?
Comment réaliser un calcul d'intégrale dans un S7-1200 avec STEP 7 (TIA Portal) V11 ?
Quelles sont les fonctions Motion Control disponibles dans STEP 7 (TIA Portal) V11 et comment les utilise-t-on ?
Comment programmer dans STEP 7 (TIA Portal) V11 le type de données "VARIANT" pour l'adressage indirect pour le S7-1200 ?
Pourquoi n'est-il pas possible dans STEP 7 V11 de mettre une instruction MOVE en parallèle du paramètre d'entrée IN d'une temporisation ou d'un compteur CEI d'un S7-300/400 ?
Dans STEP 7 V11, comment configure-t-on une table de données DB avec l'attribut "Sauvegarder uniquement dans la mémoire de chargement" pour un S7-1200 ?
Pourquoi l'instruction "CONCAT" n'est-elle pas exécutée sous STEP 7 V11 lorsque vous paramétrez une entrée et la sortie avec la même variable ?
A quelle caractéristique doit-on faire attention dans STEP 7 V11 pour le choix de l'accès au bloc pour une CPU S7-1200, lorsque l'on crée un nouveau FB ?
Comment ouvrir avec STEP7 V11 des blocs protégés "Know-How" dans un autre projet lorsqu'ils ont été chargés depuis la CPU ?
Pourquoi les données locales et les variables des paramètres de bloc fonction sont-elles réécrites dans STEP 7 Basic V10.5 ?
Nº de référence:

Description
Contrairement au bloc fonctionnel (FB), le bloc fonction  (FC) est un bloc qui ne dispose pas de zone mémoire ni de variables statiques. Les variables temporaires et données locales sont mémorisées de manières différentes dans un bloc fonction et un bloc fonctionnel dans STEP 7 Basic V10.5.

Données locales statiques dans un FB

  • Variables qui servent à enregistrer les résultats intermédiaires statiques dans le bloc de données d'instance du FB.
  • Les données locales ne sont pas perdues en fin de traitement du bloc.
  • Les données statiques sont conservées, même sur plusieurs cycles, et cela jusqu'à ce qu'elles soient réécrites.

Données locales temporaires dans un FB, FC et OB

  • Les données locales temporaires sont sauvegardées dans la mémoire système de la CPU, dans l'ordre des déclarations et en fonction des type de données.
  • Les données des variables temporaires sont perdues après traitement de la fonction. 
  • Les variables servent à enregistrer des résultats intermédiaires temporaires et sont mémorisées uniquement pendant un  temps de cycle.

Dans un bloc fonction FC, la zone mémoire des données locales est uniquement de type "non rémanentes". Cela nécessite de réaliser une analyse et une affectation de ces données lors de l'appel du bloc FC. Avec cette manière d'attribution des paramètres dans les appels des blocs FC, le système d'exploitation consomme une partie de la zone de mémoire des données locales temporaires. Par conséquent, l'utilisateur ne peut pas disposer de l'ensemble de la zone mémoire système.

La sauvegarde des variables dans des données locales temporaires correspond à une sauvegarde dans un bloc de données global et avec un adressage des paramètres qui débute toujours par l'octet 0 (adresse relative). L'éditeur de programme utilise, lui aussi, des données locales dans les transferts de paramètres lors de  l'appel du bloc FC.

Le tableau 01 présente un exemple de structure d'appel avec un aperçu des blocs appelés avec la gestion des données locales effectuée par le système en fonctionnement:
 
Structure des appels Adresse Données locales (dans le chemin) Données locales
(dans le bloc)
Programme principal OB1 12 12
==> Fonction 1 (appelée par l'OB1) FC1 22 10
        ==> Fonction  2 (appelée par le FC1) FC2 32 10
==> Fonction  3 (appelée par l' OB1) FC3 14 2
        ==> Fonction  2 (appelée par le FC3) FC2 24 10
                ==> Fonction  4 (appelée par le FC2) FC4 34 10
Tableau 01

La colonne "Données locales (dans le chemin)" affiche le besoin en données locales de la totalité du chemin et la colonne "Données locales (dans le bloc)" affiche le besoin en données locales du bloc à chaque étape.

Note
Les blocs à adressage symbolique requièrent plus de données locales, car l'information pour l'adressage symbolique est également mémorisée.

La zone de mémoire des données locales temporaires sauvegarde toutes les données temporaires locales d'un bloc. Ces données sont uniquement temporaires et ne sont valides que pendant le traitement du bloc. Un bloc de données d'instance est une  zone de mémoire pour un bloc fonctionnel et qui contient les paramètres de transfert, les variables temporaires et statiques.
 
Variables de transfert OB FB FC
Entrée - DB-instance Mémoire système
Sortie - DB-instance Mémoire système
Entrée/Sortie - DB-instance Mémoire système
Variables de bloc OB FB FC
Données locales statiques - DB-instance -
Données locales temporaires Mémoire système Mémoire système Mémoire système
Tableau 02

Lorsque vous appelez un bloc fonction (FC) , veuillez observer les règles ci-dessous pour les variables des paramètres d'entrées et de sorties mais aussi lors de l'affectation de ces paramètres :

  • Tous les paramètres formels doivent être renseignés avec des valeurs actualisées puisque les blocs fonctions ne disposent pas de zone de mémoire.
  • Si aucune valeur n'a été écrite dans un paramètre de sortie d'une fonction, la valeur renvoyée au bloc appelant peut être aléatoire. En conséquence, des valeurs doivent toujours être écrites dans les paramètres de sortie
  • De même les paramètres d'entrée/sortie devront toujours être paramétrés avec des valeurs pour ne pas continuer à traiter le bloc involontairement avec d'anciennes valeurs.

Avec les blocs fonctionnels (FB), les valeurs des paramètres sont stockées dans le bloc de données d'instance. Si des paramètres d'entrée, de sortie ou d'entrée/sortie d'un bloc fonctionnel n'ont pas reçu de valeur, on utilise celles enregistrées dans le bloc de données d'instance. Contrairement aux fonctions (FC), il n'y a pas lieu de craindre l'utilisation de valeurs aléatoires, mais il existe un risque de continuer à traiter involontairement des valeurs anciennes. C'est pourquoi il est recommandé de fournir des valeurs à tous les paramètres du bloc.


Figure 01

Le tableau 01 présente un exemple de bloc principal OB1 qui  réalise l'appel d'un bloc fonctionnel avec son bloc d'instance et ensuite l'appel d'un bloc fonction. Puisque dans un FC la zone mémoire des données locales est uniquement de type "non rémanentes", il est nécessaire de  réaliser une analyse et une affectation de ces données lorsque le bloc FC est appelé.

Vous trouverez de plus amples informations dans l'aide en ligne du STEP 7 Basic V10.5 dans les rubriques suivantes :

  • Structure de l'interface de bloc,
  • Appel de structure,
  • Zones de mémoire système

 ID contribution:48815048   Date:2011-04-13 
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