afficher la liste des articles

STEP 7 -- Création de programmes S7 -- Optimisation des séquences d'un programme 
Différence de temps de cycle lors d'accès aux DBs 
Des fronts sont perdus  lors de l’utilisation du mémento de cadence 0  
Informations sur le thème "Optimisation des séquences d'un programme" 
Comment augmenter les performances des appareils HMI ? 
Comment optimiser le déroulement du programme, lorsque la mémoire de travail de la CPU est trop petite pour le programme exécutable STEP 7 ? 
Comment faire pour optimiser une régulation de température PID en utilisant le STEP 7 V5.3 SP2? 

Différence de temps de cycle lors d'accès aux DBsau début
Nº de référence:

QUESTION:
Quelle influence sur le temps de cycle a une programmation différente (ouvrir et accéder) des blocs de données ?

REPONSE:  
Les temps d’exécution dépendent de chaque CPU.  

Exemple pour un temps de cycle très court (sans la représentation symbolique) :

AUF DB5
U DBX 0.0
U DBX 0.1
= DBX 0.2  



CPU412

CPU414

CPU416

CPU417

AUF DB5

Ouvrir 1x DB

0,6µs

0,3µs

0,24µs

0,3µs

U DBX0.0

Accès 1x DB

0,3µs

0,1µs

0,08µs

0,1µs

U DBX0.1

Accès 1x DB

0,3µs

0,1µs

0,08µs

0,1µs

= DBX0.2

Accès 1x DB

0,4µs

0,2µs

0,16µs

0,2µs

Somme

1,6µs

0,7µs

0,56µs

0,7µs



Tableau 1 : Comparaison des temps de cycle (sans la représentation symbolique)   

Exemple pour un temps de cycle plus long (avec la représentation symbolique) :
U "BlocDeDonnées". Valeur_1  //DB5.DBX0.0
U "BlocDeDonnées". Valeur _2  //DB5.DBX0.1
= "BlocDeDonnées". Valeur _4  //DB5.DBX0.2

Aussi lorsque l’accès est l’un après l’autre toujours sur le même bloc de données, alors celui-ci doit être toujours à nouveau ré-ouvert. Par exemple dans une CPU414 le temps est d’environ 0,3µs par ligne d’instruction.  

CPU412

CPU414

CPU416

CPU417

U DBy.DBX0.0

Ouvrir 1x DB

Accès 1x DB

0,6µs

0,3µs

0,3µs

0,1µs

0,24µs

0,08µs

0,3µs

0,1µs

U DB5.DBX0.1

Ouvrir 1x DB

Accès 1x DB

0,6µs

0,3µs

0,3µs

0,1µs

0,24µs

0,08µs

0,3µs

0,1µs

= DBy.DBX0.2

Ouvrir 1x DB

Accès 1x DB

0,6µs

0,4µs

0,3µs

0,2µs

0,24µs

0,16µs

0,3µs

0,2µs

Somme

 

2,8µs

1,3µs

1,04µs

1,3µs

Tableau 2 : Comparaison des temps de cycle (avec la représentation symbolique) 

Remarque :
Lors de la comparaison de la programmation en absolu avec la programmation en symbolique, il faut toutefois faire attention aux points suivants :

  • Dans les petites CPUs, les besoins importants en mémoire joue un rôle important dans la programmation symbolique.
  • La programmation symbolique doit être préférée pour des raisons de clarté.
  • Les structures de données ne sont accessibles qu'en adressage symbolique.
  • La programmation symbolique doit être préférée pour des raisons de facilité de modification (par ex. 100 modifications de U E 4.5 -> U E 4.6 contre une seule modification centralisée dans l’éditeur symbolique ).

Vous trouverez sur Internet d’autres informations concernant les temps d’exécution des instructions STEP 7 pour les CPUs S7-300 et les CPUs S7-400 dans leurs listes d'opérations respectives, et disponibles sur Internet.

Mots-clefs:
Temps de cycle, temps d’accès, temps d’exécution

Des fronts sont perdus  lors de l’utilisation du mémento de cadence 0 au début
Nº de référence:

QUESTION:
Pourquoi est-ce que quelques fronts sont perdus si j’utilise le front du  mémento 0.0?

REPONSE:  
Des fronts peuvent être perdus, si le cycle programme est plus rapide que le module lui-même. 
Vous positionnez par ex. la sortie d’une carte digitale sur l’état 1 et dans tous les autres cas sur 0, avec un front positif et un front négatif du mémento de cadence. Si maintenant vote cycle de programme est trop court, la sortie sera à nouveau positionnée à 0, avant que physiquement elle ait atteint l’état 1.

Image 1: Cycle de programme trop court

Remède :
Prolongez votre cycle programme "artificiellement " ainsi la sortie sera commutée aussi à l’état 1. Vous pouvez réaliser cela de deux manières différentes :

  1. Allongez le temps de cycle minimum dans le registre  "Cycle/mémento de cadence" des propriétés de la CPU dans  la configuration matérielle.

Image 2: Propriétés de la CPU

  1. Appelez à la fin de votre programme la fonction WAIT (SFC 47).

 

Image 3: OB1 avec  SFC 47

Après avoir allongé le temps de cycle "artificiellement" , le temps de cycle programme est plus long que le temps de retard à la commutation de la carte de sortie.

Image 4: Temps de cycle programme est plus long que le temps de commutation

 


Informations sur le thème "Optimisation des séquences d'un programme"au début
Nº de référence:

Instructions:
Vous trouverez des informations sur le thème "Optimisation des séquences d'un programme" dans les manuels et chapitres suivants :
 
Document

Edition

Chapitre Contribution-ID
Manuel "Language LIST pour S7-300/400" 03/2006 06 Opérations de saut
10 Opérations de gestion d'exécution de programme
18653496
Manuel "Programmer avec STEP 7 V5.5" 05/2010 04  Principes de conception d'une structure de programme
10 Création de blocs de code
13 Création de sources LIST
19 Chargement
23 Diagnostic
45531107

Comment augmenter les performances des appareils HMI ?au début
Nº de référence:

Description
 

En raison de l'innovation perpétuelle, les performances des CPU ont été multipliées par 5 voire 10 dans les trois dernières années. Le temps de cycle est donc de plus en plus court. Le temps de cycle typique des CPU S7-300 est fréquemment compris entre 9 et 16 ms.
Le temps restant pour la CPU pour communiquer avec les HMI, est donc de ce fait de plus en plus court, car c'est un pourcentage du temps de cycle total qui est disponible pour la communication. Le pourcentage du temps utilisé par la CPU pour communiquer est au minimum de 3,5% pour un temps de cycle de 15 ms.

Le bloc fonction FC630 a été réalisé pour améliorer les performances de la tâche HMI. Un bloc SFC est appelé dans le FC630, qui permet d'augmenter le pourcentage du temps alloué à la tâche HMI utilisée, selon la valeur définie avec le paramètre TSx :

  • TSx = 0 : restaure les valeurs initiales,
  • TSx = 1 : valeur par défaut ,
  • TSx = 8 : augmente d'environ 50% le temps de cycle CPU.

Le temps de cycle CPU augmente de 6,25% à chaque incrémentation de TSx de une unité.

Evaluation du mot d'état RET_VAL :

  • 0000 : aucune erreur, l'allongement du temps de cycle a été validé et accepté.
  • 800x : une erreur est survenue, et le bloc doit être redémarré.

L'allongement du temps de cycle est effectif tant qu'il n'y a pas de modification et cela jusqu'à une coupure secteur de la CPU.

La tâche "HMI" :
Le programme CPU s'exécute en différentes tâches ( "programmes partiels" ). Dans la tâche HMI, la communication entre la CPU et le HMI est contrôlée par le système d'exploitation ( acquisition des données, traitement des données, transfert des données... ). La tâche HMI dispose d'une portion du temps de cycle. Si ce temps est écoulé, la tâche HMI est interrompue et la CPU continue le traitement du programme cyclique. La tâche HMI peut être interrompue par des tâches de priorités supérieures. Les tâches de priorités supérieures sont notamment les interruptions horaires, interruptions périodiques ... par exemple.

Note :
Le FC630 ne peut pas être utilisé dans la CPU S7-400 car le support du firmware requis n'existe pas. De plus, le temps de réponse du HMI ne peut pas être raccourci car la tâche HMI possède déjà le deuxième niveau de priorité dans le S7-400.  

Différence entre le FC630 et le paramétrage dans les propriétés de la CPU ( charge du cycle due à la communication ) :
Dans les propriétés de la CPU il y a un paramètre "Charge du cycle dûe à la communication". Ce paramètre s'applique seulement au trafic des messages CPU. Le FC630 agit déjà plus tôt, sur l'acquisition et le traitement des données, c'est pourquoi le temps de cycle des CPU S7-300 peut augmenter exagérément si le FC630 n'est pas géré correctement.  

Type de réseau sur lesquels le FC630 peut être utilisé :
Vous pouvez utiliser le FC630 sur les réseaux suivants :  

  • MPI,
  • PROFIBUS et
  • PROFINET

Pré-requis avant l'utilisation du  FC630 :
Une mauvaise utilisation du FC630 peut conduire à des dysfonctionnements, en particulier le temps de cycle peut énormément augmenter. Vous devez vérifier ce qui suit avant d'utiliser le FC630 : 

  • Quelles sont les valeurs de temps de cycle de votre CPU ? La mise en œuvre du FC630 est particulièrement adaptée pour des temps de cycle compris entre 9 et 16 ms, car le pourcentage du temps utilisé par la CPU pour communiquer est minimal ( soit 3,5 % ) pour un temps de cycle de 15 ms. Le pourcentage du temps utilisé par la CPU pour communiquer est au minimum de 4,8 % pour un temps de cycle de 32 ms. C'est pourquoi il peut être utile d'implémenter le FC630 pour des temps de cycle compris entre 25 ms et 32 ms. Il n'est généralement pas utile d'implémenter le FC630 pour des temps de cycle supérieurs à 50 ms. Cependant l'utilité ou non d'implémenter le FC630 dépend toujours de votre système ( nombre de HMI, nombre de variable scrutées, ... ).

Note :
Dans STEP 7 sous "Système cible > Diagnostic/réglage > Etat du module > Temps de cycle" vous pouvez lire la durée du temps de cycle le plus long, le plus court et le dernier, depuis le passage de STOP en RUN.
Grâce aux données locales de l'OB1 vous pouvez lire les durées du cycle précédent, du cycle le plus long et du cycle le plus court depuis le dernier démarrage.

  • Existe-t-il dans votre application des tâches dont la rapidité de traitement ne permet pas l'allongement du temps de cycle ? Dans ce cas vous devez également étudier si les tâches dont la période d'exécution est critique peuvent être traitées dans un OB périodique. Vous devez également noter que les interruptions périodiques arrêtent la tâche de communication HMI, et de ce fait influencent les performances du système HMI..
     

Vous pouvez implémenter le FC630 sur les CPU S7-300 et C7. Toutefois cette implémentation dépend également du type de CPU et de la version de firmware. La fonction FC630 présentée tourne sur les CPU 31x à partir des versions V2.3.2, V2.1.6 et V2.0.10.

Elle tourne de ce fait aussi sur les versions firmware supérieures, comme par exemple la V3.2 de la CPU319-3 2PN/DP. Toutefois à partir de la version de firmware V3.2, une fonction de communication HMI priorisée a été implantée et ne fonctionne qu'avec les services HMI acycliques.
 

  • Cette fonction de communication C+C priorisée n'accélère en rien les services HMI cycliques. Par conséquence le FC630 doit toujours continuer à être utilisé lors de besoin de performance dans la communication HMI.
  • La nouvelle fonctionnalité "Communication C+C priorisée" a été implémentée sur toutes les CPU à partir de la version de firmware V3.2, mais elle ne peut seulement être configurée qu'à partir des CPUs CPU315F-2 PN/DP.
  • La validation de la fonctionnalité de communication priorisée n'est pas possible sur la gamme des CPU312 jusqu'à la CPU 315-2DP, la case est grisée. Vous pouvez utiliser dans ce cas la nouvelle fonction FC2551.

Pour de plus amples informations sur la "Communication C+C priorisée", veuillez consulter le FAQ Nr: 49749632.

Le téléchargement joint contient un projet STEP 7 archivé avec le FC 630 décrit ci-dessus. L'utilisation du FC630 est décrite de manière plus détaillée dans le document ci-dessous.

Description_Performance_FC630 ( 102 KB )

Performance_FC630.zip ( 30 KB )

Mots-clefs :
WinCC, Protool, Panel, HMI, interface homme-machine, pupitre opérateur, performance 

 

Comment optimiser le déroulement du programme, lorsque la mémoire de travail de la CPU est trop petite pour le programme exécutable STEP 7 ?au début
Nº de référence:

Description
Dans la mémoire de travail se trouvent les parties indispensables à l'exécution du programme utilisateur S7. Il s'agit essentiellement du code programme et des données utilisateur. La mémoire de chargement de la CPU contient la globalité du programme utilisateur, incluant la configuration matérielle et le paramétrage des modules. Le tableau suivant contient des informations pour les thèmes suivants :

Nr. Informations au sujet de l'optimisation du déroulement d'un programme
1 Configurer des blocs de données avec l'attribut "Unlinked"
Comme la mémoire de travail n'a qu'une taille limitée, on peut, par exemple dans le cadre d'une gestion de recettes, stocker plusieurs blocs de données avec les différentes valeurs de recette uniquement dans la mémoire de chargement. Dans la mémoire de travail il n'y a plus qu'un bloc de données de travail qui contient la recette actuelle.


Figure 01

Si des blocs de données sont programmés et chargés dans la CPU avec l'attribut "Unlinked", alors ces blocs de données se trouvent uniquement dans la mémoire de chargement et n'occupent pas d'espace au niveau de la mémoire de travail. Avec cette méthode il est possible d'économiser de la place au niveau de la mémoire de travail de la CPU. Les contenus de ces blocs de données sont uniquement chargeables dans la mémoire de travail avec les fonctions système SFC20 "BLKMOV" ou SFC83 "READ_DBL".  Mais si vous essayez de transférer les données de ces DB dans l'accu 1 avec une instruction de chargement, alors la CPU passe à l'état STOP.


Figure 02

Dans "Propriétés de l'objet" du blocs de données cochez sous l'onglet "Général (2)" l'attribut "Unlinked" (comme dans la figure 02). Lors du chargement du DB dans la CPU, celui-ci sera uniquement transféré dans la mémoire de chargement.


Figure 03

Avec les fonctions système SFC20, vous pouvez (comme dans la figure 03) copier les données de la mémoire de chargement vers la mémoire de travail et par la suite avec par exemple avec "L  DB20.DBW 0" charger la valeur dans l'accu 1.

Indication
Dans les sources LIST, cette propriété est attribuée au DB avec le mot-clé Unlinked (entre "DATA_BLOCK DB <Nr>“ et la STRUCT-Definition du DB).

2 Influence du domaine des opérandes sur l'occupation mémoire
Il existe une influence minime du domaine des opérandes sur l'occupation de la mémoire au niveau de la programmation :
  • Pour les entrées et les sorties la limite se situe entre l'adresse 127.7 et 128.0
  • La limite pour les mémentos se situe par contre entre l'adresse 255.7 et 256.0

Afin d'expliquer plus précisément le comportement, les deux assignations suivantes sont programmées dans une fonction.

L'assignation :

U M256.0
= M0.0

nécessite 6 octets de la mémoire de travail.

Si vous utilisez la même assignation avec une adresse de mémento plus petite, par exemple.

U M255.0
= M0.0

alors seulement 4 octets sont utilisés dans la mémoire de travail.
La fonction seule nécessite déjà 38 octets. Le FC complet occupe, suite à cela, 38 octets dans la mémoire de chargement + le nombre d'octets pour les instructions utilisées.

3 Occupation de la mémoire de chargement différente pour deux blocs de données de même taille
Un bloc de données avec 16 variables de type Bool nécessite plus de mémoire de chargement qu'un bloc de données avec une variable du type Word. Chaque nom de variable et chaque type de données nécessite respectivement 1 octet dans un bloc de données. Ce qui signifie :
  • DB avec 16 variables du type de données Bool :
    16 x 2 octets (pour nom et type de données) = 32 octets
  • DB avec 1 variable de type de données Word :
    1 x 2 octets (pour nom et type de données) = 2 octets
4 Déclaration des variables dans des blocs de données
La taille d'un bloc de données est normalement limitée par la taille maximale disponible d'un bloc pour la CPU utilisée ( par exemple : 64 KB pour un  S7-400 ou 8 KB voire 6 KB pour un S7-300 ). Il existe encore une autre limite du système dans STEP7 pour la quantité de déclarations dans un bloc de données.

Si vous déclarez plus que 32000 variables, le message d'erreur "Déclaration trop longue" apparait. La raison de ce message est que chaque déclaration occupe deux octets ( comme décrit sous 3 ) de la  mémoire tampon interne de 64 kB.

Solution
Au lieu de programmer le bloc de données avec beaucoup de variables isolées, nous vous préconisons l'utilisation de tableaux ou de plusieurs blocs de données de petite taille. De plus les blocs de données de petite taille s'ouvrent et se mémorisent plus rapidement dans l'éditeur.

Environnement de développement
Les figures de ce FAQ ont été réalisées avec STEP 7 V5.5.

Mots-clés
RAM intégrée, carte mémoire, EPROM.

Comment faire pour optimiser une régulation de température PID en utilisant le STEP 7 V5.3 SP2?au début
Nº de référence:


Description :
Si vous utilisez le bloc FB58 (Régulateur PID de Température ) et que vous souhaitez optimiser les paramètres du régulateur , alors vous devez utiliser une table de variables (VAT) si vous êtes avec le STEP 7 V5.3 SP2 . Vous déclenchez l'optimisation via  la table de Variables (VAT) et aussi le forçage et la visualisation des valeurs du régulateur .
Pour de plus amples Informations veuillez consulter le manuel technique "Régulation PID de Température ", au Chapitre "Optimisation du régulateur " et qui est disponible dans le répertoire \SIEMENS\STEP7\S7MANUAL\S7TMPCOA

L'Optimisation utilisant un traceur de courbes est de nouveau possible si vous installez le STEP 7 V5.3 SP3 ( 21953245 ).



 ID contribution:21923265   Date:2011-07-25 
Cette contribution...m´a aidéne m´a pas aidé                                 






























related links
WinAC Basis V4.0
Windows Automation Center WinAC ...
Windows Automation Center RTX Wi ...
SIMATIC S7-400 Systèmes d'automa ...
Windows Automation Center RTX Wi ...
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