(* Código SCL generado desde LAD TwinCAT *)
(* Convertidor mejorado con SymPy - Estructura DNF preferida *)
(* Path original: \/TASK2_ControlMain\/CIP *)

PROGRAM CentralCIP_Ctrl
VAR_OUTPUT
    EN_Out					: BOOL ;
END_VAR

VAR
    mReadCIP_Block			: ADSREAD ;
    mReadCIP_Busy			: BOOL ;
    mReadCIP_Read			: BOOL ;
    mReadCIP_Error				: BOOL ;
    mReadCIP_ErrorCode		: UDINT ;
    mDummy					: BOOL ;
    mCIPCommFault				: TON;
END_VAR


(* === CÓDIGO PRINCIPAL === *)

    (* Código LAD convertido *)
    // Red 1

    // Red 2

    // Red 4
    // Llamada a función: ???
    // Sin optimización SymPy
    IF ???() THEN
        mDummy := TRUE;
    ELSE
        mDummy := FALSE;
    END_IF;

    // Red 3
    // Sin optimización SymPy
    IF (gH_Blender_OPT_CIPSignalExchange AND gBlenderCIPMode AND NOT gCIPReceiveData.AliveBit AND mCIPCommFault(_POSITIV)) THEN
        gCIPCommFault := TRUE;
    ELSE
        gCIPCommFault := FALSE;
    END_IF;

END_PROGRAM

(* === SUBFUNCIONES (ACTIONs convertidas) === *)

PROCEDURE CentralCIP_Ctrl_SignalsInterchange
(* Convertida desde ACTION *)

    (* Código LAD convertido a SCL *)
    // Red 1
    IF (NOT mReadCIP_Read AND NOT mReadCIP_Busy) THEN
        mReadCIP_Read := TRUE;
    ELSE
        mReadCIP_Read := FALSE;
    END_IF;

    // Red 3
    // Llamada a función: mReadCIP_Block
    IF mReadCIP_Block(_POSITIV) THEN
        mDummy := TRUE;
    ELSE
        mDummy := FALSE;
    END_IF;

    // Red 2
    IF mReadCIP_Block(_POSITIV) THEN
        mReadCIP_Busy := TRUE;
    ELSE
        mReadCIP_Busy := FALSE;
    END_IF;


END_PROCEDURE
