- Marker 1: Boolean expression in a condition for a
**Continuous action with assignation condition**. - Marker 2: A Boolean symbol is written by a
**Stored action on activation**. - Marker 3: An analog symbol is written by a
**Stored action on activation**. - Marker 4: A BOOL symbol for a
**Continuous action**.

A analog symbol can be written with a **Stored action**

**Notes:**

**Arithmetic operations**: addition (+), subtraction (-), multiplication (*) and division (/).- If you divide by zero, the result is set to the maximum value of the data type.

The expression is calculated from left to right. Point-before-bar calculation must be prioritized with brackets.

**Examples:**

Assignment | Remarks |
---|---|

AO0:=100 | The value 100 (decimal) is written to the analog symbol AO0. |

AO0:=Value1 | The value of Value1 is written |

AO0:=AO0+1 | There is written the result of AO0+1 |

AO0:=Value1 + Value2 | The result of the addition is written |

AO0:=Value1 * Value2 | The result of the multiplication is written |

AO0:=Value1 + Value2 - Value4 | etc. |

AO0:=Value1 * (Value2 + Value3) | etc. |

AO0:=Value1 * (Value2 * (Value3*Value4)) / Value5 | etc. |

A Boolean expression must be specified in **transitions** and **Action conditions**.
See marker 1.

**Notes:**

- Possible binary operations: AND (*), OR (+)
- Modifiers: Rising edge (↑), Falling edge (↓), Negation (!)
- Comparisons can be combined with AND, OR.

A comparison must always be made in **square brackets** (see examples below).

In the Boolean expression **'*'** causes a **AND operation** and a **'+'** causes a **OR operation**.

The expression is calculated from left to right. AND- before OR must be prioritized with parentheses

**Examples for Boolean expressions:**

Boolean expression | Comments |
---|---|

I2 | Only a boolean symbol is specified. |

I0*I1 | AND conjunction between two Boolean symbols |

I0+I1 | OR conjunction between two Boolean symbols |

I0*I1*(I2+I3) | AND and OR combination with parentheses |

(I0*I1)+(I2*I3) | The result of two AND conjunctions are OR combined |

↑I0 | Rising edge of I0 |

↓I0 | Falling edge of I0 |

!I0 | Negated query of I0 (Will be displayed by a horz. line in GRAFCET) |

↓I0*I1 | Falling edge of I0 AND I1 |

2s/(I0*I1)+I2 | If I0 AND I1 are TRUE, a time starts (2 sec.). The expression is TRUE if I2 is TRUE OR the time is expired and I0 and I1 are still TRUE |

I0*[Value1>Value2] | I0 must be TRUE and Value1 must be greater than Value2. Comparators must be in square brackets. |

I0*[Value1>Value2+10] | I0 must be TRUE and Value1 must be greater than Value2+10. This example also makes it clear why a comparison must be in square brackets. The plus sign is an addition within the parenthesis and an OR conjunction outside the parenthesis. |

[Value1>Value2] * [Value3<Value3] | An AND conjunction of two comparators. |

[Value1=Value2] | Comparison on equal |

[Value1!=Value2] | Comparison to different |

[Value1>Value2] | Comparison on bigger |

[Value1<Value2] | Comparison to less than |

[Value1>=Value2] | Comparison on greater than or equal to |

[Value1<=Value2] | Comparison on less than or equal to |

A Boolean symbol can be written with a **stored action**.
See marker 2

**Syntax:**

**Bool-Symbol**:=**Boolean expression**

Explanation of Boolean expression (see above).

This GRAFCET features are *not yet* supported by GRAFCET-Studio:

~~Forcing of a partial GRAFCET to the current situation (Freeze command)~~- Edge of a bracket term. Sample: ↑(I0*I1). Edge of operands are possible: ↑I0
~~Time limited action: This is not supported !(6s/X28) in a continuous action with condition.~~- Query of step duration. Example for step "1"="T1" (See DIN EN 60848[2.2])