Dynamic operator prompts and messages

Dynamic operator prompts and messages read data from the issuing phase and completes the operator message or prompt with that data. The data is read at the time the prompt or message is issued.

To configure a dynamic operator prompt or message, create a message in DeltaV Explorer for the phase class. In the text of the message, include the parameter that will be resolved to a value when the prompt or message is issued. Write an action in a step of the phase to issue the message using the appropriate phase request code, for example, REQUEST.CV = 3401, where the phase issues the Boolean operator prompt (34nn) using message 1 (01) and message 1 contains a parameter that is resolved at runtime with dynamic data.

Dynamic operator prompts are issued using 32nn, 33nn, 34nn, and 35nn requests. Dynamic operator messages are issued with 30nn request codes.

The following are required when configuring dynamic operator prompts:

  • The parameter that is dynamically resolved is set off by single quotes in the message string.

    Note:

    If the parameter referenced contains a string with single quotes, this string will be evaluated and will return an error if it cannot be resolved to a value.

    OK to charge 'MATL_QUANTITY' LB of catalyst?
    
  • The parameter must exist in the phase that is issuing the prompt.

    OK to charge 'MATL_QUANTITY' LB of catalyst? 
    

    where the parameter referenced (MATL_QUANTITY) exists in the phase issuing the prompt.

  • The dynamically resolved parameter used in dynamic operator prompts and messages can be a batch input parameter, a batch report parameter, a phase algorithm parameter, or an external reference parameter.

  • The external reference parameter can be used in a phase to reference a unit parameter on a unit module. The dynamic prompt or message contains the external reference parameter and displays the resolution of the external reference parameter to the operator.

  • The number of decimal places to be displayed as an integer or real is configured using: , x (where the comma (,) separates the fields and x is the number of decimal places to be displayed with a maximum of 6 places). Zeros are forced if the result does not have the number of decimal places specified. The last decimal place is rounded if number of actual decimal places exceeds the number of places being displayed (or the maximum of 6 places).

    OK to charge 'MATL_QUANTITY, 3' LB of catalyst? (three decimal places are displayed)
    

    might resolve to

    OK to charge 3.100 LB of catalyst? 
    
  • The reference is to the current phase, therefore you do not have to include the unit module/phase name. For example, when referencing the BSTATUS parameter  in the Fill phase running on the REACTOR2 unit, the Batch Executive completes the path in the dynamic operator prompt of 'BSTATUS' as REACTOR2/FILL/BSTATUS.

  • A parameter in a phase's composite can be referenced by including the composite name and parameter. Do not use any leading slashes (/).

    Running for 'RUN_LOGIC/TIME' seconds.
    

    The unit module and phase is filled in by the Batch Executive as the phase issuing the prompt, for example, 'REACTOR2/FILL/RUN_LOGIC/TIME'.

  • The parameter's default field is being referenced. In many cases, this is .CV. To reference a field other than the default field, include the field in your string.

    The status is 'BSTATUS.ST'. (this string displays the value of the ST field for the BSTATUS parameter.)
    
  • A Boolean value is represented as 0 or 1 in the resolved string. To display the word associated with the Boolean value (Yes/No, True/False), create a named set that uses the words to be displayed for the Boolean values. That is, the named set will have True = 1 and False = 0. Create a phase parameter based on the named set. Create a dynamic phase message that references the phase parameter.

    UserNamedSet          True = 1; False = 0
    UserPhaseParameter    Type = Named Set; Based on UserNamedSet
    Message01             Display the value of 'UserPhaseParameter'
    

    If Message01 resolves to 0, False is displayed to the operator. If Message01 resolves to 1, True is displayed.

    Note:

    This technique can be used for any controller parameter where the value is numeric and you want the operator to see a word.

  • The dynamic operator prompt or message can reference a parameter that contains a reference to another parameter. For example, you reference the parameter STR_PARM in your message. In the phase, STR_PARM contains the name of the MATL_QUANTITY parameter. When the dynamic operator prompt (or message) resolves, it will use the value of MATL_QUANTITY to display to the operator. However, nested parameters are not supported. Therefore, you cannot have MATL_QUANTITY contain the name of another parameter. MATL_QUANTITY must resolve to a value.

    Msg1= 'STR_PARM'
    
    STR_PARM = 'MATL_QUANTITY' LB
    
    MATL_QUANTITY.CV = 50
    

    The operator sees 50 LBs in the prompt or message.

  • The dynamic operator prompt or message can have multiple references to parameters in a series. The operator prompt or message is limited to the number of characters supported (80 characters for phase messages).

    Charging 'MATL_QUANTITY' of 'COLOR' at 'TIME' seconds
    
  • The resolution of a batch alias can be displayed using the dynamic operator prompt or message. The following shows an example of what can be included as actions in a step in the run logic to make the resolved alias available to display to the operator.

    A1= '^/ALIAS_STRING.CV' := '/ALIAS1.REF'
    
    A2= 'PARAM1':='//#ALIAS1#/PID1/GAIN.CV';
    
    A3= '^/STRING_WITHALIAS.CV' := "Gain value of 'ALIAS_STRING' is: 'RUN_LOGIC/PARAM1' "
    
    A4= '^/REQUEST.CV' := 3348;
    

    Create the phase parameters STRING_WITHALIAS and ALIAS_STRING as type string. Create the phase message containing the parameter 'STRING_WITHALIAS'. When the phase message is resolved, it will display the name of the resolved alias.