Machine communication

Trigger list 

The trigger system is a sequence and communication control system within the Analyzer4D software. This controller is similar to a mini
PLC in which, analogous to the PLC of a large machine control system a kind of program is processed cyclically. The trigger list is our module to the outside world: from here, events from outside are processed and results are communicated to the machine.

This allows us to:

  • Receive and trigger external machine control signals.

  • Exchange data with machines

  • Control the recording of measured values

  • Control internal measurement, analysis and control processes

We refer to the program as a "trigger list". In the trigger list a possible event is linked to an action in each line. 
The trigger list is processed completely every 2 milliseconds.

Example Trigger List

On the left-hand side is the trigger - the event and on the right-hand side the action that is executed when the event occurs.

This trigger list starts a measurement on a rising edge at digital I/O input 1.1 (line 1). The measurement is then stopped again after 10 seconds (line 2). If the "high_energy" signal is sent by an operator network during the measurement, I/O output 3.4 is set (line 3). This output signal is reset at each measurement start if it was active (line 4)

The example shows how external signals are evaluated and how internal analyses (in this case a running operator network) can be linked to external signals.

Examples of external communication via triggers

  • 16 - 24 digital I/O inputs (24V) and 8 - 16 digital I/O outputs
  • Profibus / Profinet with a maximum telegram size of 144 bytes
  • Keyboard entries​
  • Scripts and CLI commands in the Linux system​
  • AppVars
  • Indirectly via AppVars also: JSON Server (Communication Server)

Examples of event types

  • I/O input status has changed (IO Input Line Event, IO Measure on ...)​

  • Internal counter has reached a threshold value (enumerator target)

  • Time has expired (timer target)​

  • Analyzer status has changed (app event)​

  • Profibus message received (Profibus event)​

  • TCP socket message received​

  • Operator network has sent a signal (operator signal)​

  • Global variable (AppVar) has changed its value (Global Variable Changed)​

​Global variables and the trigger system

​Global variables (so-called AppVars) can be read, modified and created from practically all modules of the Analyzer software. This provides a powerful system for exchanging information within the software.

An AppVar simply consists of a Key/Value pair, i.e. a key, which is also the name of the variable variable and its content, which is a string. An AppVar can e.g. from the SetAppVar operator or generally from a Python operator, in the JSON server, test scripts or simply from the trigger list itself. trigger list itself.​

Example for Trigger, AppVars and Profibus

This trigger list sends the content of the AppVar "SPEED" as a 32bit value via Profibus in a telegram to address 8. change of a 32bit value in a Profibus message received at address at address 4 is written to the "POSITION" AppVar.

Trigger action

Many software actions can be triggered from the trigger list. Of course, measurements can be controlled here, but global variables can also be changed, metadata can be added or even complex scripts and application commands can be executed.

Python integration

For maximum flexibility, Python functions can be executed directly from the trigger list, allowing even complex control logic to be mapped.

Python can also be used to communicate events from the software to the outside world.


Network interface

Our software offers a comprehensive network interface based on a JSON protocol, but don't worry - you don't have to deal with the details of our interface protocol now: We offer a comprehensive Python implementation of this interface.

QASS Open Source

Über die Schnittstelle lassen sich praktisch alle Aktionen initiieren, die auch von der Triggerliste aus gestartet werden können.

This means you can control the Optimizer4D remotely from the comfort of your desk, 
but above all, you can integrate the Optimizer4D into complex control systems.

The network interface naturally offers the possibility to control measurements, but also to be informed about changes to the system. Notifications can be registered for changes to inputs/outputs and AppVars (global application variables). This allows you to react dynamically to status changes or analysis results in your implementation.

Even direct control from Matlab should not be an obstacle, as Matlab also allows Python code to be executed. (

The network interface plays a special role in the implementation of external communication adapters.

Communication adapter

Some of the established industrial communication protocols require special hardware interfaces. These include 24V inputs/outputs, but also Profibus or Profinet. The required interfaces are supported by Optimizer4D and are integrated into the software..

However, many protocols are now based on widespread network technology. MQTT and OPCUA have long been widely used in the smart home sector, but also in industry.

Our Python network interface enables the implementation of almost any communication adapter. With the help of AppVars, values can be transmitted TO the Analyzer4D software as well as received FROM the software.

In this way, we implement communication bridges for OPCUA or the TCP/IP interface of Siemens PLCs, for example. All protocols that are available under Python can be linked to our software in this way.