SA0014: Assegnazioni alle istanze
Determina le assegnazioni alle istanze dei blocchi funzione. Per le istanze con puntatore o variabili di riferimento, queste assegnazioni possono essere rischiose.
Motivo: questo è un avviso di prestazione. Se un'istanza viene assegnata a un'altra istanza, tutti gli elementi ei sottoelementi vengono copiati da un'istanza all'altra. Vengono copiati anche i puntatori ai dati, ma non i relativi dati di riferimento, in modo che l'istanza di destinazione e l'istanza di origine contengano gli stessi dati dopo l'assegnazione. A seconda delle dimensioni delle istanze, tale assegnazione può richiedere molto tempo. Ad esempio, se un'istanza deve essere passata a una funzione per l'elaborazione, è molto più efficiente passare un puntatore all'istanza.
Se vuoi copiare selettivamente i valori da un'istanza all'altra, un metodo di copia può essere utile:
inst_First.Copy_From(inst_Second)
Importanza: Media
PROGRAM PLC_PRG VAR inst_First : My_FB; inst_Second : My_FB; END_VAR
inst_First(); inst_Second := inst_First; // SA0014
Uscita in Messaggi vista:
SA0014: Assegnazione di istanze