(* @PATH := '\/TASK1_PID\/PID_Controllers' *) (* @SYMFILEFLAGS := '59392' *) PROGRAM TestFlowmeters VAR mAcqStop : BOOL ; mSyrAcqEn : BOOL ; mWaterAcqEn : BOOL ; mWaterFlowValveRatio : REAL ; mSyrupFlowValveRatio : REAL ; mWaterFlowValveRatioFltd : LowPassFilter ; mSyrupFlowValveRatioFltd : LowPassFilter ; mWaterRatioOut : REAL ; mSyrupRatioOut : REAL ; mONSAux : R_TRIG ; mClkOns : BOOL ; mPVRatio : REAL ; mDummy : BOOL ; te: BOOL; END_VAR VAR_OUTPUT EN_Out : BOOL ; END_VAR (* @END_DECLARATION := '0' *) _LD_BODY _NETWORKS : 4 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _EMPTY _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _FUNCTIONBLOCK ??? _BOX_EXPR : 0 _ENABLED _EXPRESSION _POSITIV TestFlowmeters.DataAcquisition _OUTPUTS : 0 _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mDummy ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT gClock_10s _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT gClock_1s _EXPRESSION _POSITIV _FUNCTIONBLOCK mONSAux _BOX_EXPR : 1 _EMPTY _EXPRESSION _POSITIV R_TRIG _OUTPUTS : 0 _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 0 ENABLELIST_END _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mClkOns _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT mWaterAcqEn _EXPRESSION _POSITIV _LD_CONTACT mAcqStop _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _FUNCTIONBLOCK mWaterFlowValveRatioFltd _BOX_EXPR : 3 _ENABLED _OPERAND _EXPRESSION _POSITIV mWaterFlowValveRatio _OPERAND _EXPRESSION _POSITIV 30 _OPERAND _EXPRESSION _POSITIV TRUE _EXPRESSION _POSITIV LowPassFilter _OUTPUTS : 0 _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mWaterRatioOut ENABLELIST_END _OUTPUTS : 0 _NETWORK _COMMENT _END_COMMENT _LD_ASSIGN _LD_AND _LD_OPERATOR : 2 _LD_CONTACT mSyrAcqEn _EXPRESSION _POSITIV _LD_CONTACT mAcqStop _EXPRESSION _NEGATIV _EXPRESSION _POSITIV _EXPRESSION _POSITIV ENABLELIST : 1 _ASSIGN _FUNCTIONBLOCK mSyrupFlowValveRatioFltd _BOX_EXPR : 3 _ENABLED _OPERAND _EXPRESSION _POSITIV mSyrupFlowValveRatio _OPERAND _EXPRESSION _POSITIV 30 _OPERAND _EXPRESSION _POSITIV TRUE _EXPRESSION _POSITIV LowPassFilter _OUTPUTS : 0 _EXPRESSION _POSITIV _OUTPUTS : 1 _OUTPUT _POSITIV _NO_SET mSyrupRatioOut ENABLELIST_END _OUTPUTS : 0 END_PROGRAM ACTION DataAcquisition: IF mClkOns AND gBlenderEnToRamp THEN IF gR_Out_H2O_PID>1 THEN mWaterAcqEn := TRUE ; mWaterFlowValveRatio := gH2O_Flow_PV / gR_Out_H2O_PID ; END_IF IF gR_Out_SYR_PID>1 THEN mSyrAcqEn := TRUE ; mSyrupFlowValveRatio := gSYR_Flow_PV / gR_Out_SYR_PID ; END_IF ELSE mWaterAcqEn := FALSE ; mSyrAcqEn := FALSE ; END_IF IF gBlenderStableFlow THEN IF gMFM_Syrup1Totalizer>1 AND gActualSyrupDens>0.5 THEN mPVRatio := gMFM_WaterTotalizer / (gMFM_Syrup1Totalizer / gActualSyrupDens) ; END_IF END_IF END_ACTION