> For the complete documentation index, see [llms.txt](https://infosys.selmotech.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://infosys.selmotech.com/selmo-solution/selmo-solution-en/selmo-documentation/5-logic-and-layers-dynamic/logic-layer.md).

# Logic layer

## Model the sequence

The **logic layer** describes the **logical sequence of a sequence**.\
It models **states and transitions**, however **no technology** and **no signals**.

The goal of the logic layer is to describe the sequence:

* understandably
* unambiguously
* deterministically

to describe.

> **The logic layer answers the question:**\
> **In which logical situation is the process –**\
> **and how does it continue?**

***

### Basic principle of the logic layer

In the logic layer applies:

* a sequence is always in **exactly one state**
* transitions only occur when conditions are met
* states describe **situations**, not actions
* technology is **not** described in the logic layer

The logic layer is therefore:

* independent of hardware
* independent of PLC
* completely process-logical

***

### state

#### meaning

A **state** describes a **logical situation** in the sequence.

Examples:

* *workpiece inserted*
* *clamping established*
* *processing completed*

A state:

* contains no commands
* contains no actuator movements
* only defines, **when it is considered fulfilled**

> **A state describes,&#x20;*****that*****&#x20;something is the case –**\
> **not,&#x20;*****how*****&#x20;it is brought about.**

***

#### When a state makes sense

* when a clear process situation exists
* when several conditions must be met together
* when the state can be named unambiguously

#### When a state does not make sense

* for short technical intermediate actions
* for pure actuator movements
* for PLC-internal auxiliary states

***

### timer state

#### meaning

A **timer state** is a state with **a temporal condition**.

It is considered fulfilled:

* when the underlying state is active
* and a defined time has elapsed

Examples:

* hold time after clamping
* waiting time before a check step
* cooling time

***

#### When a timer state makes sense

* when time is part of the process
* when time logically belongs to the state
* when the sequence must be reproducible in a time-dependent way

#### When a timer state does not make sense

* to compensate for unstable technology
* as a substitute for missing feedback
* for purely technical delays

***

### decision

#### meaning

A **decision** describes a **logical branching** in the sequence.

It decides:

* which subsequent path is taken
* based on clear conditions

Examples:

* test result OK / NOK
* option activated / not activated
* repeat / continue

***

#### When a decision makes sense

* when the process has multiple logical paths
* when the decision is technically justified
* when the decision must be explicitly traceable

#### When a decision does not make sense

* to map technical boundary conditions
* for error compensation
* as a substitute for clean state definitions

***

### repeater

#### meaning

A **repeater** repeats one or more states.

It is used to:

* loops
* repetitions
* test cycles

formally map.

Examples:

* multiple testing
* retry attempts
* iterative processing step

***

#### When a repeater makes sense

* when repetition is part of the process
* when number or condition is defined
* when the sequence should remain structured

#### When a repeater does not make sense

* for uncontrolled endless loops
* to compensate for unstable processes
* when repetition is not technically justified

***

### jump

#### meaning

A **jump** consciously leaves the linear sequence\
and jumps to another state.

There are:

* conditional jumps
* unconditional jumps

Examples:

* abort paths
* targeted backward jumps
* exception handling

***

#### When a jump makes sense

* for clearly defined special cases
* for abort or reset paths
* when the sequence would otherwise become confusing

#### When a jump does not make sense

* as a substitute for clean structure
* for normal sequence
* to circumvent modeling errors

> **Jumps are powerful – and should be used sparingly.**

***

### sequence cross

#### meaning

**sequence cross** connects **multiple sequences logically with each other**.

It enables:

* synchronization
* dependencies between sequences
* coordinated transitions

Examples:

* robot waits for station
* station waits for transport
* parallel processes with synchronization point

***

#### When sequence cross makes sense

* in modular plants
* with parallel sequences
* when sequences should remain logically separate

#### When sequence cross does not make sense

* for artificial splitting of simple sequences
* with unnecessary fragmentation
* when one sequence would be logically sufficient

***

### important distinction

The logic layer:

* describes **not**
  * signals
  * actuators
  * safety logic
  * operation

These aspects belong:

* in the **system layer**
* in **zones**
* in **bit control**
* in **CMZ / MXIC**

> **The logic layer describes the sequence –**\
> **not its technical implementation.**

***

### summary

The logic layer:

* is the logical backbone of every sequence
* describes the sequence in states
* separates process logic from technology
* enforces clarity and determinism

The logic elements are tools –\
their quality is shown in the **conscious use**.

> **A good logic layer is simple,**\
> **explainable and free of technical details.**


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://infosys.selmotech.com/selmo-solution/selmo-solution-en/selmo-documentation/5-logic-and-layers-dynamic/logic-layer.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
