Learn SCHNEIDER-ECOSTRUXURE-UNITYPRO with Real Code Examples
Updated Nov 27, 2025
Code Sample Descriptions
1
Hello World Output in Unity Pro (ST)
IF %I0.0 THEN
%Q0.0 := TRUE;
ELSE
%Q0.0 := FALSE;
END_IF;
A basic Structured Text example that turns ON %Q0.0 when %I0.0 is TRUE.
2
TON On-Delay Timer (ST)
TON_1(IN := %I0.1, PT := T#5s);
IF TON_1.Q THEN
%Q0.1 := TRUE;
END_IF;
Standard TON timer usage in Unity Pro ST.
3
CTU Up Counter (ST)
CTU_1(CU := %I0.2, PV := 10);
IF CTU_1.CV >= 10 THEN
%Q0.2 := TRUE;
END_IF;
Counting rising pulses on %I0.2. After reaching 10, %Q0.2 turns ON.
5
Analog Scaling (0–27648 -> 0–100%)
Scaled := (REAL(%IW0) * 100.0) / 27648.0;
Unity analog inputs use 0–27648 for 0–20 mA or 0–10V.
6
Motor Start/Stop Seal (ST)
IF %I0.3 THEN
M_Start := TRUE;
END_IF;
IF %I0.4 THEN
M_Start := FALSE;
END_IF;
%Q0.3 := M_Start;
Classic latch logic using %I0.3 start and %I0.4 stop.
7
Rising Edge Detection (R_TRIG)
R_TRIG_1(CLK := %I0.5);
IF R_TRIG_1.Q THEN
%Q0.4 := TRUE;
END_IF;
Using Unity’s built-in R_TRIG function block.
8
FOR Loop Summing Registers
Sum := 0;
FOR i := 0 TO 9 DO
Sum := Sum + %MW[i];
END_FOR;
Sum %MW0 through %MW9.
9
PID Function Block Example
PIDAT_1(
PV := %MW100,
SP := %MW200,
KP := 1.0,
TI := 2.0,
TD := 0.0,
MAN := FALSE,
OUT => %MW300
);
Calling the PIDAT block in Unity Pro for process control.
10
PWM Output Example (ST)
IF Ramp >= 100 THEN
Ramp := 0;
END_IF;
IF Ramp < Duty THEN
%Q0.5 := TRUE;
ELSE
%Q0.5 := FALSE;
END_IF;
Ramp := Ramp + 1;
Generating PWM by comparing a ramp counter against duty cycle.