SA0014:实例分配
检测功能块实例的分配。在具有指针或引用变量的实例的情况下,这些赋值具有潜在的风险。
理由:这是一个性能警告。当一个实例分配给另一个实例时,所有元素和子元素都从一个实例复制到另一个实例。指向数据的指针也会被复制,但不会复制它们引用的数据,因此目标实例和源实例在赋值后包含相同的数据。根据实例的大小,这种分配可能会持续很长时间。例如,如果应该将一个实例传递给一个函数进行处理,那么传递一个指向该实例的指针会更有效率。
如果您想有选择地将值从一个实例复制到另一个实例,则复制方法很有用:
inst_First.Copy_From(inst_Second)
重要性:中等
例 27. 例子
PROGRAM PLC_PRG VAR inst_First : My_FB; inst_Second : My_FB; END_VAR
inst_First(); inst_Second := inst_First; // SA0014
输出在 留言 看法:
SA0014:实例分配