属性:init_on_onlchange
快速在线更改期间没有初始化代码
由于编译器版本 >= 3.5.0.0,因此对较小的更改执行“快速在线更改”。在快速在线更改期间,仅编译和下载修改后的 POU。特别是,不会生成初始化代码。
对于具有的变量 init_on_onlchange
属性,这也导致 不 正在生成初始化代码。在通常的情况下,这没有影响,因为该属性通常用于用地址初始化变量。但是,在快速在线更改期间,不会发生变量更改其地址的情况。
但是,为了确保 init_on_onlchange
属性应用在整个应用程序代码中,一般对于应用程序你可以使用 no_fast_online_change
编译器定义禁用快速在线更改。为此,请在设备树中选择您的应用程序对象并单击 特性 在上下文菜单中。以下 建造 选项卡,添加 no_fast_online_change
编译器定义。
有关详细信息,请参阅: 建造
此 pragma 的效果是应用 pragma 的变量在每次在线更改时都会被初始化。
句法:
{attribute 'init_on_onlchange' }
插入位置:变量声明行上方的行。
例 273. 例子
VAR_GLOBAL {attribute 'init_on_onlchange'} g_fastOnlineChange : BOOL := FALSE; END_VAR
{attribute 'call_after_online_change_slot' := '4567'} FUNCTION FUNC_OnlineChangeDetection : BOOL VAR_INPUT END_VAR VAR END_VAR IF GVL_OnlineChangeDetection.g_fastOnlineChange THEN // here you know that you are inside a FastOnlineChange END_IF // reset for next detection GVL_OnlineChangeDetection.g_fastOnlineChange := TRUE;