Detecta asignaciones a instancias de bloques de funciones. En el caso de instancias con variables puntero o de referencia, estas asignaciones son potencialmente arriesgadas.
Justificación: Se trata de una advertencia de rendimiento. Cuando una instancia se
asigna a otra instancia, todos los elementos y subelementos se copian de una instancia
a la otra. Los punteros a datos también se copian, pero no sus datos referenciados,
de modo que la instancia de destino y la instancia de origen contienen los mismos
datos después de la asignación. Dependiendo del tamaño de las instancias, este tipo
de tarea puede durar mucho tiempo. Por ejemplo, si hay que pasar una instancia a una
función para que la procese, es mucho más eficiente pasar un puntero a la instancia.
Si desea copiar selectivamente valores de una instancia a otra, entonces resulta útil
un método de copia: inst_First.Copy_From(inst_Second).
Importancia: Medio
Ejemplo
PROGRAM PLC_PRG VAR inst_First : My_FB; inst_Second : My_FB; END_VAR inst_First(); inst_Second := inst_First; // SA0014 --> SA0014: Assignment of instances