SA0014 : Affectation d'instances
Détecte les affectations aux instances de bloc fonction. Dans le cas d'instances avec des pointeurs ou des variables de référence, ces affectations sont potentiellement risquées.
Justification : Il s'agit d'un avertissement de performance. Lorsqu'une instance est affectée à une autre instance, tous les éléments et sous-éléments sont copiés d'une instance à l'autre instance. Les pointeurs vers les données sont également copiés, mais pas leurs données référencées, de sorte que l'instance cible et l'instance source contiennent les mêmes données après l'affectation. Selon la taille des instances, ce type d'affectation peut durer longtemps. Par exemple, si une instance doit être transmise à une fonction pour traitement, il est beaucoup plus efficace de transmettre un pointeur vers l'instance.
Si vous souhaitez copier sélectivement des valeurs d'une instance à une autre, une méthode de copie est utile :
inst_First.Copy_From(inst_Second)
Importance : Moyenne
PROGRAM PLC_PRG VAR inst_First : My_FB; inst_Second : My_FB; END_VAR
inst_First(); inst_Second := inst_First; // SA0014
Sortie dans le messages voir:
SA0014 : Affectation des instances