Alias Ignore within an Expression

I am trying to reference an alias ignore flag within an expression in order to determine whether my unit instance contains a module or not.  I have tried a few different syntaxes to try and reference this parameter including what the BOL suggests: "you need to use the syntax /aliasname.IGN (with only one slash and no # signs)."  However this expression does not parse when formatted that way.  Does anyone have any experience with this problem?

5 Replies

  • The check to see if an alias is ignored on a Unit Class Instance is '/ALIASNAME.IGN' = TRUE

    EM aliasing using Module blocks is a little different which is '/MODULEBLOCK/_IGNORE.CV' = TRUE.

  • In reply to Matt Stoner:

    This is the suspect code.  It is in an a condition block.  I am just trying to check whether the alias is bound or not in the unit instance.

    '/LIQUOR_2ND.IGN' ? ('//#LIQUOR_VLV#/DC1/PV_D.CV'  != '_VLVNC_PV:CLOSED') :

    ('//#LIQUOR_VLV#/DC1/PV_D.CV'  != '_VLVNC_PV:CLOSED' OR

    '//#LIQUOR_2ND#/DC1/PV_D.CV'  != '_VLVNC_PV:CLOSED')

    Unresolved parameter: /LIQUOR_2ND.IGN

  • In reply to chip.burge:

    Is this condition located in a phase or somewhere else?

    If located somewhere other than a phase, you would use '//UNIT_TAG/LIQUOR_2ND.IGN'

  • In reply to Matt Stoner:

    So the condition is located in a control module class which supports the module block in the unit class.  It would be nice to do this without having to change the code for each individual unit module created from the unit class.

  • In reply to chip.burge:

    From BOL

    Alias Resolution in Class-Based Modules

    • Aliasresolution in class-based modules occurs in the controller. 
    • When alias properties change, the module using the aliasdoes not have to be downloaded to pick up the new values
    • Aliases in class-based modules resolve in top and composite levels.
    • Aliasreplacement occurs for all external reference parameters at the top level of a module and at lower levels of a module.
    • Aliasreplacement occurs for all CALC/LOGIC expressions at the module level and lower levels.
    • Alias replacement occurs for all SFC expressions at the module level and lower levels.

    When using a class-based module's alias' IGNORE field, the correct syntax is the '//^ notation. For example, 'PARAM1.CV' != '//^ALIAS1.IGN'.  This differs from the syntax used in unit modules and their unit phases.