99 lines
2.2 KiB
Plaintext
99 lines
2.2 KiB
Plaintext
(* Código SCL generado desde LAD TwinCAT *)
|
|
(* Convertidor mejorado con SymPy - Estructura DNF preferida *)
|
|
(* Path original: /TASK1_PID/PID_Controllers/Test_Program *)
|
|
|
|
PROGRAM Test_Pattern_Program
|
|
VAR
|
|
mDummy : BOOL;
|
|
mFillerEstSlew : SlewLimit;
|
|
mFillingHead_PID : FB41_PIDController;
|
|
END_VAR
|
|
|
|
|
|
(* === CÓDIGO PRINCIPAL === *)
|
|
|
|
(* Código LAD convertido *)
|
|
// Red 2
|
|
// Llamada a función: Test_Pattern_Program.Read_Analog
|
|
CALL Test_Pattern_Program.Read_Analog();
|
|
mDummy := TRUE; // ACTION ejecutada
|
|
|
|
// Red 1
|
|
// Patrón 1: ACTION call con ???
|
|
CALL Test_Pattern_Program.Read_Analog();
|
|
mDummy := TRUE; // ACTION ejecutada
|
|
|
|
// Red 4
|
|
// Llamada a función: mFillerEstSlew
|
|
// Sin optimización SymPy
|
|
IF mFillerEstSlew(_POSITIV) THEN
|
|
mDummy := TRUE;
|
|
ELSE
|
|
mDummy := FALSE;
|
|
END_IF;
|
|
|
|
// Red 3
|
|
// Patrón 2: Function Block directo
|
|
// Sin optimización SymPy
|
|
IF mFillerEstSlew(_POSITIV) THEN
|
|
mDummy := TRUE;
|
|
ELSE
|
|
mDummy := FALSE;
|
|
END_IF;
|
|
|
|
// Red 6
|
|
// Llamada a función: Test_Pattern_Program.Calculations
|
|
CALL Test_Pattern_Program.Calculations();
|
|
mDummy := TRUE; // ACTION ejecutada
|
|
|
|
// Red 5
|
|
// Patrón 3: Otra ACTION call con ???
|
|
CALL Test_Pattern_Program.Calculations();
|
|
mDummy := TRUE; // ACTION ejecutada
|
|
|
|
// Red 8
|
|
// Llamada a función: mFillingHead_PID
|
|
// Sin optimización SymPy
|
|
IF mFillingHead_PID(_POSITIV) THEN
|
|
mDummy := TRUE;
|
|
ELSE
|
|
mDummy := FALSE;
|
|
END_IF;
|
|
|
|
// Red 7
|
|
// Patrón 4: Function Block PID directo
|
|
// Sin optimización SymPy
|
|
IF mFillingHead_PID(_POSITIV) THEN
|
|
mPIDOutput := TRUE;
|
|
ELSE
|
|
mPIDOutput := FALSE;
|
|
END_IF;
|
|
|
|
END_PROGRAM
|
|
|
|
(* === SUBFUNCIONES (ACTIONs convertidas) === *)
|
|
|
|
PROCEDURE Test_Pattern_Program_Read_Analog
|
|
(* Convertida desde ACTION *)
|
|
|
|
(* Código LAD convertido a SCL *)
|
|
// Red 1
|
|
// ACTION de ejemplo
|
|
IF gAnalogEnable THEN
|
|
gAnalogValue := TRUE;
|
|
ELSE
|
|
gAnalogValue := FALSE;
|
|
END_IF;
|
|
|
|
|
|
END_PROCEDURE
|
|
|
|
PROCEDURE Test_Pattern_Program_Calculations
|
|
(* Convertida desde ACTION *)
|
|
|
|
(* Código ST original *)
|
|
gCalculatedValue := gInputA + gInputB * 2.5;
|
|
mDummy := TRUE;
|
|
|
|
END_PROCEDURE
|