Learn S7-SCL-ADVANCED with Real Code Examples
Updated Nov 27, 2025
Code Sample Descriptions
1
Simple PID Function Block
FUNCTION_BLOCK FB_PID
VAR_INPUT
SP : REAL;
PV : REAL;
END_VAR
VAR_OUTPUT
CV : REAL;
END_VAR
VAR
e_prev : REAL := 0;
i_sum : REAL := 0;
Kp : REAL := 1.0;
Ki : REAL := 0.1;
Kd : REAL := 0.01;
END_VAR
CV := Kp*(SP-PV) + Ki*i_sum + Kd*(PV - e_prev);
i_sum := i_sum + (SP-PV);
e_prev := PV;
A basic PID controller implemented in S7-SCL.
2
Array Processing Example
FUNCTION FB_ArraySum
VAR_INPUT
values : ARRAY[1..10] OF INT;
END_VAR
VAR_OUTPUT
sum : INT;
END_VAR
VAR
i : INT;
END_VAR
sum := 0;
FOR i := 1 TO 10 DO
sum := sum + values[i];
END_FOR;
Sum elements of an array using S7-SCL.
3
Conditional Motor Control
FUNCTION FB_MotorControl
VAR_INPUT
sensor : BOOL;
END_VAR
VAR_OUTPUT
motor : BOOL;
END_VAR
IF sensor THEN
motor := TRUE;
ELSE
motor := FALSE;
END_IF;
Turn a motor on or off based on sensor input using S7-SCL.