组态保留的变量,避免下载时所要的CPU停止

描述:
当改变程序模块的接口(IN-, IN/OUT-, STAT, 或 OUT 参数)时,CPU必须处于”STOP”模式下,来下载这些变化。为避免这个问题,可以在创建模块时,为每个数据类型为”DWORD”的参数类型保留几个变量。通过SCL”AT”语言特性,可以在后来声明已经占用预留内存的相应的数据类型的新变量。因为实际的接口没有发生改变,因此现在可以加载改变,并且CPU没有必要位于STOP模式。

静态变量示例:

1. 变化之前静态变量的定义:

VAR

Reserve1 : DWORD;
Reserve2 : DWORD;
Reserve3 : DWORD;
Reserve4 : DWORD;

END_VAR

2. 变化之后静态变量的定义:
创建一个附加的REAL变量和两个WORD变量。

VAR

Reserve1 : DWORD;
NewREAL AT Reserve1 :REAL;

Reserve2 : DWORD;
NewWORD AT Reserve2 :
STRUCT
NewWORD1 : WORD;>
NewWORD2 : WORD;
END_STRUCT;

Reserve3 : DWORD;
Reserve4 : DWORD;

END_VAR

AT语言结构不仅可以用于静态变量,正如该例所示,还可以用于声明部分的其它段中。
然而,请注意,保留变量可能含有一个与用AT结构分配的变量不相同的数据类型(如保留DWORD类型但NewREAL 属于REAL类型)。如果希望进一步使用这些变量(如通过CFC中的互连),那么当然位于块边缘条上的变量与所保留的变量类型一致,而不是通过AT结构分配的变量类型。

注意事项:
AT结构仅在FC, FB和OB中的SCL中可用。不能在一个SCL源程序中的数据块(DB和UDT)中使用,因为这些是通过编译器根据STL语法/语义处理的。

关键字:
全部下载

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

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

相关推荐

发表回复

登录后才能评论