18.2
Cohérence de données
Définition
La zone de données cohérentes définit la taille de la zone de données qui ne peut pas
être modifiée simultanément par des processus concurrents. Ainsi, une zone de données
dont la taille dépasse la taille de cohérence peut être faussée en tant qu'ensemble.
Autrement dit, une zone de données formant un tout mais dont la taille dépasse la zone
de données cohérentes peut comporter, à un certain moment, une partie de données
cohérentes modifiées à côté d'ensembles cohérents non modifiés.
Exemple
Une incohérence peut se produire, par exemple, lorsqu'un bloc de communication est
interrompu par un OB d'alarme de processus de priorité supérieure. Supposons que le
programme utilisateur modifie dans cet OB les données qui ont été déjà traitées en partie
par le bloc de communication. Les données transmises dateront alors :
•
pour une partie de la période antérieure à l'exécution de l'alarme de processus,
•
et pour l'autre partie de la période postérieure à l'exécution de l'alarme de processus.
Elles seront donc incohérentes (ne formeront plus un tout).
Conséquence
La transmission cohérente de grandes quantités de données n'autorise pas d'interruption.
Ceci peut allonger le temps de réaction de la CPU aux alarmes, par exemple.
En d'autres termes : plus la quantité de données à transmettre avec une cohérence
garantie augmente, plus le temps de réaction du système aux alarmes s'allonge.
Cohérence de données avec SIMATIC
S'il y a dans le programme utilisateur une fonction de communication, BSEND/BRCV par
exemple, qui accède à des données communes, il est possible de coordonner l'accès à
cette zone de données, par exemple au moyen du paramètre DONE. La cohérence de
données des zones de communication qui est transmise localement avec un bloc de
communication peut donc être assurée dans le programme utilisateur .
Avec les fonctions de communication S7 comme PUT/GET ou en cas d'écriture/lecture
via la communication OP, il faut tenir compte de la taille des zones de données
cohérentes dès la programmation ou la configuration, puisqu'aucun bloc de
communication synchronisant les données de communication avec le programme
utilisateur n'est présent dans le programme utilisateur de l'appareil cible (serveur).
Avec S7-300 et C7-600 (exception : CPU 318-2 DP), les données de communication sont
copiées avec cohérence dans la mémoire utilisateur, en blocs de 32 octets, dans le point
de contrôle du cycle du système d'exploitation. Pour toutes les zones de données plus
importantes, la cohérence n'est pas garantie. Si une cohérence de données définie est
exigée, les données de communication dans le programme utilisateur ne doivent pas
dépasser 8 ou 32 octets (selon la version).
Logiciel système pour SIMATIC S7-300/400
A5E00261421-01
Généralités sur la communication S7 et la communication de base S7
18-3