Expressions

Expressions have a timer option but what controls the timing.

EMs have 4 expression timers each that the expression will use based on the index chosen.  This also allows other expressions to share the timer value by referencing the same index of the same EM.

Problem:

Other objects don’t have built in timers so they can’t use timers nor reference specific timers.

Solution:

  • Use the EM timers for EMs
  • Add an Expression timer for non-EMs. These can only be used by the expression directly as a value or a periodic pulse.

Currently, the AOI has the non-EM timers but that doesn’t really work because the same AOI is used for all expressions so they would all be using the same timer.   Although they could just let the timer free run and simply track the starting/ending times in seconds as a DINT

Timers 

Expression timing is accomplished by using a global rolling timestamp which is in seconds and rolls around every 24 days.

Each expression can track only 1 timer so an expression cannot contain a timer in both of its variables.  If used in both variables unpredictable results will occur.  One of the variable timers must be wrapped in a sub-expression.

Although any expression can use a timer; only EMs and CMs can reference an expressions timer value.

When creating the expression timer you have index option which is irrelevant unless the timer is going to be referred to by another expression.

When the expression is used in an EM environment then the expression timer values are also recorded into the EM UDT according to the selected index.

When the expression is used in a CM environment the expression timer value is also recorded into the CM UDT but regardless of its index.

RLO

RLOlast

bValue1

bValue2

 

RLO = TRUE (default)

15->71

16

refValue -> myValue1

NEQ 0 OLT bValue1

bValue1 = TRUE

 

Since bValue1 = true RLO remains true

 

Var2

 

Return2

myValue1 = myExpr.Value

Push Expression

RLO = myExpr.RLO = TRUE (memory)

Get Expression to myExpr

Restore RLO = TRUE

 

Var1 = Timer

RLO = True so don’t reset

Timer -> myValue1

Set bValue1 if timer <> 0

 

Var2 = Constant

RefValue -> myValue2

Set bValue2 if myValue2<> 0

 

Evaluate myValue1 > myValue2 OTL Results

 

IF NOT Results RLO = FALSE

Otherwise leave RLO alone

 

Troubleshooting

Expressions may be monitored from the EM view.

A list of all expressions will be presented or the expression may be chosen on function such as the Complete Expression.

Once an expression is selected it will be marked to monitor for that instance.

A Value member will be added to each Variable Definition but in expressions, it will only be updated when that expression is the one being monitored or none are monitored.

 

A tree node will be used to walk the expression.  WPF will also be used so the value of the node can be expressed to the far right as TRUE/FALSE or a REAL value.  An node prefixed with a #: is an expression where # is the expression ID. Other nodes are variable definitions within the expression.  Sometimes a variable references another expression.

 

30) {This.Running) [TRUE] 2: > 30 [FALSE] [12.5] 30 [30] ” src=”data:image/png;base64,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” style=”margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent; border: none; width: 345px; height: 125px;”>

 

Expression (EXP)

ID INT  
ProcID SINT  
Oper SINT  
OperLabel STRx04  
Var1 EXP_VAR  
Var2 EXP_VAR  
Value REAL  
Monitor BOOL This expression is being monitored so update its value members
MonitorID INT ID of EM or CM to monitor; 0 = none.

 

Create a new expression reference that includes text with 32 elements

Variable (EXP_VAR)

ID INT
CtrlID SINT
Type SINT
PRID INT
Context SINT
UoM SINT
Label Strx32
Value REAL

 

Add Expression tags to EM_View to signal the HMI to display when an expression exists.

 

EM_VIEW

ID DINT
PB EM_VIEW_PB (add
Tile HasOnExpr, HasOffExpr
  OnExprID, OffExprID
   

 

HMI displays a small icon when an object has an expression.

Clicking on the icon will open the Expression Monitor and will pass in a tag template ([alias].EXPRs[id] where id comes from another tag) and the expressions parent ID which is the ID of the faceplate containing the expressions.

 

The expression monitor faceplate will write to the expressions monitor ID the parent ID which will cause that expression and all of its child expressions to update value members when processing for that instance.  If the monitor ID is 0 then it will update the value anytime it runs.

Therefore it is important for the faceplate to clear the value when exiting.

The HMI should warn if the value is not zero before overwriting that it may be taking control from someone else.

 

30) {This.Running) [TRUE] 2: > 30 [FALSE] [12.5] 30 [30] ” src=”data:image/png;base64,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” style=”margin: 0px; padding: 0px; user-select: text; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent; border: none; width: 345px; height: 125px;”>

 

###: ssssssssssssssssssssssssssssss ssss ssssssssssssssssssssssssssssss    ######## or sssss  (value or True/False)

[…]     ssssssssssssssssssssssssssssss   (var 1 Label )                                     ########

[…]     ssssssssssssssssssssssssssssss   (var 2 Label )                                     ########

 

[…] = Button if the variable is an expression to open that expression (this will need to be a different window since it doesn’t need to pass the parent ID since the top level should have already set the monitor for all child levels.

 

 

Challenge:
How to animate where expressions exist?

 

EM Expressions:

Expression Affects Icon Location Tag
Auto Start Green checkered Flag on Start button On Start Button  
Auto Stop Black checkered flag on Start Button On Stop Button  
Abort   On Abort Button  
Complete   ?  
Stage 2-3   ?  
Stage 3-2   ?  
Process Condition 0   On Abnormal Condition Navigation Button  
Process Condition 1   On Abnormal Condition Navigation Button  
Child CM Activate CM Tile – Up to 32 At upper right EM_FTSE.Tile[n].ActvtExprID
Child CM Deactivate CM Tile – Up to 48 At lower right EM_FTSE.Tile[n].DeactvtExprID
Control Parameters Up to 19 (some are hidden) Just to left of CP value EM_FTSE.Param[n].CP.ExprID
Report Parameters Up to 15 (some are hidden) Just to right of RP Value EM_FTSE.Param[n].RP.ExprID
CP     EM_FTSE.c.Exprs[1-20]
RP     EM_FTSE.c.Exprs[21-35]
Tags Up to 8   EM_FTSE.c.Exprs[40-48]

 

An expression list icon could be presented next to the expression visibility icon if other expressions exists that cannot be represented.  This list will list out all expressions by name.

 

EM List example:

 

Stage 2-3

CP 1

CP 2

RP 1

Etc.

 

Controller Expression List

 

EM_VIEW

Exprs OPER_EXPR[10]  
     ID INT Search all expressions and provide ID
     Name STRx16 Build name based on where expression was found
     Desc STRx48 Comes from expression Var labels
ExprPg OPER_PAGE  
ExprCnt SINT  

 

Macro

!===== Macro File created  11/12/2016 ===============================

! Macros are lists of commands, with one command per line

! See Help or the manual for a list of commands and their parameters

!============================================================

! Expression Monitor Macro

! These parameters are passed into the macro

! 1 is the Expression ID Tag to Monitor

! 2 is the Paraent ID

 

SET {[Reactor_PREQC]EXPRs[$%1$].MonitorID} $%2$

Display s88b_Expr /T {[Reactor_PREQC]EXPRs[$%1$]}

Updated on December 6, 2018

Related Articles

Password Protected