(* 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