说明:
如果需要多次访问一个结构,可在S7-SCL代码中也创建一个同样类型的本地变量来优化运行时间并缩短周期时间。可在声明中生成此变量一次,就可以在程序中多次使用它。下表包含了访问结构的运行时间已优化的代码的一个样例。
No. | 步骤 |
1 | 图01给出了带结构变量的DB100。可用以下语句访问此结构: - DB100.Field.Value:= DB100.Field.Value1*DB100.Field.Value2/DB100.Field.Value3;
但是,本例在按图02所示编程时需要更少的内存和运行时间。 图 01
|
2 | 在FC10中声明一个与DB100中“Field”变量结构相同的临时变量(例如“Tmp”)。然后使用如下语句从DB100中将数据拷贝到临时存储区内: 对以上所描述的语句,可将DB变量“DB100.Field”替代为临时变量“Tmp”: - DB100.Field.Value:= Tmp.Value1*Tmp.Value2/Tmp.Value3;
这样就可以优化对数据块中结构的访问。 图 02
|
注意事项:
变量是使用变量声明“VAR_TEMP”存储在CPU的堆栈中。这可能会在小型CPU模块中导致堆栈溢出。因此使用临时变量要慎重。