如何在访问结构时优化运行时间?

说明:
如果需要多次访问一个结构,可在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中将数据拷贝到临时存储区内:

  • Tmp:= DB100.Field;

对以上所描述的语句,可将DB变量“DB100.Field”替代为临时变量“Tmp”:

  • DB100.Field.Value:= Tmp.Value1*Tmp.Value2/Tmp.Value3;

这样就可以优化对数据块中结构的访问。

如何在访问结构时优化运行时间?
图 02

注意事项:
变量是使用变量声明“VAR_TEMP”存储在CPU的堆栈中。这可能会在小型CPU模块中导致堆栈溢出。因此使用临时变量要慎重。

历史:
FAQ835443已经被合并到当前这个FAQ中,且作为单独的FAQ它已被删除。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc339635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日 下午12:03
下一篇 2021年4月12日 上午12:00

相关推荐

发表回复

登录后才能评论