您现在的位置是:首页 > PLC技术 > PLC技术

如何在多例兼容功能块中找到变量地址

来源:艾特贸易2017-06-05

简介在多例兼容功能块中,为块参数和静态本地数据加载与地址寄存器 AR2 有关的绝对地址。如果要在情景数据块中找到变量的绝对地址,则必须把域内指针(只是 AR2 的地址)加载到变量地

    在多例兼容功能块中,为块参数和静态本地数据加载与地址寄存器AR2有关的绝对地址。如果要在情景数据块中找到变量的绝对地址,则必须把域内指针(只是AR2的地址)加载到变量地址。

    示例:

   TAR2    //将地址寄存器加载到累加器AC1(偏移量)

   UD DW#16#00FF FFFF    //关闭区域ID

    LP##variable    //加载变量地址

   +D    //增加偏移量和变量地址

   LAR1    //保存地址寄存器AR1中的结果

    这样可在AR1中获得绝对地址以进行进一步处理。

    当功能块作为本地实例调用时,总要使用该方法。例如,在一个功能块中创建可作为类型“FB”的静态变量的功能块,这样所调用的情景数据块的数据偏移量就存储到情景数据块中。单个实例的偏移量在AR2中。如果不调用作为本地实例的功能块,则可以结束计算,值“0”就在地址寄存器中。

    注意:如果改变程序中的地址寄存器AR2,则也改变了变量的偏移量地址,因此就不能保证再对变量进行正确访问。在这种情况下,必须预先保存AR2,并在对程序完成改变之后将其复位为初始状态。