From c597eaa28f5bb9ed972169c6ee9cee30857deafb Mon Sep 17 00:00:00 2001 From: Miguel Date: Thu, 19 Jun 2025 14:30:15 +0200 Subject: [PATCH] Primera Version TwinCat Converter --- .../IO_adaptation/x5_md_to_excel.py | 283 +- .../TwinCat/.example/ADSVARREAD.EXP | 297 + .../TwinCat/.example/ADSVARTRANSLATE.EXP | 143 + .../TwinCat/.example/ADSVARWRITE.EXP | 297 + .../TwinCat/.example/AMMONIACTRL.EXP | 611 + .../TwinCat/.example/ARRAYTOREAL.EXP | 29 + .../.example/BLENDERPROCEDURE_VARIABLES.EXP | 209 + .../TwinCat/.example/BLENDERRINSE.EXP | 970 ++ .../.example/BLENDER_PID_CTRL_LOOP.EXP | 5886 ++++++++ .../.example/BLENDER_PROCEDURECALL.EXP | 406 + .../TwinCat/.example/BLENDER_RUNCONTROL.EXP | 4659 ++++++ .../TwinCat/.example/BLENDER_VARIABLES.EXP | 431 + .../TwinCat/.example/BLENDFILLRECSTRUCT.EXP | 71 + .../TwinCat/.example/BLENDFILLSENDSTRUCT.EXP | 64 + .../.example/BLENDFILLSYSTEM_STARTUP.EXP | 2497 ++++ .../TwinCat/.example/BRIXTRACKING.EXP | 826 ++ .../TwinCat/.example/BYTES_TO_DWORD.EXP | 21 + .../TwinCat/.example/BYTES_TO_WORD.EXP | 17 + .../TwinCat/.example/CALC_INJPRESS.EXP | 27 + .../TwinCat/.example/CARBOWATERLINE.EXP | 1122 ++ .../TwinCat/.example/CENTRALCIP_CTRL.EXP | 253 + .../TwinCat/.example/CETRIFUGAL_HEAD.EXP | 27 + .../TwinCat/.example/CIPRECEIVESTRUCT.EXP | 27 + .../TwinCat/.example/CIPSENDSTRUCT.EXP | 27 + .../TwinCat/.example/CIP_CVQ.EXP | 22 + .../TwinCat/.example/CIP_LINK_TYPE.EXP | 10 + .../TwinCat/.example/CIP_LIST_ELEMENT.EXP | 10 + .../TwinCat/.example/CIP_MAIN.EXP | 1490 ++ .../.example/CIP_PROGRAM_VARIABLES.EXP | 62 + .../TwinCat/.example/CIP_SIMPLE_TYPE.EXP | 13 + .../TwinCat/.example/CIP_STEP_TYPE.EXP | 16 + .../TwinCat/.example/CIP_WAITEVENT_TYPE.EXP | 40 + .../TwinCat/.example/CLEANBOOLARRAY.EXP | 24 + .../TwinCat/.example/CLOCK_SIGNAL.EXP | 83 + .../TwinCat/.example/CLOCK_VARIABLES.EXP | 29 + .../TwinCat/.example/CO2EQPRESS.EXP | 24 + .../TwinCat/.example/CO2INJPRESSURE.EXP | 16 + .../TwinCat/.example/CO2_SOLUBILITY.EXP | 21 + .../TwinCat/.example/CONVERTREAL.EXP | 28 + .../TwinCat/.example/CVQ_0_6_PERC.EXP | 24 + .../TwinCat/.example/CVQ_1P7_8_PERC.EXP | 24 + .../TwinCat/.example/DATA_FROM_CIP.EXP | 25 + .../TwinCat/.example/DATA_TO_CIP.EXP | 23 + .../TwinCat/.example/DEAIRCO2TEMPCOMP.EXP | 14 + .../TwinCat/.example/DEAIREATIONVALVE.EXP | 21 + .../TwinCat/.example/DEAIREATOR_STARTUP.EXP | 2693 ++++ .../script_groups/TwinCat/.example/DELAY.EXP | 25 + .../script_groups/TwinCat/.example/DELTAP.EXP | 17 + .../.example/DENSIMETER_CALIBRATION.EXP | 1239 ++ .../script_groups/TwinCat/.example/DERIVE.EXP | 22 + .../TwinCat/.example/DEVICENET_VARIABLES.EXP | 16 + .../TwinCat/.example/DWORD_TO_BYTES.EXP | 25 + .../TwinCat/.example/EXEC_SIMPLE_CIP.EXP | 558 + .../TwinCat/.example/FASTRINSE.EXP | 773 + .../TwinCat/.example/FB41_PIDCONTROLLER.EXP | 137 + .../TwinCat/.example/FC_CONTROL_WORD.EXP | 27 + .../TwinCat/.example/FC_STATUS_WORD.EXP | 26 + .../TwinCat/.example/FEEDFORWARD.EXP | 19 + .../TwinCat/.example/FILLERHEAD.EXP | 56 + .../TwinCat/.example/FILLERRECEIVESTRUCT.EXP | 30 + .../TwinCat/.example/FILLERRINSE.EXP | 684 + .../TwinCat/.example/FILLERRINSETANK_CTRL.EXP | 713 + .../TwinCat/.example/FILLERSENDSTRUCT.EXP | 29 + .../TwinCat/.example/FILLER_CONTROL.EXP | 11789 ++++++++++++++++ .../TwinCat/.example/FILLINGTIME.EXP | 26 + .../TwinCat/.example/FIRSTPRODUCTION.EXP | 971 ++ .../TwinCat/.example/FLOW_TO_PRESS_LOSS.EXP | 28 + .../TwinCat/.example/FREQ_TO_MMH2O.EXP | 14 + .../TwinCat/.example/FRICTIONLOSS.EXP | 16 + .../GETPRODBRIXCO2_FROMANALOGINPUT.EXP | 350 + .../.example/GETPRODO2_FROMANALOGINPUT.EXP | 133 + .../TwinCat/.example/GLOBAL_ALARMS.EXP | 99 + .../.example/GLOBAL_VARIABLES_IN_OUT.EXP | 354 + .../TwinCat/.example/HMI_ALARMS.EXP | 322 + .../.example/HMI_BLENDER_PARAMETERS.EXP | 269 + .../TwinCat/.example/HMI_IO_SHOWING.EXP | 97 + .../.example/HMI_LOCAL_CIP_VARIABLES.EXP | 44 + .../TwinCat/.example/HMI_SERVICE.EXP | 65 + .../TwinCat/.example/HMI_VARIABLES_CMD.EXP | 291 + .../TwinCat/.example/HMI_VARIABLES_STATUS.EXP | 353 + .../script_groups/TwinCat/.example/INPUT.EXP | 4610 ++++++ .../TwinCat/.example/INPUT_CIP_SIGNALS.EXP | 49 + .../TwinCat/.example/INPUT_SIGNAL.EXP | 15 + .../TwinCat/.example/INTEGRAL.EXP | 20 + .../TwinCat/.example/LOCALCIP_CTRL.EXP | 1329 ++ .../TwinCat/.example/LOWPASSFILTER.EXP | 54 + .../TwinCat/.example/LOWPASSFILTEROPT.EXP | 66 + .../TwinCat/.example/MASELLI.EXP | 61 + .../TwinCat/.example/MASELLIOPTO_TYPE.EXP | 31 + .../TwinCat/.example/MASELLIUC05_TYPE.EXP | 25 + .../TwinCat/.example/MASELLIUR22_TYPE.EXP | 28 + .../TwinCat/.example/MASELLI_CONTROL.EXP | 2311 +++ .../TwinCat/.example/MAXCARBOCO2_VOL.EXP | 23 + .../TwinCat/.example/MESSAGESCROLL.EXP | 44 + .../TwinCat/.example/MESSAGE_SCROLL.EXP | 7 + .../TwinCat/.example/MFMANALOG_VALUES.EXP | 663 + .../TwinCat/.example/MFM_REAL_STRUCT.EXP | 8 + .../TwinCat/.example/MMH2O_TO_FREQ.EXP | 27 + .../TwinCat/.example/MODVALVEFAULT.EXP | 358 + .../TwinCat/.example/MOVEARRAY.EXP | 27 + .../TwinCat/.example/MPDS1000.EXP | 36 + .../TwinCat/.example/MPDS1000_CONTROL.EXP | 945 ++ .../TwinCat/.example/MPDS1000_TYPE.EXP | 17 + .../TwinCat/.example/MPDS2000.EXP | 29 + .../TwinCat/.example/MPDS2000_CONTROL.EXP | 972 ++ .../TwinCat/.example/MPDS2000_TYPE.EXP | 18 + .../TwinCat/.example/MPDS_PA_CONTROL.EXP | 2601 ++++ .../TwinCat/.example/MSE_SLOPE.EXP | 61 + .../script_groups/TwinCat/.example/MYVAR.EXP | 18 + .../TwinCat/.example/OR_ARRAYBOOL.EXP | 25 + .../script_groups/TwinCat/.example/OUTPUT.EXP | 4069 ++++++ .../TwinCat/.example/PARAMETERNAMETYPE.EXP | 7 + .../TwinCat/.example/PA_MPDS.EXP | 73 + .../TwinCat/.example/PERIPHERIAL.EXP | 8 + .../TwinCat/.example/PID_VARIABLES.EXP | 195 + .../TwinCat/.example/PLC CONFIGURATION.EXP | 104 + .../TwinCat/.example/PNEUMATIC_VALVE_CTRL.EXP | 5443 +++++++ .../script_groups/TwinCat/.example/PPM_O2.EXP | 16 + .../TwinCat/.example/PRODBRIXRECOVERY.EXP | 440 + .../TwinCat/.example/PRODTANK_DRAIN.EXP | 1246 ++ .../TwinCat/.example/PRODTANK_RUNOUT.EXP | 1635 +++ .../TwinCat/.example/PRODUCTAVAILABLE.EXP | 256 + .../TwinCat/.example/PRODUCTION_VARIABLES.EXP | 30 + .../TwinCat/.example/PRODUCTLITERINTANK.EXP | 14 + .../TwinCat/.example/PRODUCTPIPEDRAIN.EXP | 609 + .../TwinCat/.example/PRODUCTPIPERUNOUT.EXP | 1663 +++ .../TwinCat/.example/PRODUCTQUALITY.EXP | 630 + .../TwinCat/.example/PRODUCTTANKBRIX.EXP | 44 + .../.example/PRODUCTTANK_PRESSCTRL.EXP | 1120 ++ .../TwinCat/.example/PROFIBUS_DATA.EXP | 15 + .../TwinCat/.example/PROFIBUS_NETWORK.EXP | 1301 ++ .../TwinCat/.example/PROFIBUS_VARIABLES.EXP | 196 + .../TwinCat/.example/PULSEPRESSURE.EXP | 23 + .../TwinCat/.example/PUMPSCONTROL.EXP | 2115 +++ .../TwinCat/.example/READANALOGIN.EXP | 28 + .../TwinCat/.example/READPERIPHERIAL.EXP | 23 + .../TwinCat/.example/SAFETIES.EXP | 3745 +++++ .../TwinCat/.example/SELCHECKBRIXSOURCE.EXP | 964 ++ .../TwinCat/.example/SIGNALS_INTEFACE.EXP | 29 + .../TwinCat/.example/SIGNAL_GEN.EXP | 26 + .../TwinCat/.example/SINUSOIDAL_SIGNAL.EXP | 16 + .../TwinCat/.example/SLEWLIMIT.EXP | 37 + .../TwinCat/.example/SLIM_BLOCK.EXP | 1990 +++ .../TwinCat/.example/SLIM_VARIABLES.EXP | 71 + .../TwinCat/.example/SOFTNET_VARIABLES.EXP | 28 + .../TwinCat/.example/SPEEDADJUST.EXP | 29 + .../TwinCat/.example/SP_AND_P_VARIABLES.EXP | 218 + .../.example/STANDARD.LIB_5.6.98 09_39_02.EXP | 27 + .../TwinCat/.example/STATISTICALANALISYS.EXP | 107 + .../.example/SYRBRIX_AUTOCORRECTION.EXP | 1232 ++ .../TwinCat/.example/SYRUPDENSITY.EXP | 20 + .../TwinCat/.example/SYRUPROOMCTRL.EXP | 72 + .../TwinCat/.example/SYRUP_LINE_MFM_PREP.EXP | 2118 +++ .../TwinCat/.example/SYRUP_MFM_STARTUP.EXP | 660 + .../TwinCat/.example/SYRUP_RUNOUT.EXP | 775 + .../.example/SYSTEMRUNOUT_VARIABLES.EXP | 150 + .../TwinCat/.example/SYSTEM_DATAS.EXP | 27 + .../TwinCat/.example/SYSTEM_RUN_OUT.EXP | 1375 ++ .../TwinCat/.example/TANKLEVEL.EXP | 1652 +++ .../TwinCat/.example/TANKLEVELTOHEIGHT.EXP | 19 + .../TwinCat/.example/TASK CONFIGURATION.EXP | 16 + .../TCPLCUTILITIES.LIB_11.12.01 09_39_02.EXP | 41 + .../TCSYSTEM.LIB_16.9.02 09_39_02.EXP | 65 + .../TwinCat/.example/TESTFLOWMETERS.EXP | 221 + .../TwinCat/.example/UDP_STRUCT.EXP | 9 + .../TwinCat/.example/UV_LAMP.EXP | 300 + .../TwinCat/.example/VACUUMCTRL.EXP | 237 + .../TwinCat/.example/VALVEFAULT.EXP | 176 + .../TwinCat/.example/VALVEFLOW.EXP | 18 + .../.example/VARIABLE_CONFIGURATION.EXP | 13 + .../script_groups/TwinCat/.example/VOID.EXP | 24 + .../TwinCat/.example/WATERDENSITY.EXP | 12 + .../TwinCat/.example/WORD_TO_BYTES.EXP | 22 + .../TwinCat/.example/WRITEPERIPHERIAL.EXP | 23 + .../TwinCat/.example/_BLENDER_CTRL_MAIN.EXP | 3685 +++++ .../TwinCat/.example/_BLENDER_PID_MAIN.EXP | 1169 ++ .../TwinCat/.example/_BOOLARRAY_TO_DWORD.EXP | 22 + .../TwinCat/.example/_BOOLARRAY_TO_WORD.EXP | 22 + .../.example/_DWORD_SWAP_BYTEARRAY.EXP | 29 + .../TwinCat/.example/_DWORD_TO_BOOLARRAY.EXP | 21 + .../.example/_FILLING_HEAD_PID_CTRL.EXP | 2606 ++++ .../TwinCat/.example/_PUMPCONTROL.EXP | 168 + .../TwinCat/.example/_STEPMOVE.EXP | 280 + .../TwinCat/.example/_WORD_TO_BOOLARRAY.EXP | 21 + backend/script_groups/TwinCat/README.md | 172 + .../TwinCat/ejemplo_conversion.py | 71 + .../TwinCat/lad_to_pseudocode_converter.py | 391 + .../lad_to_pseudocode_converter_enhanced.py | 429 + .../TwinCat/simple_lad_converter.py | 268 + .../TwinCat/test_enhanced_converter.py | 69 + backend/script_groups/TwinCat/test_simple.py | 23 + data/log.txt | 1128 +- 192 files changed, 105859 insertions(+), 589 deletions(-) create mode 100644 backend/script_groups/TwinCat/.example/ADSVARREAD.EXP create mode 100644 backend/script_groups/TwinCat/.example/ADSVARTRANSLATE.EXP create mode 100644 backend/script_groups/TwinCat/.example/ADSVARWRITE.EXP create mode 100644 backend/script_groups/TwinCat/.example/AMMONIACTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/ARRAYTOREAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDERPROCEDURE_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDERRINSE.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDER_PID_CTRL_LOOP.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDER_PROCEDURECALL.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDER_RUNCONTROL.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDER_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDFILLRECSTRUCT.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDFILLSENDSTRUCT.EXP create mode 100644 backend/script_groups/TwinCat/.example/BLENDFILLSYSTEM_STARTUP.EXP create mode 100644 backend/script_groups/TwinCat/.example/BRIXTRACKING.EXP create mode 100644 backend/script_groups/TwinCat/.example/BYTES_TO_DWORD.EXP create mode 100644 backend/script_groups/TwinCat/.example/BYTES_TO_WORD.EXP create mode 100644 backend/script_groups/TwinCat/.example/CALC_INJPRESS.EXP create mode 100644 backend/script_groups/TwinCat/.example/CARBOWATERLINE.EXP create mode 100644 backend/script_groups/TwinCat/.example/CENTRALCIP_CTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/CETRIFUGAL_HEAD.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIPRECEIVESTRUCT.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIPSENDSTRUCT.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIP_CVQ.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIP_LINK_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIP_LIST_ELEMENT.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIP_MAIN.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIP_PROGRAM_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIP_SIMPLE_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIP_STEP_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/CIP_WAITEVENT_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/CLEANBOOLARRAY.EXP create mode 100644 backend/script_groups/TwinCat/.example/CLOCK_SIGNAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/CLOCK_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/CO2EQPRESS.EXP create mode 100644 backend/script_groups/TwinCat/.example/CO2INJPRESSURE.EXP create mode 100644 backend/script_groups/TwinCat/.example/CO2_SOLUBILITY.EXP create mode 100644 backend/script_groups/TwinCat/.example/CONVERTREAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/CVQ_0_6_PERC.EXP create mode 100644 backend/script_groups/TwinCat/.example/CVQ_1P7_8_PERC.EXP create mode 100644 backend/script_groups/TwinCat/.example/DATA_FROM_CIP.EXP create mode 100644 backend/script_groups/TwinCat/.example/DATA_TO_CIP.EXP create mode 100644 backend/script_groups/TwinCat/.example/DEAIRCO2TEMPCOMP.EXP create mode 100644 backend/script_groups/TwinCat/.example/DEAIREATIONVALVE.EXP create mode 100644 backend/script_groups/TwinCat/.example/DEAIREATOR_STARTUP.EXP create mode 100644 backend/script_groups/TwinCat/.example/DELAY.EXP create mode 100644 backend/script_groups/TwinCat/.example/DELTAP.EXP create mode 100644 backend/script_groups/TwinCat/.example/DENSIMETER_CALIBRATION.EXP create mode 100644 backend/script_groups/TwinCat/.example/DERIVE.EXP create mode 100644 backend/script_groups/TwinCat/.example/DEVICENET_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/DWORD_TO_BYTES.EXP create mode 100644 backend/script_groups/TwinCat/.example/EXEC_SIMPLE_CIP.EXP create mode 100644 backend/script_groups/TwinCat/.example/FASTRINSE.EXP create mode 100644 backend/script_groups/TwinCat/.example/FB41_PIDCONTROLLER.EXP create mode 100644 backend/script_groups/TwinCat/.example/FC_CONTROL_WORD.EXP create mode 100644 backend/script_groups/TwinCat/.example/FC_STATUS_WORD.EXP create mode 100644 backend/script_groups/TwinCat/.example/FEEDFORWARD.EXP create mode 100644 backend/script_groups/TwinCat/.example/FILLERHEAD.EXP create mode 100644 backend/script_groups/TwinCat/.example/FILLERRECEIVESTRUCT.EXP create mode 100644 backend/script_groups/TwinCat/.example/FILLERRINSE.EXP create mode 100644 backend/script_groups/TwinCat/.example/FILLERRINSETANK_CTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/FILLERSENDSTRUCT.EXP create mode 100644 backend/script_groups/TwinCat/.example/FILLER_CONTROL.EXP create mode 100644 backend/script_groups/TwinCat/.example/FILLINGTIME.EXP create mode 100644 backend/script_groups/TwinCat/.example/FIRSTPRODUCTION.EXP create mode 100644 backend/script_groups/TwinCat/.example/FLOW_TO_PRESS_LOSS.EXP create mode 100644 backend/script_groups/TwinCat/.example/FREQ_TO_MMH2O.EXP create mode 100644 backend/script_groups/TwinCat/.example/FRICTIONLOSS.EXP create mode 100644 backend/script_groups/TwinCat/.example/GETPRODBRIXCO2_FROMANALOGINPUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/GETPRODO2_FROMANALOGINPUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/GLOBAL_ALARMS.EXP create mode 100644 backend/script_groups/TwinCat/.example/GLOBAL_VARIABLES_IN_OUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/HMI_ALARMS.EXP create mode 100644 backend/script_groups/TwinCat/.example/HMI_BLENDER_PARAMETERS.EXP create mode 100644 backend/script_groups/TwinCat/.example/HMI_IO_SHOWING.EXP create mode 100644 backend/script_groups/TwinCat/.example/HMI_LOCAL_CIP_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/HMI_SERVICE.EXP create mode 100644 backend/script_groups/TwinCat/.example/HMI_VARIABLES_CMD.EXP create mode 100644 backend/script_groups/TwinCat/.example/HMI_VARIABLES_STATUS.EXP create mode 100644 backend/script_groups/TwinCat/.example/INPUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/INPUT_CIP_SIGNALS.EXP create mode 100644 backend/script_groups/TwinCat/.example/INPUT_SIGNAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/INTEGRAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/LOCALCIP_CTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/LOWPASSFILTER.EXP create mode 100644 backend/script_groups/TwinCat/.example/LOWPASSFILTEROPT.EXP create mode 100644 backend/script_groups/TwinCat/.example/MASELLI.EXP create mode 100644 backend/script_groups/TwinCat/.example/MASELLIOPTO_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/MASELLIUC05_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/MASELLIUR22_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/MASELLI_CONTROL.EXP create mode 100644 backend/script_groups/TwinCat/.example/MAXCARBOCO2_VOL.EXP create mode 100644 backend/script_groups/TwinCat/.example/MESSAGESCROLL.EXP create mode 100644 backend/script_groups/TwinCat/.example/MESSAGE_SCROLL.EXP create mode 100644 backend/script_groups/TwinCat/.example/MFMANALOG_VALUES.EXP create mode 100644 backend/script_groups/TwinCat/.example/MFM_REAL_STRUCT.EXP create mode 100644 backend/script_groups/TwinCat/.example/MMH2O_TO_FREQ.EXP create mode 100644 backend/script_groups/TwinCat/.example/MODVALVEFAULT.EXP create mode 100644 backend/script_groups/TwinCat/.example/MOVEARRAY.EXP create mode 100644 backend/script_groups/TwinCat/.example/MPDS1000.EXP create mode 100644 backend/script_groups/TwinCat/.example/MPDS1000_CONTROL.EXP create mode 100644 backend/script_groups/TwinCat/.example/MPDS1000_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/MPDS2000.EXP create mode 100644 backend/script_groups/TwinCat/.example/MPDS2000_CONTROL.EXP create mode 100644 backend/script_groups/TwinCat/.example/MPDS2000_TYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/MPDS_PA_CONTROL.EXP create mode 100644 backend/script_groups/TwinCat/.example/MSE_SLOPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/MYVAR.EXP create mode 100644 backend/script_groups/TwinCat/.example/OR_ARRAYBOOL.EXP create mode 100644 backend/script_groups/TwinCat/.example/OUTPUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/PARAMETERNAMETYPE.EXP create mode 100644 backend/script_groups/TwinCat/.example/PA_MPDS.EXP create mode 100644 backend/script_groups/TwinCat/.example/PERIPHERIAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/PID_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/PLC CONFIGURATION.EXP create mode 100644 backend/script_groups/TwinCat/.example/PNEUMATIC_VALVE_CTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/PPM_O2.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODBRIXRECOVERY.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODTANK_DRAIN.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODTANK_RUNOUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODUCTAVAILABLE.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODUCTION_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODUCTLITERINTANK.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODUCTPIPEDRAIN.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODUCTPIPERUNOUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODUCTQUALITY.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODUCTTANKBRIX.EXP create mode 100644 backend/script_groups/TwinCat/.example/PRODUCTTANK_PRESSCTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/PROFIBUS_DATA.EXP create mode 100644 backend/script_groups/TwinCat/.example/PROFIBUS_NETWORK.EXP create mode 100644 backend/script_groups/TwinCat/.example/PROFIBUS_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/PULSEPRESSURE.EXP create mode 100644 backend/script_groups/TwinCat/.example/PUMPSCONTROL.EXP create mode 100644 backend/script_groups/TwinCat/.example/READANALOGIN.EXP create mode 100644 backend/script_groups/TwinCat/.example/READPERIPHERIAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/SAFETIES.EXP create mode 100644 backend/script_groups/TwinCat/.example/SELCHECKBRIXSOURCE.EXP create mode 100644 backend/script_groups/TwinCat/.example/SIGNALS_INTEFACE.EXP create mode 100644 backend/script_groups/TwinCat/.example/SIGNAL_GEN.EXP create mode 100644 backend/script_groups/TwinCat/.example/SINUSOIDAL_SIGNAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/SLEWLIMIT.EXP create mode 100644 backend/script_groups/TwinCat/.example/SLIM_BLOCK.EXP create mode 100644 backend/script_groups/TwinCat/.example/SLIM_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/SOFTNET_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/SPEEDADJUST.EXP create mode 100644 backend/script_groups/TwinCat/.example/SP_AND_P_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/STANDARD.LIB_5.6.98 09_39_02.EXP create mode 100644 backend/script_groups/TwinCat/.example/STATISTICALANALISYS.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYRBRIX_AUTOCORRECTION.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYRUPDENSITY.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYRUPROOMCTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYRUP_LINE_MFM_PREP.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYRUP_MFM_STARTUP.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYRUP_RUNOUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYSTEMRUNOUT_VARIABLES.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYSTEM_DATAS.EXP create mode 100644 backend/script_groups/TwinCat/.example/SYSTEM_RUN_OUT.EXP create mode 100644 backend/script_groups/TwinCat/.example/TANKLEVEL.EXP create mode 100644 backend/script_groups/TwinCat/.example/TANKLEVELTOHEIGHT.EXP create mode 100644 backend/script_groups/TwinCat/.example/TASK CONFIGURATION.EXP create mode 100644 backend/script_groups/TwinCat/.example/TCPLCUTILITIES.LIB_11.12.01 09_39_02.EXP create mode 100644 backend/script_groups/TwinCat/.example/TCSYSTEM.LIB_16.9.02 09_39_02.EXP create mode 100644 backend/script_groups/TwinCat/.example/TESTFLOWMETERS.EXP create mode 100644 backend/script_groups/TwinCat/.example/UDP_STRUCT.EXP create mode 100644 backend/script_groups/TwinCat/.example/UV_LAMP.EXP create mode 100644 backend/script_groups/TwinCat/.example/VACUUMCTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/VALVEFAULT.EXP create mode 100644 backend/script_groups/TwinCat/.example/VALVEFLOW.EXP create mode 100644 backend/script_groups/TwinCat/.example/VARIABLE_CONFIGURATION.EXP create mode 100644 backend/script_groups/TwinCat/.example/VOID.EXP create mode 100644 backend/script_groups/TwinCat/.example/WATERDENSITY.EXP create mode 100644 backend/script_groups/TwinCat/.example/WORD_TO_BYTES.EXP create mode 100644 backend/script_groups/TwinCat/.example/WRITEPERIPHERIAL.EXP create mode 100644 backend/script_groups/TwinCat/.example/_BLENDER_CTRL_MAIN.EXP create mode 100644 backend/script_groups/TwinCat/.example/_BLENDER_PID_MAIN.EXP create mode 100644 backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_DWORD.EXP create mode 100644 backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_WORD.EXP create mode 100644 backend/script_groups/TwinCat/.example/_DWORD_SWAP_BYTEARRAY.EXP create mode 100644 backend/script_groups/TwinCat/.example/_DWORD_TO_BOOLARRAY.EXP create mode 100644 backend/script_groups/TwinCat/.example/_FILLING_HEAD_PID_CTRL.EXP create mode 100644 backend/script_groups/TwinCat/.example/_PUMPCONTROL.EXP create mode 100644 backend/script_groups/TwinCat/.example/_STEPMOVE.EXP create mode 100644 backend/script_groups/TwinCat/.example/_WORD_TO_BOOLARRAY.EXP create mode 100644 backend/script_groups/TwinCat/README.md create mode 100644 backend/script_groups/TwinCat/ejemplo_conversion.py create mode 100644 backend/script_groups/TwinCat/lad_to_pseudocode_converter.py create mode 100644 backend/script_groups/TwinCat/lad_to_pseudocode_converter_enhanced.py create mode 100644 backend/script_groups/TwinCat/simple_lad_converter.py create mode 100644 backend/script_groups/TwinCat/test_enhanced_converter.py create mode 100644 backend/script_groups/TwinCat/test_simple.py diff --git a/backend/script_groups/IO_adaptation/x5_md_to_excel.py b/backend/script_groups/IO_adaptation/x5_md_to_excel.py index 155e5dd..d71d3cc 100644 --- a/backend/script_groups/IO_adaptation/x5_md_to_excel.py +++ b/backend/script_groups/IO_adaptation/x5_md_to_excel.py @@ -311,18 +311,157 @@ def log_message(log_path, message): print(f"Error al escribir en el log: {e}") print(message) -def transform_io_address(address): +def get_io_address_format(address, data_type): """ - Transform IO addresses according to the required format: + Determinar el formato correcto de dirección IO según el tipo de datos. + + Args: + address: Dirección base (ej: "I0.0", "Q0.0", "PEW0", etc.) + data_type: Tipo de datos (Bool, Word, Real, etc.) + + Returns: + str: Dirección formateada según el tipo de datos + """ + if not address or not isinstance(address, str): + return address + + address = address.strip() + data_type_lower = data_type.lower() if data_type else "" + + # Handle Profibus ranges (extract the first number before the range) + profibus_match = re.match(r'^(EW|AW)\s+(\d+)\.\..*$', address) + if profibus_match: + prefix, number = profibus_match.groups() + if prefix == 'EW': + if data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%ED{number}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%EB{number}" + else: + return f"%EW{number}" # Word por defecto + elif prefix == 'AW': + if data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%AD{number}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%AB{number}" + else: + return f"%AW{number}" # Word por defecto + + # Handle simple AW/EW with space (without range) + simple_profibus_match = re.match(r'^(EW|AW)\s+(\d+)$', address) + if simple_profibus_match: + prefix, number = simple_profibus_match.groups() + if prefix == 'EW': + if data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%ED{number}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%EB{number}" + else: + return f"%EW{number}" # Word por defecto + elif prefix == 'AW': + if data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%AD{number}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%AB{number}" + else: + return f"%AW{number}" # Word por defecto + + # Extraer números de las direcciones para determinar el formato según tipo de datos + # Patterns for boolean addresses (mantener formato de bit) + if re.match(r'^[IEQ](\d+)\.(\d+)$', address): + byte_num = re.match(r'^[IEQ](\d+)\.(\d+)$', address).group(1) + bit_num = re.match(r'^[IEQ](\d+)\.(\d+)$', address).group(2) + + if address.startswith(('I', 'E')): + if data_type_lower == 'bool': + return f"%E{byte_num}.{bit_num}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%EB{byte_num}" + elif data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%ED{byte_num}" + else: + return f"%EW{byte_num}" # Word por defecto + + elif address.startswith(('Q', 'A')): + if data_type_lower == 'bool': + return f"%A{byte_num}.{bit_num}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%AB{byte_num}" + elif data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%AD{byte_num}" + else: + return f"%AW{byte_num}" # Word por defecto + + # Patterns for word addresses + elif re.match(r'^PEW(\d+)$', address): + number = re.match(r'^PEW(\d+)$', address).group(1) + if data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%ED{number}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%EB{number}" + else: + return f"%EW{number}" # Word por defecto + + elif re.match(r'^PAW(\d+)$', address): + number = re.match(r'^PAW(\d+)$', address).group(1) + if data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%AD{number}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%AB{number}" + else: + return f"%AW{number}" # Word por defecto + + # Handle addresses that already have % prefix but wrong data type format + elif re.match(r'^%[AE][BWDL](\d+)$', address): + match = re.match(r'^%([AE])([BWDL])(\d+)$', address) + if match: + prefix, current_type, number = match.groups() + if prefix == 'E': # Input + if data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%ED{number}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%EB{number}" + else: + return f"%EW{number}" # Word por defecto + elif prefix == 'A': # Output + if data_type_lower in ['dword', 'udint', 'dint', 'real']: + return f"%AD{number}" + elif data_type_lower in ['byte', 'usint', 'sint']: + return f"%AB{number}" + else: + return f"%AW{number}" # Word por defecto + + # Si ya está en formato correcto o formato desconocido, devolver tal como está + return address + +def transform_io_address(address, data_type=None): + """ + Transform IO addresses according to the required format, considering data type: + + For Bool: - Ixx.x → %Exx.x - - Exx.x → %Exx.x - Qxx.x → %Axx.x - - Axx.x → %Axx.x + + For Byte: + - Ixx.x → %EBxx + - Qxx.x → %ABxx + + For Word: + - Ixx.x → %EWxx + - Qxx.x → %AWxx - PEWxx → %EWxx - PAWxx → %AWxx - - EW xx..xx → %EWxx (ranges for Profibus) - - AW xx..xx → %AWxx (ranges for Profibus) + + For DWord/Real: + - Ixx.x → %EDxx + - Qxx.x → %ADxx + - PEWxx → %EDxx + - PAWxx → %ADxx """ + if data_type: + return get_io_address_format(address, data_type) + + # Fallback a la lógica anterior si no se proporciona data_type if not address or not isinstance(address, str): return address @@ -385,6 +524,62 @@ def is_bit_type(data_type): """Determinar si el tipo de dato es un bit (Bool).""" return data_type.lower() == 'bool' +def get_memory_address_format(data_type, mem_byte, mem_bit=None): + """ + Determinar el formato de dirección de memoria y el incremento de bytes según el tipo de datos. + + Returns: + tuple: (address_format, byte_increment, new_bit) + """ + data_type_lower = data_type.lower() + + if data_type_lower == 'bool': + # Para Bool usar formato de bit + if mem_bit is None: + mem_bit = 0 + address = f"%M{mem_byte}.{mem_bit}" + new_bit = mem_bit + 1 + if new_bit > 7: + new_bit = 0 + byte_increment = 1 + else: + byte_increment = 0 + return address, byte_increment, new_bit + + elif data_type_lower in ['byte', 'usint', 'sint']: + # Para Byte usar %MB (1 byte) + address = f"%MB{mem_byte}" + return address, 1, None + + elif data_type_lower in ['word', 'uint', 'int']: + # Para Word usar %MW (2 bytes) + address = f"%MW{mem_byte}" + return address, 2, None + + elif data_type_lower in ['dword', 'udint', 'dint']: + # Para DWord usar %MD (4 bytes) + address = f"%MD{mem_byte}" + return address, 4, None + + elif data_type_lower in ['real', 'lreal']: + # Para Real usar %MD (4 bytes), para LReal usar %ML (8 bytes) + if data_type_lower == 'lreal': + address = f"%ML{mem_byte}" + return address, 8, None + else: + address = f"%MD{mem_byte}" + return address, 4, None + + elif data_type_lower in ['time', 'time_of_day', 's5time']: + # Para tipos de tiempo usar %MD (4 bytes) + address = f"%MD{mem_byte}" + return address, 4, None + + else: + # Para tipos desconocidos, usar %MW por defecto (2 bytes) + address = f"%MW{mem_byte}" + return address, 2, None + def update_plc_tags(excel_path, md_path, output_path, log_path): """ Actualiza el archivo Excel con la información del archivo Markdown. @@ -443,14 +638,14 @@ def update_plc_tags(excel_path, md_path, output_path, log_path): log_message(log_path, f"Columna IO: {io_col}") log_message(log_path, f"Columna Master Tag: {master_tag_col}") - # Crear un diccionario de mapeo IO desde el Markdown + # Crear un diccionario de mapeo IO desde el Markdown (sin transformar aún) io_mapping = {} for _, row in md_df.iterrows(): master_tag = str(row[master_tag_col]).strip() io_value = str(row[io_col]).strip() if master_tag and io_value and master_tag != 'nan' and io_value != 'nan': - io_mapping[master_tag] = transform_io_address(io_value) + io_mapping[master_tag] = io_value # Guardar la dirección sin transformar log_message(log_path, f"Tags mapeados en el archivo Markdown: {len(io_mapping)}") @@ -467,9 +662,20 @@ def update_plc_tags(excel_path, md_path, output_path, log_path): # Inicializar contadores para direcciones de memoria input_mem_byte = 3600 input_mem_bit = 0 - output_mem_byte = 3800 + output_mem_byte = 3900 output_mem_bit = 0 + # Validar configuración inicial de memoria + if output_mem_byte <= input_mem_byte: + error_msg = (f"ERROR: Configuración de memoria inválida. " + f"output_mem_byte ({output_mem_byte}) debe ser mayor que input_mem_byte ({input_mem_byte}). " + f"Ajuste los valores iniciales de memoria.") + log_message(log_path, error_msg) + return False + + log_message(log_path, f"Configuración de memoria: input_mem_byte={input_mem_byte}, output_mem_byte={output_mem_byte}") + log_message(log_path, f"Espacio disponible para inputs: {output_mem_byte - input_mem_byte} bytes") + # Estadísticas total_tags = 0 updated_tags = 0 @@ -532,7 +738,9 @@ def update_plc_tags(excel_path, md_path, output_path, log_path): # Verificar si el tag está en el mapeo de IO if tag_name in io_mapping: old_address = logical_address_cell.value - new_address = io_mapping[tag_name] + io_raw_address = io_mapping[tag_name] + # Transformar la dirección considerando el tipo de datos + new_address = transform_io_address(io_raw_address, data_type) logical_address_cell.value = new_address # Determinar el nuevo path basado en la dirección asignada @@ -558,7 +766,7 @@ def update_plc_tags(excel_path, md_path, output_path, log_path): relocated_tags[new_path] = relocated_tags.get(new_path, 0) + 1 updated_tags += 1 - log_message(log_path, f"Actualizado: {tag_name} | Viejo valor: {old_address} | Nuevo valor: {new_address} | Path: {path_cell.value}") + log_message(log_path, f"Actualizado: {tag_name} | Tipo: {data_type} | Viejo valor: {old_address} | Nuevo valor: {new_address} | Path: {path_cell.value}") # Si no está en el mapeo, asignar dirección de memoria según configuración else: @@ -577,34 +785,40 @@ def update_plc_tags(excel_path, md_path, output_path, log_path): # Asignar dirección de memoria según el tipo (Input/Output) if path_type == "Input" or (is_input and not is_output): - # Asignar dirección de memoria para entradas + # Verificar que no se exceda el límite de memoria de entrada + new_address, byte_increment, new_bit = get_memory_address_format( + data_type, input_mem_byte, input_mem_bit + ) + + # Verificar límites antes de asignar + new_input_mem_byte = input_mem_byte + byte_increment + if new_input_mem_byte >= output_mem_byte: + error_msg = (f"ERROR: input_mem_byte ({new_input_mem_byte}) excedería output_mem_byte ({output_mem_byte}). " + f"La memoria de entrada está demasiado cerca de la memoria de salida. " + f"Tag problemático: {tag_name}. " + f"Considere aumentar output_mem_byte o reducir el número de tags de entrada.") + log_message(log_path, error_msg) + return False + if is_bit_type(data_type): - new_address = f"%M{input_mem_byte}.{input_mem_bit}" - input_mem_bit += 1 - if input_mem_bit > 7: - input_mem_bit = 0 - input_mem_byte += 1 - else: - new_address = f"%MW{input_mem_byte}" - input_mem_byte += 2 + input_mem_bit = new_bit + input_mem_byte = new_input_mem_byte + else: # Tipo Output o no determinado # Asignar dirección de memoria para salidas + new_address, byte_increment, new_bit = get_memory_address_format( + data_type, output_mem_byte, output_mem_bit + ) if is_bit_type(data_type): - new_address = f"%M{output_mem_byte}.{output_mem_bit}" - output_mem_bit += 1 - if output_mem_bit > 7: - output_mem_bit = 0 - output_mem_byte += 1 - else: - new_address = f"%MW{output_mem_byte}" - output_mem_byte += 2 + output_mem_bit = new_bit + output_mem_byte += byte_increment relocated_tags[no_used_path] = relocated_tags.get(no_used_path, 0) + 1 old_address = logical_address_cell.value logical_address_cell.value = new_address assigned_memory_addresses += 1 - log_message(log_path, f"Asignación memoria: {tag_name} | Viejo valor: {old_address} | Nuevo valor: {new_address} | Path: {path_cell.value}") + log_message(log_path, f"Asignación memoria: {tag_name} | Tipo: {data_type} | Viejo valor: {old_address} | Nuevo valor: {new_address} | Path: {path_cell.value}") # Guardar el archivo actualizado try: @@ -623,6 +837,17 @@ def update_plc_tags(excel_path, md_path, output_path, log_path): log_message(log_path, f"Tags relocalizados a {path}: {count}") log_message(log_path, f"Tags con direcciones de memoria asignadas: {assigned_memory_addresses}") + # Mostrar uso final de memoria + log_message(log_path, "\n" + "=" * 25 + " USO DE MEMORIA " + "=" * 25) + log_message(log_path, f"Memoria de entrada final: {input_mem_byte} (inicio: 3600)") + log_message(log_path, f"Memoria de salida final: {output_mem_byte} (inicio: 3900)") + log_message(log_path, f"Bytes usados para entradas: {input_mem_byte - 3600}") + log_message(log_path, f"Bytes usados para salidas: {output_mem_byte - 3900}") + log_message(log_path, f"Espacio restante entre memorias: {3900 - input_mem_byte} bytes") + + if input_mem_byte > 3600 or output_mem_byte > 3900: + log_message(log_path, f"✅ Proceso completado exitosamente sin conflictos de memoria") + return True def main(): diff --git a/backend/script_groups/TwinCat/.example/ADSVARREAD.EXP b/backend/script_groups/TwinCat/.example/ADSVARREAD.EXP new file mode 100644 index 0000000..8eef5e6 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/ADSVARREAD.EXP @@ -0,0 +1,297 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK ADSVARREAD +VAR_INPUT + NETID : STRING(21); + PORT : UINT; + VARNAME : STRING(101); + DESTLEN : UDINT; + DESTADDR : DWORD; + CONNECT : BOOL; + READ : BOOL; + TMOUT : TIME; +END_VAR +VAR_OUTPUT + CONNECTED: BOOL; + BUSY : BOOL; + ERR : BOOL; + ERRID : UDINT; +END_VAR +VAR + i_NETID : STRING(21); + i_PORT : UINT; + i_VARNAME : STRING(101); + i_DESTLEN : UDINT; + i_DESTADDR : DWORD; + i_TMOUT : TIME; + + i_IdxOffset : UDINT; + + fbRTrigCon : R_TRIG; + fbRWCon : ADSRDWRT; + fbWDiscon : ADSWRITE; + fbAdsRead : ADSREAD; + + fbBlockTimer : TOF; + tBlockTime : TIME; + + iState : INT; +END_VAR + +(* @END_DECLARATION := '0' *) +fbRTrigCon(CLK:= CONNECT); +tBlockTime := T#60s; + +fbBlockTimer(IN:=FALSE, PT:=tBlockTime); + +CASE iState OF + + 0: (* + Awaiting CONNECT + *) + ERR:=FALSE; + CONNECTED:=FALSE; + IF READ THEN + BUSY:=TRUE; (* go error state, but create signals ... *) + ERRID:=0; + iState:=-1; + ELSIF CONNECT THEN + (* rising edge at CONNECT input, save input vars *) + i_NETID:=NETID; + i_PORT:=PORT; + i_VARNAME:=VARNAME; + i_DESTLEN:=DESTLEN; + i_DESTADDR:=DESTADDR; + i_TMOUT:=TMOUT; + (* go active ... *) + BUSY:=TRUE; + ERRID:=0; + IF fbBlockTimer.Q THEN + iState:=-2; (* still blocked out, go error state, but create signals ... *) + ELSE + fbRWCon(WRTRD:=FALSE); + iState:=10; (* start varconnect ... *) + END_IF + ELSE + BUSY:=FALSE; (* still waiting ... *) + END_IF + + -1: (* + Tried to start without connect + *) + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFFFF; + IF NOT READ THEN + iState:=0; (* go idle *) + END_IF + + -2: (* + Tried to connect while still blocked out + *) + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFFFE; + IF NOT CONNECT THEN + iState:=0; (* go idle *) + END_IF + + (* ########################################################## *) + + 10: (* + Sending var connect request + *) + fbRWCon.NETID:=i_NETID; + fbRWCon.PORT:=i_PORT; + fbRWCon.IDXGRP:=ADS_IDXGRP_GETVARHANDLEBYNAME; + fbRWCon.IDXOFFS:=16#0; + fbRWCon.WRITELEN:= LEN(i_VARNAME); + fbRWCon.READLEN:=SIZEOF(i_IdxOffset); + fbRWCon.SRCADDR:=ADR(i_VARNAME); + fbRWCon.DESTADDR:=ADR(i_IdxOffset); + fbRWCon.TMOUT:=i_TMOUT; + fbRWCon.WRTRD:=TRUE; + fbRWCon(); + iState:=11; (* go ahead *) + + 11: (* + Sending var connect request + *) + fbRWCon(); + IF NOT fbRWCon.BUSY THEN + BUSY:=FALSE; + IF fbRWCon.ERR THEN + ERR:=TRUE; + ERRID:=fbRWCon.ERRID; + fbBlockTimer(IN:=(fbRWCon.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO)); + iState:=-11; (* go error state *) + ELSE + (* Succeded *) + CONNECTED:=TRUE; + (* Prepare for Reading *) + fbAdsRead.READ:=FALSE; + fbAdsRead(); + iState:=20; (* go ahead *) + END_IF + fbRWCon.WRTRD:=FALSE; + fbRWCon(); + END_IF + + -11: (* + wasn't able to connect + *) + IF NOT CONNECT THEN + iState:=0; (* go idle *) + END_IF + + (* ########################################################## *) + + 20: (* + awaiting DISCONNECT or READ + *) + ERR:=FALSE; + IF READ THEN + BUSY:=TRUE; (* go ahead ... *) + ERRID:=0; + IF fbBlockTimer.Q THEN + iState:=-40; (* still blocked out, go error state, but create signals ... *) + ELSE + iState:=40; + fbAdsRead(READ:=FALSE); + END_IF + ELSIF NOT CONNECT THEN + BUSY:=TRUE; + ERRID:=0; + (* Prepare for Disconnect *) + IF fbBlockTimer.Q THEN + iState:=-30; (* still blocked out, go error state, but create signals ... *) + ELSE + fbWDiscon(WRITE:=FALSE); + iState:=30; (* go ahead *) + END_IF + ELSE + BUSY:=FALSE; (* still waiting ... *) + END_IF + + 30: (* + Sending var disconnect request + *) + fbWDiscon.NETID:=i_NETID; + fbWDiscon.PORT:=i_PORT; + fbWDiscon.IDXGRP:=ADS_IDXGRP_RELEASEVARHANDLE; + fbWDiscon.IDXOFFS:=i_IdxOffset; + fbWDiscon.LEN:= SIZEOF(i_IdxOffset); + fbWDiscon.SRCADDR:=ADR(i_IdxOffset); + fbWDiscon.TMOUT:=i_TMOUT; + fbWDiscon.WRITE:= TRUE; + fbWDiscon(); + iState:=31; (* go ahead *) + + 31: (* + Sending var disconnect request + *) + fbWDiscon(); + IF NOT fbWDiscon.BUSY THEN + BUSY:=FALSE; + IF fbWDiscon.ERR THEN + ERR:=TRUE; + ERRID:=fbRWCon.ERRID; + fbBlockTimer(IN:=(fbRWCon.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO)); + iState:=-31; (* go error state *) + ELSE + (* Succeded *) + CONNECTED:=FALSE; + iState:=0; (* go idle *) + END_IF + fbWDiscon.WRITE:= FALSE; + fbWDiscon(); + END_IF + + -30: (* + tried to DISCONNECT while still blocked out + *) + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFFFD; + IF CONNECT THEN + iState:=20; (* go back *) + END_IF + + -31: (* + wasn't able to DISCONNECT + *) + IF CONNECT THEN + iState:=20; (* go back *) + END_IF + + (* ########################################################## *) + + 40: (* + Sending read request + *) + fbAdsRead.NETID:=i_NETID; + fbAdsRead.PORT:=i_PORT; + fbAdsRead.IDXGRP:=ADS_IDXGRP_READVARBYHANDLE; + fbAdsRead.IDXOFFS:=i_IdxOffset; + fbAdsRead.LEN:=i_DESTLEN; + fbAdsRead.DESTADDR:=i_DESTADDR; + fbAdsRead.TMOUT:=i_TMOUT; + fbAdsRead.READ:=TRUE; + fbAdsRead(); + iState:=41; (* go ahead *) + + 41: (* + Sending read request + *) + fbAdsRead(); + IF NOT fbAdsRead.BUSY THEN + BUSY:=FALSE; + IF fbAdsRead.ERR THEN + ERR:=TRUE; + ERRID:=fbAdsRead.ERRID; + fbBlockTimer(IN:=(fbAdsRead.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO)); + iState:=-41; (* go error state *) + ELSE + iState:=42; (* go ahead *) + END_IF + fbAdsRead.READ:=FALSE; + fbAdsRead(); + END_IF + + 42: (* + Sending read request + *) + IF NOT READ THEN + iState:=20; (* go idle *) + END_IF + + -40: (* + tried to READ while still blocked out + *) + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFFFC; + IF NOT READ THEN + iState:=20; (* go back *) + END_IF + + -41: (* + wasn't able to READ + *) + IF NOT READ THEN + iState:=20; (* go back *) + END_IF + + (* ########################################################## *) + + ELSE + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFF00; + IF NOT CONNECT AND NOT READ THEN + iState:=0; (* go idle *) + END_IF + +END_CASE +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/ADSVARTRANSLATE.EXP b/backend/script_groups/TwinCat/.example/ADSVARTRANSLATE.EXP new file mode 100644 index 0000000..ad52eb8 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/ADSVARTRANSLATE.EXP @@ -0,0 +1,143 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK ADSVARTRANSLATE +VAR_INPUT + FORMAT : STRING(255); + SOURCELEN : UDINT; + SOURCEADDR : DWORD; + DESTADDR : DWORD; + START : BOOL; +END_VAR +VAR_OUTPUT + READY : BOOL; + ERR : BOOL; +END_VAR +VAR + baName : ARRAY [1..255] OF BYTE; + nStrMaxIdx : INT; + nStrIdx : INT; + + baData : ARRAY [1..255] OF BYTE; + nDataMaxIdx : INT; + nDataIdx : INT; + + nCount : INT; + bTemp : BYTE; + + fbRTrig : R_TRIG; +END_VAR + +(* @END_DECLARATION := '0' *) +fbRTrig(CLK:= START); + +IF fbRTrig.Q THEN + ERR := FALSE; + + nStrMaxIdx := MIN(LEN(FORMAT),255); + MEMCPY(ADR(baName),ADR(FORMAT),nStrMaxIdx); + + nDataMaxIdx := UDINT_TO_INT(MIN(SOURCELEN,255)); + MEMCPY(ADR(baData),SOURCEADDR,nDataMaxIdx); + + nStrIdx := 1; + nDataIdx := 1; + + WHILE(nStrIdx<=nStrMaxIdx) DO + nCount := 1; + IF(baName[nStrIdx] >= 48 AND baName[nStrIdx] <= 57) THEN + nCount := baName[nStrIdx] - 48; + nStrIdx := nStrIdx+1; + IF(nStrIdx>nStrMaxIdx) THEN + ERR := TRUE; + EXIT; + END_IF + IF(baName[nStrIdx] >= 48 AND baName[nStrIdx] <= 57) THEN + nCount := 10 * nCount + baName[nStrIdx] - 48; + nStrIdx := nStrIdx+1; + IF(nStrIdx>nStrMaxIdx) THEN + ERR := TRUE; + EXIT; + END_IF + END_IF + END_IF + + IF(baName[nStrIdx] = 68 OR baName[nStrIdx] = 100) THEN + (* + dword data: revert bytes + *) + WHILE(nCount > 0)DO + IF((nDataIdx+3) > nDataMaxIdx) THEN + ERR := TRUE; + EXIT; + END_IF + bTemp := baData[nDataIdx]; + baData[nDataIdx] := baData[nDataIdx+3]; + baData[nDataIdx+3] := bTemp; + bTemp := baData[nDataIdx+1]; + baData[nDataIdx+1] := baData[nDataIdx+2]; + baData[nDataIdx+2] := bTemp; + nDataIdx := nDataIdx + 4; + nCount := nCount - 1; + END_WHILE; + nStrIdx := nStrIdx+1; + ELSIF(baName[nStrIdx] = 82 OR baName[nStrIdx] = 114) THEN + (* + real data: revert bytes + *) + WHILE(nCount > 0)DO + IF((nDataIdx+3) > nDataMaxIdx) THEN + ERR := TRUE; + EXIT; + END_IF + bTemp := baData[nDataIdx]; + baData[nDataIdx] := baData[nDataIdx+3]; + baData[nDataIdx+3] := bTemp; + bTemp := baData[nDataIdx+1]; + baData[nDataIdx+1] := baData[nDataIdx+2]; + baData[nDataIdx+2] := bTemp; + nDataIdx := nDataIdx + 4; + nCount := nCount - 1; + END_WHILE; + nStrIdx := nStrIdx+1; + ELSIF(baName[nStrIdx] = 87 OR baName[nStrIdx] = 119) THEN + (* + word data: swap high / low byte + *) + WHILE(nCount > 0)DO + IF((nDataIdx+1) > nDataMaxIdx) THEN + ERR := TRUE; + EXIT; + END_IF + bTemp := baData[nDataIdx]; + baData[nDataIdx] := baData[nDataIdx+1]; + baData[nDataIdx+1] := bTemp; + nDataIdx := nDataIdx + 2; + nCount := nCount - 1; + END_WHILE; + nStrIdx := nStrIdx+1; + ELSIF(baName[nStrIdx] = 66 OR baName[nStrIdx] = 98) THEN + (* + byte data: skip byte + *) + WHILE(nCount > 0)DO + IF(nDataIdx > nDataMaxIdx) THEN + ERR := TRUE; + EXIT; + END_IF + nDataIdx := nDataIdx + 1; + nCount := nCount - 1; + END_WHILE; + nStrIdx := nStrIdx+1; + ELSE + ERR := TRUE; + EXIT; + END_IF + END_WHILE; + + MEMCPY(DESTADDR,ADR(baData),nDataMaxIdx); + +END_IF + +READY := START; +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/ADSVARWRITE.EXP b/backend/script_groups/TwinCat/.example/ADSVARWRITE.EXP new file mode 100644 index 0000000..a88e964 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/ADSVARWRITE.EXP @@ -0,0 +1,297 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK ADSVARWRITE +VAR_INPUT + NETID : STRING(21); + PORT : UINT; + VARNAME : STRING(101); + SRCLEN : UDINT; + SRCADDR : DWORD; + CONNECT : BOOL; + WRITE : BOOL; + TMOUT : TIME; +END_VAR +VAR_OUTPUT + CONNECTED: BOOL; + BUSY : BOOL; + ERR : BOOL; + ERRID : UDINT; +END_VAR +VAR + i_NETID : STRING(21); + i_PORT : UINT; + i_VARNAME : STRING(101); + i_SRCLEN : UDINT; + i_SRCADDR : DWORD; + i_TMOUT : TIME; + + i_IdxOffset : UDINT; + + fbRTrigCon : R_TRIG; + fbRWCon : ADSRDWRT; + fbWDiscon : ADSWRITE; + fbAdsWrite : ADSWRITE; + + fbBlockTimer : TOF; + tBlockTime : TIME; + + iState : INT; +END_VAR + +(* @END_DECLARATION := '0' *) +fbRTrigCon(CLK:= CONNECT); +tBlockTime := T#60s; + +fbBlockTimer(IN:=FALSE , PT:=tBlockTime ); + +CASE iState OF + + 0: (* + Awaiting CONNECT + *) + ERR:=FALSE; + CONNECTED:=FALSE; + IF WRITE THEN + BUSY:=TRUE; (* go error state, but create signals ... *) + ERRID:=0; + iState:=-1; + ELSIF CONNECT THEN + (* rising edge at CONNECT input, save input vars *) + i_NETID:=NETID; + i_PORT:=PORT; + i_VARNAME:=VARNAME; + i_SRCLEN:=SRCLEN; + i_SRCADDR:=SRCADDR; + i_TMOUT:=TMOUT; + (* go active ... *) + BUSY:=TRUE; + ERRID:=0; + IF fbBlockTimer.Q THEN + iState:=-2; (* still blocked out, go error state, but create signals ... *) + ELSE + fbRWCon(WRTRD:=FALSE); + iState:=10; (* start varconnect ... *) + END_IF + ELSE + BUSY:=FALSE; (* still waiting ... *) + END_IF + + -1: (* + Tried to start without connect + *) + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFFFF; + IF NOT WRITE THEN + iState:=0; (* go idle *) + END_IF + + -2: (* + Tried to connect while still blocked out + *) + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFFFE; + IF NOT CONNECT THEN + iState:=0; (* go idle *) + END_IF + + (* ########################################################## *) + + 10: (* + Sending var connect request + *) + fbRWCon.NETID:=i_NETID; + fbRWCon.PORT:=i_PORT; + fbRWCon.IDXGRP:=ADS_IDXGRP_GETVARHANDLEBYNAME; + fbRWCon.IDXOFFS:=16#0; + fbRWCon.WRITELEN:= LEN(i_VARNAME); + fbRWCon.READLEN:=SIZEOF(i_IdxOffset); + fbRWCon.SRCADDR:=ADR(i_VARNAME); + fbRWCon.DESTADDR:=ADR(i_IdxOffset); + fbRWCon.TMOUT:=i_TMOUT; + fbRWCon.WRTRD:=TRUE; + fbRWCon(); + iState:=11; (* go ahead *) + + 11: (* + Sending var connect request + *) + fbRWCon(); + IF NOT fbRWCon.BUSY THEN + BUSY:=FALSE; + IF fbRWCon.ERR THEN + ERR:=TRUE; + ERRID:=fbRWCon.ERRID; + fbBlockTimer(IN:=(fbRWCon.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO)); + iState:=-11; (* go error state *) + ELSE + (* Succeded *) + CONNECTED:=TRUE; + (* Prepare for writing *) + fbAdsWrite.WRITE:=FALSE; + fbAdsWrite(); + iState:=20; (* go ahead *) + END_IF + fbRWCon.WRTRD:=FALSE; + fbRWCon(); + END_IF + + -11: (* + wasn't able to connect + *) + IF NOT CONNECT THEN + iState:=0; (* go idle *) + END_IF + + (* ########################################################## *) + + 20: (* + awaiting DISCONNECT or WRITE + *) + ERR:=FALSE; + IF WRITE THEN + BUSY:=TRUE; (* go ahead ... *) + ERRID:=0; + IF fbBlockTimer.Q THEN + iState:=-40; (* still blocked out, go error state, but create signals ... *) + ELSE + iState:=40; + fbAdsWrite(WRITE:=FALSE); + END_IF + ELSIF NOT CONNECT THEN + BUSY:=TRUE; + ERRID:=0; + (* Prepare for Disconnect *) + IF fbBlockTimer.Q THEN + iState:=-30; (* still blocked out, go error state, but create signals ... *) + ELSE + fbWDiscon(WRITE:=FALSE); + iState:=30; (* go ahead *) + END_IF + ELSE + BUSY:=FALSE; (* still waiting ... *) + END_IF + + 30: (* + Sending var disconnect request + *) + fbWDiscon.NETID:=i_NETID; + fbWDiscon.PORT:=i_PORT; + fbWDiscon.IDXGRP:=ADS_IDXGRP_RELEASEVARHANDLE; + fbWDiscon.IDXOFFS:=i_IdxOffset; + fbWDiscon.LEN:= SIZEOF(i_IdxOffset); + fbWDiscon.SRCADDR:=ADR(i_IdxOffset); + fbWDiscon.TMOUT:=i_TMOUT; + fbWDiscon.WRITE:= TRUE; + fbWDiscon(); + iState:=31; (* go ahead *) + + 31: (* + Sending var disconnect request + *) + fbWDiscon(); + IF NOT fbWDiscon.BUSY THEN + BUSY:=FALSE; + IF fbWDiscon.ERR THEN + ERR:=TRUE; + ERRID:=fbRWCon.ERRID; + fbBlockTimer(IN:=(fbRWCon.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO)); + iState:=-31; (* go error state *) + ELSE + (* Succeded *) + CONNECTED:=FALSE; + iState:=0; (* go idle *) + END_IF + fbWDiscon.WRITE:= FALSE; + fbWDiscon(); + END_IF + + -30: (* + tried to DISCONNECT while still blocked out + *) + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFFFD; + IF CONNECT THEN + iState:=20; (* go back *) + END_IF + + -31: (* + wasn't able to DISCONNECT + *) + IF CONNECT THEN + iState:=20; (* go back *) + END_IF + + (* ########################################################## *) + + 40: (* + Sending read request + *) + fbAdsWrite.NETID:=i_NETID; + fbAdsWrite.PORT:=i_PORT; + fbAdsWrite.IDXGRP:=ADS_IDXGRP_READVARBYHANDLE; + fbAdsWrite.IDXOFFS:=i_IdxOffset; + fbAdsWrite.LEN:=i_SRCLEN; + fbAdsWrite.SRCADDR:=i_SRCADDR; + fbAdsWrite.TMOUT:=i_TMOUT; + fbAdsWrite.WRITE:=TRUE; + fbAdsWrite(); + iState:=41; (* go ahead *) + + 41: (* + Sending read request + *) + fbAdsWrite(); + IF NOT fbAdsWrite.BUSY THEN + BUSY:=FALSE; + IF fbAdsWrite.ERR THEN + ERR:=TRUE; + ERRID:=fbAdsWrite.ERRID; + fbBlockTimer(IN:=(fbAdsWrite.ERRID=16#745) AND (PORT<>uiS7ADS_PORTNO)); + iState:=-41; (* go error state *) + ELSE + iState:=42; (* go ahead *) + END_IF + fbAdsWrite.WRITE:=FALSE; + fbAdsWrite(); + END_IF + + 42: (* + Sending read request + *) + IF NOT WRITE THEN + iState:=20; (* go idle *) + END_IF + + -40: (* + tried to WRITE while still blocked out + *) + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFFFC; + IF NOT WRITE THEN + iState:=20; (* go back *) + END_IF + + -41: (* + wasn't able to WRITE + *) + IF NOT WRITE THEN + iState:=20; (* go back *) + END_IF + + (* ########################################################## *) + + ELSE + BUSY:=FALSE; + ERR:=TRUE; + ERRID:=16#FFFFFF00; + IF NOT CONNECT AND NOT WRITE THEN + iState:=0; (* go idle *) + END_IF + +END_CASE +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/AMMONIACTRL.EXP b/backend/script_groups/TwinCat/.example/AMMONIACTRL.EXP new file mode 100644 index 0000000..f65f5c7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/AMMONIACTRL.EXP @@ -0,0 +1,611 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '0' *) +PROGRAM AmmoniaCtrl +VAR + mAmmoniaCtrlDelay : TOF; + mFirstProdColdReqDly : TON ; + mCompressorDelay : TON; + mCompressorRS_Prod : RS; + mCompressorRS_CIP : RS; + mCompressorCIPRun : TON; + mAmmoniaRunOutRS : RS; + mCompressorRun_CIP : BOOL; + mCompressorRun_Prod : BOOL; + mNH3CompressorFault : TON; + mCompressorStart : R_TRIG; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 10 +_NETWORK + +_COMMENT +Enables NH3 evaporation +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_LD_CONTACT +gEnableRecircPHE +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOutAmmoniaWaterColdControl +_NETWORK + +_COMMENT +Enables NH3 evaporation +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gOutAmmoniaCompressorRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_ColdRinseRun +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAmmoniaCtrlDelay +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#15s +_EXPRESSION +_POSITIV +tof +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOutAmmoniaProductColdControl +_NETWORK + +_COMMENT +Enables NH3 liquid inlet +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboWaterLine_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gEnableRecircPHE +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_ColdRinseRun +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOutAmmoniaWaterColdRequest +_NETWORK + +_COMMENT +During First Production the pipe from Water MOD. valve through the prod heat exchanger TO the product tank +is empty, so 30 S are needed TO wait that the pipe fills OF product. +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_ColdRinseRun +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFirstProdColdReqDly +_BOX_EXPR : 2 +_EMPTY +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gFirstProdLatched +_OPERAND +_EXPRESSION +_POSITIV +t#0s +_OPERAND +_EXPRESSION +_POSITIV +t#30s +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +ton +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOutAmmoniaProductColdRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gOutAmmoniaCompressorRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_ColdRinseRun +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_ColdRinseRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +DO_AmmoniaProductColdControl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOutAmmonia_ByPassHotGas +_NETWORK + +_COMMENT +Ammonia compressors NOT running +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gOutAmmoniaProductColdControl +_EXPRESSION +_POSITIV +_LD_CONTACT +gInAmmoniaCompressorReady +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mNH3CompressorFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gAmmoniaCompressor_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mCompressorRS_Prod +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRinse_Running +_OPERAND +_EXPRESSION +_POSITIV +gBlenderBlending +_EXPRESSION +_POSITIV +OR +_OPERATOR +_BOX_EXPR : 5 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOut_Latch +_OPERAND +_EXPRESSION +_NEGATIV +gGencoldChillerEn +_OPERAND +_EXPRESSION +_POSITIV +gH_WarmRinseRun +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_NEGATIV +gCoolerEnabled +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +rs +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCompressorRun_Prod +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mCompressorRS_CIP +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderStartPumps +_OPERAND +_EXPRESSION +_NEGATIV +gAmmoniaRunOut_Done +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gAmmoniaRunOut_Done +_OPERAND +_EXPRESSION +_POSITIV +gBlenderProdMode +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +rs +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCompressorRun_CIP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mCompressorRun_Prod +_EXPRESSION +_POSITIV +_LD_CONTACT +mCompressorRun_CIP +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOutAmmoniaCompressorRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mAmmoniaRunOutRS +_BOX_EXPR : 2 +_ENABLED +_FUNCTIONBLOCK +mCompressorCIPRun +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mCompressorRun_CIP +_OPERAND +_EXPRESSION +_POSITIV +gInAmmoniaCompressorReady +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#30m +_EXPRESSION +_POSITIV +ton +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +gBlenderProdMode +_EXPRESSION +_POSITIV +rs +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gAmmoniaRunOut_Done +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/ARRAYTOREAL.EXP b/backend/script_groups/TwinCat/.example/ARRAYTOREAL.EXP new file mode 100644 index 0000000..331b0c4 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/ARRAYTOREAL.EXP @@ -0,0 +1,29 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION ArrayToReal : REAL +VAR_INPUT + mIn_Value : POINTER TO BYTE; +END_VAR +VAR + i : INT; + p : UDINT; + p1 : UDINT; + mPoint : POINTER TO BYTE; + mPoint1 : POINTER TO BYTE; + mTemp : REAL; +END_VAR +(* @END_DECLARATION := '0' *) +mPoint := ADR(mTemp); +FOR i := 3 TO 0 BY -1 +DO + p1 := mIn_Value; + mPoint1 := p1 + i; + mPoint^ := mPoint1^; + p := mPoint ; + p := p + 1 ; + mPoint := p ; +END_FOR +ArrayToReal := mTemp; + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/BLENDERPROCEDURE_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/BLENDERPROCEDURE_VARIABLES.EXP new file mode 100644 index 0000000..816570e --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BLENDERPROCEDURE_VARIABLES.EXP @@ -0,0 +1,209 @@ +(* @GLOBAL_VARIABLE_LIST := BlenderProcedure_Variables *) +(* @PATH := '\/Blending_Variables' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(************************************************************************************) +(* START UP VARIABLES *) +(************************************************************************************) + gDeairStartUp_Qualifier : BOOL ; (* *) + gDeairStartUp_Request : BOOL ; (* *) + gDeairStartUp_Reset : BOOL ; (* *) + gDeairStartUp_Latch : BOOL ; (* *) + gDeairStartUp_Running : BOOL ; (* *) + gDeairStartUp_Wait : BOOL ; (* *) + gDeairStatUpH2OFilter_OK : BOOL ; (* *) + + gCarboWaterLine_Qualifier : BOOL ; (* *) + gCarboWaterLine_Request : BOOL ; (* *) + gCarboWaterLine_Reset : BOOL ; (* *) + gCarboWaterLine_Latch : BOOL ; (* *) + gCarboWaterLine_Running : BOOL ; (* *) + gCarboWaterLine_Wait : BOOL ; (* *) + + gSyrLineMFMPrep_Qualifier : BOOL ; (* *) + gSyrLineMFMPrep_Request : BOOL ; (* *) + gSyrLineMFMPrep_Reset : BOOL ; (* *) + gSyrLineMFMPrep_Latch : BOOL ; (* *) + gSyrLineMFMPrep_Running : BOOL ; (* *) + gSyrLineMFMPrep_Wait : BOOL ; (* *) + + gSyrMFMStartUp_Qualifier : BOOL ; (* *) + gSyrMFMStartUp_Request : BOOL ; (* *) + gSyrMFMStartUp_Reset : BOOL ; (* *) + gSyrMFMStartUp_Latch : BOOL ; (* *) + gSyrMFMStartUp_Running : BOOL ; (* *) + gSyrMFMStartUp_Wait : BOOL ; (* *) + + gDensimeterCal_Qualifier : BOOL ; (* *) + gDensimeterCal_Request : BOOL ; (* *) + gDensimeterCal_Reset : BOOL ; (* *) + gDensimeterCal_Latch : BOOL ; (* *) + gDensimeterCal_Running : BOOL ; (* *) + gDensimeterCal_Wait : BOOL ; (* *) + + gProdBrixRecovery_Qualifier : BOOL ; (* *) + gProdBrixRecovery_Request : BOOL ; (* *) + gProdBrixRecovery_Reset : BOOL ; (* *) + gProdBrixRecovery_Latch : BOOL ; (* *) + gProdBrixRecovery_Running : BOOL ; (* *) + gProdBrixRecovery_Wait : BOOL ; (* *) + gProdBrixRecovery_Done : BOOL ; (* *) +END_VAR + +VAR_GLOBAL PERSISTENT + gDeairStartUp_Done : BOOL ; (* *) + gCarboWaterLine_Done : BOOL ; (* *) + gSyrLineMFMPrep_Done : BOOL ; (* *) + gDensimeterCal_Done : BOOL ; (* *) + gSyrRunOut_Done : BOOL ; (* *) + gFirstProd_Request : BOOL ; (* Must be Persistent in order to remember the request *) + gFirstProd_Done : BOOL ; + gProdTankRunOut_Done : BOOL ; (* *) + gProdTankDrain_Done : BOOL ; (* *) + gBlendFillStartUp_Done : BOOL ; (* *) + gAmmoniaRunOut_Done : BOOL ; +END_VAR + +VAR_GLOBAL +(************************************************************************************) +(* BLENDER RUN CONTROL VARIABLES *) +(************************************************************************************) + gBlenderRun_Qualifier : BOOL ; (* *) + gBlenderRun_Request : BOOL ; (* *) + gBlenderRun_Reset : BOOL ; (* *) + gBlenderRun_Latch : BOOL ; (* *) + gBlenderRun_Running : BOOL ; (* *) + gBlenderRun_Wait : BOOL ; (* *) + gBlenderRun_Done : BOOL ; (* *) + +(************************************************************************************) +(* BLENDER STOP CONTROL VARIABLES *) +(************************************************************************************) + gBlenderStop_Request : BOOL ; (* *) + gBlenderStop_Latch : BOOL ; (* *) + gBlenderStop_Running : BOOL ; (* *) + gBlenderStop_Done : BOOL ; (* *) + +(************************************************************************************) +(* BLENDER RINSE VARIABLES *) +(************************************************************************************) + gBlenderRinse_Qualifier : BOOL ; (* *) + gBlenderRinse_Request : BOOL ; (* *) + gBlenderRinse_Reset : BOOL ; (* *) + gBlenderRinse_Latch : BOOL ; (* *) + gBlenderRinse_Running : BOOL ; (* *) + gBlenderRinse_Wait : BOOL ; (* *) + gBlenderRinse_Done : BOOL ; (* *) + + gBlenderRinse_DoneONS : BOOL ; (* *) + +(************************************************************************************) +(* FILLER SPEED CALCOLUS VARIABLES *) +(************************************************************************************) + gFillerSpeed_Qualifier : BOOL ; (* *) + gFillerSpeed_Request : BOOL ; (* *) + gFillerSpeed_Latch : BOOL ; (* *) + gFillerSpeed_Running : BOOL ; (* *) + gFillerSpeed_Done : BOOL ; (* *) + +(************************************************************************************) +(* FIRST PRODUCTION VARIABLES *) +(************************************************************************************) + gFirstProd_Qualifier : BOOL ; (* *) + gFirstProd_Reset : BOOL ; (* *) + gFirstProd_Latch : BOOL ; (* *) + gFirstProd_Running : BOOL ; (* *) + gFirstProd_Wait : BOOL ; (* *) + +(************************************************************************************) +(* PRESSURE CONTROL VARIABLES *) +(************************************************************************************) + gProdTankPress_Qualifier : BOOL ; (* *) + gProdTankPress_Request : BOOL ; (* *) + gProdTankPress_Reset : BOOL ; (* *) + gProdTankPress_Latch : BOOL ; (* *) + gProdTankPress_Running : BOOL ; (* *) + gProdTankPress_Wait : BOOL ; (* *) + gProdTankPress_Done : BOOL ; (* *) + +(************************************************************************************) +(* SYRUP RUNOUT VARIABLES *) +(************************************************************************************) + gSyrRunOut_Qualifier : BOOL ; (* *) + gSyrRunOut_Request : BOOL ; (* *) + gSyrRunOut_Reset : BOOL ; (* *) + gSyrRunOut_Latch : BOOL ; (* *) + gSyrRunOut_Running : BOOL ; (* *) + gSyrRunOut_Wait : BOOL ; (* *) + +(************************************************************************************) +(* PRODUCT TANK RUNOUT VARIABLES *) +(************************************************************************************) + gProdTankRunOut_Qualifier : BOOL ; (* *) + gProdTankRunOut_Request : BOOL ; (* *) + gProdTankRunOut_Reset : BOOL ; (* *) + gProdTankRunOut_Latch : BOOL ; (* *) + gProdTankRunOut_Running : BOOL ; (* *) + gProdTankRunOut_Wait : BOOL ; (* *) + +(************************************************************************************) +(* PRODUCT TANK DRAIN VARIABLES *) +(************************************************************************************) + gProdTankDrain_Qualifier : BOOL ; (* *) + gProdTankDrain_Request : BOOL ; (* *) + gProdTankDrain_Reset : BOOL ; (* *) + gProdTankDrain_Latch : BOOL ; (* *) + gProdTankDrain_Running : BOOL ; (* *) + gProdTankDrain_Wait : BOOL ; (* *) + +(************************************************************************************) +(* SYRUP BRIX AUTOCORRECTION VARIABLES *) +(************************************************************************************) + gSyrAutoCorr_Qualifier : BOOL ; (* *) + gSyrAutoCorr_Request : BOOL ; (* *) + gSyrAutoCorr_Reset : BOOL ; (* *) + gSyrAutoCorr_Latch : BOOL ; (* *) + gSyrAutoCorr_Running : BOOL ; (* *) + gSyrAutoCorr_Wait : BOOL ; (* *) + gSyrAutoCorr_Done : BOOL ; (* *) + +(************************************************************************************) +(* BRIX TRACKING VARIABLES *) +(************************************************************************************) + gProdBrixTrack_Qualifier : BOOL ; (* *) + gProdBrixTrack_Request : BOOL ; (* *) + gProdBrixTrack_Reset : BOOL ; (* *) + gProdBrixTrack_Latch : BOOL ; (* *) + gProdBrixTrack_Running : BOOL ; (* *) + gProdBrixTrack_Wait : BOOL ; (* *) + gProdBrixTrack_Done : BOOL ; (* *) + +(************************************************************************************) +(* FILLER TANK INTEGRATED VARIABLES *) +(************************************************************************************) + gBlendFillStartUp_Qualifier : BOOL ; (* *) + gBlendFillStartUp_Request : BOOL ; (* *) + gBlendFillStartUp_Wait : BOOL ; (* *) + gBlendFillStartUp_Reset : BOOL ; (* *) + gBlendFillStartUp_Latch : BOOL ; (* *) + gBlendFillStartUp_Running : BOOL ; (* *) + gBlendFillStartUp_EnBlend : BOOL ; (* *) + +(************************************************************************************) +(* UV LAMP VARIABLES *) +(************************************************************************************) + gUV_Lamp_Qualifier : BOOL ; (* *) + gUV_Lamp_Request : BOOL ; (* *) + gUV_Lamp_Drain : BOOL ; (* *) + gUV_Lamp_Latch : BOOL ; (* *) + +END_VAR + + +(* @OBJECT_END := BlenderProcedure_Variables *) +(* @CONNECTIONS := BlenderProcedure_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/BLENDERRINSE.EXP b/backend/script_groups/TwinCat/.example/BLENDERRINSE.EXP new file mode 100644 index 0000000..4b7bf9c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BLENDERRINSE.EXP @@ -0,0 +1,970 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM BlenderRinse +VAR + mWarmReq : BOOL ; + mColdReq : BOOL ; + mWarmReqONS : R_TRIG ; + mColdReqONS : R_TRIG ; + mDoneONS : R_TRIG ; + mAuxONS : R_TRIG ; + mColdDoneONS : F_TRIG ; + mWarmDoneONS : F_TRIG ; + mColdRinseSR : SR ; + mWarmRinseSR : SR ; + mColdRinseSelected : BOOL ; + mWarmRinseSelected : BOOL ; + mColdStop : BOOL ; + mWarmStop : BOOL ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 20 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_Blender_Prod_CIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinse_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_ColdRinseReq +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCoolerEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mColdReqONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_CONTACT +gBlenderRinse_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mColdReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_WarmRinseReq +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCoolerEnabled +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mWarmReqONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_CONTACT +gBlenderRinse_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWarmReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mWarmRinseSelected +_EXPRESSION +_POSITIV +_LD_CONTACT +mColdRinseSelected +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinse_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mColdRinseSelected +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mColdDoneONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mColdStop +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mWarmRinseSelected +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mWarmDoneONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWarmStop +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mColdRinseSelected +_EXPRESSION +_NEGATIV +_LD_CONTACT +mColdReq +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mColdRinseSR +_BOX_EXPR : 2 +_EMPTY +_OPERATOR +_BOX_EXPR : 5 +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +mColdRinseSelected +_OPERAND +_EXPRESSION +_POSITIV +mColdReq +_OPERAND +_EXPRESSION +_NEGATIV +gFastChangeOverActivated +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +mWarmRinseSelected +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFastChangeOverActivated +_OPERAND +_EXPRESSION +_POSITIV +gFastRinse_Done +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRinse_Done +_OPERAND +_EXPRESSION +_NEGATIV +gFastChangeOverActivated +_OPERAND +_EXPRESSION +_POSITIV +mColdRinseSelected +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mColdRinseSelected +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mWarmRinseSelected +_EXPRESSION +_NEGATIV +_LD_CONTACT +mWarmReq +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mWarmRinseSR +_BOX_EXPR : 2 +_EMPTY +_OPERATOR +_BOX_EXPR : 5 +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +mWarmRinseSelected +_OPERAND +_EXPRESSION +_POSITIV +mWarmReq +_OPERAND +_EXPRESSION +_NEGATIV +gFastChangeOverActivated +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +mColdRinseSelected +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFastChangeOverActivated +_OPERAND +_EXPRESSION +_POSITIV +gFastRinse_Done +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRinse_Done +_OPERAND +_EXPRESSION +_NEGATIV +gFastChangeOverActivated +_OPERAND +_EXPRESSION +_POSITIV +mWarmRinseSelected +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWarmRinseSelected +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 6 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Qualifier +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCIPStopLevel +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFillerRinse_CompletedLatch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinse_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinse_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinse_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinse_Reset +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinse_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +18 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinseMode +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinse_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinse_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +mWarmRinseSelected +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Status014 +_OUTPUT +_POSITIV +_NO_SET +gH_WarmRinseRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +mColdRinseSelected +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Status015 +_OUTPUT +_POSITIV +_NO_SET +gH_ColdRinseRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankDrain_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Status026 +_OUTPUT +_POSITIV +_NO_SET +gRinseDrainRunning +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_Flr_FastRinseCompleted +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gFillerRinse_CompletedLatch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +mColdStop +_EXPRESSION +_POSITIV +_LD_CONTACT +mWarmStop +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankDrain_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinse_CompletedLatch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +gFillerRinse_CompletedLatch +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinse_Done +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinse_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDoneONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderRinse_DoneONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderRinse_DoneONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +BlenderRinse.RinseDone +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION RinseDone: +_Blender_PID_Main._PID_Reset_Integral ; + +_Blender_Ctrl_Main.InitErrors() ; + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/BLENDER_PID_CTRL_LOOP.EXP b/backend/script_groups/TwinCat/.example/BLENDER_PID_CTRL_LOOP.EXP new file mode 100644 index 0000000..86ce3d1 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BLENDER_PID_CTRL_LOOP.EXP @@ -0,0 +1,5886 @@ + +(* @PATH := '\/TASK1_PID\/PID_Controllers' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Blender_PID_Ctrl_Loop +VAR + mH2O_PID : FB41_PIDController; (* Water PID Function Block Istance *) + mI_Sel_H2O : BOOL ; + mP_Sel_H2O : BOOL ; + mD_Sel_H2O : BOOL ; + mPID_H2O_OUT : REAL ; + mPIDH2OProp : REAL ; + mPIDH2OInt : REAL ; + mPIDH2ODer : REAL ; + + mSYR_PID : FB41_PIDController; (* Istanza della Function Block PID *) + mI_Sel_SYR : BOOL ; + mP_Sel_SYR : BOOL ; + mD_Sel_SYR : BOOL ; + mPID_SYR_OUT : REAL ; + mPIDSyrupProp : REAL ; + mPIDSyrupInt : REAL ; + mPIDSyrupDer : REAL ; + + mCO2_PID : FB41_PIDController; (* Istanza della Function Block PID *) + mI_Sel_CO2 : BOOL ; + mP_Sel_CO2 : BOOL ; + mD_Sel_CO2 : BOOL ; + mPID_CarboCO2_OUT : REAL ; + mPIDCarboCO2Prop : REAL ; + mPIDCarboCO2Int : REAL ; + mPIDCarboCO2Der : REAL ; + mDelayToEnCO2Error : TON ; + + mPressCO2_PID : FB41_PIDController; (* Pressure + Control Function Block PID Instance *) + mI_Sel_PressCO2 : BOOL ; + mP_Sel_PressCO2 : BOOL ; + mD_Sel_PressCO2 : BOOL ; + mPID_PressCO2_OUT : REAL ; + + mSYRLevel_PID : FB41_PIDController; (* Istanza della Function Block PID *) + mI_Sel_SYRLevel : BOOL ; + mP_Sel_SYRLevel : BOOL ; + mD_Sel_SYRLevel : BOOL ; + mPID_SYRLevel_OUT : REAL ; + mPIDSyrLevProp : REAL ; + mPIDSyrLevInt : REAL ; + mPIDSyrLevDer : REAL ; + + mProdTemp_PID : FB41_PIDController; (* Product Temperature Control Function Block PID Instance *) + mI_Sel_ProdTemp : BOOL ; + mP_Sel_ProdTemp : BOOL ; + mD_Sel_ProdTemp : BOOL ; + mPID_ProdTemp_OUT : REAL ; + + mWaterTemp_PID : FB41_PIDController; (* Product Temperature Control Function Block PID Instance *) + mI_Sel_WaterTemp : BOOL ; + mP_Sel_WaterTemp : BOOL ; + mD_Sel_WaterTemp : BOOL ; + mPID_WaterTemp_OUT : REAL ; + + mCIPTemp_PID : FB41_PIDController; (* CIP Temperature Control Function Block PID Instance *) + mI_Sel_CIPTemp : BOOL ; + mP_Sel_CIPTemp : BOOL ; + mD_Sel_CIPTemp : BOOL ; + mPID_CIPTemp_OUT : REAL ; + + mProdTnkPressFlted : LowPassFilter ; + mWaterTempFlted : LowPassFilter ; + mProdTempFlted : LowPassFilter ; + mCIPHeatTempFlted : LowPassFilter ; + mSyrupTnkLvlFlted : LowPassFilter ; + mRealTemp : REAL ; + + mSpeedConstTmr : TON ; + + mSaveH2OIntTON : TON ; + mH2OInt_Init : BOOL ; + mSaveSyrupIntTON : TON ; + mSyrInt_Init : BOOL ; + mSaveCarboCO2IntTON : TON ; + mCO2Int_Init : BOOL ; + mMinProd : BOOL ; + mH2OInt_ONS : F_TRIG ; + mSyrInt_ONS : F_TRIG ; + mCO2Int_ONS : F_TRIG ; + + mH2OPIDEn : F_TRIG ; + mSyrPIDEn : F_TRIG ; + mCO2PIDEn : F_TRIG ; + mH2OONS : BOOL ; + mSyrONS : BOOL ; + mCO2ONS : BOOL ; + mH2OValveOut : REAL ; + mSyrValveOut : REAL ; + mCO2ValveOut : REAL ; + + mWaterStat : StatisticalAnalisys ; + mSyrupStat : StatisticalAnalisys ; + mCarboCO2Stat : StatisticalAnalisys ; + + mSyrLevStat : StatisticalAnalisys ; + mSyrLevInt_ONS : R_TRIG; + mSyrLevInt_Init : BOOL; + mSaveSyrLevIntTON : TON; + mMaxSyrLevelAnalog : BOOL; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 82 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Blender_PID_Ctrl_Loop.Read_AnalogInput +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendErrorEn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gManual_PID_H2O +_EXPRESSION +_NEGATIV +_LD_CONTACT +gManual_PID_SYR +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gStopBlendCarboError +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendErrorEn +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboCO2ErrorEn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gManual_PID_CO2 +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gStopBlendCarboError +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCarboCO2ErrorEn +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_H2O +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_H2O +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_H2O +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gRinseCloseVM1 +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_H2O_Enabled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_H2O_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStableFlow +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH2O_Flow_PV +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_H2O_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_H2O_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gI_ITL_PID_H2O +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mH2O_PID +_BOX_EXPR : 20 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_H2O_SP +_OPERAND +_EXPRESSION +_POSITIV +gH2O_Flow_PV +_OPERAND +_EXPRESSION +_POSITIV +gManual_Value_H2O +_OPERAND +_EXPRESSION +_POSITIV +gR_H2O_KP +_OPERAND +_EXPRESSION +_POSITIV +gR_H2O_TI +_OPERAND +_EXPRESSION +_POSITIV +gR_H2O_TD +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gPIDH2O_CycleTime +_OPERAND +_EXPRESSION +_POSITIV +gI_ITLVAL_H2O +_OPERAND +_EXPRESSION +_POSITIV +gR_FF_to_H2O_PID +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_H2O +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_H2O +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_H2O +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_H2O +_OPERAND +_EXPRESSION +_POSITIV +gHold_int_PID_H2O +_OPERAND +_EXPRESSION +_POSITIV +gI_ITL_PID_H2O +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +mPIDH2OProp +_OUTPUT +_POSITIV +_NO_SET +mPIDH2OInt +_OUTPUT +_POSITIV +_NO_SET +mPIDH2ODer +_OUTPUT +_POSITIV +_NO_SET +gPIDWaterHighLimit +_OUTPUT +_POSITIV +_NO_SET +gPIDWaterHighLimit +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_Out_H2O_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gI_ITL_PID_H2O +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gI_ITL_PID_H2O +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_H2O_Enabled +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mH2OPIDEn +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mH2OONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mH2OONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_H2O_PID +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mH2OValveOut +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPID_H2O_Enabled +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_H2O_PID +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_WaterValveOV +_OUTPUT +_POSITIV +_NO_SET +gR_Out_H2O_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_SYR +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_SYR +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_SYR +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gRinseCloseVM2 +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_SYR_Enabled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_SYR_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStableFlow +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSYR_Flow_PV +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_SYR_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_SYR_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gI_ITL_PID_SYR +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSYR_PID +_BOX_EXPR : 20 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_SYR_SP +_OPERAND +_EXPRESSION +_POSITIV +gSYR_Flow_PV +_OPERAND +_EXPRESSION +_POSITIV +gManual_Value_SYR +_OPERAND +_EXPRESSION +_POSITIV +gR_SYR_KP +_OPERAND +_EXPRESSION +_POSITIV +gR_SYR_TI +_OPERAND +_EXPRESSION +_POSITIV +gR_SYR_TD +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gPIDSYR_CycleTime +_OPERAND +_EXPRESSION +_POSITIV +gI_ITLVAL_SYR +_OPERAND +_EXPRESSION +_POSITIV +gR_FF_to_SYR_PID +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_SYR +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_SYR +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_SYR +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_SYR +_OPERAND +_EXPRESSION +_POSITIV +gHold_int_PID_SYR +_OPERAND +_EXPRESSION +_POSITIV +gI_ITL_PID_SYR +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +mPIDSyrupProp +_OUTPUT +_POSITIV +_NO_SET +mPIDSyrupInt +_OUTPUT +_POSITIV +_NO_SET +mPIDSyrupDer +_OUTPUT +_POSITIV +_NO_SET +gPIDSyrupHighLimit +_OUTPUT +_POSITIV +_NO_SET +gPIDSyrupLowLimit +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_Out_SYR_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gI_ITL_PID_SYR +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gI_ITL_PID_SYR +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_SYR_Enabled +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrPIDEn +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mSyrONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_SYR_PID +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrValveOut +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPID_SYR_Enabled +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_SYR_PID +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupValveOV +_OUTPUT +_POSITIV +_NO_SET +gR_Out_SYR_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_CO2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_CO2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_CO2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_RemoteInjection +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_CarboPipe_En +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gP_CIP_CO2_Inj +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_CarboCO2_Enabled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gPID_CarboCO2_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStableFlow +_EXPRESSION +_NEGATIV +_LD_CONTACT +gP_CarboPipe_En +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCO2_Flow_PV +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_CO2_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_CarboCO2_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gI_ITL_PID_CO2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mCO2_PID +_BOX_EXPR : 20 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_CO2_SP +_OPERAND +_EXPRESSION +_POSITIV +gCO2_Flow_PV +_OPERAND +_EXPRESSION +_POSITIV +gManual_Value_CO2 +_OPERAND +_EXPRESSION +_POSITIV +gR_CO2_KP +_OPERAND +_EXPRESSION +_POSITIV +gR_CO2_TI +_OPERAND +_EXPRESSION +_POSITIV +gR_CO2_TD +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gPIDCarboCO2_CycleTime +_OPERAND +_EXPRESSION +_POSITIV +gI_ITLVAL_CO2 +_OPERAND +_EXPRESSION +_POSITIV +gR_FF_to_CO2_PID +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_CO2 +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_CO2 +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_CO2 +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_CO2 +_OPERAND +_EXPRESSION +_POSITIV +gHold_int_PID_CO2 +_OPERAND +_EXPRESSION +_POSITIV +gI_ITL_PID_CO2 +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +mPIDCarboCO2Prop +_OUTPUT +_POSITIV +_NO_SET +mPIDCarboCO2Int +_OUTPUT +_POSITIV +_NO_SET +mPIDCarboCO2Der +_OUTPUT +_POSITIV +_NO_SET +gPIDCarboCO2HighLimit +_OUTPUT +_POSITIV +_NO_SET +gPIDCarboCO2LowLimit +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_Out_CO2_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gI_ITL_PID_CO2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gI_ITL_PID_CO2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_CarboCO2_Enabled +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mCO2PIDEn +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCO2ONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mCO2ONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_CO2_PID +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCO2ValveOut +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPID_CarboCO2_Enabled +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_CO2_PID +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CO2CarboValveOV +_OUTPUT +_POSITIV +_NO_SET +gR_Out_CO2_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Blender_PID_Ctrl_Loop.PIDMonitor +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Blender_PID_Ctrl_Loop.SaveIntegral +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_PressCO2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_PressCO2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_PressCO2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +40 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_PressCO2_TI +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankPress_Running +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gManual_PID_PressCO2 +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_PressCO2_Enabled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_PressCO2_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gI_ITL_PID_PressCO2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mPressCO2_PID +_BOX_EXPR : 20 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_PressCO2_SP +_OPERAND +_EXPRESSION +_POSITIV +gPressCO2_PV +_OPERAND +_EXPRESSION +_POSITIV +gManual_Value_PressCO2 +_OPERAND +_EXPRESSION +_POSITIV +gR_PressCO2_KP +_OPERAND +_EXPRESSION +_POSITIV +gR_PressCO2_TI +_OPERAND +_EXPRESSION +_POSITIV +gR_PressCO2_TD +_OPERAND +_EXPRESSION +_POSITIV +gR_PressCO2_Deadb_W +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gP_LimitCO2PressValve +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +gPressCO2StartUpValue +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gPIDPressCO2_CycleTime +_OPERAND +_EXPRESSION +_POSITIV +gI_ITLVAL_PressCO2 +_OPERAND +_EXPRESSION +_POSITIV +gR_FF_PressCO2_PID +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_PressCO2 +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_PressCO2 +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_PressCO2 +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_PressCO2 +_OPERAND +_EXPRESSION +_POSITIV +gHold_int_PID_PressCO2 +_OPERAND +_EXPRESSION +_POSITIV +gI_ITL_PID_PressCO2 +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +gLMN_P_PressCO2 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_Out_PressCO2_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gI_ITL_PID_PressCO2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gI_ITL_PID_PressCO2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPID_PressCO2_Enabled +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_PressCO2_PID +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CO2PressValveOV +_OUTPUT +_POSITIV +_NO_SET +gR_Out_PressCO2_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Blender_PID_Ctrl_Loop.PressureRelease +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_SYRLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_SYRLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_SYRLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPSyrupStopLevel +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrLineMFMPrep_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrMFMStartUp_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInSyrRoomOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupTankLoading +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_EV03 +_EXPRESSION +_POSITIV +_LD_CONTACT +gManual_PID_SYR_Level +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_SYRLevel_Enabled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gPID_SYRLevel_Enabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrLineMFMPrep_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrMFMStartUp_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Wait +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Running +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSYR_Level_PV +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_SYR_Level_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_SYRLevel_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gI_ITL_PID_SYR_Level +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSYRLevel_PID +_BOX_EXPR : 20 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_SYR_Level_SP +_OPERAND +_EXPRESSION +_POSITIV +gSYR_Level_PV +_OPERAND +_EXPRESSION +_POSITIV +gManual_Value_SYR_Level +_OPERAND +_EXPRESSION +_POSITIV +gR_SYR_Level_KP +_OPERAND +_EXPRESSION +_POSITIV +gR_SYR_Level_TI +_OPERAND +_EXPRESSION +_POSITIV +gR_SYR_Level_TD +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gPIDSYR_Level_CycleTime +_OPERAND +_EXPRESSION +_POSITIV +gI_ITLVAL_SYR_Level +_OPERAND +_EXPRESSION +_POSITIV +gR_FF_to_SYR_Level_PID +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_SYR_Level +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_SYRLevel +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_SYRLevel +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_SYRLevel +_OPERAND +_EXPRESSION +_POSITIV +gHold_int_PID_SYR_Level +_OPERAND +_EXPRESSION +_POSITIV +gI_ITL_PID_SYR_Level +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +mPIDSyrLevProp +_OUTPUT +_POSITIV +_NO_SET +mPIDSyrLevInt +_OUTPUT +_POSITIV +_NO_SET +mPIDSyrLevDer +_OUTPUT +_POSITIV +_NO_SET +gPIDSyrLevHighLimit +_OUTPUT +_POSITIV +_NO_SET +gPIDSyrLevLowLimit +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_Out_SYR_Level_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gI_ITL_PID_SYR_Level +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gI_ITL_PID_SYR_Level +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankLevel +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gSyrRunOut_Latch +_OPERAND +_EXPRESSION +_POSITIV +85 +_OPERAND +_EXPRESSION +_POSITIV +15 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMaxSyrLevelAnalog +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gPID_SYRLevel_Enabled +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_NEGATIV +mMaxSyrLevelAnalog +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_SYR_Level +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_SYR_Level_PID +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupLevelValveOV +_OUTPUT +_POSITIV +_NO_SET +gR_Out_SYR_Level_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_WaterTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_WaterTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_waterTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 4 +_OPERATOR +_BOX_EXPR : 4 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderBlending +_OPERAND +_EXPRESSION +_POSITIV +gCarboWaterLine_Running +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ColdRinseRun +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRinse_Running +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_TempWater +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gWaterChillerEn +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_POSITIV +gCoolerEnabled +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRun_Latch +_OPERAND +_EXPRESSION +_POSITIV +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_WaterTemp_Enabled +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 4 +_OPERAND +_EXPRESSION +_POSITIV +gPID_WaterTemp_Enabled +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderEnToRamp +_OPERAND +_EXPRESSION +_NEGATIV +gCarboWaterLine_Running +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRinse_Running +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRun_Latch +_OPERAND +_EXPRESSION +_POSITIV +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gR_TempWater_SP +_OPERAND +_EXPRESSION +_POSITIV +gTempWater_PV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_TempWater_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_WaterTemp_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gPID_WaterTemp_EnInt +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHold_int_PID_TempWater +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_WaterTemp_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gI_ITL_PID_TempWater +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mWaterTemp_PID +_BOX_EXPR : 20 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gTempWater_PV +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProdTempValve_Man_SP_ON +_OPERAND +_EXPRESSION +_POSITIV +gR_TempWater_SP +_OPERAND +_EXPRESSION +_POSITIV +gH_WaterTempValve_SP_Man_Value +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gManual_Value_TempWater +_OPERAND +_EXPRESSION +_POSITIV +gR_TempWater_KP +_OPERAND +_EXPRESSION +_POSITIV +gR_TempWater_TI +_OPERAND +_EXPRESSION +_POSITIV +gR_TempWater_TD +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gPIDTempWater_CycleTime +_OPERAND +_EXPRESSION +_POSITIV +gI_ITLVAL_TempWater +_OPERAND +_EXPRESSION +_POSITIV +gR_FF_TempWater_PID +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_TempWater +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_WaterTemp +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_WaterTemp +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_WaterTemp +_OPERAND +_EXPRESSION +_POSITIV +gHold_int_PID_TempWater +_OPERAND +_EXPRESSION +_POSITIV +gI_ITL_PID_TempWater +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +gWaterTempPIDIntValue +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_Out_TempWater_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gI_ITL_PID_TempWater +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gI_ITL_PID_TempWater +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPID_WaterTemp_Enabled +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gGencoldChillerEn +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_POSITIV +gH_WarmRinseRun +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gCoolerEnabled +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_FUNCTION +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gDeairWaterTemp +_OPERAND +_EXPRESSION +_POSITIV +gTempWater_PV +_EXPRESSION +_POSITIV +CIP_CVQ +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_TempWater_PID +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_WaterTempValve_OV +_OUTPUT +_POSITIV +_NO_SET +gR_Out_TempWater_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_ProdTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_ProdTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_ProdTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 4 +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderCIPMode +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderProdMode +_OPERATOR +_BOX_EXPR : 4 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRun_Running +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRun_Latch +_OPERAND +_EXPRESSION +_POSITIV +gEnableRecircPHE +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ColdRinseRun +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRinse_Running +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gCarboWaterLine_Running +_OPERAND +_EXPRESSION +_POSITIV +gProductDoubleStadiumChillerEn +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_NEGATIV +gH_WarmRinseRun +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_TempProd +_EXPRESSION +_POSITIV +OR +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProductChillerEn +_OPERAND +_EXPRESSION +_POSITIV +gProductDoubleStadiumChillerEn +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gCoolerEnabled +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRun_Latch +_OPERAND +_EXPRESSION +_POSITIV +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_ProdTemp_Enabled +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 4 +_OPERAND +_EXPRESSION +_POSITIV +gPID_ProdTemp_Enabled +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderEnToRamp +_OPERAND +_EXPRESSION +_NEGATIV +gCarboWaterLine_Running +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRinse_Running +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRun_Latch +_OPERAND +_EXPRESSION +_POSITIV +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_SP_ProdTemp +_OPERAND +_EXPRESSION +_POSITIV +gR_TempProd_SP +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_TempProd_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_ProdTemp_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gPID_ProdTemp_EnInt +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHold_int_PID_TempProd +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_ProdTemp_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gI_ITL_PID_TempProd +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mProdTemp_PID +_BOX_EXPR : 20 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gTempProd_PV +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProdTempValve_Man_SP_ON +_OPERAND +_EXPRESSION +_POSITIV +gR_TempProd_SP +_OPERAND +_EXPRESSION +_POSITIV +gH_ProdTempValve_SP_Man_Value +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gManual_Value_TempProd +_OPERAND +_EXPRESSION +_POSITIV +gR_TempProd_KP +_OPERAND +_EXPRESSION +_POSITIV +gR_TempProd_TI +_OPERAND +_EXPRESSION +_POSITIV +gR_TempProd_TD +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gPIDTempProd_CycleTime +_OPERAND +_EXPRESSION +_POSITIV +gI_ITLVAL_TempProd +_OPERAND +_EXPRESSION +_POSITIV +gR_FF_TempProd_PID +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_TempProd +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_ProdTemp +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_ProdTemp +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_ProdTemp +_OPERAND +_EXPRESSION +_POSITIV +gHold_int_PID_TempProd +_OPERAND +_EXPRESSION +_POSITIV +gI_ITL_PID_TempProd +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +gR_TempProd_Error +_OUTPUT +_POSITIV +_NO_SET +gProdTempPIDIntValue +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_Out_TempProd_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gI_ITL_PID_TempProd +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gI_ITL_PID_TempProd +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPID_ProdTemp_Enabled +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gGencoldChillerEn +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_POSITIV +gH_WarmRinseRun +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gCoolerEnabled +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_FUNCTION +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_CoolerControl +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gGencoldChillerEn +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gDeairWaterTemp +_OPERAND +_EXPRESSION +_POSITIV +gTempWater_PV +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gTempProd_PV +_EXPRESSION +_POSITIV +CIP_CVQ +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_TempProd_PID +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_ProdTempValve_OV +_OUTPUT +_POSITIV +_NO_SET +gR_Out_TempProd_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_CIPTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_CIPTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_CIPTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 5 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gP_CIP_Temp_En +_EXPRESSION +_POSITIV +_LD_CONTACT +gManual_PID_CIPTemp +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_EV36_Status +_EXPRESSION +_POSITIV +_LD_CONTACT +gIn_FlowSwitch +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_CIPTemp_Enabled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRun_Latch +_OPERAND +_EXPRESSION +_POSITIV +gH_CMD_BlenderMaintenance +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gR_CIPTemp_SP +_OPERAND +_EXPRESSION +_POSITIV +gCIPTemp_PV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_CIPTemp_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPID_CIPTemp_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gI_ITL_PID_CIPTemp +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mCIPTemp_PID +_BOX_EXPR : 20 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_CIPTempValve_Man_SP_ON +_OPERAND +_EXPRESSION +_POSITIV +gR_CIPTemp_SP +_OPERAND +_EXPRESSION +_POSITIV +gH_CIPTempValve_SP_Man_Value +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gCIPTemp_PV +_OPERAND +_EXPRESSION +_POSITIV +gManual_Value_CIPTemp +_OPERAND +_EXPRESSION +_POSITIV +gR_CIPTemp_KP +_OPERAND +_EXPRESSION +_POSITIV +gR_CIPTemp_TI +_OPERAND +_EXPRESSION +_POSITIV +gR_CIPTemp_TD +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gPIDCIPTemp_CycleTime +_OPERAND +_EXPRESSION +_POSITIV +gI_ITLVAL_CIPTemp +_OPERAND +_EXPRESSION +_POSITIV +gR_FF_CIPTemp_PID +_OPERAND +_EXPRESSION +_POSITIV +gManual_PID_CIPTemp +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_CIPTemp +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_CIPTemp +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_CIPTemp +_OPERAND +_EXPRESSION +_POSITIV +gHold_int_PID_CIPTemp +_OPERAND +_EXPRESSION +_POSITIV +gI_ITL_PID_CIPTemp +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +gCIPTempPIDIntValue +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gR_Out_CIPTemp_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gI_ITL_PID_CIPTemp +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gI_ITL_PID_CIPTemp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPID_CIPTemp_Enabled +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_CIPTemp_PID +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIPTempValve_OV +_OUTPUT +_POSITIV +_NO_SET +gR_Out_CIPTemp_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Filling_Head_PID_Ctrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Blender_PID_Ctrl_Loop.Write_AnalogOut +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Blender_PID_Ctrl_Loop.SaveValveOut +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION PIDMonitor: +_LD_BODY +_NETWORKS : 9 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mWaterStat +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_H2O_PID +_OPERAND +_EXPRESSION +_POSITIV +14 +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +StatisticalAnalisys +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gWaterStat_Variance +_OUTPUT +_POSITIV +_NO_SET +gWaterStat_DevStd +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterStat_MeanValue +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gWaterPIDCtrlOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gWaterStat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +0.4 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterPIDCtrlOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gWaterPIDCtrlOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gWaterStat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +0.6 +_EXPRESSION +_NEGATIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterPIDCtrlOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrupStat +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_SYR_PID +_OPERAND +_EXPRESSION +_POSITIV +14 +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +StatisticalAnalisys +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gSyrupStat_Variance +_OUTPUT +_POSITIV +_NO_SET +gSyrupStat_DevStd +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupStat_MeanValue +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrupPIDCtrlOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupStat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +0.4 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupPIDCtrlOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrupPIDCtrlOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupStat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +0.6 +_EXPRESSION +_NEGATIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupPIDCtrlOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mCarboCO2Stat +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_CO2_PID +_OPERAND +_EXPRESSION +_POSITIV +12 +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +StatisticalAnalisys +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gCarboCO2Stat_Variance +_OUTPUT +_POSITIV +_NO_SET +gCarboCO2Stat_DevStd +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCarboCO2Stat_MeanValue +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboCO2PIDCtrlOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCarboCO2Stat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCarboCO2PIDCtrlOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboCO2PIDCtrlOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCarboCO2Stat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +1.2 +_EXPRESSION +_NEGATIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCarboCO2PIDCtrlOk +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION PressureRelease: +gPrdTankPressError := gR_PressCO2_SP - gPressCO2_PV ; +IF gR_PressCO2_KP > 0 AND gH_CO2PressValve_Auto AND gProdTankPress_Qualifier THEN (* Product Tank Pressure Release *) + IF gPrdTankPressError<0 THEN + IF gBlenderTankPress_Ok OR gFirstProdPressHold THEN + gPID_PressCO2_Release := FALSE ; + gManual_PID_PressCO2 := FALSE ; + ELSE + gManual_Value_PressCO2 := 0.0 ; + gManual_PID_PressCO2 := TRUE ; + gPID_PressCO2_Release := TRUE ; + END_IF + ELSE + gPID_PressCO2_Release := FALSE ; + gManual_PID_PressCO2 := FALSE ; + END_IF +END_IF +END_ACTION + +ACTION Read_AnalogInput: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_ProductTankPressure +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mProdTnkPressFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTankPress +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_SyrupTankLevel +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mSyrupTnkLvlFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupTankLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_WaterTemperature +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mWaterTempFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterTemperature +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_ProductTemperature +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mProdTempFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTemperature +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Conductimeter_Profibus +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_CIPHeaterTemperature +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mCIPHeatTempFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPHeaterTemp_PV +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SaveIntegral: +(* This block save the Integral Component for each PID when the prod flow is minimum *) +(* for the next blender start, that is at minimum speed *) + +IF ABS(gActual_Prod_SP - gH_ProcessSetup_MinProduction) < 0.1*gH_ProcessSetup_MinProduction THEN + mMinProd := TRUE ; +ELSE + mMinProd := FALSE ; +END_IF + +mH2OInt_ONS(CLK:=gPID_H2O_Enabled) ; +mH2OInt_Init := mH2OInt_ONS.Q ; +IF gPID_H2O_Enabled THEN + mSaveH2OIntTON(IN:=mMinProd, PT:=t#20S) ; + IF mSaveH2OIntTON.Q AND gWaterPIDCtrlOk THEN + gH2OPIDIntValue := mPIDH2OInt ; + gI_ITLVAL_H2O := gH2OPIDIntValue ; + mSaveH2OIntTON(IN:=FALSE) ; + END_IF +ELSE + mSaveH2OIntTON(IN:=FALSE) ; +END_IF +IF gPIDWaterHighLimit OR gPIDWaterLowLimit THEN + gI_ITLVAL_H2O := 0.0 ; +END_IF +IF mH2OInt_Init THEN + gI_ITL_PID_H2O := TRUE ; +END_IF + +mSyrInt_ONS(CLK:=gPID_SYR_Enabled) ; +mSyrInt_Init := mSyrInt_ONS.Q ; +IF gPID_SYR_Enabled THEN + mSaveSyrupIntTON(IN:=mMinProd, PT:=t#20S) ; + IF mSaveSyrupIntTON.Q AND gSyrupPIDCtrlOk THEN + gSyrupPIDIntValue := mPIDSyrupInt ; + gI_ITLVAL_SYR := gSyrupPIDIntValue ; + mSaveSyrupIntTON(IN:=FALSE) ; + END_IF +ELSE + mSaveSyrupIntTON(IN:=FALSE) ; +END_IF +IF gPIDSyrupHighLimit OR gPIDSyrupLowLimit THEN + gI_ITLVAL_SYR := 0.0 ; +END_IF +IF mSyrInt_Init THEN + gI_ITL_PID_SYR := TRUE ; +END_IF + +mCO2Int_ONS(CLK:=gPID_CarboCO2_Enabled) ; +mCO2Int_Init := mCO2Int_ONS.Q ; +IF gPID_CarboCO2_Enabled THEN + mSaveCarboCO2IntTON(IN:=mMinProd, PT:=t#20S) ; + IF mSaveCarboCO2IntTON.Q AND gCarboCO2PIDCtrlOk THEN + gCarboCO2PIDIntValue := mPIDCarboCO2Int ; + gI_ITLVAL_CO2 := gCarboCO2PIDIntValue ; + mSaveCarboCO2IntTON(IN:=FALSE) ; + END_IF +ELSE + mSaveCarboCO2IntTON(IN:=FALSE) ; +END_IF +IF (gPIDCarboCO2HighLimit OR gPIDCarboCO2LowLimit) THEN + gI_ITLVAL_CO2 := 0.0 ; +END_IF +IF mCO2Int_Init THEN + gI_ITL_PID_CO2 := TRUE ; +END_IF + +mSyrLevInt_ONS(CLK:=gPID_SYRLevel_Enabled) ; +mSyrLevInt_Init := mSyrLevInt_ONS.Q ; +IF gPID_SYRLevel_Enabled THEN + mSaveSyrLevIntTON(IN:=mMinProd, PT:=t#20S) ; + IF mSaveSyrLevIntTON.Q AND gSyrLevPIDCtrlOk THEN + gSyrLevPIDIntValue := mPIDSyrLevInt ; + gI_ITLVAL_SYR_Level := gSyrLevPIDIntValue ; + mSaveSyrLevIntTON(IN:=FALSE) ; + END_IF +ELSE + mSaveSyrLevIntTON(IN:=FALSE) ; +END_IF +IF gPIDSyrLevHighLimit OR gPIDSyrLevLowLimit THEN + gI_ITLVAL_SYR_Level := 0.0 ; +END_IF +IF mSyrLevInt_Init THEN + gI_ITL_PID_SYR_Level := TRUE ; +END_IF + +END_ACTION + +ACTION SaveValveOut: +(*IF NOT gBlenderSpeedUp AND NOT gBlenderSpeedDown THEN*) + IF ABS(gActual_Prod_SP-gActualRecipe_SP_Prod) gH_ProcessSetup_MinProduction THEN + gProdTankStartLvl := gProdTankStartLvl_NormalSpeed ; +ELSE + gProdTankStartLvl := gProdTankStartLvl_VeryLowSpeed ; +END_IF + +IF gH_Blender_OPT_BlendFillSystem THEN + gProdTankStopLvl := gProdTankStopLvl_BlendFill ; + gProdTankTargetLvl := gProdTankTargetLvl_BlendFill ; +ELSE + gProdTankStopLvl := gProdTankStopLvl_OnlyBlend ; + gProdTankTargetLvl := gProdTankTargetLvl_OnlyBlend ; +END_IF + +gFirstProdExtraBrix := gH_FirstProdExtraBrix ; +gFirstProdDietExtraSyr := gH_FirstProdDietExtraSyr ; +gFirstProdExtraCO2Fact := gH_FirstProdExtraCO2Fact ; + +gProdTankDrainStep0Time := gH_ProdTankDrainStep0Time ; +gProdTankDrainStep1Time := gH_ProdTankDrainStep1Time ; +gProdPipeRunOutStep0Time := gH_ProdPipeRunOutStep0Time ; + +gH2OOpenInProdPipeRunOut := gH_H2OOpenInProdPipeRunOut ; +gSyrupValveProdPipeRunOut := gH_SyrupValveProdPipeRunOut ; + +gProdPipeRunOutProdAmount := gH_ProdPipeRunOutProdAmount ; +gProdTankRunOutChillerAmount := gH_ProdTankRunOutChillerAmount ; + +gcarboCO2MFM_DN := 15 ; +(*gWaterVFM_Area := gP_Greek * EXPT((gWaterVFM_DN / 2 / 100), 2) ;*) +gWaterVFM_Area := gP_Greek * gWaterVFM_DN / 2 / 100 * gWaterVFM_DN / 2 / 100 ; +gWaterPipe_Area := gP_Greek * gWaterPipe_DN / 2 / 100 * gWaterPipe_DN / 2 / 100 ; + +gWaterVFMMeasError := 0.2 ; +gWaterVFMRepeatibility := 0.1 ; +gSyrupMFMMeasError := 0.1 ; +gSyrupMFMRepeatibility := 0.05 ; +gCO2MFMMeasError := 0.5 ; +gCO2MFMRepeatibility := 0.25 ; + +gCO2MFMZeroStab := 0.325 ; +gR_TempProd_SP:=gH_A_Recipe_SP_ProdTemp; +END_ACTION + +ACTION StoppingBlender: +_LD_BODY +_NETWORKS : 7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Blender_Stop_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAux1ONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderStop_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStop_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStop_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStop_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderStop_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderStop_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Blender_Stop_Btn +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mOperatorStopTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderOperatorStop +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderStop_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gBlenderStop_Done +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gManual_PID_H2O +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gManual_PID_SYR +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gManual_PID_CO2 +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gEnRampDownToStop +_NETWORK + +_COMMENT +Ramping Down very Fast UNTIL Water minimum velocity in water FlowMeter is acheaved. +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderStopping +_EXPRESSION +_POSITIV +_LD_CONTACT +gEnRampDownToStop +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterSpeedToStop +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gBlenderStop_Done +_NETWORK + +_COMMENT +IF the Water OR Syrup PID are in manual, no ramping down is possible. +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStopping +_EXPRESSION +_POSITIV +_LD_CONTACT +gEnRampDownToStop +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gBlenderStop_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/BLENDER_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/BLENDER_VARIABLES.EXP new file mode 100644 index 0000000..64694d8 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BLENDER_VARIABLES.EXP @@ -0,0 +1,431 @@ +(* @GLOBAL_VARIABLE_LIST := Blender_Variables *) +(* @PATH := '\/Blending_Variables' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(**********************************************************************************************************************) +(* INPUTS AUXILIARY VARIABLES *) +(**********************************************************************************************************************) + gAuxVoltageOk : BOOL ; (* *) + gInResetHorn : BOOL ; (* *) + gInResetBtn : BOOL ; (* *) + gInStopBtn : BOOL ; (* *) + gInStartBtn : BOOL ; (* *) + gInLinePressCO2Ok : BOOL ; (* *) + gInLinePressAirOk : BOOL ; (* *) + gDeairTankMinLvlAux : BOOL ; + gDeairTank2MinLvlAux : BOOL ; + gSyrupTankMinLvlAux : BOOL ; + gSyrupLineDrainValveAux : BOOL ; + gWaterManualDrainValveAux : BOOL ; + gBlenderDeairVacuum_Ok : BOOL ; (* *) + gInWaterValveClosed : BOOL ; (* *) + gInSyrupValveClosed : BOOL ; (* *) + gInCarboCO2ValveClosed : BOOL ; (* *) + gInManifoldNotReadyForProd : BOOL ; + gInManifoldNotReadyForCIP : BOOL ; + + gIn_ProdPumpFCReady : BOOL ; + gIn_ProdTankNotEmpty : BOOL ; (* *) + gIn_FlowSwitch : BOOL ; (* *) + gIn_DeaireatorPressure : REAL ; + gIn_DeairFlow_PV : REAL ; + + gIn_C1_Conductivity_Caustic : REAL ; + gIn_C2_Conductivity_Water : REAL ; + + gInSyrRoomOk : BOOL ; (* From Syrup Room Syrup ready *) + + gInFillerProductReq : BOOL ; (* From Filler Product request *) + gInFillerProdReady : BOOL ; (* From Filler Ready to Production *) + gInFillerCIPRequest : BOOL ; (* From Filler Ready to CIP *) + gInFillerCIPDrainCompleted : BOOL ; (* From Filler Drain Completed *) + gInFillerCIPCycleEnded : BOOL ; (* From Filler Spare *) + gInFillerCIPChangeReady : BOOL ; (* From Filler Spare *) + gInFillerEV62Enable : BOOL ; + gInFillerEV46Enable : BOOL ; + gInFillerEndTankFilling : BOOL ; + gInFillerBottleFilling : BOOL ; + gInFillerEndFlushing : BOOL ; + gInFillerCIPModeSelected : BOOL ; (* From Filler CIP Mode Selected *) + gInFillerCIPDrainSelecteted : BOOL ; (* From Filler Drain Selecteted *) + gInFillerCIPOpenEV13 : BOOL ; + gInFillerStopCIPReturnPump : BOOL ; + + gInCIP_DrainRequest : BOOL ; (* From CIP Room Drain Request *) + gInCIP_TankFilling : BOOL ; (* From CIP Room Flood Request *) + gInCIP_RinseMode : BOOL ; (* From CIP Room Flood Request *) + gInCIP_CIPRunning : BOOL ; (* From CIP Room CIP running *) + gInCIP_ChangeSanitize : BOOL ; (* From CIP Room CIP change sanitize *) + gInCIP_CIPCompleted : BOOL ; (* From CIP Room CIP completed *) + gInCIP_CIPMode : BOOL ; (* From CIP Room CIP Mode *) + gInCIP_CausticSanitizeRunning : BOOL ; (* From CIP Room CIP change sanitize *) + gInCIP_Fault : BOOL ; (* From CIP Room CIP Fault *) + + gInAmmoniaLowPressure : BOOL ; (* From Chiller Ammonia Low Pressure *) + gInAmmoniaHighLevel : BOOL ; (* From Chiller Ammonia High Level *) + gInAmmoniaCompressorReady : BOOL ; (* From Chiller Ammonia Compressors not running *) + + gInUVLampReady : BOOL ; + gInUVLampAlarm : BOOL ; + +END_VAR + +VAR_GLOBAL +(**********************************************************************************************************************) +(* OUTPUTS AUXILIARY VARIABLES *) +(**********************************************************************************************************************) + gOut_WaterPumpRun : BOOL ; (* P1 Water Pump Run *) + gOut_WaterPump2Run : BOOL ; (* P5 Water Pump Run *) + gOut_SyrupPumpRun : BOOL ; (* P2 Syrup Pump Run *) + gOut_ProductPumpRun : BOOL ; (* P3 Product Pump Run *) + gOut_VacuumPumpRun : BOOL ; (* P4 Vacuum Pump Run *) + gOut_RecircPumpRun : BOOL ; (* P6 ByPass Pump Run *) + gOut_SyrupRoomPumpRun : BOOL ; (* Syrup Room Pump Run *) + gOut_SyrupRoomWaterReq : BOOL ; (* Syrup Room Water Request *) + gOut_WaterPumpVFCRun : BOOL ; (* Water Pump VFC Run *) + + gOut_FillerProduction : BOOL ; (* To Filler Production *) + gOut_FillerMinimumLevel : BOOL ; (* To Filler Product under minimum level *) + gOut_FillerProductAvailable : BOOL ; (* To Filler Product sending available *) + gOut_FillerRinseMode : BOOL ; (* To Filler Rinse Request *) + gOut_FillerCIPMode : BOOL ; (* To Filler CIP Request *) + gOut_FillerCIPRunning : BOOL ; (* To Filler CIP Running *) + gOut_FillerCIPChangeSanitize : BOOL ; (* To Filler CIP *) + gOut_FillerCIPDrainRequest : BOOL ; (* To Filler CIP Drain *) + gOut_FillerCIPCompleted : BOOL ; (* To Filler CIP Completed *) + gOut_FillerCIPCausticSanitizeRunning : BOOL ; (* To Filler CIP *) + +(* gOut_CIPRequest : BOOL; (* To CIP Room *) +(* gOut_CIPDrainCompleted : BOOL ; (* To CIP Room *) +(* gOut_CIPCycleEnded : BOOL ; (* To CIP Room *) + gOut_CIPChangeReady : BOOL ; (* To CIP Room *) +(* gOut_CIPWaterPipe_Ready : BOOL; (* To CIP Room *) + gOutAmmoniaCompressorRun : BOOL ; (* To Chiller : Ammonia Compressors Run *) + gOutAmmoniaWaterColdRequest : BOOL; (* To Chiller : Enables NH3 liquid inlet *) + gOutAmmoniaProductColdRequest : BOOL; (* To Chiller : Enables NH3 liquid inlet *) + gOutAmmoniaWaterColdControl : BOOL; (* To Chiller : Enables NH3 evaporation *) + gOutAmmoniaProductColdControl : BOOL; (* To Chiller : Enables NH3 evaporation *) + gOutAmmonia_ByPassHotGas : BOOL; (* To Chiller : *) + gOutDeaireationValve : REAL ; + gOutUVLamp_ONOFF : BOOL ; (* Switch UV Lamp ON / OFF *) +END_VAR + +VAR_GLOBAL + gtemphigh :BOOL; + gpherecirculation :BOOL; + gDelayS7Call : BOOL ; + gAlwaysOff : BOOL ; (* *) + gHighPriorityAlarm : BOOL ; (* *) + gLowPriorityAlarm : BOOL ; (* *) + gBlenderAlarm : BOOL ; (* *) + gAlarmHorn : BOOL ; (* *) + gWarningHorn : BOOL ; (* *) + gProductionONS : BOOL ; + gCIPONS : BOOL ; + gRinseONS : BOOL ; + gGencoldChillerEn : BOOL ; + gProductChillerEn : BOOL ; + gProductDoubleStadiumChillerEn : BOOL ; + gWaterChillerEn : BOOL ; + gEnableRecircPHE : BOOL; + gSyrupRoomEn : BOOL ; + gStillWaterByPassEn : BOOL ; + gEmergencyPressed : BOOL ; + gVacuumAcheaved : BOOL ; (* In case of vacuum pump, still product signal from vacuum probe *) + + gWorkshopTest : BOOL ; (* Use during Workshop test - BF - *) + + gWaterSpeedToStop : BOOL ; + gStopBlendCarboError : BOOL ; (* Water Speed to stop Blend error and Carbo error *) + gEnRampDownToStop : BOOL ; + gBlenderFillerRunning : BOOL ; (* Both Blender and Filler are running *) + gEnToStopBlender : BOOL ; (* Next Filler stop, stop blender *) + gFlowToFiller : BOOL ; (* Product is Flowing to Filler *) + gBlendRecircActive : BOOL ; + gCriticalBlending : BOOL ; + gProdAvailable : BOOL ; + gDisableProdAvailable : BOOL ; + gTrackFillerSpeed : BOOL ; + + gDeairTankLoading : BOOL ; + gSyrupTankLoading : BOOL ; + gSyrupTankMinLevel : BOOL ; + gBlenderStableFlow : BOOL ; (* *) + gBlenderEnToRamp : BOOL ; (* *) + gBlenderStartPumps : BOOL ; (* *) + gBlenderStartPumpsONS : BOOL ; (* *) + gBlenderBlending : BOOL ; (* *) + gBlenderStopping : BOOL ; (* *) + gBlenderOperatorStop : BOOL ; + gModValveRiseTimeCalcEn : BOOL ; (* *) + gBlenderFlowFltEn : BOOL ; (* *) + gBlenderStopLevel : BOOL ; (* Product Tank Maximum Level Acheaved *) + gBlenderStartLevel : BOOL ; (* Product Tank Pump Start Level Acheaved *) + gBlenderLevelOk : BOOL ; (* Product Tank Recipe Minimum Level Acheaved *) + gBlenderLevelTarget : BOOL ; (* Product Tank Target Level Acheaved *) + gBlenderMinLevel : BOOL ; (* Product Tank 5% Level Acheaved *) + gProdTankEmpty : BOOL ; (* Product Tank Empty *) + gBlenderEmpty : BOOL ; + gFirstProdStop : BOOL ; (* Stop Blender when First Production Done *) + gProdTankStopLvl : REAL ; (* Product Tank Max Level *) + gProdTankTargetLvl : REAL ; (* Product Tank Target Level *) + gProdTankStartLvl : REAL ; (* Product Tank Start Level below Stop Level to Start *) + gCIPStopLevel : BOOL ; (* *) + gCIPMaxLevel : BOOL ; (* 100% Product Tank Level during CIP *) + gCIPPrdTankFlood : BOOL ; + gCIP_BlenderDrainDone : BOOL ; + gCIPDeairTankFlood : BOOL ; + gCIPSyrupTankFlood : BOOL ; + gCIPSyrupStopLevel : BOOL ; + gCIPPrdTankPressLow : BOOL ; + gRinseCloseVM1 : BOOL ; + gRinseCloseVM2 : BOOL ; + gRinseDrainRunning : BOOL ; + gBlenderTankPress_Ok : BOOL ; (* *) + gTankPress_HighLimit : BOOL ; (* *) + gTankPress_LowLimit : BOOL ; (* *) + gTankPress_OkToBlend : BOOL ; (* *) + gWaitLevelToHold_TankPress : BOOL ; (* *) + gEqPressSelected : BOOL ; + gFinalPressureOk : BOOL ; (* Final Pressure acheaved during First Production *) + gEqPressOk : BOOL ; (* Equilibrium pressure acheaved during First Production *) + gFirstProdPressHold : BOOL ; (* Pressure control enable during first production *) + gDeairVacuumOk : BOOL ; (* Deaireator vacuum pressure acheaved *) + gCloseMainCO2Valve : BOOL ; + gPV_SyrBrixOk : BOOL ; (* Syrup Brix value not Zero *) + gPV_SyrDensOk : BOOL ; (* Syrup Density value not zero *) + gBlenderSuppliesOk : BOOL ; (* *) + gFreezeSyrupMeter : BOOL ; (* Hold Signal To Syrup Densimeter *) + gFreezeProductMeter : BOOL ; (* Hold Signal To Product Meter *) + gProdMeterTransferRecipe : BOOL ; (* Signal to the Product Meter Recipe Transfer *) + gDisableAlarmDuringCalibration : BOOL ; + gMinRatio : BOOL ; (* Maximum Syrup Brix Autocorr Acheaved - minimum ratio - *) + gMaxSyrAutoCorrDone : BOOL ; (* Maximum Syrup Brix Autocorr Acheaved maximum autocorr perc *) + gLineCO2LowPressure : BOOL ; (* Low pressure infeed CO2 line from CO2 density & temperature Calculation *) + gWaterPIDCtrlOk : BOOL ; (* Water PID Controlling Ok *) + gSyrupPIDCtrlOk : BOOL ; (* Syrup PID Controlling Ok *) + gCarboCO2PIDCtrlOk : BOOL ; (* CO2 PID Controlling Ok *) + gSyrLevPIDCtrlOk : BOOL ; (* Syrup Level PID Controlling Ok *) + gBlendResetTotalizer : BOOL ; + gMaxBlendErrorAfterFault : BOOL ; + gMaxCarboErrorAfterFault : BOOL ; + + gProductConductivity : REAL ; + gSyrupMFMBrixSlope : REAL ; + gH2O_Flow_Meas : REAL ; + gSYR_Flow_Meas : REAL ; + gSYR_Vol_Flow_Meas : REAL ; + gCO2_Flow_Meas : REAL ; + gProd_Flow_Meas : REAL ; + gCO2Solubility : REAL ; + gDeairCO2Vol : REAL ; + gFillerCO2Loss : REAL ; + gCO2EqPressure : REAL ; + gCO2InjPressureCalc : REAL ; + gCO2InjPressure : REAL ; + gCO2InjPressureSP : REAL ; + gCO2PressNotOk : BOOL ; + gProductTotalizerLt : Integral ; + gProductLiters : REAL ; + gProductTemperature : REAL ; + gWaterTemperature : REAL ; + gBlendErrorInt : Integral ; + gCarboCO2ErrorInt : Integral ; + gBlendError : REAL ; + gCarboCO2Error : REAL; + gK_RecBlendError : REAL; + gK_RecCarboCO2Error : REAL; + gMaxCarboCO2_V : REAL; + + gWaterFlowSlewValve : REAL ; + gWaterFlowSlewMFM : REAL ; + + gBlenderProdMode : BOOL ; (* *) + gBlenderRinseMode : BOOL ; (* *) + gBlenderCIPMode : BOOL ; (* *) + + gWaterVFMResetTot : BOOL ; + gSyrupMFMResetTot : BOOL ; + gCO2MFMResetTot : BOOL ; + gProductMFMResetTot : BOOL ; + + gDeairWaterTemp : REAL ; (* *) + gDeairCO2Comp : REAL ; (* *) + gDeairFlow_SP : REAL ; + gWaterO2 : REAL ; + gDeairWaterO2 : REAL := 1.0 ; + gSyrupO2 : REAL ; + gProductO2 : REAL ; + gProductDensity : REAL ; + gProdDensFromMeter : REAL ; + gTankProdAmount : REAL ; + gProductTankLevel : REAL ; + gSyrupTankLevel : REAL; + gProductTankPress : REAL ; + gWaterLinePress : REAL ; + gPrdTankPressError : REAL ; + + gH2OValveRiseUpTime : INT ; + gSyrValveRiseUpTime : INT ; + gCO2ValveRiseUpTime : INT ; + + gFillerProductFlow : REAL ; + + gWaterVFM_DN : UINT ; + gWaterPipe_DN : UINT ; + gSyrupMFM_DN : UINT ; + gCarboCO2MFM_DN : UINT ; + gWaterVFMMeasError : REAL ; + gWaterVFMRepeatibility : REAL ; + gWaterVFMCalcError : REAL ; + gSyrupMFMMeasError : REAL ; + gSyrupMFMRepeatibility : REAL ; + gSyrupMFMZeroStab : REAL ; + gSyrupMFMCalcError : REAL ; + gCO2MFMMeasError : REAL ; + gCO2MFMRepeatibility : REAL ; + gCO2MFMZeroStab : REAL ; + gCO2MFMCalcError : REAL ; + + gFirstProdExtraBrix : REAL ; (*0.03Start up *) + gFirstProdDietExtraSyr : REAL ; (*0.0014Start up *) + gFirstProdExtraCO2Fact : REAL ; (*0.97Start up *) + + gUVLamp_ONOFF : BOOL ; + gUVLampHighTemperature : BOOL ; (*UVLampTemperatureOk *) + +(******************* MFM Pressure Loss *****************************************) + d : REAL ; (* m *) + K : REAL ; + K1 : REAL ; + K2 : REAL ; + Re : REAL ; + ni : REAL ; + ro : REAL ; + + gBlenderBlendMaxError : REAL ; + gWaterVFM_Area : REAL ; (* Water Flowmeter section Area - dm2 - *) + gWaterVFM_Vel : REAL ; (* Water Velocity in Water FlowMeter - m/s - *) + gWaterPipe_Area : REAL ; (* Water Pipe Section Area in in - dm2 - *) + gWaterPipe_Vel : REAL ; (* Water Velocity in serpentine - m/s - *) + gWaterSpeedToStopError : REAL ; (* Water Speed to stop Blend error and Carbo error *) + gProdTankVolume : REAL ; (* Product Tank Total Volume *) + gProdTankBottomVol : REAL ; (* Product Tank Bottom Volume Below level Probe *) + gDeairTankVolume : REAL ; (* Deaireator Tank Volume *) + gBlenderNomSpeed : REAL ; (* Blender Nominal Production Rate - L/min - *) + gBlenderProdSlewMax : REAL ; (* Blender Maximum Production SlewRate - (L/min)/sec - *) + gBlenderSpeedUp : BOOL ; (* Production rate rampUp *) + gBlenderSpeedDown : BOOL ; (* Production rate rampDown *) + + gProductLitTank : REAL ; (* Liters of Product In Porduct Tank *) + gProductO2Conc : REAL ; + + gBlenderFillerDeltaV : REAL ; (* Blender Filler Production Rate difference - L/min - *) + gSP_ProdTrackFiller : REAL ; (* Set Point Production to track Filler Speed - L/min - *) + gEstimateFillerSpeed : REAL ; (* Filler Production Rate - L/min - *) + gFlowTronic : REAL ; + gFlowTronicFullScale : REAL ; + +END_VAR + +VAR_GLOBAL + gWaterStat_MeanValue : REAL ; + gWaterStat_Variance : REAL ; + gWaterStat_DevStd : REAL ; + gSyrupStat_MeanValue : REAL ; + gSyrupStat_Variance : REAL ; + gSyrupStat_DevStd : REAL ; + gCarboCO2Stat_MeanValue : REAL ; + gCarboCO2Stat_Variance : REAL ; + gCarboCO2Stat_DevStd : REAL ; + gSyrLevStat_MeanValue : REAL ; + gSyrLevStat_Variance : REAL ; + gSyrLevStat_DevStd : REAL ; + + gProdBxStat_MeanValue : REAL ; + gProdBxStat_Variance : REAL ; + gProdBxStat_DevStd : REAL ; + gProductMeterOk : BOOL ; +END_VAR + +VAR_GLOBAL PERSISTENT + gBlenderStarted : BOOL ; + gWaterRecipe : BOOL ; + gSugarBeverage : BOOL ; + gCarboStillProduct : BOOL ; + gCarboStillRecipe : BOOL ; + gSkipDeaireation : BOOL; + gCoolerEnabled : BOOL ; + gWaterTotal : REAL ; (* Water Totalizer *) + gSyrupTotal : REAL ; (* Syrup Totalizer *) + gCO2Total : REAL ; (* CO2 Totalizer *) + gProductVFMTotal : REAL ; (* From Product VFM Totalizer *) + gWaterTempTot : REAL ; + gSyrupTempTot : REAL ; + gCO2TempTot : REAL ; + gProductVFMTempTot : REAL ; + gSyrRunOutCountInit : REAL ; + gSyrLineTankPrepCountInit : REAL ; + + gSyrupRoomTankLiter : ARRAY[1..15] OF REAL ; + + gProdSec : UINT ; + gProdMin : UINT ; + gProdHour : UINT ; + gBlendingMaintHour : UINT ; + gRunningSeconds : UINT ; + gRunningMinutes : UINT ; + gRunningMaintHour : UINT ; + + gSLIM_Sec : UINT ; + gSLIM_Min : UINT ; + gSLIM_Hour : UINT ; + + gFillerRinse_CompletedLatch : BOOL ; + gFirstProdLatched : BOOL ; +END_VAR + +VAR_GLOBAL +(**********************************************************************************************************************) +(* WORKING RECIPE PARAMETERS *) +(**********************************************************************************************************************) + gProdTankBrix : REAL ; + gFlowProdBrix : REAL ; (* Product Brix Calculated from Flows *) + gBrixTrackingCorr : REAL ; (* Delta Correction Due To Brix Tracking in °Brix *) + gProdRunSyrFact : REAL ; (* Syrup Factor calculated during production *) + gProdRunSyrMFMFact : REAL ; (* Syrup MFM Factor calculated during production *) + + gActualSyrupDens : REAL ; (* Syrup Density value to calculate SYR_SP *) + gActualSyrupBrix : REAL ; (* Syrup Brix *) + gActualSyrupPerc : REAL ; (* Syrup Actual Percentage *) + gActualWaterPerc : REAL ; (* Water Actual Percentage *) + gSyrupVolFlow_PV : REAL ; + + gProductRecipeNum : INT ; (* From Product Meter Recipe Number *) + gProductBrix : REAL ; (* From Product Meter Product Brix Value *) + gProductDens : REAL ; (* From Product Meter Product Density Value *) + gProductCO2 : REAL ; (* From Product Meter Product CO2 Vols Value *) + gProductTemp : REAL ; (* From Product Meter Product Temperature *) + gProductLinePress : LREAL ; (* From Product Meter Product CO2 Press Value *) + + gMeterSyrBrix : REAL ; (* Measured Syrup Brix from Meter *) + gMeterSyrDens : REAL ; (* Measured Syrup Density from Meter *) + gMeterSyrTemp : REAL ; (* Measured Syrup Temperature from Meter *) + + gSP_H2O : REAL ; + gSP_SYR : REAL ; + gSP_CO2 : REAL ; + gActual_Prod_SP : REAL ; (* Actual Product Target With Slew Limitation *) + gActual_SP_CO2 : REAL ; + gActual_Prod_Flow : REAL ; + gActual_Ratio : REAL ; + gActual_RatioM : REAL ; + gActual_CO2_Vol : REAL ; +END_VAR +(* @OBJECT_END := Blender_Variables *) +(* @CONNECTIONS := Blender_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/BLENDFILLRECSTRUCT.EXP b/backend/script_groups/TwinCat/.example/BLENDFILLRECSTRUCT.EXP new file mode 100644 index 0000000..f22baeb --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BLENDFILLRECSTRUCT.EXP @@ -0,0 +1,71 @@ +(* @PATH := '\/Signals Inteface' *) +TYPE BlendFillRecStruct : + STRUCT + Spare_W0 : INT ; + Filler_Speed : DINT ; + Spare_W4 : INT ; + Spare_W6 : INT ; + ProductTemp : INT ; + Valve1_Pressure : INT ; + RunOutBottleCount : INT ; + Spare_W16 : WORD ; + Spare_W18 : WORD ; + Gen_EV62_Enable : BOOL ; + Gen_EV46_Enable : BOOL ; + Gen_Spare02 : BOOL ; + Gen_Spare03 : BOOL ; + Gen_Spare04 : BOOL ; + Gen_Spare05 : BOOL ; + Gen_Spare06 : BOOL ; + Gen_Spare07 : BOOL ; + Gen_Spare10 : BOOL ; + Gen_Spare11 : BOOL ; + Gen_Spare12 : BOOL ; + Gen_Spare13 : BOOL ; + Gen_Spare14 : BOOL ; + Gen_Spare15 : BOOL ; + Gen_Spare16 : BOOL ; + Gen_ConnAlive : BOOL ; + Prod_Selected : BOOL ; + Prod_End_Tank_Filling : BOOL ; + Prod_Spare02 : BOOL ; + Prod_Last_Bottle : BOOL ; + Prod_BottleFilling : BOOL ; + Prod_EndFlushing : BOOL ; + Prod_Spare06 : BOOL ; + Prod_Spare07 : BOOL ; + CIP_Selected : BOOL ; + CIP_Sanitize_Request : BOOL ; + CIP_End_Cycle : BOOL ; + CIP_Change_Ready : BOOL ; + CIP_Drain_Completed : BOOL ; + CIP_OpenEV13 : BOOL ; + CIP_StopCIPReturnPump : BOOL ; + CIP_Spare07 : BOOL ; + Rinse_Selected : BOOL ; + Rinse_Ended : BOOL ; + Rinse_Spare02 : BOOL ; + Rinse_Spare03 : BOOL ; + Rinse_Spare04 : BOOL ; + Rinse_Spare05 : BOOL ; + Rinse_Spare06 : BOOL ; + Rinse_Spare07 : BOOL ; + Drain_Selected : BOOL ; + Drain_Spare01 : BOOL ; + Drain_Spare02 : BOOL ; + Drain_Spare03 : BOOL ; + Drain_Spare04 : BOOL ; + Drain_Spare05 : BOOL ; + Drain_Spare06 : BOOL ; + Drain_Spare07 : BOOL ; + Spare_W_26 : WORD ; + Spare_W_28 : WORD ; + Spare_W_30 : WORD ; + Spare_W_32 : WORD ; + Spare_W_34 : WORD ; + Spare_W_36 : WORD ; + Spare_W_38 : WORD ; + END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/BLENDFILLSENDSTRUCT.EXP b/backend/script_groups/TwinCat/.example/BLENDFILLSENDSTRUCT.EXP new file mode 100644 index 0000000..aa291fb --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BLENDFILLSENDSTRUCT.EXP @@ -0,0 +1,64 @@ +(* @PATH := '\/Signals Inteface' *) +TYPE BlendFillSendStruct : + STRUCT + Pressure_SP : INT ; (* Filling Valve Head Pressure SP: 0 - 1000 mBar (x10) *) + Pressure_PV : INT ; (* Filling Valve Head Pressure PV: 0 - 1000 mBar (x10) *) + Tank_Level : INT ; (* Buffer Tank Level: 0.0 - 100.0 % (x10) *) + Spare_W_06 : INT ; (* Filler Actual Flow: 0 - 1050 L/min (x10) *) + Pump_Freq : INT ; (* OverPressure Pump P3 Frequency: 0 - 60 Hz (x10) *) + Recipe_Number : INT ; (* Filler Recipe Number *) + ProdTankPress : INT ; (* Buffer Tank Pressure: 0.0 - 10.0 Bar (x10) *) + PressDiffPEW : WORD ; + ProdTotalAvailable : INT ; + Spare_W_18 : WORD ; + Gen_EV62_Status : BOOL ; + Gen_EV46_Status : BOOL ; + Gen_Spare02 : BOOL ; + Gen_EV15_Status : BOOL ; + Gen_EV13_Status : BOOL ; + Gen_P3_Status : BOOL ; + Gen_P6_Status : BOOL ; + Gen_Spare07 : BOOL ; + Gen_Spare10 : BOOL ; + Gen_Spare11 : BOOL ; + Gen_Spare12 : BOOL ; + Gen_Spare13 : BOOL ; + Gen_Spare14 : BOOL ; + Gen_Spare15 : BOOL ; + Gen_Spare16 : BOOL ; + Gen_ConnAlive : BOOL ; + Prod_Mode : BOOL ; + Prod_PressRunning : BOOL ; + Prod_ProdLoad : BOOL ; + Prod_ProdSend : BOOL ; + Prod_ProdRunOut : BOOL ; + Prod_ProdLoad2 : BOOL ; + Prod_ProdCompleted : BOOL ; + Prod_FastRinseRequest : BOOL ; + CIP_Mode : BOOL ; + CIP_Running : BOOL ; + CIP_Change_Sanitize : BOOL ; + CIP_Drain_Request : BOOL ; + CIP_Completed : BOOL ; + CIP_Caustic_Running : BOOL ; + CIP_Spare06 : BOOL ; + CIP_Spare07 : BOOL ; + Rinse_Mode : BOOL ; + Rinse_Running : BOOL ; + Rinse_Spare02 : BOOL ; + Rinse_Spare03 : BOOL ; + Rinse_Spare04 : BOOL ; + Rinse_Spare05 : BOOL ; + Rinse_Spare06 : BOOL ; + Rinse_Spare07 : BOOL ; + Spare_W_26 : WORD ; + Spare_W_28 : WORD ; + Spare_W_30 : WORD ; + Spare_W_32 : WORD ; + Spare_W_34 : WORD ; + Spare_W_36 : WORD ; + Spare_W_38 : WORD ; + END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/BLENDFILLSYSTEM_STARTUP.EXP b/backend/script_groups/TwinCat/.example/BLENDFILLSYSTEM_STARTUP.EXP new file mode 100644 index 0000000..c45be60 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BLENDFILLSYSTEM_STARTUP.EXP @@ -0,0 +1,2497 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM BlendFillSystem_StartUp +VAR + mFillerFirstLoadTmr : TON; + mFillerFirstLoadTimeOut : BOOL; + mFillerProdLoadedInit : REAL ; + mFillerProdLoading : REAL ; + mFillerLoadAgain_ONS : R_TRIG ; + mStepNum : INT ; + mTimeStep : INT ; + mTimer : TIME ; + mBlendFillStartUpStepMove : _StepMove ; + mStep2 : BOOL ; + mStep4 : BOOL ; + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +VAR PERSISTENT + mFillerLoadAgain : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 20 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboWaterLine_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillStartUp_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendFillStartUp_Qualifier +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillStartUp_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillerLoadAgain_ONS +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Done +_OPERAND +_EXPRESSION +_NEGATIV +gInFillerEndTankFilling +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +mFillerLoadAgain +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInFillerEV62Enable +_EXPRESSION +_NEGATIV +_LD_CONTACT +gIn_ProdPumpFCReady +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_FillerProdLoad +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerProdReady +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillStartUp_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +g_Head_CIP_Rinse +_EXPRESSION +_POSITIV +_LD_CONTACT +mFillerLoadAgain_ONS.Q +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerCIPDrainSelecteted +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillStartUp_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillStartUp_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +BlendFillSystem_StartUp._Reset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Old Jump TO Step 4 +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mFillerLoadAgain_ONS.Q +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendFillStartUp_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlendFillStartUp_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +9 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillStartUp_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_BlendFillSysStartUpRun +_OUTPUT +_POSITIV +_NO_SET +gBlendFillStartUp_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +BlendFillSystem_StartUp._Sequencer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStep4 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +mStep4 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status061 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankPress_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Status062 +_OUTPUT +_POSITIV +_NO_SET +gH_BlendFillSysPressRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_FillerProdLoad +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Status063 +_OUTPUT +_POSITIV +_NO_SET +gH_BlendFillSysProdLoadRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlendFillStartUp_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gOut_FillerProductAvailable +_EXPRESSION +_POSITIV +_LD_CONTACT +g_Head_PID_Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlendFillSysProdSendRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlendFillStartUp_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message061 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Done +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gP_FillerProdLoad +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerEV62Enable +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerEV46Enable +_EXPRESSION +_NEGATIV +_LD_CONTACT +gInFillerProdReady +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message062 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStep2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerEndFlushing +_EXPRESSION +_NEGATIV +_LD_CONTACT +mStep2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message063 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_FillerProdLoad +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerEndTankFilling +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message064 + +END_PROGRAM +ACTION _Reset: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimeStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerCIPDrainSelecteted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +mFillerLoadAgain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gBlendFillStartUp_Done + +END_ACTION + +ACTION _Sequencer: +CASE mStepNum OF + 0: Step_0 ; + + 1: Step_1 ; + + 2: Step_2 ; + + 3: Step_3 ; + + 4: Step_4 ; + + 5: Step_5 ; + + 6: Step_6 ; + + 7: Step_7 ; + + 8: Step_8 ; +ELSE + ; +END_CASE +END_ACTION + +ACTION Step_0: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gBlendFillStartUp_EnBlend +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV13 +_NETWORK + +_COMMENT +Step 0: Wait Buffer Tank Pressurization +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mBlendFillStartUpStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gEqPressOk +_OPERAND +_EXPRESSION +_POSITIV +gEqPressSelected +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderTankPress_Ok +_OPERAND +_EXPRESSION +_NEGATIV +gEqPressSelected +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gInLinePressCO2Ok +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Step_1: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gBlendFillStartUp_EnBlend +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV13 +_NETWORK + +_COMMENT +Step 1: Wait from Filler Enable TO Open EV46 - CO2 Valve - +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mBlendFillStartUpStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_OPERAND +_EXPRESSION +_POSITIV +gInFillerEV46Enable +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Step_2: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gBlendFillStartUp_EnBlend +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV13 +_NETWORK + +_COMMENT +Step 2: Filler Pipe Flushing +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerEV46Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV46 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mBlendFillStartUpStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Step2 +_OPERAND +_EXPRESSION +_POSITIV +gInFillerEndFlushing +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Step_3: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gBlendFillStartUp_EnBlend +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV13 +_NETWORK + +_COMMENT +Step 2: BlendFill Pressurization AT Equilibrium Pressure +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerEV46Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV46 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mBlendFillStartUpStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gEqPressOk +_OPERAND +_EXPRESSION +_POSITIV +gEqPressSelected +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderTankPress_Ok +_OPERAND +_EXPRESSION +_NEGATIV +gEqPressSelected +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Step_4: +_LD_BODY +_NETWORKS : 8 +_NETWORK + +_COMMENT +Step 3: Wait First Production Completed - OLD - +NEW : Wait Product Tank Stop Level +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_PID_Head_Enable +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerEV46Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV46 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillStartUp_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSp_PID_Head_Manual +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gBlendFillStartUp_EnBlend +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV13 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_NEGATIV +gProdTankEmpty +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_StartUpProdPumpFreq +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHead_PID_Manual_Value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mBlendFillStartUpStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOut_Latch +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderStopLevel +_OPERAND +_EXPRESSION +_POSITIV +gFirstProd_Latch +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFirstProd_Done +_OPERAND +_EXPRESSION +_POSITIV +gBlenderLevelTarget +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gTankProductAvailable +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerProdLoadedInit +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Step_5: +_LD_BODY +_NETWORKS : 6 +_NETWORK + +_COMMENT +Step 5: Start TO Load Product TO Filler with P3 modulating +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillerFirstLoadTmr +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +t#2m +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerFirstLoadTimeOut +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_SET +gSp_PID_Head_Manual +_OUTPUT +_NEGATIV +_SET +gBlendFillStartUp_EnBlend +_OUTPUT +_POSITIV +_SET +gSp_FillerProdLoad +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_P3_FrequencyFFOut +_OPERAND +_EXPRESSION +_POSITIV +6.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHead_PID_Manual_Value +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +8.0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHead_PID_Manual_Value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerEV46Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV46 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerEV62Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV62 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mFillerProdLoadedInit +_OPERAND +_EXPRESSION +_POSITIV +gTankProductAvailable +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerProdLoading +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mBlendFillStartUpStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Step4 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_EV62_Status +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_EV46_Status +_OPERAND +_EXPRESSION +_POSITIV +gWorkShoptest +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderTankPress_Ok +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerProdLoading +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +mFillerLoadAgain +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_FillerProdPipeMass +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_EXPRESSION +_POSITIV +MUL +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +gInFillerEndTankFilling +_OPERAND +_EXPRESSION +_POSITIV +mFillerFirstLoadTimeOut +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Step_6: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT +Step 5: Remove Air from Recirculating Pipe (EV13) +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_SET +gSp_PID_Head_Manual +_OUTPUT +_POSITIV +_SET +gSp_EV13 +_OUTPUT +_POSITIV +_SET +gSp_FillerProdLoad +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerEV46Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV46 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_ProdLoad2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mTimer +_OPERAND +_EXPRESSION +_POSITIV +t#4S +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHead_PID_Manual_Value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mBlendFillStartUpStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +t#300ms +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Step_7: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT +Step 6: Load Product in Filler with P3 Pump On AT Const Freq = 6 Hz, wait End Tank Filling from Filler +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_SET +gSp_PID_Head_Manual +_OUTPUT +_POSITIV +_SET +gSp_EV13 +_OUTPUT +_POSITIV +_SET +gSp_FillerProdLoad +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerEV46Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV46 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerEV62Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV62 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +34.0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHead_PID_Manual_Value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mBlendFillStartUpStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +8 +_OPERAND +_EXPRESSION +_POSITIV +t#300ms +_OPERAND +_EXPRESSION +_POSITIV +gInFillerEndTankFilling +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Step_8: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_NEGATIV +_SET +mFillerLoadAgain +_OUTPUT +_NEGATIV +_SET +gBlendFillSendData.Prod_ProdLoad2 +_OUTPUT +_POSITIV +_SET +gBlendFillStartUp_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/BRIXTRACKING.EXP b/backend/script_groups/TwinCat/.example/BRIXTRACKING.EXP new file mode 100644 index 0000000..8512168 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BRIXTRACKING.EXP @@ -0,0 +1,826 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM BrixTracking +VAR + mLocalProdLevel : REAL ; + mProdQualityGood : BOOL ; + mAuxONS : R_TRIG ; + mAuxONS1 : R_TRIG ; + mLatchONS : BOOL ; + mDummy : BOOL ; + + mProdBrixStat : StatisticalAnalisys ; + mProdBrixSample : INT := 35 ; + mWaitCycleToSample : INT ; + mCycleCount : INT ; + mTotalCount : INT ; + mProdRefresh : REAL ; (* Time in min to refresh all product in product tank *) + mProdRefreshS : REAL ; (* Time in sec to refresh all product in product tank *) + mAuxProdBrixCorr : REAL ; + mAuxProdBrixCorrInit : REAL ; + mStart : BOOL ; + mTakeSample : BOOL ; + mTakeProdSample : BOOL ; + mProdInit : REAL ; + mAllSamples : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 18 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gProductMeterOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gSugarBeverage +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdBrixTrack_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_PrdBrixTrackingReq +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdBrixTrack_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdBrixTrack_Qualifier +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdBrixTrack_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProdBxStat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +8E-3 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdQualityGood +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +mProdQualityGood +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFlowToFiller +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderEnToRamp +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdBrixTrack_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdBrixTrack_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdBrixTrack_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdBrixTrack_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdBrixTrack_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS1 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mLatchONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdBrixTrack_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdBrixTrack_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdBrixTrack_Wait +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status009 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_PrdBrixTrackingRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel>50 +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +60 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mLocalProdLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mLocalProdLevel +_EXPRESSION +_POSITIV +ProductLiterInTank +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductLitTank +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +BrixTracking.ProdSamples +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +BrixTracking.SampleTimeCalc +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mAuxProdBrixCorr +_OUTPUT +_POSITIV +_NO_SET +gBrixTrackingCorr +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdBrixTrack_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status010 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +mLatchONS +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdBrixTrack_Request +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdBrixTrack_Done +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +BrixTracking.ProductQualityMonitor +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION ProdSamples: +(* Calculates the product liters during blending. Every 60 Liters of product take a sample for the statistical analisys +in order to correct the product brix *) +IF gBlenderBlending THEN + gProductTotalizerLt.i_NewValue :=gActual_Prod_Flow ; + gProductTotalizerLt.i_IntCycle := gTask02CycleTime ; + gProductTotalizerLt(Out_Integral:=gProductLiters) ; +END_IF +IF gBlenderRinseMode OR gBlenderCIPMode THEN + gProductLiters := 0.0 ; + gProductTotalizerLt(Out_Integral:=gProductLiters) ; +END_IF +IF (gProductLiters-mProdInit)>60 THEN + mTakeProdSample := TRUE ; + mProdInit := gProductLiters ; +END_IF +(*mAuxProdBrixCorr := (gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue) / 2 ;*) + +END_ACTION + +ACTION ProductQualityMonitor: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mTakeSample +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +mTakeProdSample +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mProdBrixStat +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductBrix +_OPERAND +_EXPRESSION +_POSITIV +mProdBrixSample +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +StatisticalAnalisys +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gProdBxStat_Variance +_OUTPUT +_POSITIV +_NO_SET +gProdBxStat_DevStd +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdBxStat_MeanValue +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mTakeSample +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +mTakeSample +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mTakeProdSample +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +mTakeProdSample + +END_ACTION + +ACTION SampleTimeCalc: +IF gActual_Prod_SP<>0 THEN + mProdRefresh := gProductLitTank / gActual_Prod_SP ; +ELSE + mProdRefresh := 0 ; +END_IF +mProdRefreshS := mProdRefresh * 1.6 * 60 ; + +IF gTask02CycleTime<>0 AND mProdBrixSample<>0 THEN + mWaitCycleToSample := REAL_TO_INT(mProdRefreshS / mProdBrixSample / gTask02CycleTime) ; +END_IF +IF mWaitCycleToSample<1 THEN + mWaitCycleToSample := 1 ; +END_IF +IF gProdBrixTrack_Latch AND NOT gFreezeProductMeter THEN + IF mCycleCount<=mWaitCycleToSample THEN + mCycleCount := mCycleCount + 1 ; + ELSE + mTakeSample := TRUE ; + mCycleCount := 0 ; + END_IF +ELSE + mTakeSample := FALSE ; +(* mCycleCount := 0 ;*) +END_IF +IF mTakeSample THEN + mTotalCount := mTotalCount + 1 ; +END_IF + +IF mTotalCount>=mProdBrixSample THEN + IF gProdBrixTrack_Running THEN + IF NOT mStart THEN + mStart := TRUE ; + mAuxProdBrixCorrInit := gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue ; + IF mAuxProdBrixCorr=0 THEN + mAuxProdBrixCorr := (gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue) / 3 ; + END_IF + ELSE + mStart := FALSE ; +(* IF ABS(gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue)<=mAuxProdBrixCorrInit THEN*) + mAuxProdBrixCorr := mAuxProdBrixCorr + (gActualRecipe_Beverage_Brix - gProdBxStat_MeanValue) / 10 ; +(* END_IF*) + END_IF + END_IF + mAllSamples := TRUE ; + mTotalCount := 0 ; +ELSE + mAllSamples := FALSE ; +END_IF +(* Check the limit boundaries to act the product tracking *) +IF gProdBrixTrack_Running THEN + IF NOT (ABS(mAuxProdBrixCorr)gBrixTrackingMaxCorr) THEN + gBrixTrackingCorr := mAuxProdBrixCorr ; + END_IF +END_IF + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/BYTES_TO_DWORD.EXP b/backend/script_groups/TwinCat/.example/BYTES_TO_DWORD.EXP new file mode 100644 index 0000000..075426f --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BYTES_TO_DWORD.EXP @@ -0,0 +1,21 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION Bytes_To_Dword : DWORD +VAR_IN_OUT + i_Byte_0 : BYTE ; +END_VAR +VAR + i : INT ; + mPtr : POINTER TO BYTE ; +END_VAR + + +(* @END_DECLARATION := '0' *) +mPtr := ADR(i_Byte_0) ; +Bytes_To_Dword := BYTE_TO_WORD(i_Byte_0) ; +FOR i:=1 TO 3 DO + mPtr := mPtr + 1 ; + Bytes_To_Dword := SHL(Bytes_To_Dword, 8 ) OR BYTE_TO_WORD(mPtr^) ; +END_FOR +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/BYTES_TO_WORD.EXP b/backend/script_groups/TwinCat/.example/BYTES_TO_WORD.EXP new file mode 100644 index 0000000..c50bc55 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/BYTES_TO_WORD.EXP @@ -0,0 +1,17 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION Bytes_To_Word : WORD +VAR_IN_OUT + i_Byte_0 : BYTE ; +END_VAR +VAR + i : INT ; + mPtr : POINTER TO BYTE ; +END_VAR + +(* @END_DECLARATION := '0' *) +mPtr := ADR(i_Byte_0) +1; +Bytes_To_Word := BYTE_TO_WORD(i_Byte_0) ; +Bytes_To_Word := SHL(Bytes_To_Word, 8 ) OR BYTE_TO_WORD(mPtr^) ; +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/CALC_INJPRESS.EXP b/backend/script_groups/TwinCat/.example/CALC_INJPRESS.EXP new file mode 100644 index 0000000..49f3fc7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CALC_INJPRESS.EXP @@ -0,0 +1,27 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION Calc_InjPress : REAL +VAR_INPUT + i_GasTemperature : REAL; + i_GasMW : REAL; + i_GasDensity : REAL; +END_VAR +VAR + mMW_Gas : REAL; + mTa_Gas : REAL; + m_R : REAL; +END_VAR +(* @END_DECLARATION := '0' *) +IF i_GasTemperature0 THEN + Omega := ( i_Speed / i_NumValve / 3600 ) * 2 * gP_Greek ; +END_IF +Radius := i_Diameter / 2 / 1000 ; + +(*Cetrifugal_Head := (( 0.5 * Omega*Omega * Radius * Radius ) / 9.8 ) * 100 ;*) +Cetrifugal_Head := (( 0.5 * Omega*Omega * Radius * Radius ) / 9.8 ) * 1000 ; +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/CIPRECEIVESTRUCT.EXP b/backend/script_groups/TwinCat/.example/CIPRECEIVESTRUCT.EXP new file mode 100644 index 0000000..5678ec6 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIPRECEIVESTRUCT.EXP @@ -0,0 +1,27 @@ +(* @PATH := '\/Signals Inteface' *) +TYPE CIPReceiveStruct : (* 10 Byte *) + STRUCT + CIP_Request : BOOL ; + CIP_Running : BOOL ; + CIP_Completed : BOOL ; + CIP_DrainRequest : BOOL ; + CIP_ChangeSanitize : BOOL ; + CIP_CausticSanitizeRunning : BOOL ; + Spare0_6 : BOOL ; + Spare0_7 : BOOL ; + Spare1_0 : BOOL ; + Spare1_1 : BOOL ; + Spare1_2 : BOOL ; + Spare1_3 : BOOL ; + Spare1_4 : BOOL ; + Spare1_5 : BOOL ; + Spare1_6 : BOOL ; + AliveBit : BOOL ; + HeatingTemperature : INT ; + Spare_Word1 : WORD ; + Spare_Word2 : WORD ; + Spare_Word3 : WORD ; + END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/CIPSENDSTRUCT.EXP b/backend/script_groups/TwinCat/.example/CIPSENDSTRUCT.EXP new file mode 100644 index 0000000..f85f6b7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIPSENDSTRUCT.EXP @@ -0,0 +1,27 @@ +(* @PATH := '\/Signals Inteface' *) +TYPE CIPSendStruct: (* 10Byte *) + STRUCT + Line_Ready : BOOL ; + CIP_DrainCompleted : BOOL ; + CIP_CycleEnded : BOOL ; + CIP_ChangeReady : BOOL ; + Spare0_4 : BOOL ; + Spare0_5 : BOOL ; + Spare0_6 : BOOL ; + Spare0_7 : BOOL ; + Spare1_0 : BOOL ; + Spare1_1 : BOOL ; + Spare1_2 : BOOL ; + Spare1_3 : BOOL ; + Spare1_4 : BOOL ; + Spare1_5 : BOOL ; + Spare1_6 : BOOL ; + AliveBit : BOOL ; + Spare_Word0 : WORD ; + Spare_Word1 : WORD ; + Spare_Word2 : WORD ; + Spare_Word3 : WORD ; + END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/CIP_CVQ.EXP b/backend/script_groups/TwinCat/.example/CIP_CVQ.EXP new file mode 100644 index 0000000..dccae4d --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIP_CVQ.EXP @@ -0,0 +1,22 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION CIP_CVQ : REAL +VAR_INPUT + i_TempIn : REAL ; + i_TempOut : REAL ; +END_VAR +VAR +END_VAR +(* @END_DECLARATION := '0' *) +IF i_TempOut<= 0.5 THEN + CIP_CVQ := 50.0 ; +ELSIF i_TempIn-i_TempOut<=1 THEN + CIP_CVQ := 100.0 ; +ELSIF (i_TempIn-i_TempOut>1) AND (i_TempIn-i_TempOut<=5) THEN + CIP_CVQ := (i_TempOut - i_TempIn) * 12.5 + 87.5 ; +ELSIF i_TempIn-i_TempOut>5 THEN + CIP_CVQ := 50.0 ; +END_IF + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/CIP_LINK_TYPE.EXP b/backend/script_groups/TwinCat/.example/CIP_LINK_TYPE.EXP new file mode 100644 index 0000000..81d6b29 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIP_LINK_TYPE.EXP @@ -0,0 +1,10 @@ +(* @PATH := '\/CIP Structure' *) +TYPE CIP_Link_Type : +STRUCT + CIP_LinkName : STRING [20] ; + CIP_Simple_Prog : ARRAY [1..30] OF INT ; + CIP_Link_Changed : BOOL ; +END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/CIP_LIST_ELEMENT.EXP b/backend/script_groups/TwinCat/.example/CIP_LIST_ELEMENT.EXP new file mode 100644 index 0000000..3a0d80e --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIP_LIST_ELEMENT.EXP @@ -0,0 +1,10 @@ +(* @PATH := '\/CIP Structure' *) +TYPE CIP_List_Element : +STRUCT + CIP_Prog_Block : CIP_Simple_Type ; (* *) + Prev_CIP_List_Elem : POINTER TO CIP_Simple_Type ; (* Pointer to the previous element in the list *) + Next_CIP_List_Elem : POINTER TO CIP_Simple_Type ; (* Pointer to the next element in the list *) +END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/CIP_MAIN.EXP b/backend/script_groups/TwinCat/.example/CIP_MAIN.EXP new file mode 100644 index 0000000..73a5d44 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIP_MAIN.EXP @@ -0,0 +1,1490 @@ + +(* @PATH := '\/TASK2_ControlMain\/CIP' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM CIP_MAIN +VAR + mAuxONS : R_TRIG ; + mAuxONS1 : F_TRIG ; + mAuxONS2 : R_TRIG ; + mAuxONS3 : R_TRIG ; + mAuxONS4 : R_TRIG ; + mCIP_CompletedONS : R_TRIG; + mBlenderDrainTimer : TON ; + mProdTankFloodReq : BOOL ; + mDeairTankFloodReq : BOOL ; + mSyrTankFloodReq : BOOL ; + mSyrTankFlooded : BOOL ; + mCIPTotalDrainReq : BOOL ; + mDrainEnd : BOOL ; + mPrdTankFlood : TON ; + mDeairTankFlood : TON ; + mSyrupTankFlood : TON ; + mBlenderEmprtyTON : TON; + mBlenderDrainTimer_Empty : TON; + mBufferTankEmpty : TOF; + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + + + + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 13 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +LocalCIP_Ctrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +CentralCIP_Ctrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPressCO2_PV +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPPrdTankPressLow +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCIPPrdTankPressLow +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_NEGATIV +_LD_CONTACT +gInCIP_CIPCompleted +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mCIP_CompletedONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gCIP_Completed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCIPBlenderDrainDone +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +gCIP_Completed +_OUTPUT +_NEGATIV +_SET +gCIPBlenderDrainRunning +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +CIP_MAIN.CIP_Total_Drain +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +CIP_MAIN.CIP_Flood +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPCausticRecoveryRun +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderEmpty +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gCIPBlenderEmpty +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerCIPChangeReady +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_CIPChangeReady +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPCausticRecoveryRun +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mBlenderEmprtyTON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCIPBlenderEmpty +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerCIPRequest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gCIP_Started +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gOut_FillerCIPCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCIP_Started + +END_PROGRAM +ACTION CIP_Flood: +_LD_BODY +_NETWORKS : 13 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_CIP_PrdTankFloodReq +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS2 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdTankFloodReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gInCIP_TankFilling +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mProdTankFloodReq +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CIP_ProdTankFloodRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mProdTankFloodReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_ProdTankFloodRun +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPPrdTankFlood +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_ProdTankFloodRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_CIP_ProdTankFloodRun +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPMaxLevel +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mPrdTankFlood +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#0s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPPrdTankFlood +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_CIP_SyrTankFloodReq +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS4 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrTankFloodReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gInCIP_TankFilling +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPPrdTankFlood +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mSyrTankFloodReq +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CIP_SyrTankFloodRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mSyrTankFloodReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_SyrTankFloodRun +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPSyrupTankFlood +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_SyrTankFloodRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_SyrTankFloodRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_SET +gSp_EV04 +_OUTPUT +_POSITIV +_SET +gSp_EV01 +_OUTPUT +_POSITIV +_SET +gSp_P1 +_OUTPUT +_POSITIV +_SET +gSp_EV17 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_SyrTankFloodRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV61 +_OUTPUT +_POSITIV +_SET +gSp_P1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankLevel +_OPERAND +_EXPRESSION +_POSITIV +99.0 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrTankFlooded +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gSyrupTankMinLvlAux +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_SyrTankFloodRun +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrupTankFlood +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#20s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_CONTACT +mSyrTankFlooded +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPSyrupTankFlood +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_CIP_DeairTankFloodReq +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS3 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDeairTankFloodReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gInCIP_TankFilling +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPSyrupTankFlood +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPPrdTankFlood +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mDeairTankFloodReq +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CIP_DeairTankFloodRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mDeairTankFloodReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_DeairTankFloodRun +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPDeairTankFlood +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_DeairTankFloodRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gDeairTankMinLvlAux +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_DeairTankFloodRun +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDeairTankFlood +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#75s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPDeairTankFlood +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CIP_DeairTankFloodRun +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV02 + +END_ACTION + +ACTION CIP_Total_Drain: +_LD_BODY +_NETWORKS : 8 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_CIP_TotalDrainReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_CIPCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_DrainRequest +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCIPTotalDrainReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_DrainRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAuxONS1 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDrainEnd +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mCIPTotalDrainReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_BlenderDrainRun +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mCIPTotalDrainReq +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CIP_BlenderDrainRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_DrainRequest +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCIPBlenderDrainDone +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_DrainRequest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +mDrainEnd +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gCIPBlenderDrainRunning +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_BlenderDrainRun +_OUTPUT +_POSITIV +_NO_SET +gH_Status022 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPBlenderDrainRunning +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_FUNCTIONBLOCK +mBlenderDrainTimer +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10m +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderEmpty +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mBlenderDrainTimer_Empty +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1m +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPBlenderDrainDone +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gCIPBlenderDrainRunning +_EXPRESSION +_POSITIV +_LD_CONTACT +gOut_WaterPumpRun +_EXPRESSION +_NEGATIV +_LD_CONTACT +gOut_WaterPump2Run +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_SET +gSp_EV14 +_OUTPUT +_POSITIV +_SET +gSp_EV14_1 +_OUTPUT +_POSITIV +_SET +gSp_EV16 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gCIPBlenderDrainRunning +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_ProdTankNotEmpty +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mBufferTankEmpty +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#20s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_SET +gSp_Ev45 +_OUTPUT +_NEGATIV +_SET +gSp_EV15 +_OUTPUT +_POSITIV +_SET +gSp_EV17 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mBufferTankEmpty.Q +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV62 +_OUTPUT +_POSITIV +_SET +gSp_EV69 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCIPBlenderDrainRunning +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 7 +_OUTPUT +_POSITIV +_SET +gSp_EV23 +_OUTPUT +_POSITIV +_SET +gSp_EV23_1 +_OUTPUT +_POSITIV +_SET +gSp_EV24 +_OUTPUT +_POSITIV +_SET +gSp_EV27 +_OUTPUT +_POSITIV +_SET +gSp_EV44 +_OUTPUT +_POSITIV +_SET +gSp_EV61 +_OUTPUT +_POSITIV +_SET +gSp_EV72 + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/CIP_PROGRAM_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/CIP_PROGRAM_VARIABLES.EXP new file mode 100644 index 0000000..7302853 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIP_PROGRAM_VARIABLES.EXP @@ -0,0 +1,62 @@ +(* @GLOBAL_VARIABLE_LIST := CIP_Program_Variables *) +(* @PATH := '\/CIP' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL + gCIP_Run_Qualifier : BOOL ; (* *) + gCIP_Run_Request : BOOL ; (* *) + gCIP_Run_Reset : BOOL ; (* *) + gCIP_Run_Latch : BOOL ; (* *) + gCIP_Run_Wait : BOOL ; (* *) + gCIP_Run_Done : BOOL ; (* *) + gCIP_Run_Running : BOOL ; (* CIP Running Signal *) + + gCIPMaxStepNum : UINT := 16 ; + gCIPMaxSimpleNum : UINT := 32 ; + + gCIP_WaitEventStatus AT %MB10000 : CIP_WaitEvent_Type ; (* memory Used from 10000 to 10032 *) + gCIP_WaitEventStatus_Array AT %MB10000 : ARRAY [0..31] OF BOOL ; + gCIP_WaitEventReq AT %MB10033 : CIP_WaitEvent_Type ; (* memory Used from 10033 to 10065 *) + gCIP_WaitEventReq_Array AT %MB10033 : ARRAY [0..31] OF BOOL ; + + gWaitFillerReadyToCIP : BOOL ; + + gCIPHeaterTemp_PV : REAL ; + gCIPReturnTemp_PV : REAL ; + + gCIPOpenEV33_35Valve : BOOL ; + gCIP_WaitAnyCond : BOOL ; (* CIP Waiting a Condition *) + gCIP_SPHigh_Cond : REAL ; (* High Conductivity Set Point *) + gCIP_SPLow_Cond : REAL ; (* Low Conductivity Set Point *) + gCIP_SPTemperature : REAL ; (* CIP Temperature Set Point *) + + gCIPBlenderDrainDone : BOOL ; + gCIPBlenderDrainRunning : BOOL ; + gCIPBlenderEmpty : BOOL ; +END_VAR + +VAR_GLOBAL PERSISTENT + gCIPTotalElapsedTime : DINT ; + gCIPTotalTime : UDINT ; + gActualSimpleNum : UINT ; + gActualStepNum : UINT ; + gStepActualTime : UINT ; + gCIP_Run_Prog : ARRAY [1..32] OF CIP_Simple_Type ; (* Running Link Complete Program *) + gActualCIP_LinkProgram : ARRAY [1..32] OF CIP_Simple_Type ; (* Running Link Complete Program *) + gActual_LinkProgName : STRING[32] ; + gActual_ArrSimpleProgName : ARRAY [1..40] OF STRING[32] ; + gCIP_ProgramLoaded : BOOL ; + + gCIP_Started : BOOL ; + gCIPCausticRecoveryRun : BOOL ; + + gCIP_Simple_Exec : CIP_Simple_Type ; (* Actual Simple Program Running *) + gCIP_Inizialized : BOOL ; (* CIP Inizialized Signal *) + gCIP_Completed : BOOL ; (* CIP Completed Signal *) +END_VAR +(* @OBJECT_END := CIP_Program_Variables *) +(* @CONNECTIONS := CIP_Program_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/CIP_SIMPLE_TYPE.EXP b/backend/script_groups/TwinCat/.example/CIP_SIMPLE_TYPE.EXP new file mode 100644 index 0000000..a7044e2 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIP_SIMPLE_TYPE.EXP @@ -0,0 +1,13 @@ +(* @PATH := '\/CIP Structure' *) +TYPE CIP_Simple_Type: +STRUCT + CIP_SimpleArray : ARRAY [1..16] OF CIP_Step_Type ; + CIP_SetPoint_Temp : REAL ; (* Temperature set Point *) + CIP_SetPoint_LowCond : REAL ; (* Low Conductivity set Point *) + CIP_SetPoint_HighCond : REAL ; (* High Conductivity set Point *) + CIP_SimpleCode : INT ; + Dummy : INT ; +END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/CIP_STEP_TYPE.EXP b/backend/script_groups/TwinCat/.example/CIP_STEP_TYPE.EXP new file mode 100644 index 0000000..2b44f71 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIP_STEP_TYPE.EXP @@ -0,0 +1,16 @@ +(* @PATH := '\/CIP Structure' *) +TYPE CIP_Step_Type : +STRUCT + CIP_StepTime : UINT ; (* Step Time Length *) +(* Dummy : INT ;*) + CIP_OutWord_0 : UINT ; (* Output Word 0 to Valves *) + CIP_OutWord_1 : UINT ; (* Output Word 1 to Valves *) + CIP_OutWord_2 : UINT ; (* Output Word 2 to Valves *) + CIP_OutWord_3 : UINT ; (* Output Word 3 to Valves *) + + CIP_ControlWord0 : UINT ; (* Conditions Word 0 *) + CIP_ControlWord1 : UINT ; (* Conditions Word 1 *) +END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/CIP_WAITEVENT_TYPE.EXP b/backend/script_groups/TwinCat/.example/CIP_WAITEVENT_TYPE.EXP new file mode 100644 index 0000000..37f44e8 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CIP_WAITEVENT_TYPE.EXP @@ -0,0 +1,40 @@ +(* @PATH := '\/CIP Structure' *) +TYPE CIP_WaitEvent_Type : +STRUCT + Temperature_Ok : BOOL ; (* Local CIP: Wait "Temperature Achieved Condition" *) + HighConductivity : BOOL ; (* Local CIP: Wait "High Conductivity Achieved" *) + LowConductivity : BOOL ; (* Local CIP: Wait "Low Conductivity Achieved" *) + ProdTankMaxLev : BOOL ; (* Local CIP: Wait "Product Tank 100% Level Achieved" *) + ReadyForCIP : BOOL ; (* Local CIP: Wait "Ready For CIP" *) + DrainCompleted : BOOL ; (* Local CIP: Wait "Drain Completed" *) + CIPCycleEnded : BOOL ; (* *) + CIPChangeReady : BOOL ; (* From Filler CIP Change Ready *) + SpareWord0_Bit_8 : BOOL ; (* *) + SpareWord0_Bit_9 : BOOL ; (* *) + SpareWord0_Bit_10 : BOOL ; (* *) + SpareWord0_Bit_11 : BOOL ; (* *) + SpareWord0_Bit_12 : BOOL ; (* *) + SpareWord0_Bit_13 : BOOL ; (* *) + SpareWord0_Bit_14 : BOOL ; (* *) + SpareWord0_Bit_15 : BOOL ; (* *) + + SpareWord1_Bit_0 : BOOL ; + SpareWord1_Bit_1 : BOOL ; + SpareWord1_Bit_2 : BOOL ; + SpareWord1_Bit_3 : BOOL ; + SpareWord1_Bit_4 : BOOL ; + SpareWord1_Bit_5 : BOOL ; + SpareWord1_Bit_6 : BOOL ; + SpareWord1_Bit_7 : BOOL ; + SpareWord1_Bit_8 : BOOL ; + SpareWord1_Bit_9 : BOOL ; + SpareWord1_Bit_10 : BOOL ; + SpareWord1_Bit_11 : BOOL ; + SpareWord1_Bit_12 : BOOL ; + SpareWord1_Bit_13 : BOOL ; + SpareWord1_Bit_14 : BOOL ; + SpareWord1_Bit_15 : BOOL ; +END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/CLEANBOOLARRAY.EXP b/backend/script_groups/TwinCat/.example/CLEANBOOLARRAY.EXP new file mode 100644 index 0000000..9f7cd45 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CLEANBOOLARRAY.EXP @@ -0,0 +1,24 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION CleanBoolArray : BOOL +VAR_INPUT + i_ArrayPtr : DWORD ; + i_UpBound : INT ; +END_VAR +VAR + i : INT ; + mArrayPointer : POINTER TO BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +IF i_UpBound>0 AND i_UpBound<=191 THEN + FOR i:=0 TO i_UpBound DO + mArrayPointer := i_ArrayPtr + i ; + mArrayPointer^ :=FALSE ; + END_FOR; + CleanBoolArray := TRUE ; +ELSE + CleanBoolArray := FALSE ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/CLOCK_SIGNAL.EXP b/backend/script_groups/TwinCat/.example/CLOCK_SIGNAL.EXP new file mode 100644 index 0000000..36cff29 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CLOCK_SIGNAL.EXP @@ -0,0 +1,83 @@ + +(* @PATH := '\/TASK0_VOID' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Clock_Signal +VAR + mSec_100 : INT; + mSec_10 : INT; + mClock_1s : BOOL ; + mONS : R_TRIG ; + mTemp : BOOL ; + mInc : INT ; +END_VAR +(* @END_DECLARATION := '0' *) +gCPU_Counts ; +gSystem_Time; + +mSec_100 := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 100; +(*Sec_10 := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/1000000) MOD 10;*) +gMinInSeconds := TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 60; +gTime_sec := UINT_TO_REAL (gMinInSeconds) + INT_TO_REAL (mSec_100) / 100; + +IF mSec_100 < 50 THEN + gClock_1s := TRUE ; +ELSE + gClock_1s := FALSE ; +END_IF + +IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 5 < 3 THEN + gClock_50ms := TRUE ; +ELSE + gClock_50ms := FALSE ; +END_IF + +gClock_60ms := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 6) ; + +IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 10 < 5 THEN + gClock_100ms := TRUE ; +ELSE + gClock_100ms := FALSE ; +END_IF + +gClock_200ms := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/1000000) MOD 2) ; + +IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000) MOD 50 < 25 THEN + gClock_500ms := TRUE ; +ELSE + gClock_500ms := FALSE ; +END_IF + +(*IF TRUNC (UDINT_TO_REAL (gCPU_Counts.cpuCntLoDW) / 1000000) MOD 10 < 5 THEN + gClock_1s := TRUE ; +ELSE + gClock_1s := FALSE ; +END_IF +*) +gClock_2s := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 2) ; + +IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/10000000) MOD 10 < 5 THEN + gClock_10s := TRUE ; +ELSE + gClock_10s := FALSE ; +END_IF + +gClock_20s := INT_TO_BOOL (TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000000) MOD 2) ; + +IF TRUNC (UDINT_TO_REAL (gSystem_Time.timeLoDW)/100000000) MOD 6 < 3 THEN + gClock_60s := TRUE ; +ELSE + gClock_60s := FALSE ; +END_IF +mONS(CLK:=gClock_60s) ; + +IF mONS.Q THEN + mInc := mInc + 1 ; + IF mInc>3 AND mInc<6 THEN + gClock_120s := TRUE ; + ELSIF mInc>6 THEN + gClock_120s := FALSE ; + mInc := 0 ; + END_IF +END_IF + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/CLOCK_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/CLOCK_VARIABLES.EXP new file mode 100644 index 0000000..fe51984 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CLOCK_VARIABLES.EXP @@ -0,0 +1,29 @@ +(* @GLOBAL_VARIABLE_LIST := Clock_Variables *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL + gClock_20ms : BOOL; + gClock_40ms : BOOL; + gClock_50ms : BOOL; + gClock_60ms : BOOL; + gClock_100ms : BOOL; + gClock_200ms : BOOL; + gClock_500ms : BOOL; + gClock_1s : BOOL; + gClock_2s : BOOL; + gClock_10s : BOOL; + gClock_20s : BOOL; + gClock_60s : BOOL; + gClock_120s : BOOL; + + gMinInSeconds : UINT ; + gTime_sec : REAL; +END_VAR + +(* @OBJECT_END := Clock_Variables *) +(* @CONNECTIONS := Clock_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/CO2EQPRESS.EXP b/backend/script_groups/TwinCat/.example/CO2EQPRESS.EXP new file mode 100644 index 0000000..965d497 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CO2EQPRESS.EXP @@ -0,0 +1,24 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION CO2EqPress : REAL +VAR_INPUT + i_CO2Vol : REAL ; + i_Temp : REAL ; +END_VAR +VAR + mAbsTemp : REAL ; + mAux : REAL ; +END_VAR +(* @END_DECLARATION := '0' *) +(***************************************************************************************************************************) +(* The following Formula is supplied by Coca Cola Company, used in QC Labs *) +(***************************************************************************************************************************) + +mAbsTemp := i_Temp + 273.16 ; +IF (0.03275 * mAbsTemp - 7.9567)<>0 AND (0.000261 * mAbsTemp + mAux)<>0 THEN + mAux :=(0.01898 - 0.0000476 * mAbsTemp) / (0.03275 * mAbsTemp - 7.9567) * mAbsTemp ; + CO2EqPress := (i_CO2Vol - mAux) * 1.0332 / (0.000261 * mAbsTemp + mAux) ; +END_IF + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/CO2INJPRESSURE.EXP b/backend/script_groups/TwinCat/.example/CO2INJPRESSURE.EXP new file mode 100644 index 0000000..14d930b --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CO2INJPRESSURE.EXP @@ -0,0 +1,16 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION CO2InjPressure : REAL +VAR_INPUT + i_Temp : REAL ; + i_Dens : REAL ; +END_VAR +VAR +END_VAR +(* @END_DECLARATION := '0' *) +(*CO2InjPressure := 488.5966 * i_Dens - 0.00765 * i_Temp ;*) +CO2InjPressure := 5191.739 * i_Dens * i_Dens + 231.0227 * i_Dens + 0.146326 * i_Temp ; + + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/CO2_SOLUBILITY.EXP b/backend/script_groups/TwinCat/.example/CO2_SOLUBILITY.EXP new file mode 100644 index 0000000..c8da4ea --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CO2_SOLUBILITY.EXP @@ -0,0 +1,21 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION CO2_Solubility : REAL +VAR_INPUT + i_Temp : REAL ; +END_VAR +VAR + mT_Cub : REAL ; + mT_Quad : REAL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +(* This function calculates the CO2 absorption for a complete saturation *) +mT_Cub := EXPT(i_Temp, 3) ; +mT_Quad := EXPT(i_Temp, 2) ; +IF gCO2_Density<>0 THEN + CO2_Solubility := (-1.41118E-06 * mT_Cub + 0.000202893 * mT_Quad -0.011685848 * i_Temp + 0.331474668) / gCO2_Density * 10 ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/CONVERTREAL.EXP b/backend/script_groups/TwinCat/.example/CONVERTREAL.EXP new file mode 100644 index 0000000..1e7c23a --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CONVERTREAL.EXP @@ -0,0 +1,28 @@ + +(* @PATH := '\/TASK0_VOID' *) +(* @SYMFILEFLAGS := '4096' *) +FUNCTION ConvertReal : MFM_Real_Struct +VAR_INPUT + mIn_ValueFromMFM : ARRAY[0..4] OF BYTE; +END_VAR +VAR + i : INT; + p : UDINT; + mPoint : POINTER TO BYTE; + mTemp : REAL; + mTempReal : MFM_Real_Struct ; +END_VAR +(* @END_DECLARATION := '0' *) +mPoint := ADR(mTemp); +FOR i := 3 TO 0 BY -1 +DO + mPoint^ := mIn_ValueFromMFM[i] ; + p := mPoint ; + p := p + 1 ; + mPoint := p ; +END_FOR + +ConvertReal.Analog_Value := mTemp; +ConvertReal.Value_State := mIn_ValueFromMFM[4] ; + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/CVQ_0_6_PERC.EXP b/backend/script_groups/TwinCat/.example/CVQ_0_6_PERC.EXP new file mode 100644 index 0000000..8b3e15c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CVQ_0_6_PERC.EXP @@ -0,0 +1,24 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) + aFUNCTION CVQ_0_6_Perc : REAL +VAR_INPUT + i_Temp : REAL ; +END_VAR +VAR + a : REAL ; + b : REAL ; + c : REAL ; + d : REAL ; +END_VAR + +(* @END_DECLARATION := '0' *) +(* CVQ Valve in 0 - 6 bar range. Min Actuator Temperature 91°C; max Actuator temperature 110°C *) +(* 110 - 91 = 19°C *) + +a := 0.000429997 ; +b := -0.014260836 ; +c := 1.362579549 ; +d := 93.71557018 ; +CVQ_0_6_Perc := LIMIT(0, ((EXPT(i_Temp,3) * a + EXPT(i_Temp,2) * b + i_Temp * c + d) - 91) / 19 * 100.0, 100) ; +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/CVQ_1P7_8_PERC.EXP b/backend/script_groups/TwinCat/.example/CVQ_1P7_8_PERC.EXP new file mode 100644 index 0000000..114de0f --- /dev/null +++ b/backend/script_groups/TwinCat/.example/CVQ_1P7_8_PERC.EXP @@ -0,0 +1,24 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION CVQ_1p7_8_Perc : REAL +VAR_INPUT + i_Temp : REAL ; +END_VAR +VAR + a : REAL ; + b : REAL ; + c : REAL ; + d : REAL ; +END_VAR + +(* @END_DECLARATION := '0' *) +(* CVQ Valve in 1.7 - 8 bar range. Min Actuator Temperature 83°C; max Actuator temperature 110°C *) +(* 110 - 83 = 27°C *) + +a := 0.000176883 ; +b := -0.000322 ; +c := 1.4005362 ; +d := 80.987085 ; +CVQ_1p7_8_Perc := LIMIT(0, ((EXPT(i_Temp,3) * a + EXPT(i_Temp,2) * b + i_Temp * c + d) - 83) / 27 * 100.0, 100) ; +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/DATA_FROM_CIP.EXP b/backend/script_groups/TwinCat/.example/DATA_FROM_CIP.EXP new file mode 100644 index 0000000..41787ec --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DATA_FROM_CIP.EXP @@ -0,0 +1,25 @@ +(* @GLOBAL_VARIABLE_LIST := Data_from_CIP *) +(* @PATH := '\/CIP_SYSTEM' *) +(* @SYMFILEFLAGS := '0' *) +VAR_GLOBAL + + gPB_IN_PRG_CIP_MODE AT%IX256.0:BOOL; + gPB_IN_PRG_CIP_RUNNING AT%IX256.1:BOOL; + gPB_IN_PRG_CIP_COMPLETED AT%IX256.2:BOOL; + gPB_IN_PRG_CIP_DRAIN AT%IX256.3:BOOL; + gPB_IN_PRG_CIP_RINSE AT%IX256.4:BOOL; + + gPB_IN_COM_TST_MASTER AT%IX257.7:BOOL; + + + gPB_IN_PRG_SYRUP_OK AT%IX260.0:BOOL; + gPB_IN_PRG_WATER_OK AT%IX260.1:BOOL; + +END_VAR +(* @OBJECT_END := Data_from_CIP *) +(* @CONNECTIONS := Data_from_CIP +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/DATA_TO_CIP.EXP b/backend/script_groups/TwinCat/.example/DATA_TO_CIP.EXP new file mode 100644 index 0000000..7057d99 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DATA_TO_CIP.EXP @@ -0,0 +1,23 @@ +(* @GLOBAL_VARIABLE_LIST := Data_to_CIP *) +(* @PATH := '\/CIP_SYSTEM' *) +(* @SYMFILEFLAGS := '0' *) +VAR_GLOBAL + + gPB_OUT_PRG_CIP_REQUEST AT%QX256.0:BOOL; + gPB_OUT_PRG_CIP_RINSE_DRAIN_END AT%QX256.1:BOOL; + gPB_OUT_PRG_CIP_RINSE_CYCLE_ENDED AT%QX256.2:BOOL; + + gPB_OUT_COM_TST_MASTER AT%QX257.7:BOOL; + + + gPB_OUT_PRG_SYRUP_REQ AT%QX260.0:BOOL; + gPB_OUT_PRG_WATER_REQ AT%QX260.1:BOOL; + +END_VAR +(* @OBJECT_END := Data_to_CIP *) +(* @CONNECTIONS := Data_to_CIP +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/DEAIRCO2TEMPCOMP.EXP b/backend/script_groups/TwinCat/.example/DEAIRCO2TEMPCOMP.EXP new file mode 100644 index 0000000..46f235b --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DEAIRCO2TEMPCOMP.EXP @@ -0,0 +1,14 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION DeairCO2TempComp : REAL +VAR_INPUT + i_Temp : REAL ; + i_CO2Off : REAL ; +END_VAR +VAR +END_VAR +(* @END_DECLARATION := '0' *) +DeairCO2TempComp := (15.0 - i_Temp ) * 0.01 + i_CO2Off ; + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/DEAIREATIONVALVE.EXP b/backend/script_groups/TwinCat/.example/DEAIREATIONVALVE.EXP new file mode 100644 index 0000000..9c88582 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DEAIREATIONVALVE.EXP @@ -0,0 +1,21 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION DeaireationValve : REAL +VAR_INPUT + in_DeaireationFlow : REAL ; + in_InletPressure : REAL ; + in_FlowCoefficient : REAL ; +END_VAR +VAR + mAux : REAL; +END_VAR +(* @END_DECLARATION := '0' *) +(* Regime Sonico P2 < P1/2 *) +(* OV = Flow / 14.3 * kv * P1 *) +mAux := in_FlowCoefficient * 14.3 * (in_InletPressure + 1.0) ; + +IF mAux <> 0 THEN + DeaireationValve := LIMIT(gDeaireationValveOV_Min, in_DeaireationFlow / mAux, 100.0) ; (* La valvola è stata tarata per cominciare ad aprire al 5% *) +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/DEAIREATOR_STARTUP.EXP b/backend/script_groups/TwinCat/.example/DEAIREATOR_STARTUP.EXP new file mode 100644 index 0000000..6d0d545 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DEAIREATOR_STARTUP.EXP @@ -0,0 +1,2693 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Deaireator_StartUp +VAR + mDeairStartUpONS : R_TRIG ; + mDeairStartUpONS1 : R_TRIG ; + mDeairStartUpONS2 : R_TRIG ; + mStepNum : INT ; + mTimeStep : INT ; + mInitTimer : BOOL ; + mDeairStepMove : _StepMove ; + mVacuumOk : BOOL ; + mAuxStep : INT ; + mTimer : TIME ; + + mDummy : BOOL ; + + mTimeStartupFilter: TON; + mWaterSpeedPrimeOk : BOOL; + +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 11 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairStartUp_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_EV23_Manual +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_EV23_Auto +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairStartUp_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDeairStartUp_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Deaireator_StartUp._DeairStartUp_Reset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gH_CMD_Deair_StartUp +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Request +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDeairStartUpONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_CONTACT +gDeairStartUp_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairStartUp_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gAirLowPress_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCO2LowPress_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairStartUp_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairStartUp_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairStartUp_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_A_Recipe_EnDeaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_ByPassDeair +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message009 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairStartUp_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDeairStartUp_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Deaireator_StartUp._DeairStartUp_Sequencer +_OUTPUTS : 0 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_DeairStartUpRun +_OUTPUT +_POSITIV +_NO_SET +gH_Status002 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_VacuumPump +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gStillWaterByPassEn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSp_P4 + +END_PROGRAM +ACTION _DeairStartUp_Reset: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimeStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gDeairStartUp_Done + +END_ACTION + +ACTION _DeairStartUp_Sequencer: +CASE mStepNum OF + 0: Deair_Step_0 ; + + 1: Deair_Step_1 ; + + 2: Deair_Step_2 ; + + 3: Deair_Step_3 ; + + 4: Deair_Step_4 ; + + 5: Deair_Step_5 ; + + 6: Deair_Step_6 ; + + 7: Deair_Step_7 ; + + 8: Deair_Step_8 ; + + 9: Deair_Step_9 ; + + 10: Deair_Step_10 ; +ELSE + ; +END_CASE + + +END_ACTION + +ACTION Deair_Step_0: +_LD_BODY +_NETWORKS : 6 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_LimitCO2PressValve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Done +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFirstProd_Done +_OPERAND +_EXPRESSION +_POSITIV +mAuxStep +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gStillWaterByPassEn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSkipDeaireation +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRinseMode +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +10 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_UVLamp +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 0: Select IF execte the procedure +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +mAuxStep +_OPERAND +_EXPRESSION +_POSITIV +t#0s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_1: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mTimeStartupFilter +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +T#10s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairStatUpH2OFilter_OK +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDeairStatUpH2OFilter_OK +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV83 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDeairStatUpH2OFilter_OK +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV84 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +T#10s +_OPERAND +_EXPRESSION +_POSITIV +gInUVLampReady +_OPERAND +_EXPRESSION +_POSITIV +gDeairStatUpH2OFilter_OK +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_10: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT +Deareator StartUp Sequence Completed +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gDeairStartUp_Done + +END_ACTION + +ACTION Deair_Step_2: +_LD_BODY +_NETWORKS : 7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV28 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV14 +_OUTPUT +_POSITIV +_SET +gSp_EV12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV43 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSp_LimitCO2PressValve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV15 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gSp_EV62 +_OUTPUT +_POSITIV +_SET +gSp_EV69 +_NETWORK + +_COMMENT +Step 1: Open EV11 in order TO blow off the air in the Hold Tank +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_3: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV28 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV12 +_OUTPUT +_POSITIV +_SET +gSp_EV14 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV43 +_NETWORK + +_COMMENT +Step 2: Flush Deaireator Tank +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +t#20s +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gTankPress_OkToBlend +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_4: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV28 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV43 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gDeairTankMinLvlAux +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 3: In CASE OF SAG check that the product tank is empty before loading product +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +mAuxStep +_OPERAND +_EXPRESSION +_POSITIV +t#0s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_5: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV28 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV43 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gVacuumAcheaved +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mVacuumOk +_NETWORK + +_COMMENT +Step 5: Wait FOR Vacuum IF pump present +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +t#4s +_OPERAND +_EXPRESSION +_POSITIV +mVacuumOk +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_6: +_LD_BODY +_NETWORKS : 6 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV28 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV43 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV01 +_OUTPUT +_POSITIV +_SET +gSp_EV22 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_P5 +_OUTPUT +_POSITIV +_SET +gSp_EV01_1 +_NETWORK + +_COMMENT +Step 6: Load Deair Tank Wait Minimum Level +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gDeairTankMinLvlAux +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gDeairTankMinLvlAux +_OPERAND +_EXPRESSION +_POSITIV +gDeairTank2MinLvlAux +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_7: +_LD_BODY +_NETWORKS : 7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV28 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV43 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV01 +_OUTPUT +_POSITIV +_SET +gSp_P1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_P5 +_OUTPUT +_POSITIV +_SET +gSp_EV01_1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMFM_WaterFlow +_OPERAND +_EXPRESSION +_POSITIV +50.0 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWaterSpeedPrimeOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 7: Wait 15 sec: Water Pump Priming with EV22 Close - TO LIMIT water speed - +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +8 +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_OPERAND +_EXPRESSION +_POSITIV +mWaterSpeedPrimeOk +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_8: +_LD_BODY +_NETWORKS : 7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV28 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV43 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_SET +gSp_EV01 +_OUTPUT +_POSITIV +_SET +gSp_P1 +_OUTPUT +_POSITIV +_SET +gSp_Ev22 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_P5 +_OUTPUT +_POSITIV +_SET +gSp_EV01_1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_CoolerPresent +_OPERAND +_EXPRESSION +_POSITIV +t#20s +_OPERAND +_EXPRESSION +_POSITIV +t#40s +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 7: Wait 10 sec: Water Pump Priming +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +9 +_OPERAND +_EXPRESSION +_POSITIV +mTimer +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Deair_Step_9: +_LD_BODY +_NETWORKS : 6 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV28 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV43 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV01 +_OUTPUT +_POSITIV +_SET +gSp_P1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_P5 +_OUTPUT +_POSITIV +_SET +gSp_EV01_1 +_NETWORK + +_COMMENT +Close EV22 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDeairStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/DELAY.EXP b/backend/script_groups/TwinCat/.example/DELAY.EXP new file mode 100644 index 0000000..8a02477 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DELAY.EXP @@ -0,0 +1,25 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK Delay +VAR_INPUT + i_Value : REAL ; + i_Sample : UINT ; +END_VAR +VAR_OUTPUT + i_out : REAL ; +END_VAR +VAR + mVarArray : ARRAY[0..5] OF REAL ; + i : INT ; +END_VAR +(* @END_DECLARATION := '0' *) +IF i_Sample<=5 THEN + FOR i:=i_Sample TO 1BY -1 DO + mVarArray[i] := mVarArray[i - 1] ; + END_FOR + mVarArray[0] := i_Value ; +END_IF +i_out := mVarArray[i_Sample] ; + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/DELTAP.EXP b/backend/script_groups/TwinCat/.example/DELTAP.EXP new file mode 100644 index 0000000..f12b74c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DELTAP.EXP @@ -0,0 +1,17 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION DeltaP : REAL +VAR_INPUT + i_Flow : REAL ; + i_K : REAL ; + i_Valve : REAL ; +END_VAR +VAR +END_VAR + +(* @END_DECLARATION := '0' *) +IF i_Valve<>0 THEN + DeltaP := i_Flow * i_K * i_Flow * i_K / i_Valve / i_Valve ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/DENSIMETER_CALIBRATION.EXP b/backend/script_groups/TwinCat/.example/DENSIMETER_CALIBRATION.EXP new file mode 100644 index 0000000..5888fe2 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DENSIMETER_CALIBRATION.EXP @@ -0,0 +1,1239 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Densimeter_Calibration +VAR + mDensONS : R_TRIG ; + mSyrupStarted : BOOL ; + mStepNum : INT ; + mTimeStep : INT ; + mDensStepMove : _StepMove ; + mAuxStep : INT ; + mSyrupGainOk : BOOL ; + mCommandExecuted : BOOL ; + mSyrGain : REAL ; + mSyrBx : REAL ; + mCalDlyOff : TOF ; + mSyrGainFlt : LowPassFilter ; + mSyrGainFltd : REAL ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 16 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 9 +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gSugarBeverage +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +mSyrupStarted +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDensimeterCal_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gDensimeterCal_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDensimeterCal_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDensimeterCal_Reset +_EXPRESSION +_POSITIV +_LD_CONTACT +gDensimeterCal_Request +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Densimeter_Calibration._DensimeterCal_Reset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_CMD_SyrDensimeterCal +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDensONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_CONTACT +gDensimeterCal_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDensimeterCal_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDensimeterCal_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDensimeterCal_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gDensimeterCal_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gDensimeterCal_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gDensimeterCal_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDensimeterCal_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDensimeterCal_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +gDensimeterCal_Done +_OUTPUT +_NEGATIV +_SET +gmPDS1000SetCommand +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gDensimeterCal_Latch +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mCalDlyOff +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDisableAlarmDuringCalibration +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDensimeterCal_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Densimeter_Calibration._DensimeterCal_Sequencer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDensimeterCal_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrDensimeterCalRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gDensimeterCal_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gDensimeterCal_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDensimeterCal_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +'GAIN-BRIX' +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000Command +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +gActualRecipe_Syrup_Brix +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDensimeterCal_Latch +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000SyrBrix +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrBx +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0.5 +_OPERAND +_EXPRESSION +_POSITIV +mSyrBx +_OPERAND +_EXPRESSION +_POSITIV +100 +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrBx +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gSugarBeverage +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 3 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_OPERAND +_EXPRESSION +_POSITIV +mSyrBx +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrGain +_ASSIGN +_FUNCTIONBLOCK +mSyrGainFlt +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mSyrGain +_OPERAND +_EXPRESSION +_POSITIV +30 +_OPERAND +_EXPRESSION +_POSITIV +gDensimeterCal_Latch +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrGainFltd +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mSyrGainFltd +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000CommandVal +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_SyrupTotalizerLt +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_SyrupRunOutLiters +_OPERAND +_EXPRESSION +_POSITIV +1.8 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrupStarted +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gDensimeterCal_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrDensimeterCalShow + +END_PROGRAM +ACTION _DensimeterCal_Reset: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimeStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gDensimeterCal_Done + +END_ACTION + +ACTION _DensimeterCal_Sequencer: +CASE mStepNum OF + 0: DensCal_Step_0 ; + + 1: DensCal_Step_1 ; + + 2: DensCal_Step_2 ; + + 3: DensCal_Step_3 ; + + 4: DensCal_Step_4 ; + + 5: DensCal_Step_5 ; + + 6: ; + + 7: ; + + 8: ; +ELSE + ; +END_CASE +END_ACTION + +ACTION DensCal_Step_0: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_SyrRoomPump +_OUTPUT +_POSITIV +_SET +gSp_EV03 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankMinLvlAux +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DensCal_Step_1: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT +Step 1: Ceck IF Syrup Tank minimum level +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDensStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankMinLvlAux +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDensimeterCal_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DensCal_Step_2: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_P2 +_OUTPUT +_POSITIV +_SET +gSp_EV24 +_NETWORK + +_COMMENT +Step 2: Syrup Recirculation +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDensStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +t#30s +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankMinLvlAux +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDensimeterCal_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DensCal_Step_3: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_mPDS1000_SyrupFactor +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000CommandVal +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000SetCommand +_NETWORK + +_COMMENT +Step 3: Send Command GAIN_BRIX TO Densimeter +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDensStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +t#0s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDensimeterCal_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DensCal_Step_4: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000String +_OPERAND +_EXPRESSION +_POSITIV +'Locked' +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCommandExecuted +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 3: Wait Response From Densimeter +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDensStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gDensimeterCal_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DensCal_Step_5: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDensimeterCal_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/DERIVE.EXP b/backend/script_groups/TwinCat/.example/DERIVE.EXP new file mode 100644 index 0000000..1734601 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DERIVE.EXP @@ -0,0 +1,22 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK Derive +VAR_INPUT + i_Signal : REAL ; + i_Gain : REAL ; + i_Cycle : REAL ; +END_VAR +VAR_OUTPUT + o_Derive : REAL ; +END_VAR +VAR + mSaveValue : REAL ; +END_VAR +(* @END_DECLARATION := '0' *) +IF i_Cycle<>0 THEN + o_Derive := i_Gain * (i_Signal - mSaveValue) / i_Cycle ; +END_IF +mSaveValue := i_Signal ; + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/DEVICENET_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/DEVICENET_VARIABLES.EXP new file mode 100644 index 0000000..3647336 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DEVICENET_VARIABLES.EXP @@ -0,0 +1,16 @@ +(* @GLOBAL_VARIABLE_LIST := DeviceNet_Variables *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '0' *) +VAR_GLOBAL + gDeviceNetBlendFillRecArr AT%IW4100 : ARRAY[0..19]OF WORD; + gDeviceNetBlendFillSendArr AT%QW4100 : ARRAY[0..19]OF WORD; +END_VAR + + +(* @OBJECT_END := DeviceNet_Variables *) +(* @CONNECTIONS := DeviceNet_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/DWORD_TO_BYTES.EXP b/backend/script_groups/TwinCat/.example/DWORD_TO_BYTES.EXP new file mode 100644 index 0000000..f01e7f7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/DWORD_TO_BYTES.EXP @@ -0,0 +1,25 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Dword_To_Bytes +VAR_INPUT + i_Dword : DWORD ; +END_VAR +VAR_OUTPUT + o_Bytes_0 : BYTE ; + o_Bytes_1 : BYTE ; + o_Bytes_2 : BYTE ; + o_Bytes_3 : BYTE ; +END_VAR +VAR + mAuxShl : DWORD ; +END_VAR + + +(* @END_DECLARATION := '0' *) +mAuxShl := i_Dword ; +o_Bytes_0 := DWORD_TO_BYTE(i_Dword) ; +o_Bytes_1 := DWORD_TO_BYTE(SHL(mAuxShl, 8)) ; +o_Bytes_2 := DWORD_TO_BYTE(SHL(mAuxShl, 8)) ; +o_Bytes_3 := DWORD_TO_BYTE(SHL(mAuxShl, 8)) ; +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/EXEC_SIMPLE_CIP.EXP b/backend/script_groups/TwinCat/.example/EXEC_SIMPLE_CIP.EXP new file mode 100644 index 0000000..12944bf --- /dev/null +++ b/backend/script_groups/TwinCat/.example/EXEC_SIMPLE_CIP.EXP @@ -0,0 +1,558 @@ + +(* @PATH := '\/TASK2_ControlMain\/CIP' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Exec_Simple_CIP +VAR_INPUT + Start : BOOL ; + Hold : BOOL ; + StepUp : BOOL ; + StepDown : BOOL ; + Inizialize : BOOL ; + Clock : BOOL ; +END_VAR +VAR + mSteppingUp : BOOL ; + mSteppingDown : BOOL ; + mStepTimeValue : UINT ; + mWordOut0 : ARRAY [0..15] OF BOOL ; (* Temporary Word Out0 To Valves *) + mWordOut1 : ARRAY [0..15] OF BOOL ; (* Temporary Word Out1 To Valves *) + mWordOut2 : ARRAY [0..15] OF BOOL ; (* Temporary Word Out2 To Valves *) + mWordOut3 : ARRAY [0..15] OF BOOL ; (* Temporary Word Out3 To Valves *) + mWaitEventReqWordTemp : WORD ; (* *) + mWaitEventReqDWord : DWORD ; (* Waiting Conditions Word From Simple Program - Request - *) + mWaitEventStatusDWord : DWORD ; (* Waiting Conditions Word From Simple Program *) + mWaitAnyCond : BOOL ; (* WOR of the 2 Conditions Word *) + mClock_ONS : R_TRIG ; + mStepUp_ONS : R_TRIG ; + mStepDown_ONS : R_TRIG ; + mInizialize_ONS : R_TRIG ; + mCycleCount : UINT ; + + mMemCopyResult : UDINT ; + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + + + + + +(* @END_DECLARATION := '0' *) +mInizialize_ONS(CLK:=Inizialize) ; +mStepUp_ONS(CLK:=StepUp AND NOT gCIP_Completed) ; +mStepDown_ONS(CLK:=StepDown AND NOT gCIP_Inizialized) ; +mClock_ONS(CLK:=Clock) ; +IF gCIP_ProgramLoaded THEN + Exec_Simple_CIP.CopyCIPProgram ; +END_IF +IF mInizialize_ONS.Q THEN + Exec_Simple_CIP.CIP_Prog_Inizialize ; +ELSE + IF gActualSimpleNum = 0 THEN + gActualSimpleNum := 1 ; + END_IF + IF gActualSimpleNum>gCIPMaxSimpleNum THEN + gActualSimpleNum := gCIPMaxSimpleNum ; + END_IF + + IF gActualStepNum = 0 THEN + gActualStepNum := 1 ; + END_IF + IF mStepUp_ONS.Q THEN + Exec_Simple_CIP.CIP_Prog_StepUp ; + END_IF + IF mStepDown_ONS.Q THEN + Exec_Simple_CIP.CIP_Prog_StepDown ; + END_IF + mStepTimeValue := gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_StepTime ; + mCycleCount := 0 ; + WHILE mStepTimeValue = 0 AND NOT gCIP_Completed AND NOT gCIP_Inizialized AND gActualStepNum<=gCIPMaxStepNum AND NOT (mCycleCount>gCIPMaxSimpleNum*gCIPMaxStepNum) DO + mCycleCount := mCycleCount + 1 ; + IF mStepUp_ONS.Q OR (gCIP_Run_Running AND mStepTimeValue = 0) THEN + mSteppingUp := TRUE ; + END_IF + IF mStepDown_ONS.Q THEN + mSteppingDown := TRUE ; + END_IF + IF mSteppingUp THEN + Exec_Simple_CIP.CIP_Prog_StepUp ; + ELSIF NOT (mSteppingUp OR mSteppingDown) THEN + EXIT ; + END_IF + IF mSteppingDown THEN + Exec_Simple_CIP.CIP_Prog_StepDown ; + ELSIF NOT (mSteppingUp OR mSteppingDown) THEN + EXIT ; + END_IF + mStepTimeValue := gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_StepTime ; + END_WHILE + mSteppingUp := FALSE ; + mSteppingDown := FALSE ; + IF mStepDown_ONS.Q THEN + IF gStepActualTime=0 THEN + gCIPTotalElapsedTime := gCIPTotalElapsedTime - mStepTimeValue ; + ELSE + gCIPTotalElapsedTime := gCIPTotalElapsedTime - gStepActualTime ; + END_IF + gStepActualTime := 0 ; + END_IF + IF Start THEN + Exec_Simple_CIP.Exec_Step ; + END_IF +END_IF +gH_Blender_CIP_LinkName := gActual_LinkProgName ; +IF gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleCode>0 THEN + gH_Blender_CIP_SimpleName := gActual_ArrSimpleProgName[gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleCode] ; +END_IF +gH_Blender_CIP_StepTime := LIMIT(0, ABS(mStepTimeValue - gStepActualTime), mStepTimeValue) ; +gH_Blender_CIP_TotalTime := LIMIT(0, ABS(gCIPTotalTime - gCIPTotalElapsedTime), gCIPTotalTime) ; +gH_Blender_CIP_StepNum := gActualStepNum ; +IF gCIPTotalTime>0 THEN + gH_Blender_CIP_LinkProgPerc := UDINT_TO_REAL(gCIPTotalElapsedTime) / UDINT_TO_REAL(gCIPTotalTime) * 100 ; +END_IF +IF mStepTimeValue>0 THEN + gH_Blender_CIP_SimpleProgPerc := UINT_TO_REAL(gStepActualTime) / UINT_TO_REAL(mStepTimeValue) * 100 ; +END_IF +gH_Blender_CIP_PV_HighCond := gIn_C1_Conductivity_Caustic ; +gH_Blender_CIP_PV_LowCond := gIn_C2_Conductivity_Water ; +gH_Blender_CIPHeaterTempPV := gCIPHeaterTemp_PV ; +gH_Blender_CIPReturnTempPV := gCIPReturnTemp_PV ; +END_PROGRAM +ACTION CIP_Prog_Completed: +gCIP_Completed := TRUE ; +mWaitAnyCond := FALSE ; + +mWordOut0 := _Word_To_BoolArray(0) ; +mWordOut1 := mWordOut0 ; +mWordOut2 := mWordOut0 ; +mWordOut3 := mWordOut0 ; + +mWaitEventReqDWord := 0 ; +mWaitEventStatusDWord := 0 ; +END_ACTION + +ACTION CIP_Prog_Inizialize: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 7 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gActualSimpleNum +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gActualStepNum +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +FALSE +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_Completed +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +FALSE +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitAnyCond +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gStepActualTime +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_Inizialized +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPTotalElapsedTime +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION CIP_Prog_StepDown: +IF gActualSimpleNum >= 1 THEN + IF gActualStepNum > 1 THEN + IF gStepActualTime<=0 THEN + gActualStepNum := gActualStepNum - 1 ; + END_IF + ELSIF gActualSimpleNum>1 THEN + gActualSimpleNum := gActualSimpleNum - 1 ; + gActualStepNum := gCIPMaxStepNum ; + END_IF +END_IF + +IF gActualSimpleNum=1 AND gActualStepNum=1 THEN + gCIP_Inizialized := TRUE ; +ELSE + gCIP_Inizialized := FALSE ; +END_IF + +IF gCIP_Completed THEN + gCIP_Completed := FALSE ; +END_IF +END_ACTION + +ACTION CIP_Prog_StepUp: +IF gActualSimpleNum0 AND gH_Blender_CIP_ProgStepUp THEN + gCIPTotalElapsedTime := gCIPTotalElapsedTime + LIMIT(0, (mStepTimeValue - gStepActualTime), mStepTimeValue) ; +END_IF +gStepActualTime := 0 ; +END_ACTION + +ACTION CopyCIPProgram: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Run_Prog +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gActualCIP_LinkProgram +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gActualCIP_LinkProgram +_EXPRESSION +_POSITIV +SIZEOF +_EXPRESSION +_POSITIV +MEMCPY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMemCopyResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIP_ProgramLoaded +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Completed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCIP_Completed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCIP_ProgramLoaded +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCIP_ProgramLoaded + +END_ACTION + +ACTION Exec_Step: +IF mClock_ONS.Q THEN (* One Second Clock *) + IF mStepTimeValue>gStepActualTime THEN + gCIP_Simple_Exec := gCIP_Run_Prog[gActualSimpleNum] ; + + mWordOut0 := _Word_To_BoolArray(gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_OutWord_0) ; + mWordOut1 := _Word_To_BoolArray(gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_OutWord_1) ; + mWordOut2 := _Word_To_BoolArray(gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_OutWord_2) ; + mWordOut3 := _Word_To_BoolArray(gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_OutWord_3) ; + + mWaitEventReqWordTemp:= gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_ControlWord1 ; + mWaitEventReqDWord := mWaitEventReqDWord AND mWaitEventReqWordTemp ; + mWaitEventReqDWord := SHL(mWaitEventReqDWord,16) ; + mWaitEventReqWordTemp := gCIP_Run_Prog[gActualSimpleNum].CIP_SimpleArray[gActualStepNum].CIP_ControlWord0 ; + mWaitEventReqDWord := mWaitEventReqDWord OR mWaitEventReqWordTemp ; + + gCIP_WaitEventReq_Array := _DWord_To_BoolArray(mWaitEventReqDWord) ; + mWaitEventStatusDWord := _BoolArray_To_DWord(gCIP_WaitEventStatus_Array) ; + +(* mWaitEventStateWord1 := _BoolArray_To_Word(gCIP_WaitEventState_Array1) ;*) + + IF (mWaitEventReqDWord<>0) AND (mWaitEventReqDWord XOR mWaitEventStatusDWord)<>0 THEN + gCIP_WaitAnyCond := TRUE ; + ELSE + gCIP_WaitAnyCond := FALSE ; + END_IF + + gCIP_SPHigh_Cond := gCIP_Run_Prog[gActualSimpleNum].CIP_SetPoint_HighCond ; + gCIP_SPLow_Cond := gCIP_Run_Prog[gActualSimpleNum].CIP_SetPoint_LowCond ; + gCIP_SPTemperature := gCIP_Run_Prog[gActualSimpleNum].CIP_SetPoint_Temp ; + + IF NOT Hold AND NOT gCIP_Completed THEN + gStepActualTime := gStepActualTime + 1 ; + gCIPTotalElapsedTime := gCIPTotalElapsedTime + 1 ; + END_IF + ELSE + gStepActualTime := 1 ; + CIP_Prog_StepUp ; + END_IF +END_IF + +(***********************************************************************************************************) +(* Transfer the X in the Simple program i-th Step to the Sp Sustain Memory *) +(***********************************************************************************************************) +gSp_CIP_Temp_En := mWordOut0[0] ; (* CIP Enable PID Control Temperature *) +gSp_EV01 := mWordOut0[1] ; (* EV01 Deair Tank Water Level Control Valve *) +gSp_EV02 := mWordOut0[2] ; (* EV02 Deair Tank Water Manual Valve *) +gSp_EV03 := mWordOut0[3] ; (* EV03 Syrup Tank Syrup Level Control Valve *) +gSp_EV04 := mWordOut0[4] ; (* EV04 Syrup Tank Syrup Manual Valve *) +gSp_CIP_CO2_Inj := mWordOut0[5] ; (* Enable CO2 Injection Uring CIP *) +gSp_EV14 := mWordOut0[6] ; (* EV14 Deair Tank Drain Valve *) +gSp_EV15 := mWordOut0[7] ; (* EV15 Product Tank Drain Valve *) +gSp_EV16 := mWordOut0[8] ; (* EV16 Syrup Tank Drain Valve *) +(*gSp_EV17 := NOT mWordOut0[9] ; (* EV17 Deair + Product Tank SprayBall Valve *) +(*gSp_EV61 := NOT mWordOut0[10] ; (* EV61 Syrup Tank SprayBall Valve *) +gSp_EV23 := mWordOut0[11] ; (* EV23 Serpentine Drain Valve *) +gSp_EV24 := NOT mWordOut0[12] ; (* EV24 Syrup Tank Recirc Valve *) +gSp_EV31 := mWordOut0[13] ; (* EV31 Venturi Suction Valve *) +gSp_EV32 := mWordOut0[14] ; (* EV32 Venturi Washing Valve *) +gSp_EV33 := mWordOut0[15] ; (* EV33 Sanitizier Inlet Valve 1 - Caustic - *) +gSp_EV34 := mWordOut1[0] ; (* EV34 Sanitizier Inlet Valve 2 *) + +gSp_EV35 := mWordOut1[1] ; (* EV35 Sanitizier Inlet Valve 3 *) +gSp_EV36 := mWordOut1[2] ; (* EV36 Plant Recirc Valve *) +gSp_EV37 := mWordOut1[3] ; (* EV37 Plant Drain Valve *) +gSp_EV38 := mWordOut1[4] ; (* EV38 Plant Caustic Recovery Valve *) +gSp_CIPRunning := mWordOut1[5] ; +gSp_CIPDrainRequest := mWordOut1[6] ; +gSp_CIPHotPhase := mWordOut1[7] ; +mWordOut1[8] ; +mWordOut1[9] ; +gSp_P1 := mWordOut1[10] ; (* P1 Water Pump Run In CIP to get Prod Tank 100% level *) +gSp_SyrRoomPump := mWordOut1[11] ; (* Syrup Room Pump Run In CIP *) +mWordOut1[12] ; +mWordOut1[13] ; +mWordOut1[14] ; +mWordOut1[15] ; +mWordOut2[0] ; + +mWordOut2[1] ; +mWordOut2[2] ; +mWordOut2[3] ; +mWordOut2[4] ; +mWordOut2[5] ; +mWordOut2[6] ; +mWordOut2[7] ; +mWordOut2[8] ; +mWordOut2[9] ; +mWordOut2[10] ; +mWordOut2[11] ; +mWordOut2[12] ; +mWordOut2[13] ; +mWordOut2[14] ; +mWordOut2[15] ; +mWordOut3[0] ; + +mWordOut3[1] ; +mWordOut3[2] ; +mWordOut3[3] ; +mWordOut3[4] ; +mWordOut3[5] ; +mWordOut3[6] ; +mWordOut3[7] ; +mWordOut3[8] ; +mWordOut3[9] ; +mWordOut3[10] ; +mWordOut3[11] ; +mWordOut3[12] ; +mWordOut3[13] ; +mWordOut3[14] ; +mWordOut3[15] ; + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/FASTRINSE.EXP b/backend/script_groups/TwinCat/.example/FASTRINSE.EXP new file mode 100644 index 0000000..8840ab2 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FASTRINSE.EXP @@ -0,0 +1,773 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure\/System Run Out' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM FastRinse +VAR + mFastRinseTP : TP ; + mAuxONS : R_TRIG ; + mStepNum : INT ; + mFastRinseMove : _StepMove ; + mAuxStep : INT ; + mTimer : TIME ; + mProcSelected : BOOL ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 11 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFastRinse_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFastRinseTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastRinse_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFastRinse_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastRinse_Qualifier +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastRinse_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gSystemRunOut_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOutInit +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFastRinse_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFastRinse_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFastRinse_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FastRinse._FastRinseReset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeSequenceNum +_OPERAND +_EXPRESSION +_POSITIV +9 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gFastRinse_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProcSelected +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeProcValue +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFastRinseStep0Time +_OPERAND +_EXPRESSION +_POSITIV +mTimer +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +TIME_TO_REAL +_OPERAND +_EXPRESSION +_POSITIV +1000 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeProcValue +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeWait1 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeWait1 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFastRinse_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFastRinse_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastRinse_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFastRinse_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFastRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FastRinse._FastRinseSequencer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastRinseDone + +END_PROGRAM +ACTION _FastRinseReset: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gFastRinse_Done + +END_ACTION + +ACTION _FastRinseSequencer: +CASE mStepNum OF + 0: FastRinse_Step_0 ; + + 1: FastRinse_Step_1 ; + + 2: FastRinse_Step_2 ; + +ELSE + ; +END_CASE + + +END_ACTION + +ACTION FastRinse_Step_0: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV15 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFastRinseMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gFastRinseStep0Time +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gFastRinse_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION FastRinse_Step_1: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gRinseCloseVM1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFastRinseMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gFastRinse_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION FastRinse_Step_2: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +gRinseCloseVM1 +_OUTPUT +_POSITIV +_SET +gFastRinse_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/FB41_PIDCONTROLLER.EXP b/backend/script_groups/TwinCat/.example/FB41_PIDCONTROLLER.EXP new file mode 100644 index 0000000..36fb349 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FB41_PIDCONTROLLER.EXP @@ -0,0 +1,137 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '4096' *) +FUNCTION_BLOCK FB41_PIDController +VAR_INPUT + in_SP : REAL; (* SP *) + in_PV : REAL; (* PV *) + MAN : REAL; + GAIN : REAL; + TI : REAL; + TD : REAL; + DEADB_W : REAL ; + LMN_HLM : REAL; + LMN_LLM : REAL; + LMN_FAC : REAL; + LMN_OFF : REAL; + CYCLE : REAL ; + I_ITLVAL : REAL; + DISV : REAL; + MAN_ON : BOOL; + I_SEL : BOOL; + P_SEL : BOOL; + D_SEL : BOOL; + INT_HOLD : BOOL; + I_ITL_ON : BOOL; +END_VAR +VAR_OUTPUT + LMN : REAL; + LMN_P : REAL; + LMN_I : REAL; + LMN_D : REAL; + High_Limit : BOOL; + Low_Limit : BOOL; +END_VAR +VAR + mIntegral : Integral ; (* FB Integral Instance *) + mIntegralOut : REAL; (* Integral Value *) + mOld_error : REAL ; + Error : REAL ; + mProportional : REAL ; + mDerivative : REAL ; + Gain_error : REAL; (*Error Value * Gain*) + Total_result : REAL; (*Total result of PID Block*) + INT_Block : BOOL; + LMN_alarm : BOOL ; (*Limit output alarm *) + mAuxONS : R_TRIG ; + mManEn : BOOL ; + mManONS : F_TRIG ; +END_VAR + +(* @END_DECLARATION := '0' *) +(* SP - PV *) +Error := in_SP - in_PV ; + +(* Multiply GAIN *) +IF ABS(Error) >= DEADB_W THEN (* Dead Band Implementation *) + Gain_error := Error * GAIN ; +ELSE + Gain_error := 0.0 ; +END_IF + +(* Freeze Integral Calculation *) +INT_Block := INT_HOLD OR MAN_ON OR LMN_alarm ; + +(* Integral calculation *) +IF I_SEL AND TI>0 THEN + IF I_ITL_ON THEN + mIntegralOut := I_ITLVAL; + ELSE + IF NOT INT_Block THEN + IF (( Gain_error>=0 ) AND NOT High_Limit) OR (( Gain_error<=0 ) AND NOT Low_Limit) THEN + (*mIntegral := mIntegral + Gain_error * CYCLE / TI;*) + mIntegral.i_NewValue := Gain_error / TI ; + mIntegral.i_IntCycle := CYCLE ; + mIntegral(Out_Integral:=mIntegralOut) ; + END_IF + END_IF + END_IF +ELSE + mIntegralOut := 0.0 ; +END_IF +LMN_I := mIntegralOut ; + +(* Derivative calculation *) +IF ( D_SEL AND TD >0 ) THEN + mDerivative := ( Gain_error - mOld_error ) * TD / 10 ; +ELSE + mDerivative := 0.0 ; +END_IF +mOld_error := Gain_error ; +LMN_D := mDerivative ; + +(* Proportional contribute *) +IF P_SEL THEN + mProportional := Gain_error ; +ELSE + mProportional := 0 ; +END_IF +LMN_P := mProportional ; + +(* Total result P + I + D + DISV *) +Total_result := mProportional + mIntegralOut + mDerivative + DISV ; + +mManONS(CLK:=MAN_ON) ; + +(* Manual control *) +IF MAN_ON THEN + Total_result := MAN ; + IF NOT I_ITL_ON AND mManONS.Q THEN + mIntegralOut := LMN - LMN_P - DISV ; (* - Bumpless - Inizilize the Integral Component when the PID is setted in auto again *) + mIntegral(Out_Integral:=mIntegralOut) ; + mDerivative := 0.0 ; + END_IF +END_IF + +(* High Low limit for total result *) +High_Limit := FALSE ; +Low_Limit := FALSE ; + +IF Total_result > LMN_HLM THEN + High_Limit := TRUE ; + Total_result := LMN_HLM; +END_IF + +IF Total_result < LMN_LLM THEN + Low_Limit := TRUE ; + Total_result := LMN_LLM; +END_IF + +LMN := ( Total_result * LMN_FAC ) + LMN_OFF; + + + + + + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/FC_CONTROL_WORD.EXP b/backend/script_groups/TwinCat/.example/FC_CONTROL_WORD.EXP new file mode 100644 index 0000000..7bca97d --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FC_CONTROL_WORD.EXP @@ -0,0 +1,27 @@ +(* @PATH := '\/Danfoss FC' *) +TYPE FC_Control_Word + STRUCT + B00_RefValue_LSB : BOOL ; (* Choose between the four reference values, which are pre-programmed in par.3-10 *) + B01_RefValue_MSB : BOOL ; + B02_Brake : BOOL ; (* Bit 02 = 0 leads to DC braking and stop. + Bit 02 = 1 leads to ramping. *) + B03_Coast : BOOL ; (* Bit 03 = 0 causes the frequency converter to immediately "let go" of the motor, so that it coasts to a standstill. + Bit 03 = 1 enables the frequency converter to start the motor if the other starting conditions have been fulfilled. *) + B04_QuickStop : BOOL ; (* Bit 04 = 0 causes a stop, in which the motor speed is ramped down to stop via par. 3-81. *) + B05_HoldOutputFrequency : BOOL ; (* Bit 05 = 0 causes the present output frequency (in Hz) to freeze. *) + B06_RampStop : BOOL ; (* Bit 06 = 0 causes a stop, in which the motor speed is ramped down to stop via the selected ramp down parameter. + Bit 06 = 1 permits the frequency converter to start the motor, if the other starting conditions have been fulfilled. *) + B07_Reset : BOOL ; (* Reset of a trip is activated on the signal’s leading edge, i.e. when changing from logic "0" to logic "1". *) + B08_Jog : BOOL ; (* Bit 08 = 1 causes the output frequency to be determined by par. 3-19. *) + B09_RampSelection : BOOL ; (* Bit 09 = 0 means that ramp 1 is active (parameters 3-40 to 3-47). + Bit 09 = 1 means that ramp 2 (par. 3-50 to 3-57) is active.*) + B10_DataValid : BOOL ; (* Bit 10 = 0 causes the control word to be ignored, + Bit 10 = 1 causes the control word to be used. *) + B11_Relay01Active : BOOL ; (* Bit 11 = 1 Relay 01 activated, provided Control word bit 11 has been chosen in par. 5-40.*) + B12_Relay04Active : BOOL ; (* Bit 12 = 1 Relay 04 activated, provided Control word bit 12 has been chosen in par. 5-40.*) + B13_SetUp_LSB : BOOL ; (* Choose between the four menu set-ups, only possible when Multi-Set-ups is selected in par. 0-10. *) + B14_SetUp_MSB : BOOL ; + B15_Reverse : BOOL ; + END_STRUCT +END_TYPE +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/FC_STATUS_WORD.EXP b/backend/script_groups/TwinCat/.example/FC_STATUS_WORD.EXP new file mode 100644 index 0000000..7b861e2 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FC_STATUS_WORD.EXP @@ -0,0 +1,26 @@ +(* @PATH := '\/Danfoss FC' *) +TYPE FC_Status_Word : + STRUCT + B00_ControlReady : BOOL ; (* Bit 00 =0 The frequency converter as tripped *) + B01_DriveReady : BOOL ; (* Bit 01 =1 The frequency converter is ready for operation, but there is an active coasting command via the digital inputs or via serial communication *) + B02_Coasting : BOOL ; (* Bit 02 =1 The frequency converter can start the motor when a start command is given *) + B03_Trip : BOOL ; (* Bit 03 =1 The frequency converter is tripped and that a reset signal is required to re-establish operation *) + B04_Error : BOOL ; (* Bit 04 = 1 there is a frequency converter error but no trip *) + B05_Reserved : BOOL ; (* *) + B06_Triplock : BOOL ; (* Bit 06 = 1 The frequency converter is tripped, and locked *) + B07_Warning : BOOL ; (* Bit 07 = 1 a warning has occurred *) + B08_Speed_OK : BOOL ; (* Bit 08 = 0 The motor is running, but that the present speed is different from the preset speed reference. + It might, for example, be the case while the speed is being ramped up/down during start/stop *) + B09_BusControl : BOOL ; (* Bit 09 = 1 means that it is possible to control the frequency converter via the fieldbus/ serial communication *) + B10_FrequencyLimit_OK : BOOL ; (* Bit 10 = 0 if the output frequency has reached the value in par. 4-11 Motor speed low limit or par.4-13 Motor speed high limit + Bit 10 = 1 means that the output frequency is within the defined limits *) + B11_InOperation : BOOL ; (* Bit 11 = 1 The frequency converter has a start signal or that the output frequency is greater than 0 Hz *) + B12_Drive_OK : BOOL ; (* Bit 12 = 1 The inverter has stopped because of over temperature, but that the unit has not tripped and will resume operation once the over temperature stops *) + B13_Voltage_OK : BOOL ; (* Bit 13 = 1 The DC voltage in the frequency converter’s intermediate circuit is too low or too high *) + B14_Torque_OK : BOOL ; (* Bit 14 = 0 The motor current is lower than the torque limit selected in par. 4-16 Torque limit motor mode or par. 4-17 Torque limit generator mode. + Bit 14 = 1 The torque limit in par. 4-16 and 4-17 has been exceeded *) + B15_Timer_OK : BOOL ; (* Bit 15 = 0 The timers for motor thermal protection and VLT thermal protection, respectively, have not exceeded 100%. + Bit 15 = 1 One of the timers has exceeded 100% *) + END_STRUCT +END_TYPE +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/FEEDFORWARD.EXP b/backend/script_groups/TwinCat/.example/FEEDFORWARD.EXP new file mode 100644 index 0000000..172eacc --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FEEDFORWARD.EXP @@ -0,0 +1,19 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION FeedForward : REAL (* If Function returns -1 means Error *) +VAR_INPUT + i_Flow : REAL ; (* Liquid Flow in l/min *) + i_KFF : REAL ; (* Adjusting parameter *) + i_Delta_P : REAL ; (* Delta Pressure: Friction Losses Across the Valve *) +END_VAR +VAR +END_VAR +(* @END_DECLARATION := '0' *) +IF i_Delta_P >0 THEN + FeedForward := LIMIT(0, i_Flow * i_KFF / SQRT(i_Delta_P), 100) ; +ELSE + FeedForward := -1 ; +END_IF + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/FILLERHEAD.EXP b/backend/script_groups/TwinCat/.example/FILLERHEAD.EXP new file mode 100644 index 0000000..1cda4c1 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FILLERHEAD.EXP @@ -0,0 +1,56 @@ +(* @GLOBAL_VARIABLE_LIST := FillerHead *) +(* @PATH := '\/Filler_Head_PID_Data' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL + gHead_PID_Cycle : REAL ; + gFillingValveHead_PV : REAL ; (* Filling Valve Head Set Point [mmH2O] *) + gSensor_Head_PV : REAL ; (* Differential Pressure Process Value [mmH2O] *) + gProd_Tank_Height : REAL ; (* Product Tank Liquid Height from Soil [mm] *) + gDiffSensor_Height : REAL ; (* Sensor Height from Soil [mm] *) + gPID_Head_Max_Value : REAL ; (* Max Head [mm] *) + gHead_PID_Max_Freq : REAL ; (* Max Filling Head PID Max Freq [Hz] *) + gHead_PID_Manual_Value : REAL ; + gFillerCentrifugalHead : REAL ; (* Centrifugal Head [mm] *) + gTotalPressLoss : REAL ; (* P3 Pump + Pipe + Filler Collector + Filling Pipes Pressure Loss [mm] *) + gHeadDinamicComp : REAL ; + gStartFillingExtraHead : REAL ; (* Head Pressure variation due to start filling *) + gStopFillingExtraHead : REAL ; (* Head Pressure variation due to stop filling *) + gFiller_Speed : REAL ; (* Filler Speed [Bott/h] *) + gFiller_Temperature : REAL ; (* Filler Temperature [°C] *) + gProd_Flow : REAL ; (* Product Flow in l/min*) + gProd_FlowEstimated : REAL ; (* Estimated Product Flow in l/min*) + gProd_FlowEstimatedSlw : REAL ; (* Estimated Product Flow in l/min*) + gFillingTime : REAL ; + + g_MAN_Head : BOOL ; (* 1 = Manual 0 = Automatic *) + g_Head_PID_Enable : BOOL ; (* 1 = Enable Filling Valve Head PID *) + g_Head_CIP_Rinse : BOOL ; (* 1 = CIP or Rinse *) + g_Head_Drain : BOOL ; (* 1 = Drain *) + + gOut_Freq_Head_PID : REAL ; (* uscita PID in frequenza ( 0 .. 100 Hz ) *) + g_Max_Head : BOOL ; (* 1 = massimo Battente superatoo *) + g_Min_Head : BOOL ; (* 1= Battente sotto il minimo *) + g_Head_OK : BOOL ; (* 1= Battente serbatoio OK *) + + gP3_Frequency : REAL ; + + gHeadFillStat_MeanValue : REAL ; + gHeadFillStat_Variance : REAL ; + gHeadFilStat_DevStd : REAL ; + gHeadPIDCtrlOk : BOOL ; +END_VAR + +VAR_GLOBAL CONSTANT + gEstimatedFlowEnable : BOOL := TRUE ; + gProd_HeadPIDMax_Freq : REAL := 50.0 ; (* Head Filling PID Max Frequency during regulation in production *) + gMax_P3_Freq : REAL := 60.0 ; (* Head Filling PID Max Frequency in Manual *) + gMin_Head_Value : REAL := 0.0 ; (* Min Head [mm] *) + gDiffSensor_MaxValue : REAL := 5000.0 ; +END_VAR +(* @OBJECT_END := FillerHead *) +(* @CONNECTIONS := FillerHead +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/FILLERRECEIVESTRUCT.EXP b/backend/script_groups/TwinCat/.example/FILLERRECEIVESTRUCT.EXP new file mode 100644 index 0000000..d1a0962 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FILLERRECEIVESTRUCT.EXP @@ -0,0 +1,30 @@ +(* @PATH := '\/Signals Inteface' *) +TYPE FillerReceiveStruct : + STRUCT + CIP_Request : BOOL ; + CIP_DrainCompleted : BOOL ; + ProductionRequest : BOOL ; + ProductRequest : BOOL ; + LastContainerFilled : BOOL ; + CIP_CycleEnded : BOOL ; + CIP_ChangeReady : BOOL ; + FastRinseReady : BOOL ; + OpenProductDrainPipe : BOOL ; + FastRinseWaterRequest : BOOL ; + SpareBit1_2 : BOOL ; + SpareBit1_3 : BOOL ; + SpareBit1_4 : BOOL ; + SpareBit1_5 : BOOL ; + SpareBit1_6 : BOOL ; + Rinse_Ended : BOOL ; + SpareByte2 : BYTE ; + SpareByte3 : BYTE ; + SpareByte4 : BYTE ; + SpareByte5 : BYTE ; + SpareByte6 : BYTE ; + SpareByte7 : BYTE ; + SpareByte8 : BYTE ; + SpareByte9 : BYTE ; + END_STRUCT +END_TYPE +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/FILLERRINSE.EXP b/backend/script_groups/TwinCat/.example/FILLERRINSE.EXP new file mode 100644 index 0000000..1ee776c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FILLERRINSE.EXP @@ -0,0 +1,684 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure\/System Run Out' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM FillerRinse +VAR + mFillerRinseTP : TP ; + mAuxONS : R_TRIG ; + mStepNum : INT ; + mFillerRinseMove : _StepMove ; + mAuxStep : INT ; + mTimer : TIME ; + mProcSelected : BOOL ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerRinse_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFillerRinseTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gFillerRinse_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFillerRinse_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerRinse_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerRinse_Qualifier +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerRinse_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gSystemRunOut_Reset +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOutInit +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerRinse_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_Flr_WaterRinseRequest +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFromFillerFastRinseCompleted +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerRinse_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFillerRinse_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FillerRinse._FillerRinseReset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeSequenceNum +_OPERAND +_EXPRESSION +_POSITIV +14 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gFillerRinse_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProcSelected +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeProcValue +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFillerRinseStep0Time +_OPERAND +_EXPRESSION +_POSITIV +mTimer +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +TIME_TO_REAL +_OPERAND +_EXPRESSION +_POSITIV +1000 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeProcValue +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeWait1 +_OPERAND +_EXPRESSION +_POSITIV +gIn_Flr_FastRinseCompleted +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeWait1 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerRinse_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinse_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFillerRinse_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerRinse_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerRinse_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinse_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerRinse_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFillerRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_FillerRinseRun +_OUTPUT +_POSITIV +_NO_SET +gH_Status048 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFillerRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FillerRinse._FillerRinseSequencer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFillerRinse_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FillerRinseDone + +END_PROGRAM +ACTION _FillerRinseReset: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gFillerRinse_Done + +END_ACTION + +ACTION _FillerRinseSequencer: +CASE mStepNum OF + 0: FillerRinse_Step_0 ; + + 1: FillerRinse_Step_1 ; + +ELSE + ; +END_CASE + + +END_ACTION + +ACTION FillerRinse_Step_0: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillerRinseMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerRinseStep0Time +_OPERAND +_EXPRESSION +_POSITIV +gFromFillerFastRinseCompleted +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gFillerRinse_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION FillerRinse_Step_1: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gFillerRinse_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/FILLERRINSETANK_CTRL.EXP b/backend/script_groups/TwinCat/.example/FILLERRINSETANK_CTRL.EXP new file mode 100644 index 0000000..be84129 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FILLERRINSETANK_CTRL.EXP @@ -0,0 +1,713 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM FillerRinseTank_Ctrl +VAR + mFillerTankRinseLoadedSR : SR ; + mDrainFillerRinseTankTime : TOF ; + mEmptyFillerRinseTankTON : TON ; + mWaitToRunPumpTON : TON ; + mWaitToRunPump : BOOL ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 12 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gIn_FillerRinseTankMaxLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FillerRinseTankMaxLvl +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gIn_FillerRinseTankMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FillerRinseTankMinLvl +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gIn_FillerRinseTankMinLevel +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mWaitToRunPumpTON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#30s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWaitToRunPump +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_FillerRinseTankMinLevel +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mEmptyFillerRinseTankTON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#40s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerRinseTankEmpty +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillerTankRinseLoadedSR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_SystemRunOutEnabled +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gIn_FillerRinseTankMinLevel +_OPERAND +_EXPRESSION +_POSITIV +gIn_FillerRinseTankMaxLevel +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gOut_OpenEV72RinseTankDrain +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gIn_FillerRinseTankMaxLevel +_OPERAND +_EXPRESSION +_NEGATIV +gIn_FillerRinseTankMinLevel +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_NEGATIV +gH_EV72_Auto +_OPERAND +_EXPRESSION +_POSITIV +gH_EV72_Manual +_OPERAND +_EXPRESSION +_NEGATIV +gIn_FillerRinseTankMaxLevel +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerTankRinseLoaded +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 8 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gIn_FillerRinseTankMinLevel +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFillerTankRinseLoaded +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDrainFillerRinseTankTime +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#40s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gOut_StartRinseTankPump +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerRinseTankDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gIn_Flr_OpenEV69ProdPipeDrain +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_BlenderDrainRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_OpenEV69ProdPipeDrain2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_FillerRinseTank +_EXPRESSION +_POSITIV +_LD_CONTACT +mWaitToRunPump +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinseTankEmpty +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFillerRinseTankDrain +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gIn_Flr_WaterRinseRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gOut_Flr_WaterRinseReady +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinse_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_OpenEV66FlrTankOut +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_FillerRinseTankMaxLevel +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFillerRinse_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_FillerRinseTankMinLevel +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFillerRinse_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinse_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_OpenEV68InletWater +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_CIP_ProdTankFloodRun +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CIP_DeairTankFloodRun +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CIP_SyrTankFloodRun +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_BlenderDrainRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gIn_FillerRinseTankMaxLevel +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_OpenEV71RinseTankSprayBall +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinse_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinseTankDrain +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_BlenderDrainRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_OpenEV72RinseTankDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_FillerRinseTank +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +gSp_P5 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gOut_OpenEV66FlrTankOut +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gOut_OpenEV66FlrTankOut +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gOut_OpenEV66FlrTankOut +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gIn_FillerRinseTankMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_StartRinseTankPump + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/FILLERSENDSTRUCT.EXP b/backend/script_groups/TwinCat/.example/FILLERSENDSTRUCT.EXP new file mode 100644 index 0000000..d367910 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FILLERSENDSTRUCT.EXP @@ -0,0 +1,29 @@ +(* @PATH := '\/Signals Inteface' *) +TYPE FillerSendStruct : + STRUCT + CIP_Mode : BOOL ; + CIP_Running : BOOL ; + CIP_Completed : BOOL ; + CIP_DrainRequest : BOOL ; + Rinse_Mode : BOOL ; + Production_Mode : BOOL ; + ProductAvailable : BOOL ; + FillerRunOut : BOOL ; + ProductCompleted : BOOL ; + ChangeSanitize : BOOL ; + FastRinseRequest : BOOL ; + WaterRinseReady : BOOL ; + CausticSanitizeRunning : BOOL ; + MinimumProductLevel : BOOL ; + SpareBit1_6 : BOOL ; + AliveBit : BOOL ; + FillerRunOutAmount : INT ; + FillerNextRecipe : BYTE ; + SpareByte5 : BYTE ; + SpareByte6 : BYTE ; + SpareByte7 : BYTE ; + SpareByte8 : BYTE ; + SpareByte9 : BYTE ; + END_STRUCT +END_TYPE +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/FILLER_CONTROL.EXP b/backend/script_groups/TwinCat/.example/FILLER_CONTROL.EXP new file mode 100644 index 0000000..a3a8363 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FILLER_CONTROL.EXP @@ -0,0 +1,11789 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Filler_Control +VAR + mWaitFilerRinseDoneRS : RS; + mToFillerFastRinseCompletedSR : SR ; + mFillerFastRinseCompletedLatch : SR ; + mFillerSoftnetRWEnable : BOOL ; + mFillerTracked : BOOL; + mFillerSoftnetReadTP : TP ; + mFillerSoftnetRead : ADSVARREAD ; + mFillerSoftnetReadConnected : BOOL ; + mFillerSoftnetReadBusy : BOOL ; + mFillerSoftnetReadError : BOOL ; + mFillerSoftnetReadErrorId : UDINT ; + mFillerSoftnetReadConnect : BOOL ; + mFillerSoftnetReadStart : BOOL ; + mFillerSoftnetReadErrCount : INT ; + mFillerSoftnetReadErrorEn : BOOL ; + mFillerSoftnetReadArraySize : INT ; + mDataFromFiller : UDINT ; + mFillerSoftnetWriteTP : TP ; + mFillerSoftnetWrite : ADSVARWRITE ; + mFillerSoftnetWriteConnected : BOOL ; + mFillerSoftnetWriteBusy : BOOL ; + mFillerSoftnetWriteError : BOOL ; + mFillerSoftnetWriteErrorId : UDINT ; + mFillerSoftnetWriteConnect : BOOL ; + mFillerSoftnetWriteStart : BOOL ; + mFillerSoftnetWriteErrCount : INT ; + mFillerSoftnetWriteErrorEn : BOOL ; + mDataToFiller : UDINT ; + mAuxONS : R_TRIG ; + mAux1ONS : R_TRIG ; + mAux2ONS : R_TRIG ; + mAux3ONS : R_TRIG ; + mAux4ONS : R_TRIG ; + mDummy : BOOL ; + mCIPCausticRecoverySR : SR; + mProdDisable : RS; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 27 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Filler_Control.SignalsInterchange +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerProduction +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gActual_Prod_SP +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gEstimateFillerSpeed +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_MinProduction +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +GE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerTracked +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProdPressHold +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerRanOut +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFromFillerFastRinseCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCO2LowPress_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankPressure_Fault +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdAvailable +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderLevelOk +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderLevelOk +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +mFillerTracked +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdAvailable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerMinimumLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gProdAvailable +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdPipeRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankPressure_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProductPump_P3_Fault +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerProductAvailable +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gToFillerProdRunOut +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_Flr_FillerRunOutReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gToFillerProductCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_Flr_ProductCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_Flr_WaterRinseRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gIn_Flr_FastChangeLastContainerFilled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gFillerRanOut +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_Flr_FastRinseCompleted +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFillerFastRinseCompletedLatch +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_NEGATIV +gFastChangeOverActivated +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFromFillerFastRinseCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gFromFillerFastRinseCompleted +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mToFillerFastRinseCompletedSR +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_NEGATIV +gFastChangeOverActivated +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_Flr_FastRinseReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerTankRinseLoaded +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_FillerRinseTank +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_Flr_WaterRinseReady +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerRinseMode +_NETWORK + +_COMMENT +Start RETURN pump in CIP mode signal from filler +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Flr_Start_ReturnPump +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_CIP_StartReturnPump +_NETWORK + +_COMMENT +take out input from syrup room NOT presente + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_CIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerCIPMode +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mCIPCausticRecoverySR +_BOX_EXPR : 2 +_ENABLED +_FUNCTIONBLOCK +mAux3ONS +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gInCIP_ChangeSanitize +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gCIPBlenderEmpty +_OPERAND +_EXPRESSION +_POSITIV +gInFillerCIPChangeReady +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPCausticRecoveryRun +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gP_CIPRunning +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_CIPRunning +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_CIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPCausticRecoveryRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT + gInFillerCIPCycleEnded +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerCIPRunning +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_CIPChangeSanitize +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPBlenderEmpty +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPCausticRecoveryRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerCIPChangeSanitize +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPBlenderDrainRunning +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_CIPDrainRequest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerCIPDrainRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInCIP_CIPCompleted +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Completed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerCIPCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInCIP_CausticSanitizeRunning +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_CIPHotPhase +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_FillerCIPCausticSanitizeRunning +_NETWORK + +_COMMENT +Wait Filler Product Request After First Production +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProdStop +_EXPRESSION +_POSITIV +_LD_CONTACT +gEnToStopBlender +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message031 +_NETWORK + +_COMMENT +Wait Filler Rinse Completed +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAux4ONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_FUNCTIONBLOCK +mWaitFilerRinseDoneRS +_BOX_EXPR : 2 +_EMPTY +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gIn_Flr_FastRinseCompleted +_OPERAND +_EXPRESSION +_POSITIV +gInFillerCIPCycleEnded +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRinse_Latch +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +RS +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message032 +_NETWORK + +_COMMENT +Filler Loads next recipe on the rising edge OF the Product Completed Signal, so AT that point +the next recipe must be already selected. +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrRunOut_Done +_OPERAND +_EXPRESSION +_POSITIV +gFastChangeOverActivated +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_FillerNextRecipeNum +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_CMD_EnableNextRecipe +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gH_N_Recipe_FillerNextRecipeNum +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerNextRecipeNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_N_Recipe_Transfer +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gH_N_Recipe_Transfer +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.AliveBit +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gTotalProductAvailable +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.FillerRunOutAmount +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION DataReceive: +_LD_BODY +_NETWORKS : 26 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFillerCommFault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr +_EXPRESSION +_POSITIV +SIZEOF +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDataFromFiller +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillerSoftnetRead +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +'' +_OPERAND +_EXPRESSION +_POSITIV +19000 +_OPERAND +_EXPRESSION +_POSITIV +gFillerReadDB +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr +_EXPRESSION +_POSITIV +SIZEOF +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadConnect +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadStart +_OPERAND +_EXPRESSION +_NEGATIV +mFillerSoftnetReadError +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +ADSVARREAD +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadBusy +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadError +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadErrorId +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadConnected +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[0] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.CIP_Request +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[0] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.CIP_DrainCompleted +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[0] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.ProductionRequest +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[0] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.ProductRequest +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[0] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.LastContainerFilled +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[0] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.CIP_CycleEnded +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[0] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.CIP_ChangeReady +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[0] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.FastRinseReady +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[1] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.OpenProductDrainPipe +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[1] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.FastRinseWaterRequest +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[1] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareBit1_2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[1] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareBit1_3 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[1] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareBit1_4 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[1] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareBit1_5 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[1] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareBit1_6 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[1] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.Rinse_Ended +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[2] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareByte2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[3] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareByte3 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[4] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareByte4 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[5] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareByte5 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[6] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareByte6 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[7] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareByte7 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[8] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareByte8 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerReceiveDataArr[9] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerReceiveData.SpareByte9 +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DataReceive_BlendFill: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFillerCommFault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr +_EXPRESSION +_POSITIV +SIZEOF +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDataFromFiller +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillerSoftnetRead +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +'' +_OPERAND +_EXPRESSION +_POSITIV +19000 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReadDB +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr +_EXPRESSION +_POSITIV +SIZEOF +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadConnect +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadStart +_OPERAND +_EXPRESSION +_NEGATIV +mFillerSoftnetReadError +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +ADSVARREAD +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadBusy +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadError +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadErrorId +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadConnected +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 14 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[0] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W0 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[2] +_EXPRESSION +_POSITIV +Bytes_To_Dword +_EXPRESSION +_POSITIV +DWORD_TO_DINT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Filler_Speed +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[10] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.ProductTemp +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[12] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Valve1_Pressure +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[14] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.RunOutBottleCount +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[16] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W16 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[18] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W18 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[26] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_26 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[28] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_28 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[30] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_30 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[32] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_32 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[34] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_34 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[36] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_36 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[38] +_EXPRESSION +_POSITIV +Bytes_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_38 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 48 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[20] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_EV62_Enable +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[20] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_EV46_Enable +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[20] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare02 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[20] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare03 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[20] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare04 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[20] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare05 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[20] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare06 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[20] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare07 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[21] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare10 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[21] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare11 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[21] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare12 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[21] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare13 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[21] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare14 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[21] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare15 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[21] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare16 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[21] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_ConnAlive +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[22] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Selected +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[22] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_End_Tank_Filling +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[22] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Spare02 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[22] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Last_Bottle +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[22] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_BottleFilling +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[22] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_EndFlushing +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[22] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Spare06 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[22] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Spare07 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[23] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Selected +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[23] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Sanitize_Request +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[23] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_End_Cycle +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[23] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Change_Ready +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[23] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Drain_Completed +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[23] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_OpenEV13 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[23] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_StopCIPReturnPump +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[23] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Spare07 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[24] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Selected +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[24] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Ended +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[24] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare02 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[24] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare03 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[24] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare04 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[24] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare05 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[24] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare06 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[24] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare07 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[25] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Selected +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[25] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare01 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[25] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare02 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[25] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare03 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[25] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare04 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[25] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare05 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[25] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare06 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveDataArr[25] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare07 +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DataSend: +_LD_BODY +_NETWORKS : 25 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFillerCommFault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr +_EXPRESSION +_POSITIV +SIZEOF +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDataFromFiller +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[0] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.CIP_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[0] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[0] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.CIP_Running +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[0] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[0] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.CIP_Completed +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[0] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[0] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.CIP_DrainRequest +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[0] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[0] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.Rinse_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[0] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[0] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.Production_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[0] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[0] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.ProductAvailable +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[0] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[0] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.FillerRunOut +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[0] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.ProductCompleted +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[1] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.ChangeSanitize +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[1] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.FastRinseRequest +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[1] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.WaterRinseReady +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[1] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.CausticSanitizeRunning +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[1] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.MinimumProductLevel +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[1] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.SpareBit1_6 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[1] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.AliveBit +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[1] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.FillerRunOutAmount +_EXPRESSION +_POSITIV +INT_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[3] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.FillerRunOutAmount +_EXPRESSION +_POSITIV +INT_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +8 +_EXPRESSION +_POSITIV +SHR32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[2] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.FillerNextRecipe +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[4] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.SpareByte5 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[5] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.SpareByte6 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[6] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.SpareByte7 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[7] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.SpareByte8 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[8] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendData.SpareByte9 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendDataArr[9] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillerSoftnetWrite +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +'' +_OPERAND +_EXPRESSION +_POSITIV +19000 +_OPERAND +_EXPRESSION +_POSITIV +gFillerWriteDB +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr +_EXPRESSION +_POSITIV +SIZEOF +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteConnect +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteStart +_OPERAND +_EXPRESSION +_NEGATIV +mFillerSoftnetWriteError +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +ADSVARWRITE +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteBusy +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteError +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteErrorId +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteConnected +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DataSend_BlendFill: +_LD_BODY +_NETWORKS : 24 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFillerCommFault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr +_EXPRESSION +_POSITIV +SIZEOF +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDataFromFiller +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gTotalProductAvailable +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.ProdTotalAvailable +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_FillingValveHead +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Pressure_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillingValveHead_PV +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Pressure_PV +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Tank_Level +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gP3_Frequency +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Pump_Freq +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Recipe_Number +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gPressCO2_PV +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.ProdTankPress +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_DifferentialTransducer +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.PressDiffPEW +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV62_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_EV62_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV46_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_EV46_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV15_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_EV15_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV13_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_EV13_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P3_ProductPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_P3_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P6_RecircPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_P6_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_ConnAlive +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_BlendFillSysPressRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_PressRunning +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_BlendFillSysProdLoadRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_ProdLoad +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_BlendFillSysProdSendRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_ProdSend +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gToFillerProductCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_ProdCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 32 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[20] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_EV62_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[20] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[20] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_EV46_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[20] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[20] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare02 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[20] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[20] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_EV15_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[20] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[20] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_EV13_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[20] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[20] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_P3_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[20] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[20] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_P6_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[20] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[20] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare07 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[20] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[21] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare10 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[21] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[21] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare11 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[21] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[21] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare12 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[21] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[21] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare13 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[21] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[21] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare14 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[21] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[21] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare15 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[21] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gFillerSendDataArr[1] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare16 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[21] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[21] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_ConnAlive +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[21] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[22] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[22] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[22] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_PressRunning +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[22] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[22] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdLoad +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[22] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[22] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdSend +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[22] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[22] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdRunOut +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[22] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[22] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdLoad2 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[22] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[22] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdCompleted +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[22] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[22] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_FastRinseRequest +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[22] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[23] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[23] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[23] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Running +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[23] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[23] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Change_Sanitize +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[23] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[23] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Drain_Request +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[23] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[23] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Completed +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[23] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[23] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Caustic_Running +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[23] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[23] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Spare06 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[23] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[23] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Spare07 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[23] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 8 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[24] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[24] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[24] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Running +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[24] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[24] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare02 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[24] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[24] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare03 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[24] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[24] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare04 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[24] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[24] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare05 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[24] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[24] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare06 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[24] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr[24] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare07 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[24] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 10 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Pressure_SP +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[0] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[1] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Pressure_PV +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[2] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[3] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Tank_Level +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[4] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[5] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Spare_W_06 +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[6] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[7] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Pump_Freq +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[8] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[9] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Recipe_Number +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[10] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[11] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.ProdTankPress +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[12] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[13] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.PressDiffPEW +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[14] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[15] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.ProdTotalAvailable +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[16] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[17] +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Spare_W_18 +_EXPRESSION +_POSITIV +Word_To_Bytes +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[18] +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendDataArr[19] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillerSoftnetWrite +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +'' +_OPERAND +_EXPRESSION +_POSITIV +19000 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillWriteDB +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr +_EXPRESSION +_POSITIV +SIZEOF +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendDataArr +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteConnect +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteStart +_OPERAND +_EXPRESSION +_NEGATIV +mFillerSoftnetWriteError +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +ADSVARWRITE +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteBusy +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteError +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteErrorId +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteConnected +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DeviceNet_DataReceive_BlendFill: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 13 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[0] +_EXPRESSION +_POSITIV +WORD_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W0 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[5] +_EXPRESSION +_POSITIV +WORD_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.ProductTemp +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[6] +_EXPRESSION +_POSITIV +WORD_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Valve1_Pressure +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[7] +_EXPRESSION +_POSITIV +WORD_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.RunOutBottleCount +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[8] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W16 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[9] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W18 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[13] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_26 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[14] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_28 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[15] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_30 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[16] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_32 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[17] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_34 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[18] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_36 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[19] +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Spare_W_38 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[1] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_EXPRESSION +_POSITIV +DWORD_TO_DINT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Filler_Speed +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 48 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_EV62_Enable +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_EV46_Enable +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare02 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare03 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare04 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare05 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare06 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare07 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +8 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare10 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +9 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare11 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +10 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare12 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +11 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare13 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +12 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare14 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +13 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare15 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +14 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_Spare16 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[10] +_OPERAND +_EXPRESSION +_POSITIV +15 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Gen_ConnAlive +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Selected +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_End_Tank_Filling +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Spare02 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Last_Bottle +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_BottleFilling +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_EndFlushing +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Spare06 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Prod_Spare07 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +8 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Selected +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +9 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Sanitize_Request +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +10 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_End_Cycle +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +11 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Change_Ready +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +12 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Drain_Completed +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +13 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_OpenEV13 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +14 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_StopCIPReturnPump +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[11] +_OPERAND +_EXPRESSION +_POSITIV +15 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.CIP_Spare07 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Selected +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Ended +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare02 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare03 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare04 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare05 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare06 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Rinse_Spare07 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +8 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Selected +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +9 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare01 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +10 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare02 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +11 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare03 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +12 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare04 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +13 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare05 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +14 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare06 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillRecArr[12] +_OPERAND +_EXPRESSION +_POSITIV +15 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillReceiveData.Drain_Spare07 +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION DeviceNet_DataSend_BlendFill: +_LD_BODY +_NETWORKS : 22 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gTotalProductAvailable +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.ProdTotalAvailable +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_FillingValveHead +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Pressure_SP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillingValveHead_PV +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Pressure_PV +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Tank_Level +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gP3_Frequency +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Pump_Freq +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Recipe_Number +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gPressCO2_PV +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.ProdTankPress +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSensor_Head_PV +_OPERAND +_EXPRESSION +_POSITIV +10 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +REAL_TO_INT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.PressDiffPEW +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV62_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_EV62_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV46_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_EV46_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV15_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_EV15_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV13_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_EV13_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P3_ProductPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_P3_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P6_RecircPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_P6_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Gen_ConnAlive +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_BlendFillSysPressRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_PressRunning +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_BlendFillSysProdLoadRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_ProdLoad +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_BlendFillSysProdSendRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_ProdSend +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gToFillerProductCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_ProdCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 32 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_EV62_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_EV46_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare02 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_EV15_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_EV13_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_P3_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_P6_Status +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare07 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +8 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare10 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +9 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare11 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare12 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +11 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare13 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +12 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare14 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +13 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare15 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +14 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_Spare16 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[10] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +15 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Gen_ConnAlive +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[10] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_PressRunning +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdLoad +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdSend +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdRunOut +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdLoad2 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_ProdCompleted +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Prod_FastRinseRequest +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +8 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +9 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Running +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Change_Sanitize +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +11 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Drain_Request +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +12 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Completed +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +13 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Caustic_Running +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +14 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Spare06 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[11] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +15 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.CIP_Spare07 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[11] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 8 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[12] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Mode +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[12] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[12] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Running +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[12] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[12] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare02 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[12] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[12] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare03 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[12] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[12] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare04 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[12] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[12] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare05 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[12] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[12] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +6 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare06 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[12] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gDeviceNetBlendFillSendArr[12] +_EXPRESSION +_POSITIV +WORD_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +7 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Rinse_Spare07 +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[12] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 10 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Pressure_SP +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[0] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Pressure_PV +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[1] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Tank_Level +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[2] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Spare_W_06 +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[3] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Pump_Freq +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[4] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Recipe_Number +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[5] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.ProdTankPress +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[6] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.PressDiffPEW +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[7] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.ProdTotalAvailable +_EXPRESSION +_POSITIV +INT_TO_WORD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[8] +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillSendData.Spare_W_18 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeviceNetBlendFillSendArr[9] +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SignalsInterchange: +_LD_BODY +_NETWORKS : 16 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_NEGATIV +DI_Reset_Btn +_OPERAND +_EXPRESSION +_POSITIV +gDelayS7Call +_OPERAND +_EXPRESSION +_NEGATIV +gH_HMIShutdownRequest +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadConnected +_OPERAND +_EXPRESSION +_NEGATIV +gFillerCommFault +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadConnect +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +mFillerSoftnetReadStart +_EXPRESSION +_NEGATIV +_LD_CONTACT +mFillerSoftnetReadConnected +_EXPRESSION +_POSITIV +_LD_CONTACT +mFillerSoftnetReadBusy +_EXPRESSION +_NEGATIV +_LD_CONTACT +mFillerSoftnetWriteStart +_EXPRESSION +_NEGATIV +_LD_CONTACT +mFillerSoftnetWriteBusy +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFillerSoftnetReadTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#450ms +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadStart +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_BlendFillSystem +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Filler_Control.DataReceive +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BlendFillSystem +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Filler_Control.DataReceive_BlendFill +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BlendFillSystem +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Filler_Control.DeviceNet_DataReceive_BlendFill +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mFillerSoftnetReadError +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadErrCount +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadErrCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadErrCount +_OPERAND +_EXPRESSION +_POSITIV +8 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadErrorEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_NEGATIV +DI_Reset_Btn +_OPERAND +_EXPRESSION +_POSITIV +gDelayS7Call +_OPERAND +_EXPRESSION +_NEGATIV +gH_HMIShutdownRequest +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteConnected +_OPERAND +_EXPRESSION +_NEGATIV +gFillerCommFault +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteConnect +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +mFillerSoftnetWriteStart +_EXPRESSION +_NEGATIV +_LD_CONTACT +mFillerSoftnetWriteConnected +_EXPRESSION +_POSITIV +_LD_CONTACT +mFillerSoftnetWriteBusy +_EXPRESSION +_NEGATIV +_LD_CONTACT +mFillerSoftnetReadStart +_EXPRESSION +_NEGATIV +_LD_CONTACT +mFillerSoftnetReadBusy +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFillerSoftnetWriteTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#450ms +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteStart +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_BlendFillSystem +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Filler_Control.DataSend +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BlendFillSystem +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Filler_Control.DataSend_BlendFill +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BlendFillSystem +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Filler_Control.DeviceNet_DataSend_BlendFill +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mFillerSoftnetWriteError +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAux1ONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteErrCount +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteErrCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteErrCount +_OPERAND +_EXPRESSION +_POSITIV +8 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteErrorEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 4 +_OPERATOR +_BOX_EXPR : 4 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadErrorId +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadError +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadConnected +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadErrorEn +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 4 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteErrorId +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteError +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteConnected +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteErrorEn +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadConnect +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadError +_OPERAND +_EXPRESSION +_NEGATIV +mFillerSoftnetReadConnected +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteConnect +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteError +_OPERAND +_EXPRESSION +_NEGATIV +mFillerSoftnetWriteConnected +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_NEGATIV +gWorkshopTest +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerCommFault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm004 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetReadErrorId +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mFillerSoftnetWriteErrorId +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetWriteErrCount +_OUTPUT +_POSITIV +_NO_SET +mFillerSoftnetReadErrCount +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/FILLINGTIME.EXP b/backend/script_groups/TwinCat/.example/FILLINGTIME.EXP new file mode 100644 index 0000000..760d276 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FILLINGTIME.EXP @@ -0,0 +1,26 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION FillingTime : REAL +VAR_INPUT + i_FillingValveHead : REAL ; (* in mmH2O *) + i_BottleSize : REAL ; +END_VAR +VAR + a : REAL ; + b : REAL ; + c : REAL ; + d : REAL ; + mFillingSpeed : REAL ; (* in mL/sec *) +END_VAR + +(* @END_DECLARATION := '0' *) +a := 1.2522E-7 ; +b := -3.8E-4 ; +c := 4.4505E-1 ; +d := 0.0 ; +mFillingSpeed := a * EXPT(i_FillingValveHead, 3) + b * EXPT(i_FillingValveHead, 2) + c * i_FillingValveHead +d ; +IF mFillingSpeed<>0 THEN + FillingTime := i_BottleSize / (mFillingSpeed/1000) ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/FIRSTPRODUCTION.EXP b/backend/script_groups/TwinCat/.example/FIRSTPRODUCTION.EXP new file mode 100644 index 0000000..bce0bd9 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FIRSTPRODUCTION.EXP @@ -0,0 +1,971 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM FirstProduction +VAR + mFirstProdONS : R_TRIG ; + mFirstProdTP : TP ; + mFirstProdTP1 : TP ; + mAuxONS : R_TRIG ; + mAuxTP : TP ; + mTimeDone : TON ; + + mSwitchLevel : REAL ; + mSyrupCount : REAL ; + mSyrupCountInit : REAL ; + mFirstProdSR : SR ; + mFirstProdCountDone : BOOL ; + mInitialSyrupOk : BOOL ; + mDelaySyrOk : TON ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 17 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFirstProd_Qualifier +_NETWORK + +_COMMENT +Exceptionally the Request Bit is Latched in order TO save it FOR the next Production switching. +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gFirstProd_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gH_CMD_FirstProduction +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFirstProdTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFirstProdTP1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFirstProd_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gFirstProd_Qualifier +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinse_DoneONS +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFirstProdONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFirstProd_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFirstProd_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FirstProduction.Reset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Waits UNTIL Production is Selected +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 5 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_NEGATIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gAirLowPress_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCO2LowPress_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFirstProd_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProd_Running +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFirstProdSR +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +gFirstProd_Done +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFirstProdLatched +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProd_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gFirstProdStop +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProdStop +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderLevelTarget +_EXPRESSION +_NEGATIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gFirstProdStop +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gPV_SyrDensOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProdLatched +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_SyrupTotalizerLt +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrupCountInit +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +During Fisrt Production the SyrupRunOutLiters Parameters is multiplied BY 1.3 (30% more syrup) AND used +TO state when all the Low Brix Syrup is ran Out. +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPV_SyrDensOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProdLatched +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTotal +_OPERAND +_EXPRESSION +_POSITIV +gActualSyrupDens +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +mSyrupCountInit +_EXPRESSION +_POSITIV +SUB +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_SyrupRunOutLiters +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFirstProdCountDone +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProd_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_FirstProdRun +_OUTPUT +_POSITIV +_NO_SET +gH_Status006 +_OUTPUT +_POSITIV +_NO_SET +gFirstProd_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFirstProd_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProd_Running +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FirstProduction.ResetTotalizers +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_FUNCTIONBLOCK +_FBD_PROGRAM +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FirstProduction.SwitchLevel +_OUTPUTS : 0 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDelaySyrOk +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrBrix +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +ABS +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_MaxDeltaBrix +_OPERAND +_EXPRESSION +_POSITIV +0.8 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mInitialSyrupOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +First production stops when product tank level gets MAX Lvel (80%) OR when the Syrup Brix Error is minimum. +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStopLevel +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderLevelTarget +_EXPRESSION +_POSITIV +_LD_CONTACT +mInitialSyrupOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupRoomEn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mTimeDone +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProd_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFirstProd_Done +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FirstProductionDone + +END_PROGRAM +ACTION Reset: +mFirstProdCountDone := FALSE ; +gFirstProdLatched := FALSE ; +gFirstProd_Done := FALSE ; + +END_ACTION + +ACTION ResetTotalizers: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gWaterVFMResetTot +_OUTPUT +_POSITIV +_NO_SET +gSyrupMFMResetTot +_OUTPUT +_POSITIV +_NO_SET +gCO2MFMResetTot +_OUTPUT +_POSITIV +_NO_SET +gProductMFMResetTot + +END_ACTION + +ACTION SwitchLevel: +IF gActualRecipe_SP_Tank_Press>0 THEN + mSwitchLevel :=(1 - gCO2EqPressure / gActualRecipe_SP_Tank_Press) * 100 ; +END_IF +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/FLOW_TO_PRESS_LOSS.EXP b/backend/script_groups/TwinCat/.example/FLOW_TO_PRESS_LOSS.EXP new file mode 100644 index 0000000..4b9d24c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FLOW_TO_PRESS_LOSS.EXP @@ -0,0 +1,28 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION Flow_To_Press_Loss : REAL + +VAR_INPUT + i_Flow : REAL ; (* Product Flow in l/min *) + i_K_Loss : REAL ; (* Pressure Loss Constant: pump + pipe + filler collector *) +END_VAR + +VAR +END_VAR + + +(* @END_DECLARATION := '0' *) +(* Pressure Loss along Pipe in mmH2O + + Head [ mmH2O] = i_Flow ^ 2 i_K_Loss + +SAE131==> i_K_Loss = 9.420000e-003 +*) + +(******* Pompa INOXPA Modello ______ Motore 4 Poli 1450 RPM ********* *) + +(*KP_Carico :=0.158;*) + +Flow_To_Press_Loss := EXPT(i_Flow, 2) * i_K_Loss ; +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/FREQ_TO_MMH2O.EXP b/backend/script_groups/TwinCat/.example/FREQ_TO_MMH2O.EXP new file mode 100644 index 0000000..a312d8a --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FREQ_TO_MMH2O.EXP @@ -0,0 +1,14 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION Freq_To_mmH2O : REAL +VAR_INPUT + i_Freq : REAL ; + i_K_freq : REAL ; +END_VAR +VAR +END_VAR + +(* @END_DECLARATION := '0' *) +Freq_To_mmH2O := EXPT(i_Freq, 2) * i_K_freq ; +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/FRICTIONLOSS.EXP b/backend/script_groups/TwinCat/.example/FRICTIONLOSS.EXP new file mode 100644 index 0000000..6484211 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/FRICTIONLOSS.EXP @@ -0,0 +1,16 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION FrictionLoss : REAL (* Return the Friction Losses for a concetrate cause *) +VAR_INPUT + i_Flow : REAL ; + i_K : REAL ; + i_Dens : REAL ; +END_VAR +VAR +END_VAR +(* @END_DECLARATION := '0' *) +(*FrictionLoss := EXPT(i_Flow * i_K*i_Dens, 2) ;*) +FrictionLoss := (i_Flow * i_K * i_Flow * i_K )* i_Dens ; + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/GETPRODBRIXCO2_FROMANALOGINPUT.EXP b/backend/script_groups/TwinCat/.example/GETPRODBRIXCO2_FROMANALOGINPUT.EXP new file mode 100644 index 0000000..0c0488c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/GETPRODBRIXCO2_FROMANALOGINPUT.EXP @@ -0,0 +1,350 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM GetProdBrixCO2_FromAnalogInput +VAR + mEnabled : BOOL ; + mProdBrix : Peripherial ; + mProdCO2 : Peripherial ; + mProdTemp : Peripherial ; + mError : BOOL ; + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 6 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_BrixMeter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_MeterType +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mEnabled +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_ProductBrix +_OPERAND +_EXPRESSION +_POSITIV +20.0 +_OPERAND +_EXPRESSION +_POSITIV +-0.04 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadAnalogIn +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_ProductCO2 +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_OPERAND +_EXPRESSION +_POSITIV +-0.02 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadAnalogIn +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdCO2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_PoductTemp +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadAnalogIn +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 3 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProdBrix.Error +_OPERAND +_EXPRESSION +_POSITIV +mProdBrix.Value +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductBrix +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProdCO2.Error +_OPERAND +_EXPRESSION +_POSITIV +mProdCO2.Value +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductCO2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProdTemp.Error +_OPERAND +_EXPRESSION +_POSITIV +mProdTemp.Value +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mEnabled +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mProdBrix.Value +_OPERAND +_EXPRESSION +_POSITIV +8 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_NEGATIV +mProdBrix.Error +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gProductMeterOk +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/GETPRODO2_FROMANALOGINPUT.EXP b/backend/script_groups/TwinCat/.example/GETPRODO2_FROMANALOGINPUT.EXP new file mode 100644 index 0000000..95d5282 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/GETPRODO2_FROMANALOGINPUT.EXP @@ -0,0 +1,133 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM GetProdO2_FromAnalogInput +VAR + mProdO2 : Peripherial ; + mProdO2Flted : LowPassFilter ; + mInError : BOOL ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_ProductO2 +_OPERAND +_EXPRESSION +_POSITIV +12.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadAnalogIn +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdO2 +_ASSIGN +_FUNCTIONBLOCK +mProdO2Flted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProdO2.Value +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductO2Conc +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProdO2.Error +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mInError +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/GLOBAL_ALARMS.EXP b/backend/script_groups/TwinCat/.example/GLOBAL_ALARMS.EXP new file mode 100644 index 0000000..4de3144 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/GLOBAL_ALARMS.EXP @@ -0,0 +1,99 @@ +(* @GLOBAL_VARIABLE_LIST := Global_Alarms *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(****************************************************************************************************************************) +(* FAULT ALARM *) +(****************************************************************************************************************************) + gWaterPump_P1_Fault : BOOL ; + gWaterPump_P5_Fault : BOOL ; + gSyrupPump_P2_Fault : BOOL ; + gProductPump_P3_Fault : BOOL ; + gVacuumPump_P4_Fault : BOOL ; + gRinseTankPump_P5_Fault : BOOL ; + gRecircPump_P6_Fault : BOOL ; + gWaterVFM_EPD : BOOL ; (* Water Flowmeter Empty *) + gSyrupMFM_EPD : BOOL ; (* Syrup Flowmeter Empty *) + gCO2MFM_EPD : BOOL ; (* CO2 Flowmeter Empty *) + gProductVFM_EPD : BOOL ; (* Water Flowmeter Empty *) + gWaterVFM_Fault : BOOL ; (* Water Flowmeter Fault *) + gSyrupMFM_Fault : BOOL ; (* Syrup Flowmeter Fault *) + gCO2MFM_Fault : BOOL ; (* CO2 Flowmeter Fault *) + gProductVFM_Fault : BOOL ; (* Water Flowmeter Fault *) + gWaterValvePos_Fault : BOOL ; (* Water Modulating Valve Position Fault *) + gSyrupValvePos_Fault : BOOL ; (* Syrup Modulating Valve Position Fault *) + gCarboCO2ValvePos_Fault : BOOL ; (* CO2 Modulating Valve Position Fault *) + gProdTankPressure_Fault : BOOL ; (* Product Tank Pressurization TimeOut Fault *) + gVacuumTimeOut_Fault : BOOL ; (* Vacuum TimeOut Fault *) + gNotARecipe_Fault : BOOL ; (* Invalid Recipe Type Selection *) + gWaterFlowTooLow : BOOL ; (* Water Flow Too Low *) + gWaterSpeedTooLow : BOOL ; (* Water Speed in Serpentine Critical < 1m/s *) + gBlendErrorHighSyr_Fault : BOOL ; + gBlendErrorLowSyr_Fault : BOOL ; + gCarboCO2Error_HighCO2_Fault : BOOL ; + gCarboCO2Error_LowCO2_Fault : BOOL ; + gProductBrixTooHigh : BOOL ; + gProductBrixTooLow : BOOL ; + gProductCO2TooHigh : BOOL ; + gProductCO2TooLow : BOOL ; + gProductCondTooHigh : BOOL ; + gProductCondTooLow : BOOL ; + gDensimeterCalError : BOOL ; + gCIPTransferProgTimeOut_Fault : BOOL ; + gmPDS1000_Error_Fault : BOOL ; + gmPDS1000_NoOscillation : BOOL ; + gmPDS2000_Error_Fault : BOOL ; + gMaselli_Error_Fault : BOOL ; + gMaselliUC05_Error_Fault : BOOL ; + gMaselliUC05_Communication_Fault : BOOL ; + gMaselliUR22_Error_Fault : BOOL ; + gMaselliUR22_Communication_Fault : BOOL ; + gCIPRecircFlowMissing_Fault : BOOL ; + gCIPCommFault : BOOL ; + gFillerCommFault : BOOL ; + + gFlrCO2ValveEV46Pos_Fault : BOOL ; + gProdValveEV62Pos_Fault : BOOL ; + gWaterInletValveEV73Pos_Fault : BOOL ; + gCIPInletValveEV74Pos_Fault : BOOL ; + gDiffSensor_Analog_Fault : BOOL ; + gProdTankPressureValveFault : BOOL ; + gDeaireationValveFault : BOOL ; + + gSyrTankHighLvl_Fault : BOOL ; + +(****************************************************************************************************************************) +(* SUPPLIES ALARM *) +(****************************************************************************************************************************) + gAirLowPress_Fault : BOOL ; + gCO2LowPress_Fault : BOOL ; + gDeairTankLowLvl_Fault : BOOL ; + gSyrTankLowLvl_Fault : BOOL ; + gSyrRoomPump_Fault : BOOL ; + gSyrBrixOutSpec_Fault : BOOL ; (* Syrup Brix Out Of Specification *) + gSyrupDensityOutSpec_Fault : BOOL ; (* Syrup Density Out Of Specification *) + gWaterTempTooHigh : BOOL ; + gProdTempTooHigh : BOOL ; + gSyrRoomWaterPump_Fault : BOOL ; + gAmmoniaCompressor_Fault : BOOL; + gInjectionPressAI_Fault : BOOL; + +(****************************************************************************************************************************) +(* EXTERNAL ALARM *) +(****************************************************************************************************************************) + +(**********************************************************************************************************************) +(* OPERATOR ALARMS *) +(**********************************************************************************************************************) + gManualSyrupDrainValve : BOOL ; + gManualWaterDrainValve : BOOL ; + gSyrupLineNotSelected : BOOL ; +END_VAR + +(* @OBJECT_END := Global_Alarms *) +(* @CONNECTIONS := Global_Alarms +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/GLOBAL_VARIABLES_IN_OUT.EXP b/backend/script_groups/TwinCat/.example/GLOBAL_VARIABLES_IN_OUT.EXP new file mode 100644 index 0000000..10ec2d4 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/GLOBAL_VARIABLES_IN_OUT.EXP @@ -0,0 +1,354 @@ +(* @GLOBAL_VARIABLE_LIST := Global_Variables_IN_OUT *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) + VAR_GLOBAL +(*************************************************************************) +(* DIGITAL INPUT *) +(*************************************************************************) + DI_AuxVoltage_On AT %IX0.0 : BOOL; (* N10_I00_154U12 *) + DI_Reset_Horn_Btn AT %IX0.1 : BOOL; (* N10_I01_154U12 *) + DI_Filler_Emergency (* AT %IX0.1 *) : BOOL; + DI_Reset_Btn AT %IX0.2 : BOOL; (* N10_I02_154U12 *) + DI_Blender_Stop_Btn AT %IX0.3 : BOOL; (* N10_I03_154U12 *) + DI_Blender_Start_Btn AT %IX0.4 : BOOL; (* N10_I04_154U12 *) + DI_PowerSuppliesOk AT %IX0.5 : BOOL; (* N10_I05_154U12 *) + DI_Min_Deair_Level AT %IX0.6 : BOOL; (* N10_I06_154U12 *) + DI_Min_Syrup_Level (* AT %IX0.7 *) : BOOL; (* N10_I07_154U12 *) + DI_LinkByte0 AT %IB0 : BYTE ; + + DI_ProdTankEmpty AT %IX1.0 : BOOL; (* N10_I30_154U12 *) + DI_Max_Temperature_Alarm (* AT %IX1.0 *) : BOOL ; + DI_DeairVacuumOk (* AT %IX1.1 *) : BOOL; (* N10_I10_154U12 *) + DI_Min_Deair2_Level (* AT %IX1.2 *) : BOOL; (* N10_I06_154U12 *) + DI_Water_Pump2_Ovrld (* AT %IX1.3 *) : BOOL; (* N10_I20_154U12 *) + DI_Water_Pump2_Contactor (* AT %IX1.4 *) : BOOL; (* N10_I20_154U12 *) + DI_FillerRinseTankMaxLevel (* AT %IX1.0 *) : BOOL; (* N10_I10_154U12 *) + DI_FillerRinseTankMinLevel (* AT %IX1.1 *) : BOOL; (* N10_I10_154U12 *) + DI_FillerRinseTank_Pump_Ovrld (* AT %IX1.3 *) : BOOL; (* N10_I10_154U12 *) + DI_FillerRinseTank_Pump_Contactor (* AT %IX1.4 *) : BOOL; (* N10_I10_154U12 *) + DI_Water_Pump_SoftStart_Ovrld AT %IX1.3 : BOOL; (* N10_I20_154U12 *) + DI_Emergency_Pressed (* AT %IX1.3 *) : BOOL; + DI_Aux_Protection (* AT %IX1.4 *) : BOOL; + DI_BatteryNotReady AT %IX1.4 : BOOL ; + DI_VM1_Water_Valve_Closed AT %IX1.5 : BOOL; (* N10_I13_154U12 *) + DI_VM2_Syrup_Valve_Closed AT %IX1.6 : BOOL; (* N10_I16_154U12 *) + DI_VM3_CO2_Valve_Closed AT %IX1.7 : BOOL; (* N10_I17_154U12 *) + DI_LinkByte1 AT %IB1 : BYTE ; + + DI_Water_Pump_Ovrld AT %IX2.0 : BOOL; (* N10_I20_154U12 *) + DI_Water_Pump_Contactor AT %IX2.1 : BOOL; (* N10_I20_154U12 *) + DI_Syrup_Pump_Ovrld AT %IX2.2 : BOOL; (* N10_I20_154U12 *) + DI_Syrup_Pump_Contactor AT %IX2.3 : BOOL; (* N10_I20_154U12 *) + DI_Product_Pump_Ovrld AT %IX2.4 : BOOL; (* N10_I20_154U12 *) + DI_Product_Pump_Contactor AT %IX2.5 : BOOL; (* N10_I20_154U12 *) + DI_Product_Pump_VFC_Ready (* AT %IX2.6 *) : BOOL; (* N10_I20_154U12 *) + DI_LinkByte2 AT %IB2 : BYTE ; + + DI_CIP_Sensor_1 (* AT %IX3.0 *) : BOOL; (* N10_I30_154U12 *) + DI_CIP_Sensor_2 (* AT %IX3.1 *) : BOOL; (* N10_I30_154U12 *) + DI_WaterPipeCIP_Sensor (* AT %IX3.2 *) : BOOL; (* N10_I30_154U12 *) + DI_Prod_Sensor_1 (* AT %IX3.3 *) : BOOL; (* N10_I30_154U12 *) + DI_Prod_Sensor_2 (* AT %IX3.4 *) : BOOL; (* N10_I30_154U12 *) + + DI_EV62_ProductOutlet_Open (* AT %IX3.0 *) : BOOL; + DI_EV62_ProductOutlet_Close (* AT %IX3.1 *) : BOOL; + DI_EV46_FillerCO2Valve_Open (* AT %IX3.2 *) : BOOL; + DI_EV46_FillerCO2Valve_Close (* AT %IX3.3 *) : BOOL; + DI_Recycle_Pump_Ovrld (* AT %IX3.4 *) : BOOL; (* N10_I30_154U12 *) + DI_Recycle_Pump_Contactor (* AT %IX3.5 *) : BOOL; (* N10_I30_154U12 *) + DI_Vacuum_Pump_Ovrld (* AT %IX2.6 *) : BOOL; (* N10_I20_154U12 *) + DI_Vacuum_Pump_Contactor (* AT %IX2.7 *) : BOOL; (* N10_I20_154U12 *) + DI_LinkByte3 AT %IB3 : BYTE ; + + DI_Flr_FastRinseReady (* AT %IX5.5 *) : BOOL; (* N10_I90_154U32 *) + DI_Flr_OpenProductDrainEV69 (* AT %IX5.6 *) : BOOL; (* N10_I91_154U32 *) + DI_Flr_FastChangeWaterRequest (* AT %IX6.0 *) : BOOL; (* N10_I93_154U32 *) + DI_Flr_Spare36 (* AT %IX4.3 *) : BOOL; (* N10_I43_154U22 *) + DI_Flr_Spare37 (* AT %IX4.4 *) : BOOL; (* N10_I44_154U22 *) + DI_SyrRoom_WaterPump_Ready (* AT %IX4.5 *) : BOOL := TRUE; (* N10_I45_154U22 *) + DI_SyrRoom_SelectLine1 (* AT %IX4.6 *) : BOOL; (* N10_I46_154U22 *) + DI_SyrRoom_SelectLine2 (* AT %IX4.7 *) : BOOL; (* N10_I47_154U22 *) + DI_EV74_CIPInlet_Open (* AT %IX4.4 *) : BOOL; + DI_EV74_CIPInlet_Close (* AT %IX4.5 *) : BOOL; + DI_EV73_WaterInlet_Open (* AT %IX4.6 *) : BOOL; + DI_EV73_WaterInlet_Close (* AT %IX4.7 *) : BOOL; + DI_LinkByte4 AT %IB4 : BYTE ; + + DI_UV_Lamp_Ready (* AT %IX5.2 *) : BOOL; + DI_UV_Lamp_TempHigh (* AT %IX5.3 *) : BOOL; + DI_SyrRoom_Pump_Ready AT %IX5.0 : BOOL; (* N10_I50_154U22 *) + DI_Ammonia_CompressorReady (* AT %IX5.4 *) : BOOL := TRUE; (* N10_I50_154U22 *) + DI_Flr_Product_Request (* AT %IX5.1 *) : BOOL; (* N10_I51_154U22 *) + DI_Flr_Ready_to_Production (* AT %IX5.2 *) : BOOL; (* N10_I52_154U22 *) + DI_Flr_Ready_to_CIP (* AT %IX5.3 *) : BOOL; (* N10_I53_154U22 *) + DI_Flr_Start_ReturnPump (* AT %IX5.4 *) : BOOL; (* N10_I53_154U22 *) + DI_Flr_CIP_RinseDrainCompleted (* AT %IX5.4 *) : BOOL; (* N10_I54_154U22 *) + DI_AmmoniaHighLevel_Water (* AT %IX6.4 *) : BOOL; (* N10_I50_154U22 *) + DI_Flr_FastChangeLastContainerFilled (* AT %IX6.1 *) : BOOL; (* N10_I94_154U32 *) + DI_AmmoniaHighLevel_Product (* AT %IX6.5 *) : BOOL; (* N10_I50_154U22 *) + DI_Flr_CIP_RinseCycleEnded (* AT %IX5.7 *) : BOOL; (* N10_I53_154U22 *) + DI_AmmoniaLowPressure_Water (* AT %IX6.6 *) : BOOL; (* N10_I50_154U22 *) + DI_Flr_CIP_ChangeReady (* AT %IX5.7 *) : BOOL; (* N10_I53_154U22 *) + DI_AmmoniaLowPressure_Product (* AT %IX6.7 *) : BOOL; (* N10_I50_154U22 *) + DI_LinkByte5 AT %IB5 : BYTE ; + + DI_CIP_DrainRequest AT %IX6.2 : BOOL; (* N10_I60_154U22 *) + DI_CIP_TankFilling (* AT %IX6.1 *) : BOOL; (* N10_I60_154U22 *) + DI_CIP_RinseMode AT %IX6.1 : BOOL; (* N10_I60_154U22 *) + DI_CIP_CIPFault (* AT %IX5.7 *) : BOOL; (* N10_I60_154U22 *) + DI_CIP_Running (* AT %IX6.1 *) : BOOL; (* N10_I60_154U22 *) + DI_CIP_ChangeSanitize (* AT %IX6.2 *) : BOOL; (* N10_I64_154U22 *) + DI_CIP_CIPCompleted AT %IX6.3 : BOOL; (* N10_I65_154U22 *) + DI_CIP_CIPMode AT %IX6.0 : BOOL; (* N10_I66_154U22 *) + DI_CIP_CausticSanitizeRunning (* AT %IX6.5 *) : BOOL; (* N10_I60_154U22 *) + DI_LinkByte6 AT %IB6 : BYTE ; + + DI_CO2_InletPress_OK (* AT %IX7.0 *) : BOOL := TRUE ; (* N10_I70_154U22 *) + DI_Air_InletPress_OK AT %IX7.1 : BOOL; (* N10_I70_154U22 *) + DI_Syrup_Line_Drain_Sensor AT %IX7.2 : BOOL; (* N10_I70_154U22 *) + DI_CIP_ReturnFlowOk (* AT %IX7.3 *) : BOOL; (* N10_I70_154U22 *) + DI_O2TransdClean (* AT %IX7.4 *) : BOOL; (* N10_I70_154U22 *) + DI_Water_Manual_Valve_Open (* AT %IX7.5 *) : BOOL := TRUE ; (* N10_I70_154U22 *) + DI_LinkByte7 AT %IB7 : BYTE ; + + DI_PowerCoupler1Power (* AT %IX300.0 *) : BOOL; (* N10_I500_154U10/1 *) + DI_PowerCoupler1Short (* AT %IX300.1 *) : BOOL; (* N10_I501_154U10/1 *) + DI_PowerCoupler2Power (* AT %IX300.2 *) : BOOL; (* N10_I502_154U10/1 *) + DI_PowerCoupler2Short (* AT %IX300.3 *) : BOOL; (* N10_I503_154U10/1 *) + +(*************************************************************************) +(* DIGITAL OUTPUT *) +(*************************************************************************) + DO_UVLamp_Enable (* AT %QX0.1 *) : BOOL; + DO_SyrupInletValve_Enable AT %QX0.0 : BOOL; (* N10_O03_154U32 *) + DO_RecyclePumpRun (* AT %QX6.7 *) : BOOL; (* N10_O01_154U32 *) + DO_Vacuum_Pump_Run (* AT %QX3.7 *) : BOOL; (* N10_O77_154U42 *) + DO_Water_Pump2_Run (* AT %QX0.1 *) : BOOL; (* N10_O01_154U32 *) + DO_RecorderON (* AT %QX1.7 *) : BOOL; (* N10_O02_154U32 *) + DO_HoldBrixMeter AT %QX0.3 : BOOL; (* N10_O03_154U32 *) + DO_BrixMeterON (* AT %QX0.4 *) : BOOL; (* N10_O03_154U32 *) + DO_HoldO2Meter (* AT %QX0.2 *) : BOOL; (* N10_O03_154U32 *) + DO_EV03_Syrup_Lvl_Ctrl_Valve (* AT %QX19.6 *) : BOOL; (* N10_O05_154U32 *) + DO_EV04_Syrup_FillUp_Valve (* AT %QX19.7 *) : BOOL; (* N10_O04_154U32 *) + DO_LinkByte0 AT %QB0 : BYTE ; + + DO_SyrupRoomPump_Run AT %QX1.0 : BOOL; (* N10_O10_154U32 *) + DO_SyrupRoomWaterReq AT %QX1.1 : BOOL; (* N10_O12_154U32 *) + DO_CIP_CIPRequest AT %QX2.0 : BOOL; (* N10_O13_154U32 *) + DO_CIP_DrainCompleted AT %QX2.1 : BOOL ; + DO_CIP_CycleEnded (* AT %QX2.1 *) : BOOL ; + DO_CIP_ChangeReady (* AT %QX2.2 *) : BOOL; (* N10_O13_154U32 *) + DO_CIP_WaterPipe_Ready (* AT %QX1.6 *) : BOOL ; + DO_AmmoniaWaterColdRequest (* AT %QX1.4 *) : BOOL; (* N10_O150_154U34 *) + DO_AmmoniaProductColdRequest (* AT %QX1.5 *) : BOOL; (* N10_O151_154U34 *) + DO_AmmoniaWaterColdControl (* AT %QX1.6 *) : BOOL; (* N10_O142_154U32 *) + DO_AmmoniaProductColdControl (* AT %QX1.7 *) : BOOL; (* N10_O143_154U32 *) + DO_Ammonia_ByPassHotGas (* AT %QX1.5 *) : BOOL; (* N10_O151_154U34 *) + DO_Ammonia_CompressorRun (* AT %QX1.6 *) : BOOL; (* N10_O151_154U34 *) + DO_UV_Lamp_ONOFF (* AT %QX1.6 *) : BOOL; + DO_LinkByte1 AT %QB1 : BYTE ; + + DO_Flr_ProductionMode (* AT %QX4.0 *) : BOOL; (* N10_O12_154U32 *) + DO_Flr_ProductAvailable (* AT %QX4.1 *) : BOOL; (* N10_O13_154U32 *) + DO_Flr_CIP_Mode (* AT %QX4.2 *) : BOOL; (* N10_O14_154U32 *) + DO_Flr_CIP_StartReturnPump (* AT %QX2.3 *) : BOOL; (* N10_O14_154U32 *) + DO_Flr_CIP_Run (* AT %QX1.3 *) : BOOL; (* N10_O14_154U32 *) + DO_Flr_CIP_Cmpltd (* AT %QX4.5 *) : BOOL; (* N10_O17_154U32 *) + DO_Flr_CIP_Drain (* AT %QX4.4 *) : BOOL; (* N10_O15_154U32 *) + DO_Flr_RinseReq (* AT %QX4.3 *) : BOOL; (* N10_O14_154U32 *) + DO_Flr_FillerRunOutRequest (* AT %QX5.2 *) : BOOL; (* N10_O217_154U47 *) + DO_LinkByte2 AT %QB2 : BYTE; + + DO_ToBrixMeter_CIP (* AT %QX3.0 *) : BOOL; (* N10_O30_154U32 *) + DO_Flr_ProductCompleted (* AT %QX5.1 *) : BOOL; (* N10_O216_154U47 *) + DO_Flr_ChangeSanitize (* AT %QX3.1 *) : BOOL; (* N10_O216_154U47 *) + DO_Flr_FastRinseRequest (* AT %QX4.7 *) : BOOL; (* N10_O214_154U47 *) + DO_Flr_WaterRinseReady (* AT %QX5.0 *) : BOOL; (* N10_O215_154U47 *) + DO_Flr_BottleStop (* AT %QX4.6 *) : BOOL; (* N10_O20_154U32 *) + DO_LinkByte3 AT %QB3 : BYTE; + + DO_LinkByte4 AT %QB4 : BYTE ; + DO_LinkByte5 AT %QB5 : BYTE ; + + DO_EV31_CIPVenturi_Valve (* AT %QX17.7 *) : BOOL; (* N10_O200_154U42 *) + DO_EV32_CIPWashVenturi_Valve (* AT %QX18.0 *) : BOOL; (* N10_O201_154U42 *) + DO_EV33_CIPCaustic_Valve (* AT %QX18.1 *) : BOOL; (* N10_O202_154U42 *) + DO_EV34_CIPAcid_Valve (* AT %QX18.2 *) : BOOL; (* N10_O200_154U42 *) + DO_EV35_CIPDet_Valve (* AT %QX18.3 *) : BOOL; (* N10_O201_154U42 *) + DO_EV36_CIPRecirc_Valve (* AT %QX18.4 *) : BOOL; (* N10_O202_154U42 *) + DO_EV37_CIPDrain_Valve (* AT %QX18.5 *) : BOOL; (* N10_O203_154U42 *) + DO_EV38_CIPHeater_Valve (* AT %QX6.7 *) : BOOL; (* N10_O204_154U42 *) + DO_LinkByte6 AT %QB6 : BYTE ; + + DO_EV39_FlatWaterByPass_Valve (* AT %QX8.4 *) : BOOL; (* N10_O204_154U42 *) + DO_EV40_FlatWaterByPass_Valve (* AT %QX8.5 *) : BOOL; (* N10_O204_154U42 *) + DO_EV44_ProductPipeDrain2 (* AT %QX5.3 *) : BOOL; (* N10_O203_154U42 *) + DO_EV45_ProductChillerDrain AT %QX17.7 : BOOL; (* N10_O204_154U42 *) + + DO_Horn AT %QX3.0 : BOOL; (* N10_O70_154U42 *) + DO_Blender_Run_Lamp AT %QX3.1 : BOOL; (* N10_O71_154U42 *) + DO_Alarm_Lamp AT %QX3.2 : BOOL; (* N10_O72_154U42 *) + DO_RotorAlarm_Lamp AT %QX3.3 : BOOL; (* N10_O73_154U42 *) + DO_Water_Pump_Run AT %QX3.4 : BOOL; (* N10_O74_154U42 *) + DO_Syrup_Pump_Run AT %QX3.5 : BOOL; (* N10_O75_154U42 *) + DO_Product_Pump_Run AT %QX3.6 : BOOL; (* N10_O76_154U42 *) + DO_Product_Pump_VFC_Run (* AT %QX7.7*) : BOOL; (* N10_O77_154U42 *) + DO_LinkByte7 AT %QB7 : BYTE ; + + DO_FillerRinsePump (* AT %QX7.0 *) : BOOL; (* N10_O143_154U46 *) + + DO_EV48_Deair_Inlet_Valve (* AT %QX8.0 *) : BOOL; + DO_EV49_Deair_Bypass_Valve (* AT %QX8.1 *) : BOOL; + DO_EV50_Deair_Bypass_Valve (* AT %QX8.2 *) : BOOL; + DO_FillerNextRecipe_0 (* AT %QX2.0 *) : BOOL; (* N10_O225_154U47/2 *) + DO_FillerNextRecipe_1 (* AT %QX2.1 *) : BOOL; (* N10_O226_154U47/2 *) + DO_FillerNextRecipe_2 (* AT %QX2.2 *) : BOOL; (* N10_O227_154U47/2 *) + DO_FillerNextRecipe_3 (* AT %QX2.3 *) : BOOL; (* N10_O228_154U47/2 *) + DO_FillerNextRecipe_4 (* AT %QX2.4 *) : BOOL; (* N10_O230_154U47/3 *) + DO_FillerNextRecipe_5 (* AT %QX2.5 *) : BOOL; (* N10_O231_154U47/3 *) + DO_FillerNextRecipe_6 (* AT %QX2.6 *) : BOOL; (* N10_O232_154U47/3 *) + DO_FillerNextRecipe_7 (* AT %QX2.7 *) : BOOL; (* N10_O233_154U47/3 *) + DO_LinkByte8 AT %QB8 : BYTE ; + + DO_EV51_ByPassPolpe (* AT %QX9.1 *) : BOOL; (* N10_O150_154U36 *) + DO_EV52_ByPassPolpe (* AT %QX9.0 *) : BOOL; (* N10_O150_154U36 *) + DO_EV63_SyrupLineInletWater (* AT %QX9.4 *) : BOOL; (* N10_O190_154U30 *) + DO_EV64_SyrupLineInletSyrup1 (* AT %QX9.5 *) : BOOL; (* N10_O190_154U30 *) + DO_EV65_SyrupLineInletSyrup2 (* AT %QX9.6 *) : BOOL; (* N10_O190_154U30 *) + DO_EV66_FillerRinseWater (* AT %QX9.7 *) : BOOL; (* N10_O152_154U36 *) + DO_LinkByte9 AT %QB9 : BYTE ; + + DO_HoldSyrupMeter (* AT %QX10.0 *) : BOOL; (* N10_O170_154U38 *) + DO_EV67_SyrupLineDrain (* AT %QX10.0 *) : BOOL; (* N10_O153_154U36 *) + DO_EV68_FillerRinseTankInletWater (* AT %QX2.4 *) : BOOL; (* N10_O154_154U37 *) + DO_EV71_Filler_ProductPipeDrain (* AT %QX10.2 *) : BOOL; (* N10_O156_154U37 *) + DO_EV71_FillerRinseTankSprayBall (* AT %QX2.6 *) : BOOL; (* N10_O156_154U37 *) + DO_EV72_FillerRinseTankDrain (* AT %QX2.7 *) : BOOL; (* N10_O157_154U37 *) + DO_LinkByte10 AT %QB10 : BYTE ; + + DO_Yellow_Lamp (* AT %QX6.2 *) : BOOL; (* N10_O140_154U32 *) + DO_Green_Lamp (* AT %QX6.3 *) : BOOL; (* N10_O141_154U32 *) + DO_Red_Lamp (* AT %QX6.1 *) : BOOL; (* N10_O142_154U32 *) + DO_Blu_Lamp (* AT %QX6.4 *) : BOOL; (* N10_O142_154U32 *) + DO_White_Lamp (* AT %QX6.5 *) : BOOL; (* N10_O142_154U32 *) + DO_Thermic_Protection (* AT %QX6.6 *) : BOOL; (* N10_O142_154U32 *) + DO_EV02_Deair2_FillUp_Valve (* AT %QX11.4 *) : BOOL; (* N10_O06_154U32 *) + DO_EV01_Deair2_Lvl_Ctrl_Valve (* AT %QX11.5 *) : BOOL; (* N10_O07_154U32 *) + DO_LinkByte11 AT %QB11 : BYTE ; + + DO_EV01_Deair_Lvl_Ctrl_Valve AT %QX19.0 : BOOL; (* N10_O07_154U32 *) + DO_EV02_Deair_FillUp_Valve AT %QX19.1 : BOOL; (* N10_O06_154U32 *) + DO_EV11_BlowOff_Valve AT %QX16.0 : BOOL; (* N10_O180_154U38 *) + DO_EV12_Deair_Reflux_Valve (* AT %QX16.1 *) : BOOL; (* N10_O181_154U38 *) + DO_EV13_Prod_Recirc_Valve AT %QX16.1 : BOOL; (* N10_O182_154U38 *) + DO_EV14_DeairDrain_Valve AT %QX16.2 : BOOL; (* N10_O183_154U38 *) + DO_EV14_P1_DeairDrain_Valve (* AT %QX4.4 *) : BOOL; (* N10_O183_154U38 *) + DO_EV15_ProductTank_Drain_Valve AT %QX16.3 : BOOL; (* N10_O184_154U39 *) + DO_EV16_SyrupTank_Drain_Valve AT %QX16.4 : BOOL; (* N10_O185_154U39 *) + DO_EV17_BufferTankSprayBall_Valve AT %QX16.5 : BOOL; (* N10_O186_154U39 *) + DO_EV18_DeairOverfill_Valve AT %QX16.6 : BOOL; (* N10_O187_154U39 *) + DO_EV16_P1_SyrupTank_Drain_Valve (* AT %QX4.7*) : BOOL; (* N10_O185_154U39 *) + DO_EV21_ProdTankOverfill_Valve AT %QX16.7 : BOOL; (* N10_O190_154U42 *) + DO_EV17_P1_Syrup_Valve (* AT %QX5.1*) : BOOL; (* N10_O186_154U39 *) + DO_EV22_WaterPumpPrime_Valve AT %QX17.0 : BOOL; (* N10_O191_154U42 *) + DO_EV23_SerpentineDrain_valve AT %QX17.1 : BOOL; (* N10_O192_154U42 *) + DO_EV24_SyrupRecirc_Valve AT %QX17.2 : BOOL; (* N10_O193_154U42 *) + DO_EV25_VaccumPumpWater_Valve (* AT %QX17.3 *) : BOOL; (* N10_O194_154U42 *) + DO_EV26_CO2InjShutOff_Valve AT %QX17.3 : BOOL; (* N10_O195_154U42 *) + DO_EV27_DeairSprayBall_Valve AT %QX17.4 : BOOL; (* N10_O196_154U42 *) + DO_EV23_P1_DeairConnection_valve (* AT %QX5.6 *) : BOOL; (* N10_O192_154U42 *) + DO_EV28_DeairStartCO2Inj_Valve AT %QX17.5 : BOOL; (* N10_O197_154U42 *) + DO_EV41_CO2Inlet_Valve (* AT %QX18.6 *) : BOOL; (* N10_O200_154U42 *) + DO_EV42_N2Inlet_Valve (* AT %QX18.7 *) : BOOL; (* N10_O201_154U42 *) + DO_EV43_DeairVacu_Valve (* AT %QX18.2 *) : BOOL; (* N10_O202_154U42 *) + DO_EV44_SyrupLineDrain AT %QX17.6 : BOOL; (* N10_O193_154U42 *) + DO_EV46_FillerCO2Valve (* AT %QX17.4 *) : BOOL; (* N10_O151_154U36 *) + DO_EV61_SyrupTankSprayBall AT %QX18.0 : BOOL; (* N10_O150_154U36 *) + DO_EV62_ProductOutlet AT %QX18.1 : BOOL; (* N10_O151_154U36 *) + DO_EV69_Blender_ProductPipeDrain AT %QX18.2 : BOOL; (* N10_O155_154U37 *) + DO_EV73_WaterInlet_Valve (* AT %QX18.7 *) : BOOL; (* N10_O200_154U42 *) + DO_EV74_CIPInlet_Valve (* AT %QX19.0 *) : BOOL; (* N10_O201_154U42 *) + DO_EV75_SyrupInlet_Valve (* AT %QX19.1 *) : BOOL; (* N10_O201_154U42 *) + DO_EV76_SyrupBypass_Valve (* AT %QX19.2 *) : BOOL; (* N10_O201_154U42 *) + DO_EV77_SyrupBypass_Valve (* AT %QX19.3 *) : BOOL; (* N10_O201_154U42 *) + DO_EV78_ProductShutOff_Valve (* AT %QX19.4 *) : BOOL; (* N10_O201_154U42 *) + DO_EV80_Prod_Recirc_WoChiller_Valve (* AT %QX19.4 *) : BOOL; (* N10_O201_154U42 *) + DO_EV81_Prod_Recirc_Chiller_Valve AT %QX18.3 : BOOL; (* N10_O201_154U42 *) + + DO_LinkByte16 AT %QB16 : BYTE ; + DO_LinkByte17 AT %QB17 : BYTE ; + DO_LinkByte18 AT %QB18 : BYTE ; + DO_LinkByte19 AT %QB19 : BYTE ; + DO_LinkByte20 AT %QB20 : BYTE ; + DO_LinkByte21 AT %QB21 : BYTE ; + +(*************************************************************************) +(* ANALOG INPUT *) +(*************************************************************************) + + AI_ProductTankLevel AT %IW100 : WORD; (* N10_IW100_154U52 *) + AI_ProductTankPressure AT %IW102 : WORD; (* N10_IW102_154U52 *) + AI_CIPHeaterTemperature (* AT %IW110 *) : WORD; (* N10_IW104_154U52 *) + AI_CIPReturnTemperature (* AT %IW116 *) : WORD; (* N10_IW126_154U52 *) + AI_ProductTemperature AT %IW108 : WORD; (* N10_IW116_154U52 *) + AI_ProductConductivity (* AT %IW108 *) : WORD; (* N10_IW108_154U52 *) + AI_CIPWaterCond (* AT %IW108 *) : WORD; (* N10_IW108_154U52 *) + AI_ProductO2 (* AT %IW110 *) : WORD; (* N10_IW112_154U52 *) + AI_CIPCausticCond (* AT %IW110 *) : WORD; (* N10_IW104_154U52 *) + AI_DeairWaterTemperature AT %IW112 : WORD; (* N10_IW110_154U52 *) + AI_DeaireatorPressure (* AT %IW116 *) : WORD; (* N10_IW116_154U52 *) + AI_WaterTemperature (* AT %IW106 *) : WORD; (* N10_IW106_154U52 *) + AI_Spare7 (* AT %IW118 *) : WORD; (* N10_IW118_154U52 *) + AI_FillerLevel (* AT %IW120 *) : WORD; (* N10_IW120_154U52 *) + AI_Spare11 (* AT %IW122 *) : WORD; (* N10_IW122_154U52 *) + AI_P3_PVFreq (* AT %IW104 *) : WORD ; + AI_DifferentialTransducer (* AT %IW108 *) : INT ; + AI_SyrupTankLevel AT %IW110 : WORD; (* N10_IW116_154U52 *) + AI_InjectionPressure AT %IW114 : WORD ; + AI_ProdTankPressureValve_VEP1 AT %IW106 : INT; (* N10_IW116_154U52 *) + AI_DeaireationValve_VEP4 AT %IW104 : INT ; + +(*************************************************************************) +(* ANALOG INPUT *) +(*************************************************************************) + AI_ProductBrix (* AT %IW360 *) : WORD; (* N10_IW360_154U52 *) + AI_ProductCO2 (* AT %IW362 *) : WORD; (* N10_IW362_154U52 *) + AI_PoductTemp (* AT %IW364 *) : WORD; (* N10_IW364_154U52 *) + AI_PrecSpare3 (* AT %IW366 *) : WORD; (* N10_IW366_154U52 *) + AI_PrecSpare4 (* AT %IW368 *) : WORD; (* N10_IW368_154U52 *) + AI_PrecSpare5 (* AT %IW370 *) : WORD; (* N10_IW370_154U52 *) + AI_PrecSpare6 (* AT %IW372 *) : WORD; (* N10_IW372_154U52 *) + AI_PrecSpare7 (* AT %IW374 *) : WORD; (* N10_IW374_154U52 *) + +(*************************************************************************) +(* ANALOG OUTPUT *) +(*************************************************************************) + + AO_WaterCtrlValve_VM1 AT %QW100 : WORD ; (* N10_OW100_154U62 *) + AO_SyrupCtrlValve_VM2 AT %QW102 : WORD ; (* N10_OW102_154U62 *) + AO_CarboCO2CtrlValve_VM3 AT %QW104 : WORD ; (* N10_OW104_154U62 *) + AO_ProdTankPressureValve_VEP1 AT %QW106 : WORD ; (* N10_OW106_154U62 *) + + AO_SyrupInletValve_VEP3 AT %QW112 : WORD ; (* N10_OW102_154U62 *) + AO_ProductRunOutAmount (* AT %QW108 *) : WORD ; (* N10_OW108_154U72 *) + AO_WaterTempCtrlValve (* AT %QW116 *) : WORD ; (* N10_OW108_154U72 *) + AO_ProdPumpFreq (* AT %QW110 *) : WORD ; (* N10_OW110_154U72 *) + AO_ProdTempCtrlValve AT %QW110 : WORD ; (* N10_OW110_154U72 *) + AO_CIPTempCtrlValve (* AT %QW110 *) : WORD ; (* N10_OW112_154U72 *) + AO_ToFillerEqPress (* AT %QW114 *) : WORD ; (* N10_OW114_154U72 *) + AO_InjectionPressure AT %QW114 : WORD ; + AO_DeaireationValve_VEP4 AT %QW108 : WORD ; + AO_CIPWaterCond (* AT %QW116 *) : WORD; (* N10_IW108_154U52 *) + AO_CIPCausticCond (* AT %QW120 *) : WORD; (* N10_IW104_154U52 *) + AO_CIPReturnTemperature (* AT %QW118 *) : WORD; (* N10_IW126_154U52 *) + + AO_Spare8 (* AT %QW116 *) : WORD ; (* N10_OW116_154U82 *) + AO_Spare9 (* AT %QW118 *) : WORD ; (* N10_OW118_154U82 *) +END_VAR +(* @OBJECT_END := Global_Variables_IN_OUT *) +(* @CONNECTIONS := Global_Variables_IN_OUT +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/HMI_ALARMS.EXP b/backend/script_groups/TwinCat/.example/HMI_ALARMS.EXP new file mode 100644 index 0000000..17a008c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/HMI_ALARMS.EXP @@ -0,0 +1,322 @@ +(* @GLOBAL_VARIABLE_LIST := HMI_Alarms *) +(* @PATH := '\/HMI_Variable' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(**********************************************************************************************************************) +(* FAULT ALARMS *) +(**********************************************************************************************************************) + gH_Alarm001 :BOOL; (* Auxiliary Not Engaged *) + gH_Alarm002 :BOOL; (* Not a Recipe: invalid Recipe Type Selection *) + gH_Alarm003 :BOOL; (* Error during Densimeter Calibration *) + gH_Alarm004 :BOOL; (* Filler Communication Fault *) + gH_Alarm005 :BOOL; (* *) + gH_Alarm006 :BOOL; (* CIP Communication Fault *) + gH_Alarm007 :BOOL; (* Differential Pressure Transducer Fault *) + gH_Alarm008 :BOOL; (* Syrup tank flooded *) + gH_Alarm009 :BOOL; (* *) + gH_Alarm010 :BOOL; (* Profibus Valves Base Node12 Fault *) + gH_Alarm011 :BOOL; (* Profibus Valves Base Node13 Fault *) + gH_Alarm012 :BOOL; (* Profibus Low Conductimeter Node 15 Fault *) + gH_Alarm013 :BOOL; (* Profibus High Conductimeter Node 16 Fault *) + gH_Alarm014 :BOOL; (* Pressure Control Valve Position Fault *) + gH_Alarm015 :BOOL; (* Deareation Control Valve Position Fault *) + gH_Alarm016 :BOOL; (* Water Inlet Valve EV73 Position Fault *) + gH_Alarm017 :BOOL; (* CIP Inlet Valve EV74 Position Fault *) + gH_Alarm018 :BOOL; (* Product Outlet Valve EV62 Position Fault *) + gH_Alarm019 :BOOL; (* Filler Pressure Valve EV46 Position Fault *) + gH_Alarm020 :BOOL; (* Product Brix Too High *) + gH_Alarm021 :BOOL; (* Product Brix Too Low *) + gH_Alarm022 :BOOL; (* Product CO2 Too High *) + gH_Alarm023 :BOOL; (* Product CO2 Too Low *) + gH_Alarm024 :BOOL; (* *) + gH_Alarm025 :BOOL; (* Product Pump P3 VFC Fault - Fault Alarm *) + gH_Alarm026 :BOOL; (* ByPass Pump P6 Fault - Fault Alarm *) + gH_Alarm027 :BOOL; (* mPDS1000 Error Fault *) + gH_Alarm028 :BOOL; (* Densimeter Tubes Not Oscillating *) + gH_Alarm029 :BOOL; (* Water Pump P5 Fault - Fault Alarm - *) + gH_Alarm030 :BOOL; (* Water Pump P1 Fault - Fault Alarm - *) + gH_Alarm031 :BOOL; (* Syrup Pump P2 Fault - Fault Alarm - *) + gH_Alarm032 :BOOL; (* Product Pump P3 Fault - Fault Alarm - *) + gH_Alarm033 :BOOL; (* Vacuum Pump P4 Fault - Fault Alarm - *) + gH_Alarm034 :BOOL; (* Tank Rinse Pump P5 Fault - Fault Alarm - *) + gH_Alarm035 :BOOL; (* Water FlowMeter General Fault - Fault Alarm - *) + gH_Alarm036 :BOOL; (* Syrup FlowMeter General Fault - Fault Alarm - *) + gH_Alarm037 :BOOL; (* Carbo CO2 FlowMeter Fault - Fault Alarm - *) + gH_Alarm038 :BOOL; (* Water Control Valve Position Fault - Fault Alarm - *) + gH_Alarm039 :BOOL; (* Syrup Control Valve Position Fault - Fault Alarm - *) + gH_Alarm040 :BOOL; (* Carbo CO2 Control Valve Position Fault - Fault Alarm - *) + gH_Alarm041 :BOOL; (* Product Tank Pressure Fault - Fault Alarm - *) + gH_Alarm042 :BOOL; (* Blend Error Fault: High Syrup - Fault Alarm - *) + gH_Alarm043 :BOOL; (* Blend Error Fault: Low Syrup - Fault Alarm - *) + gH_Alarm044 :BOOL; (* CarboCO2 Error Fault: Low CO2 - Fault Alarm - *) + gH_Alarm045 :BOOL; (* CarboCO2 Error Fault: High CO2 - Fault Alarm - *) + gH_Alarm046 :BOOL; (* Vacuum TimeOut - Fault Alarm - *) + gH_Alarm047 :BOOL; (* CIP Transfer Time Out - Fault Alarm - *) + gH_Alarm048 :BOOL; (* CIP No Recirculation Flow - Fault Alarm - *) + gH_Alarm049 :BOOL; (* *) + gH_Alarm050 :BOOL; (* Profibus Master Node 1 Crash *) + gH_Alarm051 :BOOL; (* Profibus ET200 Node 10 Fault *) + gH_Alarm052 :BOOL; (* Profibus Water MFM Node 20 Fault *) + gH_Alarm053 :BOOL; (* Profibus Syrup MFM Node 21 Fault *) + gH_Alarm054 :BOOL; (* Profibus CO2 MFM Node 22 Fault *) + gH_Alarm055 :BOOL; (* Profibus Product Pump VFC Node Fault *) + gH_Alarm056 :BOOL; (* *) + gH_Alarm057 :BOOL; (* UPS Battery not ready - NON FERMA LA MACHINA *) + gH_Alarm058 :BOOL; (* Profibus Adapter mPDS Error Fault *) + gH_Alarm059 :BOOL; (* mPDS2000 Error Fault *) +(*********************************************************************************************************************) +(* SUPPLIES ALARMS *) +(*********************************************************************************************************************) + gH_Alarm060 :BOOL; (* Low Infeed Air Pressure Fault - Supplies Alarm - *) + gH_Alarm061 :BOOL; (* Low Infeed CO2 Pressure Fault - Supplies Alarm - *) + gH_Alarm062 :BOOL; (* Deaireator Water Low Level - Supplies Alarm - *) + gH_Alarm063 :BOOL; (* Syrup Tank Low Level - Supplies Alarm - *) + gH_Alarm064 :BOOL; (* Syrup Room Pump Fault - Supplies Alarm - *) + gH_Alarm065 :BOOL; (* Syrup Brix Out Of Standard - Supplies Alarm - *) + gH_Alarm066 :BOOL; (* Chiller Ammonia Pressure Too Low - Supplies Alarm - *) + gH_Alarm067 :BOOL; (* Water Temperature Too High *) + gH_Alarm068 :BOOL; (* Product Temperature Too High *) + gH_Alarm069 :BOOL; (* Syrup Room Water Pump Fault - Supplie Alarm - *) + gH_Alarm070 :BOOL; (* Syrup Density Out Of Standard - Supplies Alarm - *) + gH_Alarm071 :BOOL; (* *) + gH_Alarm072 :BOOL; (* Ammonia compressors not running - Supplies Alarm *) + gH_Alarm073 :BOOL; (* *) + gH_Alarm074 :BOOL; (* *) + gH_Alarm075 :BOOL; (* *) + gH_Alarm076 :BOOL; (* *) + gH_Alarm077 :BOOL; (* *) + gH_Alarm078 :BOOL; (* *) + gH_Alarm079 :BOOL; (* *) + gH_Alarm080 :BOOL; (* *) + gH_Alarm081 :BOOL; (* *) + gH_Alarm082 :BOOL; (* *) + gH_Alarm083 :BOOL; (* *) + gH_Alarm084 :BOOL; (* *) + gH_Alarm085 :BOOL; (* *) + gH_Alarm086 :BOOL; (* *) + gH_Alarm087 :BOOL; (* *) + gH_Alarm088 :BOOL; (* *) + gH_Alarm089 :BOOL; (* *) +(**********************************************************************************************************************) +(* EXTERNAL ALARMS *) +(**********************************************************************************************************************) + gH_Alarm090 :BOOL; (* CIP Fault *) + gH_Alarm091 :BOOL; (* *) + gH_Alarm092 :BOOL; (* *) + gH_Alarm093 :BOOL; (* *) + gH_Alarm094 :BOOL; (* *) + gH_Alarm095 :BOOL; (* *) + gH_Alarm096 :BOOL; (* *) + gH_Alarm097 :BOOL; (* *) + gH_Alarm098 :BOOL; (* *) + gH_Alarm099 :BOOL; (* *) + gH_Alarm100 :BOOL; (* *) + gH_Alarm101 :BOOL; (* *) + gH_Alarm102 :BOOL; (* *) + gH_Alarm103 :BOOL; (* *) + gH_Alarm104 :BOOL; (* *) + gH_Alarm105 :BOOL; (* *) + gH_Alarm106 :BOOL; (* *) + gH_Alarm107 :BOOL; (* *) + gH_Alarm108 :BOOL; (* *) + gH_Alarm109 :BOOL; (* *) + gH_Alarm110 :BOOL; (* *) + gH_Alarm111 :BOOL; (* *) + gH_Alarm112 :BOOL; (* *) + gH_Alarm113 :BOOL; (* *) + gH_Alarm114 :BOOL; (* *) + gH_Alarm115 :BOOL; (* *) + gH_Alarm116 :BOOL; (* *) + gH_Alarm117 :BOOL; (* *) + gH_Alarm118 :BOOL; (* *) + gH_Alarm119 :BOOL; (* *) +(**********************************************************************************************************************) +(* OPERATOR ALARMS *) +(**********************************************************************************************************************) + gH_Alarm120 :BOOL; (* Water Manual Valve Open *) + gH_Alarm121 :BOOL; (* Syrup Line Manual Drain Valve Open *) + gH_Alarm122 :BOOL; (* Syrup Line Not Selected *) + gH_Alarm123 :BOOL; (* *) + gH_Alarm124 :BOOL; (* *) + gH_Alarm125 :BOOL; (* *) + gH_Alarm126 :BOOL; (* *) + gH_Alarm127 :BOOL; (* *) + gH_Alarm128 :BOOL; (* *) + gH_Alarm129 :BOOL; (* *) + gH_Alarm130 :BOOL; (* Manifold not ready for Prod *) + gH_Alarm131 :BOOL; (* Manifold not ready for CIP *) + gH_Alarm132 :BOOL; (* *) + gH_Alarm133 :BOOL; (* *) + gH_Alarm134 :BOOL; (* *) + gH_Alarm135 :BOOL; (* *) + gH_Alarm136 :BOOL; (* *) + gH_Alarm137 :BOOL; (* *) + gH_Alarm138 :BOOL; (* *) + gH_Alarm139 :BOOL; (* *) + gH_Alarm140 :BOOL; (* *) + gH_Alarm141 :BOOL; (* *) + gH_Alarm142 :BOOL; (* *) + gH_Alarm143 :BOOL; (* *) + gH_Alarm144 :BOOL; (* *) + gH_Alarm145 :BOOL; (* *) + gH_Alarm146 :BOOL; (* *) + gH_Alarm147 :BOOL; (* *) + gH_Alarm148 :BOOL; (* *) + gH_Alarm149 :BOOL; (* *) + gH_Alarm150 :BOOL; (* *) +END_VAR + +VAR_GLOBAL + gH_Message000 AT%MB300:BOOL; (* *) + gH_Message001 AT%MB301:BOOL; (* *) + gH_Message002 AT%MB302:BOOL; (* *) + gH_Message003 AT%MB303:BOOL; (* Manual Activated *) + gH_Message004 AT%MB304:BOOL; (* *) + gH_Message005 AT%MB305:BOOL; (* *) + gH_Message006 AT%MB306:BOOL; (* *) + gH_Message007 AT%MB307:BOOL; (* *) + gH_Message008 AT%MB308:BOOL; (* Opeartor Run Syrup Prep *) + gH_Message009 AT%MB309:BOOL; (* Operator Start Deaireator *) + gH_Message010 AT%MB310:BOOL; (* *) + gH_Message011 AT%MB311:BOOL; (* *) + gH_Message012 AT%MB312:BOOL; (* Water Flow Too Low *) + gH_Message013 AT%MB313:BOOL; (* Water Stream Critical Speed *) + gH_Message014 AT%MB314:BOOL; (* *) + gH_Message015 AT%MB315:BOOL; (* *) + gH_Message016 AT%MB316:BOOL; (* *) + gH_Message017 AT%MB317:BOOL; (* CO2 inlet line pressure not stable *) + gH_Message018 AT%MB318:BOOL; (* Product Brix Low *) + gH_Message019 AT%MB319:BOOL; (* Product Brix High *) + gH_Message020 AT%MB320:BOOL; (* Product CO2 Vol Low *) + gH_Message021 AT%MB321:BOOL; (* Product CO2 Vol High *) + gH_Message022 AT%MB322:BOOL; (* *) + gH_Message023 AT%MB323:BOOL; (* *) + gH_Message024 AT%MB324:BOOL; (* *) + gH_Message025 AT%MB325:BOOL; (* *) + gH_Message026 AT%MB326:BOOL; (* *) + gH_Message027 AT%MB327:BOOL; (* Start Maselli pump *) + gH_Message028 AT%MB328:BOOL; (* Maselli Lamp Failure *) + gH_Message029 AT%MB329:BOOL; (* *) + gH_Message030 AT%MB330:BOOL; (* Wait Filler CIP Signal *) + gH_Message031 AT%MB331:BOOL; (* Wait Filler Product Request Signal *) + gH_Message032 AT%MB332:BOOL; (* Wait Filler Rinse Completed Signal *) + gH_Message033 AT%MB333:BOOL; (* Local CIP Wait Temperature *) + gH_Message034 AT%MB334:BOOL; (* Local CIP Wait High Conductivity *) + gH_Message035 AT%MB335:BOOL; (* Local CIP Wait Low Conductivity *) + gH_Message036 AT%MB336:BOOL; (* Local CIP Wait Drain Completed *) + gH_Message037 AT%MB337:BOOL; (* Local CIP Wait CIP cycle ended *) + gH_Message038 AT%MB338:BOOL; (* Local CIP Wait Change ready *) + gH_Message039 AT%MB339:BOOL; (* *) + gH_Message040 AT%MB340:BOOL; (* *) + gH_Message041 AT%MB341:BOOL; (* *) + gH_Message042 AT%MB342:BOOL; (* *) + gH_Message043 AT%MB343:BOOL; (* *) + gH_Message044 AT%MB344:BOOL; (* *) + gH_Message045 AT%MB345:BOOL; (* *) + gH_Message046 AT%MB346:BOOL; (* *) + gH_Message047 AT%MB347:BOOL; (* *) + gH_Message048 AT%MB348:BOOL; (* *) + gH_Message049 AT%MB349:BOOL; (* *) + gH_Message050 AT%MB350:BOOL; (* Chiler Ammonia level too high *) + gH_Message051 AT%MB351:BOOL; (* Product near to freezing temperature *) + gH_Message052 AT%MB352:BOOL; (* Product temperature too high *) + gH_Message053 AT%MB353:BOOL; (* Water near to freezing temperature *) + gH_Message054 AT%MB354:BOOL; (* Water temperature to high *) + gH_Message055 AT%MB355:BOOL; (* Check Oil in Modulating Valve *) + gH_Message056 AT%MB356:BOOL; (* Check Oil in water pump motor *) + gH_Message057 AT%MB357:BOOL; (* Profibus Product PH Node 18 Fault *) + gH_Message058 AT%MB358:BOOL; (* Profibus Product ConductiveMeter Node 19 Fault *) + gH_Message059 AT%MB359:BOOL; (* Product High Conductivity *) + gH_Message060 AT%MB360:BOOL; (* Product Low Conductivity *) + gH_Message061 AT%MB361:BOOL; (* Blend Fill System Start Up To Do *) + gH_Message062 AT%MB362:BOOL; (* Wait filler ready to start up *) + gH_Message063 AT%MB363:BOOL; (* Wait filler flushing completed *) + gH_Message064 AT%MB364:BOOL; (* Wait filler loading completed *) + gH_Message065 AT%MB365:BOOL; (* Profibus Product VFM Node 17 Fault *) + gH_Message066 AT%MB366:BOOL; (* *) + gH_Message067 AT%MB367:BOOL; (* *) + gH_Message068 AT%MB368:BOOL; (* *) + gH_Message069 AT%MB369:BOOL; (* *) + gH_Message070 AT%MB370:BOOL; (* *) + + gH_Status000 AT%MB600:BOOL; (* *) + gH_Status001 AT%MB601:BOOL; (* Waiting Product Tank Pressure *) + gH_Status002 AT%MB602:BOOL; (* Start Up Deaireator Running *) + gH_Status003 AT%MB603:BOOL; (* Syrup Prep Running *) + gH_Status004 AT%MB604:BOOL; (* Syrup Autocorrection Running *) + gH_Status005 AT%MB605:BOOL; (* Syrup Run Out Running *) + gH_Status006 AT%MB606:BOOL; (* First Product Running *) + gH_Status007 AT%MB607:BOOL; (* Waiting Vacuum *) + gH_Status008 AT%MB608:BOOL; (* Max Syrup Brix Autocorrection Acheaved - NOT USED*) + gH_Status009 AT%MB609:BOOL; (* Product Brix Tracking Hold *) + gH_Status010 AT%MB610:BOOL; (* Product Brix Tracking *) + gH_Status011 AT%MB611:BOOL; (* Product CO2 Tracking *) + gH_Status012 AT%MB600:BOOL; (* *) + gH_Status013 AT%MB600:BOOL; (* *) + gH_Status014 AT%MB614:BOOL; (* Warm Rinse Running *) + gH_Status015 AT%MB615:BOOL; (* Cold Rinse Running *) + gH_Status016 AT%MB616:BOOL; (* *) + gH_Status017 AT%MB617:BOOL; (* *) + gH_Status018 AT%MB618:BOOL; (* *) + gH_Status019 AT%MB619:BOOL; (* *) + gH_Status020 AT%MB620:BOOL; (* *) + gH_Status021 AT%MB621:BOOL; (* *) + gH_Status022 AT%MB622:BOOL; (* CIP Drain Activated *) + gH_Status023 AT%MB623:BOOL; (* Water Line Carbonating Running *) + gH_Status024 AT%MB624:BOOL; (* *) + gH_Status025 AT%MB625:BOOL; (* Product Tank Drain Active *) + gH_Status026 AT%MB626:BOOL; (* Rinse Drain Active *) + gH_Status027 AT%MB627:BOOL; (* *) + gH_Status028 AT%MB628:BOOL; (* *) + gH_Status029 AT%MB629:BOOL; (* *) + gH_Status030 AT%MB630:BOOL; (* *) + gH_Status031 AT%MB631:BOOL; (* *) + gH_Status032 AT%MB632:BOOL; (* *) + gH_Status033 AT%MB633:BOOL; (* *) + gH_Status034 AT%MB634:BOOL; (* *) + gH_Status035 AT%MB635:BOOL; (* *) + gH_Status036 AT%MB636:BOOL; (* *) + gH_Status037 AT%MB637:BOOL; (* Local CIP Hold *) + gH_Status038 AT%MB638:BOOL; (* Local CIP Completed *) + gH_Status039 AT%MB639:BOOL; (* System Run Out Running *) + gH_Status040 AT%MB640:BOOL; (* *) + gH_Status041 AT%MB641:BOOL; (* *) + gH_Status042 AT%MB642:BOOL; (* *) + gH_Status043 AT%MB643:BOOL; (* *) + gH_Status044 AT%MB644:BOOL; (* Product Tank Run Out Running *) + gH_Status045 AT%MB645:BOOL; (* Product Pipe Run Out Running *) + gH_Status046 AT%MB646:BOOL; (* *) + gH_Status047 AT%MB647:BOOL; (* Product Pipe Draining *) + gH_Status048 AT%MB648:BOOL; (* Filler Rinse Running *) + gH_Status049 AT%MB649:BOOL; (* *) + gH_Status050 AT%MB650:BOOL; (* *) + gH_Status051 AT%MB651:BOOL; (* *) + gH_Status052 AT%MB652:BOOL; (* *) + gH_Status053 AT%MB653:BOOL; (* *) + gH_Status054 AT%MB654:BOOL; (* *) + gH_Status055 AT%MB655:BOOL; (* *) + gH_Status056 AT%MB656:BOOL; (* *) + gH_Status057 AT%MB657:BOOL; (* *) + gH_Status058 AT%MB658:BOOL; (* *) + gH_Status059 AT%MB659:BOOL; (* *) + gH_Status060 AT%MB660:BOOL; (* *) + gH_Status061 AT%MB661:BOOL; (* Blend Fill System Buffer Tank Loading *) + gH_Status062 AT%MB662:BOOL; (* Blend Fill System Pressurization Running *) + gH_Status063 AT%MB663:BOOL; (* Blend Fill System Product Filler Load *) + gH_Status064 AT%MB664:BOOL; (* Blend Fill System Product Filler Send *) +END_VAR + +VAR_GLOBAL + gH_Message AT %MB300 : ARRAY [0..70] OF BOOL; + gH_Message_code :INT; + + gH_Status AT %MB600 : ARRAY [0..70] OF BOOL; + gH_Status_code : INT ; +END_VAR +(* @OBJECT_END := HMI_Alarms *) +(* @CONNECTIONS := HMI_Alarms +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/HMI_BLENDER_PARAMETERS.EXP b/backend/script_groups/TwinCat/.example/HMI_BLENDER_PARAMETERS.EXP new file mode 100644 index 0000000..05ce986 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/HMI_BLENDER_PARAMETERS.EXP @@ -0,0 +1,269 @@ +(* @GLOBAL_VARIABLE_LIST := HMI_Blender_Parameters *) +(* @PATH := '\/HMI_Variable' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL PERSISTENT +(*************************************************************************) +(* PROCESSOR OPTIONS *) +(*************************************************************************) + gH_Blender_OPT_ModelNum : UINT ; (* *) + gH_Blender_OPT_CO2_Offset : REAL ; (* *) + gH_Blender_OPT_MaxSyrDeltaBrix : REAL ; (* *) + + gH_Blender_OPT_BrixMeter : BOOL ; (* *) + gH_Blender_OPT_MeterType : UINT ; (* 1: Maselli 2: AntoonPaar 3: 4-20mA 4: UC05 UR22 *) + gH_Blender_OPT_MeterReceiveOnly : BOOL ; (* *) + gH_Blender_OPT_SyrBrixMeter : BOOL ; (* *) + gH_Blender_OPT_SyrupLevel : BOOL ; (* 0: Digital 1: Analogical *) + + gH_Blender_OPT_FastChangeOverEnabled : BOOL ; (* *) + gH_Blender_OPT_FillerRinseTank : BOOL ; (* *) + gH_Blender_OPT_BlendFillSystem : BOOL ; (* *) + gH_Blender_OPT_TrackFillerSpeed : BOOL ; (* *) + gH_Blender_OPT_SignalExchange : UINT ; (* 0: Hardware 1: Ethernet 2: DeviceNet *) + + gH_Blender_OPT_CoolerPresent : BOOL ; (* *) + gH_Blender_OPT_CoolerControl : UINT ; (* 0: External 1: Only Water 2: Only Product 3: Water+Product -Separated Control- 4: Water+Product -Single Control- *) + gH_Blender_OPT_CoolerType : UINT ; (* 0: Glycol 1: Ammonia *) + + gH_Blender_OPT_LocalCIP : BOOL ; (* *) + gH_Blender_OPT_Conductimeter : BOOL ; (* *) + gH_Blender_OPT_Conductimeter_Profibus : BOOL ; (* *) + gH_Blender_OPT_CIPSignalExchange : BOOL ; (* *) + + gH_Blender_OPT_RemoteInjection : BOOL ; (* *) + gH_Blender_OPT_CarboPresent : BOOL ; + gH_Blender_OPT_InjectionPress_Ctrl : BOOL ; (* 0: Manual 1: Automatic ----- Injection pressure control and deareation valve *) + gH_Blender_OPT_VacuumPump : BOOL ; (* *) + + gH_Blender_OPT_DoubleDeair : BOOL ; (* *) + gH_Blender_OPT_ByPassDeair : BOOL ; (* EV48 EV49 EV50 *) + gH_Blender_OPT_Deaireation : BOOL ; (* 0: SAG 1:SAE/SAF *) + gH_Blender_OPT_StillWaterByPass : BOOL ; (* EV39 EV40 *) + gH_Blender_OPT_Flowtronic : BOOL ; (* 0: Not Present 1: Present *) + + gH_Blender_OPT_Inverter : BOOL ; (* *) + gH_Blender_OPT_DivertPanel : UINT ; (* *) + gH_Blender_OPT_Promass : UINT ; (* *) + gH_Blender_OPT_WaterPromass : BOOL ; (* *) + gH_Blender_OPT_ProductConductimeter : BOOL ; (* *) + gH_Blender_OPT_ProductPulp : BOOL ; (* *) + gH_Blender_OPT_PLCDataAcq : BOOL ; (* *) + gH_Blender_OPT_CO2_N2_Injection : BOOL ; (* *) + gH_Blender_OPT_UPS_Siemens : BOOL ; (* *) + gH_Blender_OPT_UVLamp : BOOL ; (* *) + gH_Blender_OPT_RunOut_Water : BOOL ; (* 0: Water Not Present - 1: Water Present *) + + gH_Blender_OPT_Simulation : BOOL ; (* *) + + +(*************************************************************************) +(* ACTUAL RECIPE PARAMETERS *) +(*************************************************************************) + gH_A_Recipe_Name : STRING ; + gH_A_Recipe_SyrupBrix : REAL ; (* *) + gH_A_Recipe_SyrupDensity : REAL ; (* *) + gH_A_Recipe_SyrupFactor : REAL ; (* *) + gH_A_Recipe_ProductBrix : REAL ; (* *) + gH_A_Recipe_ProductionRate : REAL ; (* *) + gH_A_Recipe_Ratio : REAL ; (* *) + gH_A_Recipe_ProdBrixOffset : REAL ; (* *) + gH_A_Recipe_CO2Vols : REAL ; (* *) + gH_A_Recipe_CO2Fact : REAL ; (* *) + gH_A_Recipe_CO2 : BOOL ; (* *) + gH_A_Recipe_ProdTankPress : REAL ; (* *) + gH_A_Recipe_SP_ProdTemp : REAL ; (* *) + gH_A_Recipe_EnProdTemp : BOOL ; (* *) + gH_A_Recipe_PrdTankMinLevel : REAL ; (* *) + gH_A_Recipe_Type : INT ; (* *) + gH_A_Recipe_WaterValveSave : REAL ; (* *) + gH_A_Recipe_SyrupValveSave : REAL ; (* *) + gH_A_Recipe_CarboCO2ValveSave : REAL ; (* *) + gH_A_Recipe_ProdMeterRecipeNum : INT ; (* *) + gH_A_Recipe_ProdMeterHighBrix : REAL ; (* *) + gH_A_Recipe_ProdMeterLowBrix : REAL ; (* *) + gH_A_Recipe_ProdMeterHighCO2 : REAL ; (* *) + gH_A_Recipe_ProdMeterLowCO2 : REAL ; (* *) + gH_A_Recipe_ProdMeter_ZeroCO2 : REAL; + gH_A_Recipe_ProdMeter_ZeroBrix : REAL; + + gH_A_Recipe_ProdHighCond : REAL ; (* *) + gH_A_Recipe_ProdLowCond : REAL ; (* *) + gH_A_Recipe_WaterSelection : BYTE ; (* *) + gH_A_Recipe_EnDeaireation : BOOL ; (* *) + + gH_A_Recipe_FillerNextRecipeNum : BYTE ; (* *) + gH_A_Recipe_BottleSize : REAL; (* *) + gH_A_Recipe_BottleShape : SINT ; (* *) + gH_A_Recipe_FillingValveHead_SP : REAL ; + + gH_A_Recipe_Transfer : BOOL ; + + gH_mPDS1000_SyrupFactor : REAL ; (* *) + +(*************************************************************************) +(* NEXT RECIPE PARAMETERS *) +(*************************************************************************) + gH_N_Recipe_Name : STRING ; + gH_N_Recipe_SyrupBrix : REAL ; (* *) + gH_N_Recipe_SyrupDensity : REAL ; (* *) + gH_N_Recipe_SyrupFactor : REAL ; (* *) + gH_N_Recipe_ProductBrix : REAL ; (* *) + gH_N_Recipe_ProductionRate : REAL ; (* *) + gH_N_Recipe_Ratio : REAL ; (* *) + gH_N_Recipe_ProdBrixOffset : REAL ; (* *) + gH_N_Recipe_CO2Vols : REAL ; (* *) + gH_N_Recipe_CO2Fact : REAL ; (* *) + gH_N_Recipe_CO2 : BOOL ; (* *) + gH_N_Recipe_ProdTankPress : REAL ; (* *) + gH_N_Recipe_SP_ProdTemp : REAL ; (* *) + gH_N_Recipe_EnProdTemp : BOOL ; (* *) + gH_N_Recipe_PrdTankMinLevel : REAL ; (* *) + gH_N_Recipe_Type : INT ; (* *) + gH_N_Recipe_WaterValveSave : REAL ; (* *) + gH_N_Recipe_SyrupValveSave : REAL ; (* *) + gH_N_Recipe_CarboCO2ValveSave : REAL ; (* *) + gH_N_Recipe_ProdMeterRecipeNum : INT ; (* *) + gH_N_Recipe_ProdMeterHighBrix : REAL ; (* *) + gH_N_Recipe_ProdMeterLowBrix : REAL ; (* *) + gH_N_Recipe_ProdMeterHighCO2 : REAL ; (* *) + gH_N_Recipe_ProdMeterLowCO2 : REAL ; (* *) + gH_N_Recipe_ProdMeter_ZeroCO2 : REAL; + gH_N_Recipe_ProdMeter_ZeroBrix : REAL; + + gH_N_Recipe_ProdHighCond : REAL ; (* *) + gH_N_Recipe_ProdLowCond : REAL ; (* *) + gH_N_Recipe_WaterSelection : BYTE ; (* *) + gH_N_Recipe_EnDeaireation : BOOL ; (* *) + + gH_N_Recipe_FillerNextRecipeNum : BYTE ; (* *) + gH_N_Recipe_BottleSize : REAL; (* *) + gH_N_Recipe_BottleShape : SINT ; (* *) + gH_N_Recipe_FillingValveHead_SP : REAL ; + + gH_N_Recipe_Transfer : BOOL ; +(*************************************************************************) +(* ANALOG VALUES - READ/WRITE *) +(*************************************************************************) + gH_ProcessSetup_WaterPumpPressure : REAL ; (* Water Pump Maximum Pressure *) + gH_ProcessSetup_SyrupPumpPressure : REAL ; (* Syrup Pump Maximum Pressure *) + gH_ProcessSetup_KWaterLoss : REAL ; (* Friction Loss Constant in Serpentine *) + gH_ProcessSetup_KSyrupLoss : REAL ; (* Friction Loss Constant in Syrup Pipe *) + gH_ProcessSetup_KProdLoss : REAL ; (* Pressure Loss Factor *) + gH_ProcessSetup_KProdPump : REAL ; (* Frequency Overpressure Pump P3 Constant [Hz/mm] *) + gH_ProcessSetup_MinProduction : REAL ; (* Minimum Production Set Point - L/min - *) + gH_ProcessSetup_SyrupLinePressure : REAL ; (* Syrup Line pressure at VEP2 valve *) + + gH_ProcessSetup_CIPWaterValveOV : REAL ; (* Water Valve Opening During CIP *) + gH_ProcessSetup_CIPSyrupValveOV : REAL ; (* Syrup Valve Opening During CIP *) + gH_ProcessSetup_CIPProdTankMinLevel : REAL ; (* Product Tank Minimum Level In CIP *) + gH_ProcessSetup_CIPProdTankMaxLevel : REAL ; (* Product Tank Maximum Level In CIP *) + gH_ProcessSetup_CIPProdPumpFreq : REAL ; (* CIP frequency Value [Hz] *) + gH_ProcessSetup_CIPSyrTankMinLevel : REAL ; (* Syrup Tank Minimum Level In CIP *) + gH_ProcessSetup_CIPSyrTankMaxLevel : REAL ; (* Syrup Tank Maximum Level In CIP *) + + gH_ProcessSetup_RinseWaterValveOV : REAL ; (* Water Valve Opening During Rinse *) + gH_ProcessSetup_RinseSyrupValveOV : REAL ; (* Syrup Valve Opening During Rinse *) + gH_ProcessSetup_RinseProdTankPress : REAL ; (* Product Tank Pressure In Rinse *) + gH_ProcessSetup_RinseProdPumpFreq : REAL ; (* Rinse frequency Value [Hz] *) + + gH_ProcessSetup_KRecBlendError : REAL ; (* Blend Error Recovery CONSTANT *) + gH_ProcessSetup_KRecCarboCO2Error : REAL ; (* Carbonation Error Recovery Constant *) + gH_ProcessSetup_MaxBlendError : REAL ; (* Blend Error Maximum Value *) + gH_ProcessSetup_MaxCarboCO2Error : REAL ; (* Carbonation Error Maximum Value *) + gH_ProcessSetup_StartUpBrixExtraWater : REAL ; (* *) + gH_ProcessSetup_StartUpCO2ExtraWater : REAL ; (* *) + gH_ProcessSetup_StartUpProdPumpFreq : REAL ; (* Start Up frequency Value [Hz] *) + + gH_ProcessSetup_SyrupRoomTank : INT ; + gH_ProcessSetup_SyrupRunOutLiters : REAL ; (* *) + + gH_ProcessSetup_BPWaterPID : REAL ; (* *) + gH_ProcessSetup_TIWaterPID : REAL ; (* *) + gH_ProcessSetup_TDWaterPID : REAL ; (* *) + gH_ProcessSetup_FFWaterPID : REAL ; (* *) + + gH_ProcessSetup_BPSyrupPID : REAL ; (* *) + gH_ProcessSetup_TISyrupPID : REAL ; (* *) + gH_ProcessSetup_TDSyrupPID : REAL ; (* *) + gH_ProcessSetup_FFSyrupPID : REAL ; (* *) + + gH_ProcessSetup_BPCarboCO2PID : REAL ; (* *) + gH_ProcessSetup_TICarboCO2PID : REAL ; (* *) + gH_ProcessSetup_TDCarboCO2PID : REAL ; (* *) + gH_ProcessSetup_FFCarboCO2PID : REAL ; (* *) + + gH_ProcessSetup_BPCIPTempPID : REAL ; (* *) + gH_ProcessSetup_TICIPTempPID : REAL ; (* *) + gH_ProcessSetup_TDCIPTempPID : REAL ; (* *) + gH_ProcessSetup_FFCIPTempPID : REAL ; (* *) + + gH_ProcessSetup_BPProdTempPID : REAL ; (* *) + gH_ProcessSetup_TIProdTempPID : REAL ; (* *) + gH_ProcessSetup_TDProdTempPID : REAL ; (* *) + gH_ProcessSetup_FFProdTempPID : REAL ; (* *) + + gH_ProcessSetup_BPWaterTempPID : REAL ; (* *) + gH_ProcessSetup_TIWaterTempPID : REAL ; (* *) + gH_ProcessSetup_TDWaterTempPID : REAL ; (* *) + gH_ProcessSetup_FFWaterTempPID : REAL ; (* *) + + gH_ProcessSetup_BPSyrupLevelPID : REAL ; (* *) + gH_ProcessSetup_TISyrupLevelPID : REAL ; (* *) + gH_ProcessSetup_TDSyrupLevelPID : REAL ; (* *) + gH_ProcessSetup_FFSyrupLevelPID : REAL ; (* *) + + gH_ProcessSetup_KpCO2PressPID : REAL ; (* *) + gH_ProcessSetup_DeadBandCO2PressPID : REAL ; (* *) + gH_ProcessSetup_InjCO2Press_Offset : REAL ; (* *) + gH_ProcessSetup_InjCO2Press_MinFlow : UINT ; (* *) + gH_ProcessSetup_InjCO2Press_MaxFlow : UINT ; (* *) + gH_ProcessSetup_CarboCO2Pressure : REAL ; (* CO2 Pressure Infeed Line *) + gH_ProcessSetup_N2MinPressure : REAL ; (* N2 Minimum Pressure Infeed Line *) + + gH_ProcessSetup_BPFillingValvePID : REAL ; (* *) + gH_ProcessSetup_TIFillingValvePID : REAL ; (* *) + gH_ProcessSetup_TDFillingValvePID : REAL ; (* *) + gH_ProcessSetup_FFFillingValvePID : REAL ; (* Not USED *) + + gH_ProcessSetup_DiffSensor_Height : REAL := 1035.0 ; (* Sensor Height from Soil [mm] *) + gH_ProcessSetup_DiffSensor_DeltaHeight : REAL := 0.0 ; (* Sensor Plates Height Difference [mm] *) + gH_ProcessSetup_DiffSensor_Offset : REAL := 27.0 ; (* Sensor Offset Read with zero pressure (all valves open) in [mm] *) + + gH_ProcessSetup_FillingValveHeight : REAL := 1540.0 ; (* Filling Valve Height from soil [mm] *) + gH_ProcessSetup_FillerDiameter : REAL := 4960.0 ; (* Filler Carousel Diameter [mm] *) + gH_ProcessSetup_FillingValveNum : INT := 130 ; (* Filling Valves Number *) + gH_ProcessSetup_FillerProdPipeDN : REAL := 100.0 ; + gH_ProcessSetup_FillerProdPipeMass : REAL := 190 ; + gH_ProcessSetup_FillingTime : REAL ; + + gH_ProcessSetup_ProdTankHeight_0 : REAL := 990.0 ; (* Level at 0% Tank Level Height in mm *) + gH_ProcessSetup_ProdTankLevelPerc_2 : REAL := 53.88 ; (* Second level percentage *) + gH_ProcessSetup_ProdTankHeight_2 : REAL := 1995.0 ; (* Second level Height in mm *) + + gH_ProcessSetup_DeaireationFactor : REAL := 0.75 ; (* DeareationFlow/WaterFlow *) + gH_ProcessSetup_DeaireationKVValve : REAL := 0.3 ; (* DeareationFlow/(DeareationValveOpening*14.3*P1) *) + + + gH_FirstProdExtraBrix : REAL ; (*Start up *) + gH_FirstProdDietExtraSyr : REAL ; (*Start up *) + gH_FirstProdExtraCO2Fact : REAL ; (*Start up *) + + gH_ProdTankDrainStep0Time : TIME ; (* Step 0 Product Tank Drain Time *) + gH_ProdTankDrainStep1Time : TIME ; (* Step 1 Product Tank Drain Time *) + gH_ProdPipeRunOutStep0Time : TIME ; (* Step 0 Product Pipe Run Out Time *) + + gH_H2OOpenInProdPipeRunOut : REAL ; + gH_SyrupValveProdPipeRunOut : REAL ; + + gH_ProdPipeRunOutProdAmount : REAL ; (* Water amount used to push product through product pipe + serpentine - in Liters *) + gH_ProdTankRunOutChillerAmount : REAL ; (* Water amount used to push product through product chiller - in Liters *) + + gH_SwitchOff_DensityOk : BOOL; +END_VAR +(* @OBJECT_END := HMI_Blender_Parameters *) +(* @CONNECTIONS := HMI_Blender_Parameters +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/HMI_IO_SHOWING.EXP b/backend/script_groups/TwinCat/.example/HMI_IO_SHOWING.EXP new file mode 100644 index 0000000..f669732 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/HMI_IO_SHOWING.EXP @@ -0,0 +1,97 @@ +(* @GLOBAL_VARIABLE_LIST := HMI_IO_Showing *) +(* @PATH := '\/HMI_Variable' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(*************************************************************************) +(* FILLER I/O SIGNALS - PRODUCTION *) +(*************************************************************************) + gH_Filler_Production_DI0 : BOOL; (* *) + gH_Filler_Production_DI1 : BOOL; (* *) + gH_Filler_Production_DI2 : BOOL; (* *) + gH_Filler_Production_DI3 : BOOL; (* *) + gH_Filler_Production_DI4 : BOOL; (* *) + gH_Filler_Production_DI5 : BOOL; (* *) + gH_Filler_Production_DI6 : BOOL; (* *) + gH_Filler_Production_DI7 : BOOL; (* *) + + gH_Filler_Production_DO0 : BOOL; (* *) + gH_Filler_Production_DO1 : BOOL; (* *) + gH_Filler_Production_DO2 : BOOL; (* *) + gH_Filler_Production_DO3 : BOOL; (* *) + gH_Filler_Production_DO4 : BOOL; (* *) + gH_Filler_Production_DO5 : BOOL; (* *) + gH_Filler_Production_DO6 : BOOL; (* *) + gH_Filler_Production_DO7 : BOOL; (* *) + +(*************************************************************************) +(* FILLER I/O SIGNALS - CIP *) +(*************************************************************************) + gH_Filler_CIP_DI0 : BOOL; (* *) + gH_Filler_CIP_DI1 : BOOL; (* *) + gH_Filler_CIP_DI2 : BOOL; (* *) + gH_Filler_CIP_DI3 : BOOL; (* *) + gH_Filler_CIP_DI4 : BOOL; (* *) + gH_Filler_CIP_DI5 : BOOL; (* *) + gH_Filler_CIP_DI6 : BOOL; (* *) + gH_Filler_CIP_DI7 : BOOL; (* *) + + gH_Filler_CIP_DO0 : BOOL; (* *) + gH_Filler_CIP_DO1 : BOOL; (* *) + gH_Filler_CIP_DO2 : BOOL; (* *) + gH_Filler_CIP_DO3 : BOOL; (* *) + gH_Filler_CIP_DO4 : BOOL; (* *) + gH_Filler_CIP_DO5 : BOOL; (* *) + gH_Filler_CIP_DO6 : BOOL; (* *) + gH_Filler_CIP_DO7 : BOOL; (* *) + +(*************************************************************************) +(* Syrup Room I/O SIGNALS *) +(*************************************************************************) + gH_Syrup_Room_DI0 : BOOL; (* *) + gH_Syrup_Room_DI1 : BOOL; (* *) + gH_Syrup_Room_DI2 : BOOL; (* *) + gH_Syrup_Room_DI3 : BOOL; (* *) + gH_Syrup_Room_DI4 : BOOL; (* *) + gH_Syrup_Room_DI5 : BOOL; (* *) + gH_Syrup_Room_DI6 : BOOL; (* *) + gH_Syrup_Room_DI7 : BOOL; (* *) + + gH_Syrup_Room_DO0 : BOOL; (* *) + gH_Syrup_Room_DO1 : BOOL; (* *) + gH_Syrup_Room_DO2 : BOOL; (* *) + gH_Syrup_Room_DO3 : BOOL; (* *) + gH_Syrup_Room_DO4 : BOOL; (* *) + gH_Syrup_Room_DO5 : BOOL; (* *) + gH_Syrup_Room_DO6 : BOOL; (* *) + gH_Syrup_Room_DO7 : BOOL; (* *) + +(*************************************************************************) +(* CIP Room I/O SIGNALS *) +(*************************************************************************) + gH_CIP_Room_DI0 : BOOL; (* *) + gH_CIP_Room_DI1 : BOOL; (* *) + gH_CIP_Room_DI2 : BOOL; (* *) + gH_CIP_Room_DI3 : BOOL; (* *) + gH_CIP_Room_DI4 : BOOL; (* *) + gH_CIP_Room_DI5 : BOOL; (* *) + gH_CIP_Room_DI6 : BOOL; (* *) + gH_CIP_Room_DI7 : BOOL; (* *) + + gH_CIP_Room_DO0 : BOOL; (* *) + gH_CIP_Room_DO1 : BOOL; (* *) + gH_CIP_Room_DO2 : BOOL; (* *) + gH_CIP_Room_DO3 : BOOL; (* *) + gH_CIP_Room_DO4 : BOOL; (* *) + gH_CIP_Room_DO5 : BOOL; (* *) + gH_CIP_Room_DO6 : BOOL; (* *) + gH_CIP_Room_DO7 : BOOL; (* *) +END_VAR + + +(* @OBJECT_END := HMI_IO_Showing *) +(* @CONNECTIONS := HMI_IO_Showing +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/HMI_LOCAL_CIP_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/HMI_LOCAL_CIP_VARIABLES.EXP new file mode 100644 index 0000000..bc9dc1c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/HMI_LOCAL_CIP_VARIABLES.EXP @@ -0,0 +1,44 @@ +(* @GLOBAL_VARIABLE_LIST := HMI_Local_CIP_Variables *) +(* @PATH := '\/HMI_Variable' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(*************************************************************************) +(* CIP COMMANDS *) +(*************************************************************************) + gH_Blender_CIP_ProgStart : BOOL ; (* *) + gH_Blender_CIP_ProgStop : BOOL ; (* *) + gH_Blender_CIP_ProgPause : BOOL ; (* *) + gH_Blender_CIP_ProgStepUp : BOOL ; (* *) + gH_Blender_CIP_ProgStepDown : BOOL ; (* *) + gH_Blender_CIP_ProgInizialize : BOOL ; (* *) + + gH_Blender_CIP_Running : BOOL ; (* *) + gH_Blender_CIP_RunPause : BOOL ; (* *) + +(*************************************************************************) +(* CIP WORDS *) +(*************************************************************************) + gH_Blender_CIP_LinkName : STRING(32) ;(* From HMI Link Program Name *) + gH_Blender_CIP_SimpleName : STRING(32) ;(* To/From HMI Actual Running Simple Program *) + gH_Blender_CIP_StepTime : UINT ; + gH_Blender_CIP_StepNum : UINT ; + gH_Blender_CIP_TotalTime : UDINT ; + + gH_Blender_CIP_LinkProgPerc : REAL ; (* *) + gH_Blender_CIP_SimpleProgPerc : REAL ; (* *) + gH_Blender_CIP_PV_HighCond : REAL ; (* From HMI CIP Target High Conductivity *) + gH_Blender_CIP_PV_LowCond : REAL ; (* From HMI CIP Low Conductivity Threshold *) + gH_Blender_CIPHeaterTempPV : REAL ; + gH_Blender_CIPReturnTempPV : REAL ; + gH_Blender_CIP_SP_Temp : REAL ; (* From HMI CIP Target Temperature *) + gH_Blender_CIP_SP_HighCond : REAL ; (* From HMI CIP Target High Conductivity *) + gH_Blender_CIP_SP_LowCond : REAL ; (* From HMI CIP Low Conductivity Threshold *) +END_VAR + +(* @OBJECT_END := HMI_Local_CIP_Variables *) +(* @CONNECTIONS := HMI_Local_CIP_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/HMI_SERVICE.EXP b/backend/script_groups/TwinCat/.example/HMI_SERVICE.EXP new file mode 100644 index 0000000..f4cbc0c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/HMI_SERVICE.EXP @@ -0,0 +1,65 @@ +(* @GLOBAL_VARIABLE_LIST := HMI_Service *) +(* @PATH := '\/HMI_Variable' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(*************************************************************************) +(* SERVICE STATUS *) +(*************************************************************************) + gH_WaterPipeSpeed : REAL ; + gH_WaterVFMSpeed : REAL ; + gH_EstimateDeairCO2 : REAL ; + gH_EstimateFillerCO2Loss : REAL ; + gH_InletWaterO2 : REAL ; + gH_DeairWaterO2 : REAL := 1.0 ; + gH_DeairNominalCO2Flow : REAL ; + gH_InletSyrupO2 : REAL ; + gH_EstimateProductO2 : REAL ; + gH_PIDH2OPropOut : REAL ; + gH_PIDH2OIntOut : REAL ; + gH_PIDH2ODerOut : REAL ; + gH_PIDSyrPropOut : REAL ; + gH_PIDSyrIntOut : REAL ; + gH_PIDSyrDerOut : REAL ; + gH_PIDCarboCO2PropOut : REAL ; + gH_PIDCarboCO2IntOut : REAL ; + gH_PIDCarboCO2DerOut : REAL ; + gH_EstimateFillerFlow : REAL ; + + gH_SyrupProductAvailable : REAL ; + gH_PrdTankProductAvailable : REAL ; + gH_PrdPipeProductAvailable : REAL ; + gH_FillerProductAvailable : REAL ; + gH_TotalProductAvailable : REAL ; + + gH_FillerStopContainer : BOOL ; + gH_DepallStop : BOOL ; + + +(*************************************************************************) +(* WORKSHOP TEST *) +(*************************************************************************) + gH_WorkshopTest : BOOL ; + + gH_SIMCipMode : BOOL ; + gH_SIMCipRunning : BOOL ; + gH_SIMCipChangeSanitize : BOOL ; + gH_SIMCipDrainRequest : BOOL ; + gH_SIMCipCompleted : BOOL ; + gH_SIMCipCausticSanitizeRun : BOOL ; + + gH_SIMFillerEV46Enable : BOOL ; + gH_SIMFillerEV62Enable : BOOL ; + gH_SIMFillerProdReady : BOOL ; +END_VAR + +VAR_GLOBAL PERSISTENT + gH_TotalEmptyContainer : REAL ; +END_VAR + +(* @OBJECT_END := HMI_Service *) +(* @CONNECTIONS := HMI_Service +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/HMI_VARIABLES_CMD.EXP b/backend/script_groups/TwinCat/.example/HMI_VARIABLES_CMD.EXP new file mode 100644 index 0000000..46aa8b1 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/HMI_VARIABLES_CMD.EXP @@ -0,0 +1,291 @@ +(* @GLOBAL_VARIABLE_LIST := HMI_Variables_Cmd *) +(* @PATH := '\/HMI_Variable' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(*************************************************************************) +(* COMMANDS FROM HMI *) +(*************************************************************************) + gH_CMD_SyrupMFM_Prep : BOOL ; (* Syrup Tank & MFM StartUp Sequence Request *) + gH_CMD_SyrupTank_Prep : BOOL ; (* Syrup Line & Tank & MFM StartUp Sequence Request *) + gH_CMD_Deair_StartUp : BOOL ; (* Deairator StartUp Sequence Request *) + gH_CMD_FirstProduction : BOOL ; (* First Production Request *) + gH_CMD_PrdBrixTrackingReq : BOOL ; (* Product Brix Tracking Request *) + gH_CMD_SyrAutoReq : BOOL ; (* Syrup Autocorrection Request *) + gH_CMD_SyrDensimeterCal : BOOL ; (* Syrup Densimeter Calibration *) + gH_CMD_SyrRunOutReq : BOOL ; (* Syrup Run Out Request *) + gH_CMD_ProdTankDrainReq : BOOL ; (* Product Tank Drain Request *) + gH_CMD_ProdTankRunOutReq : BOOL ; (* Product Tank Run Out Request *) + gH_CMD_ProdTankPressReq : BOOL ; (* Product Tank Pressure Request *) + gH_CMD_ColdRinseReq : BOOL ; (* Blender Cold Rinse Request *) + gH_CMD_WarmRinseReq : BOOL ; (* Blender Warm Rinse Request *) + gH_CMD_BlenderMaintenance : BOOL ; (* Blender in Manteinance to configure mod valve *) + + gH_CMD_ProdBrixRecoveryReq : BOOL ; + + gH_CMD_CIP_TotalDrainReq : BOOL ; + gH_CMD_CIP_PrdTankFloodReq : BOOL ; + gH_CMD_CIP_DeairTankFloodReq : BOOL ; + gH_CMD_CIP_SyrTankFloodReq : BOOL ; + +(*************************************************************************) +(* System Run Out *) +(*************************************************************************) + gH_CMD_SystemRunOutEnable : BOOL ; + gH_CMD_StartSystemRunOut : BOOL ; + gH_CMD_SyrLinePrepReq : BOOL ; + gH_CMD_SyrLineRinseReq : BOOL ; + + gH_CMD_ProdPipeRunOutReq : BOOL ; + gH_CMD_ProdPipeDrainReq : BOOL ; + gH_CMD_ProdPipeRinseReq : BOOL ; + gH_CMD_SyrTankDrainReq : BOOL ; + gH_CMD_SyrTankRinseReq : BOOL ; + + gH_FastChangeSequenceNum : INT ; +END_VAR + +VAR_GLOBAL PERSISTENT + gH_CMD_Filler1Slctd : BOOL ; + gH_CMD_Filler2Slctd : BOOL ; + + gH_CMD_SwapSyrupLine : BOOL ; + gH_CMD_SyrLine1Slctd : BOOL ; + gH_CMD_SyrLine2Slctd : BOOL ; + gH_CMD_EnableNextRecipe : BOOL ; + +(*************************************************************************) +(* RECIPE UPDATES *) +(*************************************************************************) + gH_SyrFactUpdate : BOOL ; + gH_ValvesUpdate : BOOL ; + +(*************************************************************************) +(* ON - OFF VALVES *) +(*************************************************************************) + gH_EV01_Auto : BOOL; (* *) + gH_EV02_Auto : BOOL; (* *) + gH_EV01_1_Auto : BOOL; (* *) + gH_EV02_1_Auto : BOOL; (* *) + gH_EV03_Auto : BOOL; (* *) + gH_EV04_Auto : BOOL; (* *) + gH_EV01_Manual : BOOL; (* *) + gH_EV02_Manual : BOOL; (* *) + gH_EV01_1_Manual : BOOL; (* *) + gH_EV02_1_Manual : BOOL; (* *) + gH_EV03_Manual : BOOL; (* *) + gH_EV04_Manual : BOOL; (* *) + + gH_EV11_Auto : BOOL; (* *) + gH_EV12_Auto : BOOL; (* *) + gH_EV13_Auto : BOOL; (* *) + gH_EV14_Auto : BOOL; (* *) + gH_EV14_1_Auto : BOOL; (* *) + gH_EV15_Auto : BOOL; (* *) + gH_EV16_Auto : BOOL; (* *) + gH_EV16_1_Auto : BOOL; (* *) + gH_EV17_Auto : BOOL; (* *) + gH_EV18_Auto : BOOL; (* *) + gH_EV11_Manual : BOOL; (* *) + gH_EV12_Manual : BOOL; (* *) + gH_EV13_Manual : BOOL; (* *) + gH_EV14_Manual : BOOL; (* *) + gH_EV14_1_Manual : BOOL; (* *) + gH_EV15_Manual : BOOL; (* *) + gH_EV16_Manual : BOOL; (* *) + gH_EV16_1_Manual : BOOL; (* *) + gH_EV17_Manual : BOOL; (* *) + gH_EV18_Manual : BOOL; (* *) + + gH_EV21_Auto : BOOL; (* *) + gH_EV22_Auto : BOOL; (* *) + gH_EV23_Auto : BOOL; (* *) + gH_EV23_1_Auto : BOOL; (* *) + gH_EV24_Auto : BOOL; (* *) + gH_EV25_Auto : BOOL; (* *) + gH_EV26_Auto : BOOL; (* *) + gH_EV27_Auto : BOOL; (* *) + gH_EV28_Auto : BOOL; (* *) + gH_EV21_Manual : BOOL; (* *) + gH_EV22_Manual : BOOL; (* *) + gH_EV23_Manual : BOOL; (* *) + gH_EV23_1_Manual : BOOL; (* *) + gH_EV24_Manual : BOOL; (* *) + gH_EV25_Manual : BOOL; (* *) + gH_EV26_Manual : BOOL; (* *) + gH_EV27_Manual : BOOL; (* *) + gH_EV28_Manual : BOOL; (* *) + + gH_EV31_Auto : BOOL; (* *) + gH_EV32_Auto : BOOL; (* *) + gH_EV33_Auto : BOOL; (* *) + gH_EV34_Auto : BOOL; (* *) + gH_EV35_Auto : BOOL; (* *) + gH_EV36_Auto : BOOL; (* *) + gH_EV37_Auto : BOOL; (* *) + gH_EV38_Auto : BOOL; (* *) + gH_EV39_Auto : BOOL; (* *) + gH_EV31_Manual : BOOL; (* *) + gH_EV32_Manual : BOOL; (* *) + gH_EV33_Manual : BOOL; (* *) + gH_EV34_Manual : BOOL; (* *) + gH_EV35_Manual : BOOL; (* *) + gH_EV36_Manual : BOOL; (* *) + gH_EV37_Manual : BOOL; (* *) + gH_EV38_Manual : BOOL; (* *) + gH_EV39_Manual : BOOL; (* *) + + gH_EV40_Auto : BOOL; (* *) + gH_EV41_Auto : BOOL; (* *) + gH_EV42_Auto : BOOL; (* *) + gH_EV43_Auto : BOOL; (* *) + gH_EV44_Auto : BOOL; (* *) + gH_EV45_Auto : BOOL; (* *) + gH_EV46_Auto : BOOL; (* *) + gH_EV47_Auto : BOOL; (* *) + gH_EV48_Auto : BOOL; (* *) + gH_EV49_Auto : BOOL; (* *) + gH_EV40_Manual : BOOL; (* *) + gH_EV41_Manual : BOOL; (* *) + gH_EV42_Manual : BOOL; (* *) + gH_EV43_Manual : BOOL; (* *) + gH_EV44_Manual : BOOL; (* *) + gH_EV45_Manual : BOOL; (* *) + gH_EV46_Manual : BOOL; (* *) + gH_EV47_Manual : BOOL; (* *) + gH_EV48_Manual : BOOL; (* *) + gH_EV49_Manual : BOOL; (* *) + + gH_EV50_Auto : BOOL; (* *) + gH_EV51_Auto : BOOL; (* *) + gH_EV52_Auto : BOOL; (* *) + gH_EV53_Auto : BOOL; (* *) + gH_EV54_Auto : BOOL; (* *) + gH_EV55_Auto : BOOL; (* *) + gH_EV56_Auto : BOOL; (* *) + gH_EV57_Auto : BOOL; (* *) + gH_EV58_Auto : BOOL; (* *) + gH_EV59_Auto : BOOL; (* *) + gH_EV50_Manual : BOOL; (* *) + gH_EV51_Manual : BOOL; (* *) + gH_EV52_Manual : BOOL; (* *) + gH_EV53_Manual : BOOL; (* *) + gH_EV54_Manual : BOOL; (* *) + gH_EV55_Manual : BOOL; (* *) + gH_EV56_Manual : BOOL; (* *) + gH_EV57_Manual : BOOL; (* *) + gH_EV58_Manual : BOOL; (* *) + gH_EV59_Manual : BOOL; (* *) + + gH_EV61_Auto : BOOL; (* *) + gH_EV62_Auto : BOOL; (* *) + gH_EV63_Auto : BOOL; (* *) + gH_EV64_Auto : BOOL; (* *) + gH_EV65_Auto : BOOL; (* *) + gH_EV66_Auto : BOOL; (* *) + gH_EV67_Auto : BOOL; (* *) + gH_EV68_Auto : BOOL; (* *) + gH_EV69_Auto : BOOL; (* *) + gH_EV61_Manual : BOOL; (* *) + gH_EV62_Manual : BOOL; (* *) + gH_EV63_Manual : BOOL; (* *) + gH_EV64_Manual : BOOL; (* *) + gH_EV65_Manual : BOOL; (* *) + gH_EV66_Manual : BOOL; (* *) + gH_EV67_Manual : BOOL; (* *) + gH_EV68_Manual : BOOL; (* *) + gH_EV69_Manual : BOOL; (* *) + + gH_EV71_Auto : BOOL; (* *) + gH_EV72_Auto : BOOL; (* *) + gH_EV73_Auto : BOOL; (* *) + gH_EV74_Auto : BOOL; (* *) + gH_EV75_Auto : BOOL; (* *) + gH_EV76_Auto : BOOL; (* *) + gH_EV77_Auto : BOOL; (* *) + gH_EV78_Auto : BOOL; (* *) + gH_EV79_Auto : BOOL; (* *) + gH_EV80_Auto : BOOL; (* *) + gH_EV81_Auto : BOOL; (* *) + gH_EV83_Auto : BOOL; (* *) + gH_EV84_Auto : BOOL; (* *) + gH_EV89_Auto : BOOL; (* *) + gH_EV71_Manual : BOOL; (* *) + gH_EV72_Manual : BOOL; (* *) + gH_EV73_Manual : BOOL; (* *) + gH_EV74_Manual : BOOL; (* *) + gH_EV75_Manual : BOOL; (* *) + gH_EV76_Manual : BOOL; (* *) + gH_EV77_Manual : BOOL; (* *) + gH_EV78_Manual : BOOL; (* *) + gH_EV79_Manual : BOOL; (* *) + gH_EV80_Manual : BOOL; (* *) + gH_EV81_Manual : BOOL; (* *) + gH_EV83_Manual : BOOL; (* *) + gH_EV84_Manual : BOOL; (* *) + gH_EV89_Manual : BOOL; (* *) + +(*************************************************************************) +(* MODULATING VALVES *) +(*************************************************************************) + gH_WaterValve_Auto : BOOL ; (* *) + gH_WaterValve_Manual : REAL ; (* *) + + gH_SyrupValve_Auto : BOOL ; (* *) + gH_SyrupValve_Manual : REAL ; (* *) + + gH_CO2CarboValve_Auto : BOOL ; (* *) + gH_CO2CarboValve_Manual : REAL ; (* *) + + gH_CO2PressValve_Auto : BOOL ; (* *) + gH_CO2PressValve_Manual : REAL ; (* *) + + gH_SyrupLevelValve_Auto : BOOL ; (* *) + gH_SyrupLevelValve_Manual : REAL ; (* *) + + gH_VEP_DeaireationValve_Auto : BOOL ; (* *) + gH_VEP_DeaireationValve_Manual : REAL ; (* *) + + gH_WaterTempValve_Man_Out_ON : BOOL ; (* Manual OUT Active *) + gH_WaterTempValve_Man_SP_ON : BOOL ; (* Manual SP Active *) + gH_WaterTempValve_Out_Man_Value : REAL ; (* Manual OUT control Value *) + gH_WaterTempValve_SP_Man_Value : REAL ; (* Manual SP control Value *) + + gH_ProdTempValve_Man_Out_ON : BOOL ; (* Manual OUT Active *) + gH_ProdTempValve_Man_SP_ON : BOOL ; (* Manual SP Active *) + gH_ProdTempValve_Out_Man_Value : REAL ; (* Manual OUT control Value *) + gH_ProdTempValve_SP_Man_Value : REAL ; (* Manual SP control Value *) + + gH_CIPTempValve_Man_Out_ON : BOOL ; (* Manual OUT Active *) + gH_CIPTempValve_Man_SP_ON : BOOL ; (* Manual SP Active *) + gH_CIPTempValve_Out_Man_Value : REAL ; (* Manual OUT control Value *) + gH_CIPTempValve_SP_Man_Value : REAL ; (* Manual SP control Value *) + +(*************************************************************************) +(* PUMPS *) +(*************************************************************************) + gH_P1_WaterPump_Auto : BOOL ; (* *) + gH_P2_SyrupPump_Auto : BOOL ; (* *) + gH_P3_ProductPump_Auto : BOOL ; (* *) + gH_P4_VacuumPump_Auto : BOOL ; (* *) + gH_P5_WaterPump_Auto : BOOL ; (* *) + gH_P5_RinseTankPump_Auto : BOOL ; (* *) + gH_P6_RecircPump_Auto : BOOL ; (* *) + gH_P5_WaterPump_Manual : BOOL ; (* *) + gH_P1_WaterPump_Manual : BOOL ; (* *) + gH_P2_SyrupPump_Manual : BOOL ; (* *) + gH_P3_ProductPump_Manual : BOOL ; (* *) + gH_P3_ProductPumpFC_Manual : REAL ; (* *) + gH_P4_VacuumPump_Manual : BOOL ; (* *) + gH_P5_RinseTankPump_Manual : BOOL ; (* *) + gH_P6_RecircPump_Manual : BOOL ; (* *) + gH_SyrupRoomPump_Auto : BOOL ; (* *) + gH_SyrupRoomPump_Manual : BOOL ; (* *) +END_VAR + +(* @OBJECT_END := HMI_Variables_Cmd *) +(* @CONNECTIONS := HMI_Variables_Cmd +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/HMI_VARIABLES_STATUS.EXP b/backend/script_groups/TwinCat/.example/HMI_VARIABLES_STATUS.EXP new file mode 100644 index 0000000..dbfc546 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/HMI_VARIABLES_STATUS.EXP @@ -0,0 +1,353 @@ +(* @GLOBAL_VARIABLE_LIST := HMI_Variables_Status *) +(* @PATH := '\/HMI_Variable' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(*************************************************************************) +(* ON - OFF VALVES *) +(*************************************************************************) + gH_EV01_Status : BOOL; (* *) + gH_EV02_Status : BOOL; (* *) + gH_EV01_1_Status : BOOL; (* *) + gH_EV02_1_Status : BOOL; (* *) + gH_EV03_Status : BOOL; (* *) + gH_EV04_Status : BOOL; (* *) + + gH_EV11_Status : BOOL; (* *) + gH_EV12_Status : BOOL; (* *) + gH_EV13_Status : BOOL; (* *) + gH_EV14_Status : BOOL; (* *) + gH_EV14_1_Status : BOOL; (* *) + gH_EV15_Status : BOOL; (* *) + gH_EV16_Status : BOOL; (* *) + gH_EV16_1_Status : BOOL; (* *) + gH_EV17_Status : BOOL; (* *) + gH_EV18_Status : BOOL; (* *) + + gH_EV21_Status : BOOL; (* *) + gH_EV22_Status : BOOL; (* *) + gH_EV23_Status : BOOL; (* *) + gH_EV23_1_Status : BOOL; (* *) + gH_EV24_Status : BOOL; (* *) + gH_EV25_Status : BOOL; (* *) + gH_EV26_Status : BOOL; (* *) + gH_EV27_Status : BOOL; (* *) + gH_EV28_Status : BOOL; (* *) + + gH_EV31_Status : BOOL; (* *) + gH_EV32_Status : BOOL; (* *) + gH_EV33_Status : BOOL; (* *) + gH_EV34_Status : BOOL; (* *) + gH_EV35_Status : BOOL; (* *) + gH_EV36_Status : BOOL; (* *) + gH_EV37_Status : BOOL; (* *) + gH_EV38_Status : BOOL; (* *) + gH_EV39_Status : BOOL; (* *) + + gH_EV40_Status : BOOL; (* *) + gH_EV41_Status : BOOL; (* *) + gH_EV42_Status : BOOL; (* *) + gH_EV43_Status : BOOL; (* *) + gH_EV44_Status : BOOL; (* *) + gH_EV45_Status : BOOL; (* *) + gH_EV46_Status : BOOL; (* *) + gH_EV47_Status : BOOL; (* *) + gH_EV48_Status : BOOL; (* *) + gH_EV49_Status : BOOL; (* *) + + gH_EV50_Status : BOOL; (* *) + gH_EV51_Status : BOOL; (* *) + gH_EV52_Status : BOOL; (* *) + gH_EV53_Status : BOOL; (* *) + gH_EV54_Status : BOOL; (* *) + gH_EV55_Status : BOOL; (* *) + gH_EV56_Status : BOOL; (* *) + gH_EV57_Status : BOOL; (* *) + gH_EV58_Status : BOOL; (* *) + gH_EV59_Status : BOOL; (* *) + + gH_EV61_Status : BOOL; (* *) + gH_EV62_Status : BOOL; (* *) + gH_EV63_Status : BOOL; (* *) + gH_EV64_Status : BOOL; (* *) + gH_EV65_Status : BOOL; (* *) + gH_EV66_Status : BOOL; (* *) + gH_EV67_Status : BOOL; (* *) + gH_EV68_Status : BOOL; (* *) + gH_EV69_Status : BOOL; (* *) + + gH_EV71_Status : BOOL; (* *) + gH_EV72_Status : BOOL; (* *) + gH_EV73_Status : BOOL; (* *) + gH_EV74_Status : BOOL; (* *) + gH_EV75_Status : BOOL; (* *) + gH_EV76_Status : BOOL; (* *) + gH_EV77_Status : BOOL; (* *) + gH_EV78_Status : BOOL; (* *) + gH_EV79_Status : BOOL; (* *) + gH_EV80_Status : BOOL; (* *) + gH_EV81_Status : BOOL; (* *) + gH_EV83_Status : BOOL; (* *) + gH_EV84_Status : BOOL; (* *) + gH_EV89_Status : BOOL; (* *) + + gH_ManualActive : BOOL ; (* Something is in manual *) + +(*************************************************************************) +(* PROCEDURES *) +(*************************************************************************) + gH_DeairStartUpRun : BOOL ; (* Deaerator StartUp Running *) + gH_SyrTankPrepRun : BOOL ; (* Syrup Tank Prep Running *) + gH_SyrMFMPrepRun : BOOL ; (* Syrup Tank Prep Running *) + gH_FirstProdRun : BOOL ; (* First Production Running *) + gH_SyrBrixAutoRun : BOOL ; (* Syrup Brix Autocorrection Running *) + gH_SyrDensimeterCalRun : BOOL ; (* Syrup densimeter Calibration Running *) + gH_SyrDensimeterCalShow : BOOL ; (* Syrup densimeter Calibration Show *) + gH_SyrRunOutRun : BOOL ; (* Syrup Run Out Running *) + gH_ProdTankRunOutRun : BOOL ; (* Product Tank Run Out Running *) + gH_PrdBrixTrackingRun : BOOL ; (* Product Brix Tracking procedure Running *) + gH_PrdTankDrainRun : BOOL ; (* Product Tank Drain Running *) + gH_PrdTankPressRun : BOOL ; (* Product Tank Pressure Running *) + gH_ColdRinseRun : BOOL ; (* Blender Cold Rinse Running *) + gH_WarmRinseRun : BOOL ; (* Blender Warm Rinse Running *) + gH_CIP_BlenderDrainRun : BOOL ; (* Blender total Drain In CIP Running *) + gH_CIP_ProdTankFloodRun : BOOL ; (* CIP Product Tank Flood Running *) + gH_CIP_DeairTankFloodRun : BOOL ; (* CIP Deaerator Tank Flood Running *) + gH_CIP_SyrTankFloodRun : BOOL ; (* CIP Syrup Tank Flood Running *) + gH_ProdBrixRecoveryRun : BOOL ; + + gH_BlenderStateNum : INT ; (* 3 Syrup MFM preparation + 5 Deaireator start up + 7 Carbo water line + 8 Product tank run out + 9 Blend Fill System start up + 10 Product tank drain + 12 Product pipe run out + 16 Syrup line preparation + 18 Rinse + 19 CIP *) + + gH_BlendFillSysStartUpRun : BOOL ; + gH_BlendFillSysPressRun : BOOL ; + gH_BlendFillSysProdLoadRun : BOOL ; + gH_BlendFillSysProdSendRun : BOOL ; + +(*************************************************************************) +(* METERS *) +(*************************************************************************) + gH_WaterFlowmeter_Fault : BOOL ; (* *) + gH_SyrupFlowmeter_Fault : BOOL ; (* *) + gH_CO2Flowmeter_Fault : BOOL ; (* *) + + gH_mPDS1000_Fault : BOOL ; + gH_ProductMeter_Fault : BOOL ; + gH_mPDS1000_Run : BOOL ; + gH_ProductMeter_Run : BOOL ; + +(*************************************************************************) +(* System Run Out *) +(*************************************************************************) + gH_SystemRunOutAsk : BOOL ; + gH_SystemRunOutEnabled : BOOL ; + gH_SystemRunOutRunning : BOOL ; + gH_CarboWaterLineRun : BOOL ; + gH_ProductPipeRunOutRun : BOOL ; + gH_ProductPipeDrainRun : BOOL ; + + gH_SyrupTankPrepDone : BOOL ; + gH_CarboWaterLineDone : BOOL ; + gH_SyrupRunOutDone : BOOL ; + gH_ProductTankRunOutDone : BOOL ; + gH_ProductPipeRunOutDone : BOOL ; + gH_ProductPipeDrainDone : BOOL ; + gH_FastRinseDone : BOOL ; + gH_FillerRinseDone : BOOL ; + gH_FirstProductionDone : BOOL ; + + gH_StopDepall : BOOL ; + gH_FillerBottleBlock : BOOL ; + gH_FillerRinseRun : BOOL ; + gH_FillerRinseTankMinLvl : BOOL ; + gH_FillerRinseTankMaxLvl : BOOL ; + gH_ProductTankMinLvl : BOOL ; + + gH_FastChangeWait1 : BOOL ; + gH_FastChangeWait2 : BOOL ; + gH_FastChangeProcValue : REAL ; + +(*************************************************************************) +(* SYSTEM *) +(*************************************************************************) + gH_HMIShutdownRequest : BOOL ; (* *) + + gH_Blender_Running : BOOL ; (* *) + gH_Blender_Powered : BOOL ; (* *) + gH_CIPReturnFlowOk : BOOL ; + gH_ProdTankMinLevel : BOOL ; + gH_ProdTankLevelOk : BOOL ; (* Product Tank Minimum Recipe Level Acheaved *) + gH_ProdTankMaxLevel : BOOL ; (* Product Tank Maximum Level Acheaved *) + gH_DeairTankMinLevel : BOOL ; (* *) + gH_DeairTank2MinLevel : BOOL ; (* *) + gH_SyrupTankMinLevel : BOOL ; (* *) + gH_Blender_All_Auto : BOOL ; (* Everything in Auto *) + + gH_BlendingMaintHour : UINT ; + +(*************************************************************************) +(* PUMPS *) +(*************************************************************************) + gH_P1_WaterPump_Status : BOOL ; (* *) + gH_P5_WaterPump_Status : BOOL ; (* *) + gH_P2_SyrupPump_Status : BOOL ; (* *) + gH_P3_ProductPump_Status : BOOL ; (* *) + gH_P4_VacuumPump_Status : BOOL ; (* *) + gH_P5_RinseTankPump_Status : BOOL ; (* *) + gH_P6_RecircPump_Status : BOOL ; (* *) + gH_SyrupRoomPump_Status : BOOL ; (* *) + gH_SyrupRoomWaterPump_Status : BOOL ; (* *) + +(*************************************************************************) +(* PROFIBUS *) +(*************************************************************************) + gH_FC3102_DP_Error : BOOL ; (* *) + gH_FC3102_DP_State : INT ; (* *) + gH_ProductPumpVFC_DP_Error : BOOL ; (* *) + gH_ProductPumpVFC_DP_State : INT ; (* *) + gH_ET200_DP_Error : BOOL ; (* *) + gH_ET200_DP_State : INT ; (* *) + gH_ProdPH_DP_Error : BOOL ; (* *) + gH_ProdPH_DP_State : INT ; (* *) + gH_ProdCond_DP_Error : BOOL ; (* *) + gH_ProdCond_DP_State : INT ; (* *) + gH_Water_VFM_DP_Error : BOOL ; (* *) + gH_Water_VFM_DP_State : INT ; (* *) + gH_Syrup_MFM_DP_Error : BOOL ; (* *) + gH_Syrup_MFM_DP_State : INT ; (* *) + gH_CarboCO2_MFM_DP_Error : BOOL ; (* *) + gH_CarboCO2_MFM_DP_State : INT ; (* *) + gH_ValvesBase_Node12_DP_Error : BOOL ; (* *) + gH_ValvesBase_Node12_DP_State : INT ; (* *) + gH_ValvesBase_Node13_DP_Error : BOOL ; (* *) + gH_ValvesBase_Node13_DP_State : INT ; (* *) + gH_Product_VFM_DP_Error : BOOL ; (* *) + gH_Product_VFM_DP_State : INT ; (* *) + gH_LowCond_DP_Node15_Error : BOOL ; (* *) + gH_LowCond_DP_Node15_State : INT ; (* *) + gH_HighCond_DP_Node16_Error : BOOL ; (* *) + gH_HighCond_DP_Node16_State : INT ; (* *) + gH_PAmPDS_DP_Error : BOOL ; (* *) + gH_PAmPDS_DP_State : INT ; (* *) + +(*************************************************************************) +(* ANALOG VALUES - READ *) +(*************************************************************************) + gH_WaterDeairTemperature : REAL ; (* *) + gH_ProductTankPressurePV : REAL ; (* Product Tank Pressure Process Value *) + gH_ProductTankPressureSP : REAL ; (* Product Tank Pressure Set Point *) + gH_ProductTankLevel : REAL ; (* *) + gH_SyrupTankLevel : REAL ; (* *) + gH_ProductBrix : REAL ; (* *) + gH_ProductCO2 : REAL ; (* *) + gH_ProductO2Conc : REAL ; (* *) + gH_ProductConductivity : REAL ; (* *) + gH_BrixMeterRecipeNum : INT ; + gH_ProductTemperature : REAL ; (* *) + gH_ProductTemperaturePt100 : REAL ; (* *) + gH_WaterLineTemperature : REAL ; (* *) + gH_WaterTarget : REAL ; (* *) + gH_SyrupTarget : REAL ; (* *) + gH_CO2Target : REAL ; (* *) + gH_WaterFlowRate : REAL ; (* *) + gH_SyrupFlowRate : REAL ; (* *) + gH_CO2FlowRate : REAL ; (* *) + gH_BlenderProd : REAL ; (* Blender Production L/min *) + gH_EstFillerProd : REAL ; (* Estimated Filler Production L/min *) + gH_WaterTotalizer : REAL ; (* *) + gH_SyrupBrix : REAL ; (* *) + gH_SyrupDensity : REAL ; (* *) + gH_SyrupTemperature : REAL ; (* *) + gH_SyrupTotalizerKg : REAL ; (* *) + gH_SyrupTotalizerLt : REAL ; (* *) + gH_CO2Temperature : REAL ; (* *) + gH_CO2Density : REAL ; (* *) + gH_CO2Totalizer : REAL ; (* *) + gH_ActualCO2 : REAL ; (* *) + gH_CO2InjPressure : REAL ; (* *) + gH_CO2InjPressureSP : REAL ; + gH_ProductTotalizer : REAL ; (* *) + gH_DeairPressure : REAL ; (* *) + + gH_mPDS1000_Brix : REAL ; + gH_mPDS1000_Dens : REAL ; + gH_mPDS1000_Temp : REAL ; + gH_ActualSyrupBrix : REAL ; + gH_ActualSyrupDens : REAL ; + gH_ActualSyrupTemp : REAL ; + gH_WaterPercentage : REAL ; + gH_SyrupPercentage : REAL ; + gH_ActualRatio : REAL ; + gH_SyrupBrixCorrection : REAL ; + gH_ProductBrixCorrection : REAL ; + + gH_BlendError : REAL ; (* *) + gH_CarboError : REAL ; (* *) + + gH_MaxBlendError : REAL ; + gH_MaxCarboCO2Error : REAL ; + + gH_ProductFlow : REAL ; + gH_ProductTankHeight : REAL ; + gH_P3_Frequency : REAL ; + gH_P3_FrequencyFFOut : REAL ; + gH_FillingValveHead : REAL ; + gH_DiffSensorPressure : REAL ; + gH_FillingValve1Pressure : REAL ; + +(*************************************************************************) +(* MODULATING VALVES *) +(*************************************************************************) + gH_WaterValveOV : REAL; (* *) + gH_WaterValveFFOut : REAL ; (* *) + + gH_SyrupValveOV : REAL ; (* *) + gH_SyrupValveFFOut : REAL ; (* *) + + gH_CO2CarboValveOV : REAL ; (* *) + gH_CarboCO2ValveFFOut : REAL ; (* *) + + gH_SyrupLevelValveOV : REAL ; (* *) + gH_SyrupLevelValveFFOut : REAL ; (* *) + + gH_CO2PressValveOV : REAL ; (* *) + + gH_WaterTempValve_OV : REAL ; + gH_WaterTempValve_SP : REAL ; (* *) + gH_WaterTempValve_PV : REAL ; (* *) + + gH_ProdTempValve_OV : REAL ; (* *) + gH_ProdTempValve_SP : REAL ; (* *) + gH_ProdTempValve_PV : REAL ; (* *) + + gH_CIPTempValve_OV : REAL ; (* *) + gH_CIPTempValve_SP : REAL ; (* *) + gH_CIPTempValve_PV : REAL ; (* *) + + gH_VEP_DeaireationValveOV : REAL ; (* *) + gH_VEP_DeairFlowPV : REAL ; (* *) +END_VAR + +VAR_GLOBAL PERSISTENT +(*************************************************************************) +(* PROCESSOR STATES *) +(*************************************************************************) + gH_Blender_Prod_CIP : BOOL ; (* 1 = production, 0 = CIP *) + gH_Blender_Rinse : BOOL ; (* *) + gH_SyrupRunOutCount : REAL ; +END_VAR + +(* @OBJECT_END := HMI_Variables_Status *) +(* @CONNECTIONS := HMI_Variables_Status +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/INPUT.EXP b/backend/script_groups/TwinCat/.example/INPUT.EXP new file mode 100644 index 0000000..65e7a82 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/INPUT.EXP @@ -0,0 +1,4610 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Input +VAR + mRealAnalogIn : Peripherial; + mInjPressAIFault : TON; + mCO2PressOk : TON ; + mAirPressOk : TON ; + mDeairTankLevelOk : TON ; + mDeairTank2LevelOk : TON ; + mFillerProReqDly : TOF ; + mFillerCIPReadyDly : TOF ; + mDeairTankVacuumOk : TON ; + mDeairTankVacuumFlt : TOF ; + mSyrupTankLevelOk : TON ; + mCIPReturnFlowOk : TON ; + mProdTankNotEmptyTON : TON ; + mFlrRinseTankMaxLvlTON : TON ; + mFlrRinseTankMinLvlTON : TOF ; + mSyrPumpFaultDly : TON; + mSyrRoomH2OPumpFaultDly : TON; + mFillerEndTankFillingTOF : TOF; + mDeairDelayFault : TON ; + mProdPressDelayFault : TON ; + mUVLampDelayFault : TON ; + mUVLampDelayReady : TON ; + mUVLampDelayTempHigh : TON ; + + mRealTemp : REAL ; + mH2OTempFlted : LowPassFilter ; + mProdTnkLvlFlted : LowPassFilter ; + mCO2InjPressFlted : LowPassFilter ; + mLinePressFlted : LowPassFilter ; + mCIPReturnTempFlted : LowPassFilter ; + mCIPCausticFlted : LowPassFilter ; + mCIPWaterFlted : LowPassFilter ; + mSyrCondFlted : LowPassFilter ; + mProdCondFlted : LowPassFilter ; + mFillerLevelFlted : LowPassFilter ; + mDeairPressFlted : LowPassFilter ; + mDeairValveFlted : LowPassFilter ; + mDummy : BOOL ; + + mCPU_UsageBusy : BOOL ; + mCPU_UsageError : BOOL ; + mCPU_UsageErrorCode : UDINT ; + mDeaireationValveFault : BOOL ; + mProdTankPressValveFault : BOOL ; + + mPcInfo : GetRemotePCInfo ; + mPcInfo_Start : BOOL ; + mPcInfo_Busy : BOOL ; + mPcInfo_Error : BOOL ; + mPcInfo_ErrorCode : UDINT ; + mPcInfo_Data : remotepcinfostruct ; + mDivertPanelSensor : BOOL; + mCO2InjPressNotOk: BOOL; + mCO2InjPressThreshold: REAL; + mCO2InjPressAux : REAL; + +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 86 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Input.CheckFlowMetersState +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Input.Get_CPU_Usage +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_WorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWorkshopTest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_AuxVoltage_On +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Blender_Powered +_OUTPUT +_POSITIV +_NO_SET +gAuxVoltageOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gCarboStillRecipe +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRinseMode +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_N2MinPressure +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_WaterPumpPressure +_OPERAND +_EXPRESSION +_POSITIV +0.5 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCO2InjPressAux +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeairStartUp_Latch +_OPERAND +_EXPRESSION +_POSITIV +mCO2InjPressAux +_OPERAND +_EXPRESSION +_POSITIV +mCO2InjPressAux/2 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCO2InjPressThreshold +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gCO2InjPressure +_OPERAND +_EXPRESSION +_POSITIV +mCO2InjPressThreshold +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +DI_CO2_InletPress_OK +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCO2InjPressNotOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mCO2PressOk +_BOX_EXPR : 2 +_ENABLED +_ASSIGN +_OPERATOR +_BOX_EXPR : 4 +_OPERAND +_EXPRESSION +_POSITIV +mCO2InjPressNotOk +_OPERAND +_EXPRESSION +_NEGATIV +gWorkshopTest +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderCIPMode +_OPERATOR +_BOX_EXPR : 4 +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_PressCO2_PID +_OPERAND +_EXPRESSION +_POSITIV +50.0 +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Done +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_BlendFillSystem +_OPERAND +_EXPRESSION +_NEGATIV +gAlwaysOff +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCO2PressNotOk +_OPERAND +_EXPRESSION +_POSITIV +t#4s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCO2LowPress_Fault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCO2LowPress_Fault +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInLinePressCO2Ok +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gCO2LowPress_Fault +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_CO2InjPressureSP +_OPERAND +_EXPRESSION +_POSITIV +gCO2InjPressure +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +ABS +_OPERAND +_EXPRESSION +_POSITIV +0.5 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message017 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message017 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Air_InletPress_OK +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAirPressOk +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gAirLowPress_Fault +_OUTPUT +_NEGATIV +_NO_SET +gInLinePressAirOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_Syrup_Line_Drain_Sensor +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_NO_SET +gSyrupLineDrainValveAux +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Water_Manual_Valve_Open +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_NO_SET +gWaterManualDrainValveAux +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +DI_CIP_ReturnFlowOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mCIPReturnFlowOk +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIPReturnFlowOk +_OUTPUT +_POSITIV +_NO_SET +gIn_FlowSwitch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Min_Deair_Level +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDeairTankLevelOk +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_DeairTankMinLevel +_OUTPUT +_POSITIV +_NO_SET +gDeairTankMinLvlAux +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Min_Deair2_Level +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDeairTank2LevelOk +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_DeairTank2MinLevel +_OUTPUT +_POSITIV +_NO_SET +gDeairTank2MinLvlAux +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Min_Syrup_Level +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrupTankLevelOk +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupTankMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupTankMinLevel +_OUTPUT +_POSITIV +_NO_SET +gSyrupTankMinLvlAux +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +DI_DeairVacuumOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairVacuumOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDeairTankVacuumOk +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#15s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_FUNCTIONBLOCK +mDeairTankVacuumFlt +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderDeairVacuum_Ok +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_VM1_Water_Valve_Closed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInWaterValveClosed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_VM2_Syrup_Valve_Closed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInSyrupValveClosed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_VM3_CO2_Valve_Closed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInCarboCO2ValveClosed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Product_Pump_VFC_Ready +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProduct_VFC_StatusWord_STRUCT.B01_DriveReady +_EXPRESSION +_POSITIV +_LD_CONTACT +gProduct_VFC_StatusWord_STRUCT.B03_Trip +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gIn_ProdPumpFCReady +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_ProdTankEmpty +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdTankNotEmptyTON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_ProductTankMinLvl +_OUTPUT +_POSITIV +_NO_SET +gIn_ProdTankNotEmpty +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_FillerRinseTankMaxLevel +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFlrRinseTankMaxLvlTON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gIn_FillerRinseTankMaxLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_FillerRinseTankMinLevel +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFlrRinseTankMinLvlTON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gIn_FillerRinseTankMinLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +DI_SyrRoom_Pump_Ready +_EXPRESSION +_POSITIV +_LD_CONTACT +gPB_IN_PRG_SYRUP_OK +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Syrup_Room_DI0 +_OUTPUT +_POSITIV +_NO_SET +gInSyrRoomOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gOut_SyrupRoomWaterReq +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_SyrRoom_WaterPump_Ready +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrupRoomEn +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrRoomH2OPumpFaultDly +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRoomWaterPump_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gOut_SyrupRoomPumpRun +_EXPRESSION +_POSITIV +_LD_CONTACT +gInSyrRoomOk +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrPumpFaultDly +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRoomPump_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_DivertPanel +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDivertPanelSensor +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Prod_Sensor_1 +_EXPRESSION +_NEGATIV +_LD_CONTACT +DI_Prod_Sensor_2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_CIP_Sensor_1 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_CIP_Sensor_2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +mDivertPanelSensor +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInManifoldNotReadyForProd +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_CIP_Sensor_1 +_EXPRESSION +_NEGATIV +_LD_CONTACT +DI_CIP_Sensor_2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Prod_Sensor_1 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Prod_Sensor_2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +mDivertPanelSensor +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInManifoldNotReadyForCIP +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +DI_Flr_Ready_to_Production +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.ProductionRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.Prod_Selected +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMFillerProdReady +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DI0 +_OUTPUT +_POSITIV +_NO_SET +gInFillerProdReady +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Flr_Product_Request +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFillerProReqDly +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.ProductRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.Gen_EV62_Enable +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMFillerEV62Enable +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DI1 +_OUTPUT +_POSITIV +_NO_SET +gInFillerEV62Enable +_OUTPUT +_POSITIV +_NO_SET +gInFillerProductReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillReceiveData.Prod_BottleFilling +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInFillerBottleFilling +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillReceiveData.Prod_EndFlushing +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInFillerEndFlushing +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendFillReceiveData.Prod_End_Tank_Filling +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFillerEndTankFillingTOF +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInFillerEndTankFilling +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +DI_Flr_CIP_RinseCycleEnded +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.CIP_CycleEnded +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.Rinse_Ended +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.Rinse_Ended +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DI2 +_OUTPUT +_POSITIV +_NO_SET +gIn_Flr_FastRinseCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_Flr_FastChangeLastContainerFilled +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.LastContainerFilled +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.Prod_Last_Bottle +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DI3 +_OUTPUT +_POSITIV +_NO_SET +gIn_Flr_FastChangeLastContainerFilled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_Flr_FastChangeWaterRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.FastRinseWaterRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.Rinse_Selected +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DI4 +_OUTPUT +_POSITIV +_NO_SET +gIn_Flr_WaterRinseRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Flr_OpenProductDrainEV69 +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.OpenProductDrainPipe +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DI6 +_OUTPUT +_POSITIV +_NO_SET +gIn_Flr_OpenEV69ProdPipeDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendFillReceiveData.Gen_EV46_Enable +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMFillerEV46Enable +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DI7 +_OUTPUT +_POSITIV +_NO_SET +gInFillerEV46Enable +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_Flr_Ready_to_CIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.CIP_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.CIP_Sanitize_Request +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFillerCIPReadyDly +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DI0 +_OUTPUT +_POSITIV +_NO_SET +gInFillerCIPRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_Flr_CIP_RinseDrainCompleted +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.CIP_DrainCompleted +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.CIP_Drain_Completed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DI1 +_OUTPUT +_POSITIV +_NO_SET +gInFillerCIPDrainCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerReceiveData.CIP_CycleEnded +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.CIP_End_Cycle +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DI2 +_OUTPUT +_POSITIV +_NO_SET +gInFillerCIPCycleEnded +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_Flr_CIP_ChangeReady +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerReceiveData.CIP_ChangeReady +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillReceiveData.CIP_Change_Ready +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DI3 +_OUTPUT +_POSITIV +_NO_SET +gInFillerCIPChangeReady +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillReceiveData.CIP_OpenEV13 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DI4 +_OUTPUT +_POSITIV +_NO_SET +gInFillerCIPOpenEV13 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillReceiveData.CIP_StopCIPReturnPump +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DI5 +_OUTPUT +_POSITIV +_NO_SET +gInFillerStopCIPReturnPump +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillReceiveData.Drain_Selected +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DI5 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DI6 +_OUTPUT +_POSITIV +_NO_SET +gInFillerCIPDrainSelecteted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendFillReceiveData.CIP_Selected +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DI7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveData.Filler_Speed +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveData.Filler_Speed +_OPERAND +_EXPRESSION +_POSITIV +10 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFiller_Speed +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveData.RunOutBottleCount +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerBottleCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +DI_CIP_DrainRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gPB_IN_PRG_CIP_DRAIN +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPReceiveData.CIP_DrainRequest +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMCipDrainRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DI0 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_DrainRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_CIP_TankFilling +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DI1 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_TankFilling +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +DI_CIP_RinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gPB_IN_PRG_CIP_RINSE +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DI2 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_RinseMode +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +DI_CIP_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gPB_IN_PRG_CIP_RUNNING +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPReceiveData.CIP_Running +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMCipRunning +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DI3 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_CIPRunning +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_CIP_ChangeSanitize +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPReceiveData.CIP_ChangeSanitize +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMCipChangeSanitize +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DI4 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_ChangeSanitize +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +DI_CIP_CIPCompleted +_EXPRESSION +_POSITIV +_LD_CONTACT +gPB_IN_PRG_CIP_COMPLETED +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPReceiveData.CIP_Completed +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMCipCompleted +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DI5 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_CIPCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +DI_CIP_CIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gPB_IN_PRG_CIP_MODE +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPReceiveData.CIP_Request +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMCipMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DI6 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_CIPMode +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_CIP_CausticSanitizeRunning +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPReceiveData.CIP_CausticSanitizeRunning +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SIMCipCausticSanitizeRun +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DI7 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_CausticSanitizeRunning +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_CIP_CIPFault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInCIP_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_ColdRinseRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DO_AmmoniaWaterColdControl +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_AmmoniaLowPressure_Water +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DO_AmmoniaProductColdControl +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_AmmoniaLowPressure_Product +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gGencoldChillerEn +_EXPRESSION +_POSITIV +_LD_CONTACT +gCoolerEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInAmmoniaLowPressure +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_ColdRinseRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProductChillerEn +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_AmmoniaHighLevel_Product +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterChillerEn +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_AmmoniaHighLevel_Water +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gGencoldChillerEn +_EXPRESSION +_POSITIV +_LD_CONTACT +gCoolerEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Message050 +_OUTPUT +_POSITIV +_NO_SET +gInAmmoniaHighLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_Ammonia_CompressorReady +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInAmmoniaCompressorReady +_NETWORK + +_COMMENT +TIME TO allow lamps warm-up +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_UV_Lamp_Ready +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mUVLampDelayReady +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#30s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInUVLampReady +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_UV_Lamp_Ready +_EXPRESSION +_POSITIV +_LD_CONTACT +gInUVLampReady +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message041 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +DI_UV_Lamp_Ready +_EXPRESSION +_NEGATIV +_LD_CONTACT +gOutUVLamp_ONOFF +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mUVLampDelayFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInUVLampAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +DI_UV_Lamp_TempHigh +_EXPRESSION +_POSITIV +_LD_CONTACT +gOutUVLamp_ONOFF +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mUVLampDelayTempHigh +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gUVLampHighTemperature +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +AI_DeaireationValve_VEP4 +_OPERAND +_EXPRESSION +_POSITIV +AO_DeaireationValve_VEP4 +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +ABS +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_OPERAND +_EXPRESSION +_POSITIV +0.1 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDeaireationValveFault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mDeaireationValveFault +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDeairDelayFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeaireationValveFault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_InjectionPress_Ctrl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +AI_ProdTankPressureValve_VEP1 +_OPERAND +_EXPRESSION +_POSITIV +AO_ProdTankPressureValve_VEP1 +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +ABS +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_OPERAND +_EXPRESSION +_POSITIV +0.1 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdTankPressValveFault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mProdTankPressValveFault +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdPressDelayFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankPressureValveFault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_DeairWaterTemperature +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mH2OTempFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +20 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderEnToRamp OR TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairWaterTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 4 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_InjectionPressure +_OPERAND +_EXPRESSION +_POSITIV +16.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadAnalogIn +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealAnalogIn +_ASSIGN +_FUNCTIONBLOCK +mCO2InjPressFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealAnalogIn.Value +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCO2InjPressure +_ASSIGN +_FUNCTIONBLOCK +mInjPressAIFault +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealAnalogIn.Error +_OPERAND +_EXPRESSION +_POSITIV +t#4s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gInjectionPressAI_Fault +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mRealAnalogIn.Value +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_POSITIV +gInjectionPressAI_Fault +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gCO2InjPressure +_FUNCTION +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_CO2Temperature +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gCarboStillRecipe +_OPERAND +_EXPRESSION +_POSITIV +gPM_N2 +_OPERAND +_EXPRESSION +_POSITIV +gPM_CO2 +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gMFM_CO2Density +_EXPRESSION +_POSITIV +Calc_InjPress +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCO2InjPressure +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_InjectionPressure +_OPERAND +_EXPRESSION +_POSITIV +16.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mCO2InjPressFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCO2InjPressure +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_ProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mProdTnkLvlFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTankLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_Spare7 +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mLinePressFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterLinePress +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Conductimeter_Profibus +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_CIPCausticCond +_OPERAND +_EXPRESSION +_POSITIV +200.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mCIPCausticFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gIn_C1_Conductivity_Caustic +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Conductimeter_Profibus +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_CIPWaterCond +_OPERAND +_EXPRESSION +_POSITIV +2000.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mCIPWaterFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gIn_C2_Conductivity_Water +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Conductimeter_Profibus +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_CIPReturnTemperature +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mCIPReturnTempFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPReturnTemp_PV +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_FillerLevel +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mFillerLevelFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_ProductConductivity +_OPERAND +_EXPRESSION +_POSITIV +3500 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mProdCondFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductConductivity +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_VacuumPump +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_DeaireatorPressure +_OPERAND +_EXPRESSION +_POSITIV +0.00 +_OPERAND +_EXPRESSION +_POSITIV +-1.00 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mDeairPressFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gIn_DeaireatorPressure +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Flow Tronic Full Scale : Still Product --> Flow Tronic Full Scale=FlowTronic/0.97(N2 density); + Carbo Product --> Flow Tronic Full Scale=FlowTronic/1.527(CO2 density) +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCarboStillRecipe +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFlowTronic +_OPERAND +_EXPRESSION +_POSITIV +0.97 +_EXPRESSION +_POSITIV +DIV +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFlowTronic +_OPERAND +_EXPRESSION +_POSITIV +1.527 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFlowTronicFullScale +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Flowtronic +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_DeaireationValve_VEP4 +_OPERAND +_EXPRESSION +_POSITIV +gFlowTronicFullScale +_OPERAND +_EXPRESSION +_POSITIV +0.00 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mDeairValveFlted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gIn_DeairFlow_PV +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_EV28_Status +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gIn_DeairFlow_PV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_VEP_DeairFlowPV +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 9 +_OUTPUT +_NEGATIV +_SET +gH_SIMCipMode +_OUTPUT +_NEGATIV +_SET +gH_SIMCipRunning +_OUTPUT +_NEGATIV +_SET +gH_SIMCipChangeSanitize +_OUTPUT +_NEGATIV +_SET +gH_SIMCipDrainRequest +_OUTPUT +_NEGATIV +_SET +gH_SIMCipCompleted +_OUTPUT +_NEGATIV +_SET +gH_SIMCipCausticSanitizeRun +_OUTPUT +_NEGATIV +_SET +gH_SIMFillerEV46Enable +_OUTPUT +_NEGATIV +_SET +gH_SIMFillerEV62Enable +_OUTPUT +_NEGATIV +_SET +gH_SIMFillerProdReady + +END_PROGRAM +ACTION CheckFlowMetersState: +IF gH_Blender_OPT_WaterPromass THEN + CASE gMFM_WaterFlow_State OF + 16#64: + IF gBlenderBlending AND NOT (gFastChangeOverActivated AND gSyrRunOut_Done) AND NOT gBlenderCIPMode THEN + gWaterVFM_EPD := TRUE ; + END_IF + gWaterVFM_Fault := FALSE ; + + 16#80: gWaterVFM_EPD := FALSE ; + gWaterVFM_Fault := FALSE ; + + 16#9C: gWaterVFM_EPD := FALSE ; + gWaterVFM_Fault := FALSE ; + ELSE + gWaterVFM_Fault := TRUE ; + gWaterVFM_EPD := FALSE ; + END_CASE +ELSE + CASE gMFM_WaterFlow_State OF + 16#47: + IF gBlenderBlending AND NOT (gFastChangeOverActivated AND gSyrRunOut_Done) AND NOT gBlenderCIPMode THEN + gWaterVFM_EPD := TRUE ; + END_IF + gWaterVFM_Fault := FALSE ; + + 16#80: gWaterVFM_EPD := FALSE ; + gWaterVFM_Fault := FALSE ; + ELSE + CASE gMFM_WaterTotalizer_State OF + 16#47: + IF gBlenderBlending AND NOT (gFastChangeOverActivated AND gSyrRunOut_Done) AND NOT gBlenderCIPMode THEN + gWaterVFM_EPD := TRUE ; + END_IF + gWaterVFM_Fault := FALSE ; + ELSE + gWaterVFM_Fault := TRUE ; + gWaterVFM_EPD := FALSE ; + END_CASE + END_CASE +END_IF + +IF gWaterRecipe THEN + gSyrupMFM_Fault := FALSE ; + gSyrupMFM_EPD := FALSE ; +ELSE + CASE gMFM_Syrup1Flow_State OF + 16#64: gSyrupMFM_EPD := TRUE ; + gSyrupMFM_Fault := FALSE ; + + 16#43: gSyrupMFM_EPD := TRUE ; + gSyrupMFM_Fault := FALSE ; + + 16#53: gSyrupMFM_EPD := TRUE ; + gSyrupMFM_Fault := FALSE ; + + 16#80: gSyrupMFM_EPD := FALSE ; + gSyrupMFM_Fault := FALSE ; + + 16#9C: gSyrupMFM_EPD := FALSE ; + gSyrupMFM_Fault := FALSE ; + ELSE + gSyrupMFM_Fault := TRUE ; + gSyrupMFM_EPD := FALSE ; + END_CASE +END_IF + +CASE gMFM_CO2Flow_State OF + 16#64: gCO2MFM_EPD := TRUE ; + gCO2MFM_Fault := FALSE ; + + 16#43: gSyrupMFM_EPD := TRUE ; + gSyrupMFM_Fault := FALSE ; + + 16#53: gSyrupMFM_EPD := TRUE ; + gSyrupMFM_Fault := FALSE ; + + 16#80: gCO2MFM_EPD := FALSE ; + gCO2MFM_Fault := FALSE ; + + 16#9C: gCO2MFM_EPD := FALSE ; + gCO2MFM_Fault := FALSE ; +ELSE + gCO2MFM_Fault := TRUE ; + gCO2MFM_EPD := FALSE ; +END_CASE + +IF gBlenderBlending AND NOT (gFastChangeOverActivated AND gSyrRunOut_Done) AND NOT gBlenderCIPMode AND gBlendFillStartUp_Done THEN + CASE gVFM_ProductFlow_State OF + 16#47: + IF gBlenderBlending AND NOT (gFastChangeOverActivated AND gSyrRunOut_Done) AND NOT gBlenderCIPMode AND gBlendFillStartUp_Done THEN + gProductVFM_EPD := TRUE ; + END_IF + gProductVFM_Fault := FALSE ; + + 16#80: gProductVFM_EPD := FALSE ; + gProductVFM_Fault := FALSE ; + ELSE + CASE gVFM_ProductTotalizer_State OF + 16#47: + IF gBlenderBlending AND NOT (gFastChangeOverActivated AND gSyrRunOut_Done) AND NOT gBlenderCIPMode AND gBlendFillStartUp_Done THEN + gProductVFM_EPD := TRUE ; + END_IF + gProductVFM_Fault := FALSE ; + ELSE + gProductVFM_Fault := TRUE ; + gProductVFM_EPD := FALSE ; + END_CASE + END_CASE +ELSE + gProductVFM_Fault := FALSE ; + gProductVFM_EPD := FALSE ; +END_IF + +IF gH_Blender_OPT_Simulation OR gBlenderCIPMode THEN + gWaterVFM_Fault := FALSE ; + gWaterVFM_EPD := FALSE ; + gSyrupMFM_Fault := FALSE ; + gSyrupMFM_EPD := FALSE ; + gProductVFM_Fault := FALSE ; + gProductVFM_EPD := FALSE ; +END_IF + +IF gH_Blender_OPT_Simulation OR gBlenderCIPMode OR NOT gH_Blender_OPT_CarboPresent THEN + gCO2MFM_Fault := FALSE ; + gCO2MFM_EPD := FALSE ; +END_IF +END_ACTION + +ACTION Get_CPU_Usage: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +gCPU_UsageFB +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderAMS_NET_ID +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gClock_1s +_OPERAND +_EXPRESSION +_NEGATIV +mCPU_UsageBusy +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TC_CpuUsage +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +mCPU_UsageError +_OUTPUT +_POSITIV +_NO_SET +mCPU_UsageErrorCode +_OUTPUT +_POSITIV +_NO_SET +gCPU_Usage +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCPU_UsageBusy +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION GetPcInfo: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mPcInfo +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +'' +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mPcInfo_Start +_OPERAND +_EXPRESSION +_NEGATIV +mPcInfo_Busy +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +GetRemotePCInfo +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +mPcInfo_Error +_OUTPUT +_POSITIV +_NO_SET +mPcInfo_ErrorCode +_OUTPUT +_POSITIV +_NO_SET +mPcInfo_Data +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPcInfo_Busy +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/INPUT_CIP_SIGNALS.EXP b/backend/script_groups/TwinCat/.example/INPUT_CIP_SIGNALS.EXP new file mode 100644 index 0000000..4b52ce7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/INPUT_CIP_SIGNALS.EXP @@ -0,0 +1,49 @@ +(* @PATH := '\/CIP Structure' *) +TYPE Input_CIP_Signals : +STRUCT + CIP_Ready : BOOL ; + Drain_Request : BOOL ; + Rinse_Request : BOOL ; + CIP_Completed : BOOL ; + Spare4 : BOOL ; + Spare5 : BOOL ; + Spare6 : BOOL ; + Spare7 : BOOL ; + Spare8 : BOOL ; + Spare9 : BOOL ; + Spare10 : BOOL ; + Spare11 : BOOL ; + Spare12 : BOOL ; + Spare13 : BOOL ; + Spare14 : BOOL ; + Spare15 : BOOL ; + Spare16 : BOOL ; + Spare17 : BOOL ; + Spare18 : BOOL ; + Spare19 : BOOL ; + Spare20 : BOOL ; + Spare21 : BOOL ; + Spare22 : BOOL ; + Spare23 : BOOL ; + Spare24 : BOOL ; + Spare25 : BOOL ; + Spare26 : BOOL ; + Spare27 : BOOL ; + Spare28 : BOOL ; + Spare29 : BOOL ; + Spare30 : BOOL ; + Spare31 : BOOL ; + + Spare_Word0 : WORD ; + Spare_Word1 : WORD ; + Spare_Word2 : WORD ; + Spare_Word3 : WORD ; + + Spare_Real0 : REAL ; + Spare_Real1 : REAL ; + Spare_Real2 : REAL ; + Spare_Real3 : REAL ; +END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/INPUT_SIGNAL.EXP b/backend/script_groups/TwinCat/.example/INPUT_SIGNAL.EXP new file mode 100644 index 0000000..d07aa99 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/INPUT_SIGNAL.EXP @@ -0,0 +1,15 @@ +(* @GLOBAL_VARIABLE_LIST := Input_Signal *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL + Omegat : REAL; + Ramp_Sgn : REAL; +END_VAR + +(* @OBJECT_END := Input_Signal *) +(* @CONNECTIONS := Input_Signal +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/INTEGRAL.EXP b/backend/script_groups/TwinCat/.example/INTEGRAL.EXP new file mode 100644 index 0000000..a931cb7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/INTEGRAL.EXP @@ -0,0 +1,20 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '4096' *) +FUNCTION_BLOCK Integral +VAR_INPUT + i_NewValue : REAL; + i_IntCycle : REAL ; +END_VAR +VAR_IN_OUT + Out_Integral : REAL; +END_VAR +VAR + mOldValue : REAL; +END_VAR +(* @END_DECLARATION := '0' *) +(* Trapezoidal Integral Method *) +Out_Integral := Out_Integral + ( mOldValue + (i_NewValue - mOldValue ) * 0.5 ) * i_IntCycle; +mOldValue := i_NewValue; + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/LOCALCIP_CTRL.EXP b/backend/script_groups/TwinCat/.example/LOCALCIP_CTRL.EXP new file mode 100644 index 0000000..e7d553c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/LOCALCIP_CTRL.EXP @@ -0,0 +1,1329 @@ + +(* @PATH := '\/TASK2_ControlMain\/CIP' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM LocalCIP_Ctrl +VAR + mFlrCycleEndedONS : R_TRIG ; + mRequestTP : TP ; + mInizializeTP : TP ; + mCIPPause : BOOL ; + mCIPPauseONS : R_TRIG ; + mONS : R_TRIG ; + mONS1 : R_TRIG ; + mAuxONS : R_TRIG ; + mAuxONS1 : F_TRIG ; + mAuxONS2 : R_TRIG ; + mAuxONS3 : R_TRIG ; + mAuxONS4 : R_TRIG ; + mOpenEV33_35TOF : TOF ; + mTempAcheavedDly : TON ; + mHighCondAcheavedDly : TON ; + mLowCondAcheavedDly : TON ; + mNoRecircFlowDly : TON ; + mBlenderDrainTimer : TON ; + mProdTankFloodReq : BOOL ; + mDeairTankFloodReq : BOOL ; + mSyrTankFloodReq : BOOL ; + mDrainEnd : BOOL ; + mCIPTransferStepONS : BOOL ; + mCIPTransferRunONS : BOOL ; + mDummy : BOOL ; + i : INT ; + j : INT ; + mCIPTotalDrainReq : BOOL ; + mCIP_TransferProgTimeOut : TON ; + mPrdTankFlood : TON ; + mDeairTankFlood : TON ; + mSyrupTankFlood : TON ; + mNewProgram :BOOL; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + + + + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 20 +_NETWORK + +_COMMENT +The following PROGRAM handle the CIP software modules. The module interface is the Standard one: Qualifier, +Request, Latch, Wait, Reset (Inizialize) AND Done. +Qualifier: (Level Signal) Qualify the module TO be executed; all the conditions that enable the module TO run must be included +in the Qualifier. +Request: (Pulse ONS) Request TO execute the module. +Latch: (Level Signal) IF the Qualifier is enabled AND the module is NOT already executed AND is NOT Reset, +than the Latch latches UNTIL th Done OR the Reset comes. +Done: (Level Signal) Is Setted as soon as the module complete its functions, AND staies On UNTIL next Reset. + + + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_Run_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_CIP_ProgStart +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Request +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mRequestTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gCIP_Run_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +gCIP_Inizialized +_OUTPUT +_POSITIV +_NO_SET +gCIP_Run_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_CIP_LinkName +_OPERAND +_EXPRESSION +_POSITIV +gActual_LinkProgName +_EXPRESSION +_POSITIV +NE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +mNewProgram +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_CIP_ProgInizialize +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mInizializeTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mNewProgram +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_ProgramLoaded +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +mNewProgram +_OUTPUT +_POSITIV +_NO_SET +gCIP_Run_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_CIP_ProgPause +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Blender_CIP_RunPause +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_CIP_RunPause +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Wait +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_WaitAnyCond +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_Run_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCIP_Run_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Run_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCIP_Run_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_Run_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Run_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_Run_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCIP_Completed +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_CIP_ProgStop +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Blender_Stop_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_Run_Done +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gIn_FlowSwitch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_EV36_Status +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_EV37_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_P3_ProductPump_Status +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mNoRecircFlowDly +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3m +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPRecircFlowMissing_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 4 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRun_Latch +_OPERAND +_EXPRESSION +_NEGATIV +gInFillerCIPRequest +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.ReadyForCIP +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gWaitFillerReadyToCIP +_OUTPUT +_POSITIV +_NO_SET +gH_Message030 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.Temperature_Ok +_OPERAND +_EXPRESSION +_NEGATIV +gCIP_WaitEventStatus.Temperature_Ok +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Run_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message033 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 4 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.HighConductivity +_OPERAND +_EXPRESSION +_NEGATIV +gCIP_WaitEventStatus.HighConductivity +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Conductimeter +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Run_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message034 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 4 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.LowConductivity +_OPERAND +_EXPRESSION +_NEGATIV +gCIP_WaitEventStatus.LowConductivity +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Conductimeter +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Run_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message035 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_NEGATIV +gInFillerCIPDrainCompleted +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.DrainCompleted +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Run_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message036 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIP_Run_Wait +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Run_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status037 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gCIP_Completed +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status038 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +LocalCIP_Ctrl.WaitEvent_Control +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Run_Latch +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Run_Wait +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_CIP_ProgStepUp +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_CIP_ProgStepDown +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Run_Reset +_OPERAND +_EXPRESSION +_POSITIV +gClock_1s +_EXPRESSION +_POSITIV +Exec_Simple_CIP +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION WaitEvent_Control: +_LD_BODY +_NETWORKS : 9 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mTempAcheavedDly +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gCIP_SPTemperature - gCIPReturnTemp_PV +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.Temperature_Ok +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitEventStatus.Temperature_Ok +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPMaxLevel +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_WaitEventReq.ProdTankMaxLev +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitEventStatus.ProdTankMaxLev +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mHighCondAcheavedDly +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gIn_C1_Conductivity_Caustic +_OPERAND +_EXPRESSION +_POSITIV +gCIP_SPHigh_Cond +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.HighConductivity +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Conductimeter +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitEventStatus.HighConductivity +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_FUNCTIONBLOCK +mOpenEV33_35TOF +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gIn_C1_Conductivity_Caustic +_OPERAND +_EXPRESSION +_POSITIV +gCIP_SPHigh_Cond +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Conductimeter +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Conductimeter +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPOpenEV33_35Valve +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mLowCondAcheavedDly +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gIn_C2_Conductivity_Water +_OPERAND +_EXPRESSION +_POSITIV +gCIP_SPLow_Cond +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.LowConductivity +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Conductimeter +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitEventStatus.LowConductivity +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gInFillerCIPRequest +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.ReadyForCIP +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitEventStatus.ReadyForCIP +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gInFillerCIPDrainCompleted +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.DrainCompleted +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitEventStatus.DrainCompleted +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gInFillerCIPChangeReady +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.CIPChangeReady +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitEventStatus.CIPChangeReady +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gInFillerCIPCycleEnded +_OPERAND +_EXPRESSION +_POSITIV +gCIP_WaitEventReq.CIPCycleEnded +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIP_WaitEventStatus.CIPCycleEnded +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/LOWPASSFILTER.EXP b/backend/script_groups/TwinCat/.example/LOWPASSFILTER.EXP new file mode 100644 index 0000000..8013239 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/LOWPASSFILTER.EXP @@ -0,0 +1,54 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK LowPassFilter +VAR_INPUT + i_Value : REAL ; (* Istant Value to Filter *) + i_Num : UINT ; (* Number of sample to Average - 0 = No filter - *) + i_Enable : BOOL ; (* Enable the filter *) +END_VAR +VAR_OUTPUT + FilterOut : REAL ; +END_VAR +VAR + mDataArray : ARRAY [0..49] OF REAL ; + i : INT ; + j : INT ; + mArrayPtr : INT ; (* Actual array index during array charge *) + mTemp : REAL ; +END_VAR +(* @END_DECLARATION := '0' *) +IF i_Enable THEN + IF i_Num >0 THEN + IF i_Num > 49 THEN + i_Num := 49 ; (* Limit the number of samples *) + END_IF + IF mArrayPtr <= i_Num THEN (* Charging the Array *) + FOR j:=mArrayPtr TO 1 BY -1 DO + mDataArray[j] := mDataArray[j - 1] ; (* Right Shifting *) + END_FOR + mDataArray[0] := i_Value ; + mTemp := 0.0 ; + FOR i:=0 TO mArrayPtr DO + mTemp := mTemp + mDataArray[i] ; (* Dinamic Averaging *) + END_FOR + IF (mArrayPtr + 1)<>0 THEN + FilterOut := mTemp / (mArrayPtr + 1) ; + END_IF + mArrayPtr := mArrayPtr + 1 ; + IF mArrayPtr > i_Num THEN + mArrayPtr := i_Num ; + END_IF + END_IF + ELSE + FilterOut := i_Value ; + END_IF +ELSE + FOR i:=0 TO mArrayPtr DO + mDataArray[i] := 0 ; (* Right Shifting *) + END_FOR + mArrayPtr := 0 ; + FilterOut := i_Value ; +END_IF + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/LOWPASSFILTEROPT.EXP b/backend/script_groups/TwinCat/.example/LOWPASSFILTEROPT.EXP new file mode 100644 index 0000000..be55b1d --- /dev/null +++ b/backend/script_groups/TwinCat/.example/LOWPASSFILTEROPT.EXP @@ -0,0 +1,66 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK LowPassFilterOpt +VAR_INPUT + i_Value : REAL ; (* Istant Value to Filter *) + i_Num : UINT ; (* Number of sample to Average - 0 = No filter - *) + i_Enable : BOOL ; (* Enable the filter *) +END_VAR +VAR_OUTPUT + FilterOut : REAL ; +END_VAR +VAR + mDataArray : ARRAY [0..49] OF REAL ; + mArrayLoaded : BOOL ; + mArrayCleaned : BOOL ; + i : UINT ; + mArrayPtr : UINT ; (* Actual array index during array charge *) + mLastValue : REAL ; +END_VAR + +(* @END_DECLARATION := '0' *) +IF i_Enable THEN + IF i_Num>0 THEN + mArrayCleaned := FALSE ; + IF i_Num > 49 THEN + i_Num := 49 ; (* Limit the number of samples *) + END_IF + IF NOT mArrayLoaded THEN + IF mArrayPtr < i_Num THEN (* Charging the Array *) + mDataArray[mArrayPtr] := i_Value ; + FilterOut := (FilterOut * mArrayPtr + i_Value) / (mArrayPtr + 1) ; + mArrayPtr := mArrayPtr + 1 ; + ELSE + mArrayLoaded := TRUE ; + mArrayPtr := i_Num - 1 ; + END_IF + END_IF + IF mArrayLoaded THEN + mLastValue := mDataArray[mArrayPtr] ; + mDataArray[mArrayPtr] := i_Value ; + IF mArrayPtr=0 THEN + mArrayPtr := i_Num - 1 ; + ELSE + mArrayPtr := mArrayPtr - 1 ; + END_IF + (* Mean Value Calculation *) + FilterOut := FilterOut + ((i_Value - mLastValue) / i_Num) ; + END_IF + ELSE + mArrayLoaded := FALSE ; + FilterOut := i_Value ; + mArrayPtr := 0 ; + END_IF +ELSE + IF NOT mArrayCleaned THEN + FOR i:=0 TO 49 DO + mDataArray[i] := 0 ; + mArrayCleaned := TRUE ; + END_FOR + END_IF + mArrayLoaded := FALSE ; + FilterOut := i_Value ; + mArrayPtr := 0 ; +END_IF +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/MASELLI.EXP b/backend/script_groups/TwinCat/.example/MASELLI.EXP new file mode 100644 index 0000000..9e7ccc7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MASELLI.EXP @@ -0,0 +1,61 @@ +(* @GLOBAL_VARIABLE_LIST := Maselli *) +(* @PATH := '\/Product_Syrup_Meters' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(*************************************************************************************) +(* OUTPUT TO Maselli *) +(*************************************************************************************) + gMaselliOptoEnabled AT%MB2010 : BOOL ; + gMaselliReset AT%MB2011 : BOOL ; + gMaselliSetNewRec AT%MB2012 : BOOL ; + gMaselliNumRecipe AT%MB2013 : INT ; + gMaselliUC05_Enabled AT%MB2015 : BOOL ; + gMaselliUC05_ZeroCO2 AT%MB2016 : REAL; + gMaselliUR22_Enabled AT%MB2020 : BOOL ; + gMaselliUR22_RecipeType AT%MB2021 : REAL; (* 0: Regular, 2: Diet - per ora non usato*) + gMaselliUR22_ZeroBrix AT%MB2025 : REAL; + +(*************************************************************************************) +(* INPUT FROM Maselli Opto *) +(*************************************************************************************) + gMaselli_Block : MaselliOpto_Type ; + gMaselliStatus : WORD ; + gMaselliStatusArray AT%MB500 : ARRAY[0..15] OF BOOL ; + gMaselliProdFlag2 AT%MB500 : BOOL ; + gMaselliProdFlag1 AT%MB501 : BOOL ; + gMaselliDerivativeAction AT%MB502 : BOOL ; + gMaselliIntegralAction AT%MB503 : BOOL ; + gMaselliCO2Regulation AT%MB504 : BOOL ; + gMaselliCO2CntrFunct AT%MB505 : BOOL ; + gMaselliLineStopped AT%MB506 : BOOL ; + gMaselliTempRegulation AT%MB507 : BOOL ; + gMaselliBrixRegulation AT%MB508 : BOOL ; + gMaselliWinding AT%MB509 : BOOL ; + gMaselliBxCntrFunct AT%MB510 : BOOL ; + gMaselliLampFailure AT%MB511 : BOOL ; + gMaselliCO2Alarm AT%MB512 : BOOL ; + gMaselliBrixAlarm AT%MB513 : BOOL ; + gMaselliCO2CycleRun AT%MB514 : BOOL ; + gMaselliPumpOn AT%MB515 : BOOL ; + + gMaselliError : BOOL ; + gMaselliErrorCode : DWORD ; + +(*************************************************************************************) +(* INPUT FROM Maselli UC05 *) +(*************************************************************************************) + gMaselliUC05_Block : MaselliUC05_Type ; + +(*************************************************************************************) +(* INPUT FROM Maselli UR22 *) +(*************************************************************************************) + gMaselliUR22_Block : MaselliUR22_Type ; +END_VAR + +(* @OBJECT_END := Maselli *) +(* @CONNECTIONS := Maselli +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/MASELLIOPTO_TYPE.EXP b/backend/script_groups/TwinCat/.example/MASELLIOPTO_TYPE.EXP new file mode 100644 index 0000000..0bd0314 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MASELLIOPTO_TYPE.EXP @@ -0,0 +1,31 @@ +(* @PATH := '\/Product Syrup Meters' *) +TYPE MaselliOpto_Type : + STRUCT + (************** Next Structure Length is 72 Bytes**************************) + DataBusy : BOOL ; + CmdExec : BOOL ; + ComError : BOOL ; + Dummy : BOOL ; + ErrorCode : DWORD ; + + Status : WORD ; + ProdRecipeNum : INT ; + ProdBrix : REAL ; + ProdTemp : REAL ; + ProdBrix_Tg : REAL ; + ProdBrix_LowAlrm : REAL ; + ProdBrix_HighAlrm: REAL ; + ProdCO2 : REAL ; + CO2Press : REAL ; + CO2Temp : REAL ; + ProdCO2_Tg : REAL ; + ProdCO2_LowAlrm: REAL ; + ProdCO2_HighAlrm: REAL ; + ProdBrix_Comp : REAL ; + ProdBrix_NoComp: REAL ; + LinePress : REAL ; + LineTemp : REAL ; + END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/MASELLIUC05_TYPE.EXP b/backend/script_groups/TwinCat/.example/MASELLIUC05_TYPE.EXP new file mode 100644 index 0000000..a3e0efd --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MASELLIUC05_TYPE.EXP @@ -0,0 +1,25 @@ +(* @PATH := '\/Product Syrup Meters' *) +TYPE MaselliUC05_Type : + STRUCT + DataBusy : BOOL ; (* Set whenever the driver has sended the ? Command - Reset When Ready *) + CmdExec : BOOL ; (* Notifies that the driver is executing a specific command *) + ComError : BOOL ; (* Driver Error *) + Dummy : BOOL ; + + ErrorCode : DWORD ; (* Error Code *) + + CO2_Value : REAL ; + CO2_Zero : REAL ; + CO2_Span : REAL ; + CO2_Damping : REAL ; + CO2_NumCurve : REAL ; + CO2_Temp : REAL ; + CO2_LineTemp : REAL ; + CO2_Press : REAL ; + CO2_LinePress : REAL ; + CO2_BitCW : WORD ; + CO2_CicleTime : REAL ; + END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/MASELLIUR22_TYPE.EXP b/backend/script_groups/TwinCat/.example/MASELLIUR22_TYPE.EXP new file mode 100644 index 0000000..4bf4003 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MASELLIUR22_TYPE.EXP @@ -0,0 +1,28 @@ +(* @PATH := '\/Product Syrup Meters' *) +TYPE MaselliUR22_Type : + STRUCT + DataBusy : BOOL ; (* Set whenever the driver has sended the ? Command - Reset When Ready *) + CmdExec : BOOL ; (* Notifies that the driver is executing a specific command *) + ComError : BOOL ; (* Driver Error *) + Dummy : BOOL ; + + ErrorCode : DWORD ; (* Error Code *) + + Brix_Value : REAL ; + Brix_Zero : REAL ; + Brix_Span : REAL ; + Brix_Damping : REAL ; + Brix_STD_Value : REAL ; + Brix_STD_PV : REAL ; + Brix_STD_Range : REAL ; + Brix_STD_Factor : REAL ; + Brix_Temp : REAL ; + Brix_Press : REAL ; + Prisma_Temp : REAL ; + Derivative : REAL ; + Humidity : REAL ; + BitCW : WORD ; + END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/MASELLI_CONTROL.EXP b/backend/script_groups/TwinCat/.example/MASELLI_CONTROL.EXP new file mode 100644 index 0000000..ba9f3f9 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MASELLI_CONTROL.EXP @@ -0,0 +1,2311 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Maselli_Control +VAR + i : SINT ; + mFreezeMeterTmr : TOF ; + mTmrReset : TON ; + mTmrFault : TOF ; + mReset : BOOL ; + mCountError : INT ; + + mMaselli_Block : ADSREAD ; + mMaselli_Busy : BOOL ; + mMaselli_Read : BOOL ; + mMaselli_Error : BOOL ; + mMaselli_ErrorCode : UDINT ; + mMaselli_RecipeTmr : TP ; + + mMaselliUC05_Block : ADSREAD ; + mMaselliUC05_Busy : BOOL ; + mMaselliUC05_Read : BOOL ; + mMaselliUC05_Error : BOOL ; + mMaselliUC05_ErrorCode: UDINT ; + mUC05ComErrorCount : INT ; + + mMaselliUR22_Block : ADSREAD ; + mMaselliUR22_Busy : BOOL ; + mMaselliUR22_Read : BOOL ; + mMaselliUR22_Error : BOOL ; + mMaselliUR22_ErrorCode: UDINT ; + mUR22ComErrorCount : INT ; + + mDummy : BOOL ; + mUC22SetResult : UDINT; + mUC05SetResult : UDINT; + mUC05_Error_Fault : BOOL; + mUC05_Fault_Delay : TON; + mUR22_Error_Fault : BOOL; + mUR22_Fault_Delay : TON; + + mMaselliEnabled :BOOL ; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 15 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSystem_Task_Info[3].active +_EXPRESSION +_NEGATIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliError +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliOptoEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mTmrReset +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliUC05_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliUC05_Communication_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliUR22_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliUR22_Communication_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mReset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_MeterType +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BrixMeter +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliOptoEnabled +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_MeterType +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BrixMeter +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliUC05_Enabled +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_MeterType +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BrixMeter +_OPERAND +_EXPRESSION +_POSITIV +gSyrupRoomEn +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliUR22_Enabled +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gMaselliOptoEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliUC05_Enabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliUR22_Enabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMaselliEnabled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 7 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendRecircActive +_EXPRESSION +_NEGATIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFlowToFiller +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderStartPumpsONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +mMaselliEnabled +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFreezeMeterTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gFreezeProductMeter +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mMaselliEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Maselli_Control.Write_Maselli +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliOptoEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Maselli_Control.Read_MaselliOpto +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUC05_Enabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Maselli_Control.Read_MaselliUC05 +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUR22_Enabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Maselli_Control.Read_MaselliUR22 +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Start Maselli pump message TO HMI +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gMaselliPumpOn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliOptoEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message027 +_NETWORK + +_COMMENT +Maselli Lamp Failure message TO HMI +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliLampFailure +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliOptoEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message028 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliError +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliOptoEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliUC05_Enabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliUC05_Communication_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliUC05_Error_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliUR22_Enabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliUR22_Communication_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gMaselliUR22_Error_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mTmrFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gH_ProductMeter_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mMaselliEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_ProductMeter_Fault +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gH_ProductMeter_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliError +_EXPRESSION +_NEGATIV +_LD_CONTACT +gMaselliOptoEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gMaselliUC05_Communication_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gMaselliUC05_Error_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gMaselliUC05_Enabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gMaselliUR22_Communication_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gMaselliUR22_Error_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gMaselliUR22_Enabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gProductMeterOk + +END_PROGRAM +ACTION DecodeStatus: +FOR i:=0 TO 15 DO + gMaselliStatusArray[i] := GETBIT32(gMaselliStatus, i) ; +END_FOR +END_ACTION + +ACTION Read_MaselliOpto: +_LD_BODY +_NETWORKS : 13 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mMaselli_Read +_EXPRESSION +_NEGATIV +_LD_CONTACT +mMaselli_Busy +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMaselli_Read +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mMaselli_Block +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderAMS_NET_ID +_OPERAND +_EXPRESSION +_POSITIV +811 +_OPERAND +_EXPRESSION +_POSITIV +16#00004020 +_OPERAND +_EXPRESSION +_POSITIV +16#00000000 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselli_Block +_EXPRESSION +_POSITIV +SIZEOF +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselli_Block +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +mMaselli_Read +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +ADSREAD +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mMaselli_Error +_OUTPUT +_POSITIV +_NO_SET +mMaselli_ErrorCode +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMaselli_Busy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselli_Block.ProdBrix +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselli_Block.ProdCO2 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductCO2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselli_Block.ProdTemp +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselli_Block.ProdRecipeNum +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductRecipeNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselli_Block.Status +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliStatus +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Maselli_Control.DecodeStatus +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselli_Block.ErrorCode +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliErrorCode +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselli_Block.ComError +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mCountError +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCountError +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gMaselli_Block.ProdRecipeNum +_OUTPUT +_POSITIV +_NO_SET +gMaselli_Block.ProdCO2 +_OUTPUT +_POSITIV +_NO_SET +gMaselli_Block.ProdBrix +_OUTPUT +_POSITIV +_NO_SET +gMaselli_Block.ProdTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselli_Block.ComError +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCountError +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mCountError +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliError +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gMaselliError +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselli_Error_Fault + +END_ACTION + +ACTION Read_MaselliUC05: +_LD_BODY +_NETWORKS : 11 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mMaselliUC05_Read +_EXPRESSION +_NEGATIV +_LD_CONTACT +mMaselliUC05_Busy +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMaselliUC05_Read +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mMaselliUC05_Block +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderAMS_NET_ID +_OPERAND +_EXPRESSION +_POSITIV +811 +_OPERAND +_EXPRESSION +_POSITIV +16#00004020 +_OPERAND +_EXPRESSION +_POSITIV +16#000002BC +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block +_EXPRESSION +_POSITIV +SIZEOF +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +mMaselliUC05_Read +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +ADSREAD +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mMaselliUC05_Error +_OUTPUT +_POSITIV +_NO_SET +mMaselliUC05_ErrorCode +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMaselliUC05_Busy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block.CO2_Value +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductCO2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUC05_Enabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block.CO2_LineTemp +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUC05_Block.ComError +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mUC05ComErrorCount +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUC05ComErrorCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUC05_Block.ComError +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUC05ComErrorCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mUC05ComErrorCount +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliUC05_Communication_Fault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUC05_Communication_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gMaselliUC05_Block.CO2_LineTemp +_OUTPUT +_POSITIV +_NO_SET +gMaselliUC05_Block.CO2_Value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUC05_Communication_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block +_EXPRESSION +_POSITIV +SIZEOF +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUC05SetResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block.CO2_CicleTime +_OPERAND +_EXPRESSION +_POSITIV +60 +_EXPRESSION +_POSITIV +GT +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block.CO2_BitCW +_OPERAND +_EXPRESSION +_POSITIV +2#0000000011111100 +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUC05_Error_Fault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +mUC05_Error_Fault +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mUC05_Fault_Delay +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#60s +_EXPRESSION +_POSITIV +ton +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliUC05_Error_Fault + +END_ACTION + +ACTION Read_MaselliUR22: +_LD_BODY +_NETWORKS : 11 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mMaselliUR22_Read +_EXPRESSION +_NEGATIV +_LD_CONTACT +mMaselliUR22_Busy +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMaselliUR22_Read +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mMaselliUR22_Block +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderAMS_NET_ID +_OPERAND +_EXPRESSION +_POSITIV +811 +_OPERAND +_EXPRESSION +_POSITIV +16#00004020 +_OPERAND +_EXPRESSION +_POSITIV +16#00000320 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUR22_Block +_EXPRESSION +_POSITIV +SIZEOF +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUR22_Block +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +mMaselliUR22_Read +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +ADSREAD +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mMaselliUR22_Error +_OUTPUT +_POSITIV +_NO_SET +mMaselliUR22_ErrorCode +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMaselliUR22_Busy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUR22_Block.Brix_Value +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUC05_Enabled +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUR22_Block.Brix_Temp +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUR22_Block.ComError +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mUR22ComErrorCount +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUR22ComErrorCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUR22_Block.ComError +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUR22ComErrorCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mUR22ComErrorCount +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliUR22_Communication_Fault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUR22_Communication_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliUR22_Block.Brix_Value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gMaselliUR22_Communication_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUR22_Block +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUR22_Block +_EXPRESSION +_POSITIV +SIZEOF +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUC22SetResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUR22_Block.Derivative +_OPERAND +_EXPRESSION +_POSITIV +30000 +_EXPRESSION +_POSITIV +LT +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUR22_Block.Humidity +_OPERAND +_EXPRESSION +_POSITIV +50 +_EXPRESSION +_POSITIV +GT +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMaselliUC05_Block.CO2_BitCW +_OPERAND +_EXPRESSION +_POSITIV +2#0000000011111100 +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUR22_Error_Fault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +mUR22_Error_Fault +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mUR22_Fault_Delay +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#60s +_EXPRESSION +_POSITIV +ton +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaselliUR22_Error_Fault + +END_ACTION + +ACTION Write_Maselli: +IF gH_A_Recipe_ProdMeterRecipeNum>40 THEN + gMaselliNumRecipe := 25 ; +ELSE + gMaselliNumRecipe := gH_A_Recipe_ProdMeterRecipeNum ; +END_IF + +gMaselliUC05_ZeroCO2 := LIMIT (-02.50, gH_A_Recipe_ProdMeter_ZeroCO2, 02.50); +gMaselliUR22_ZeroBrix := LIMIT (-020.000, gH_A_Recipe_ProdMeter_ZeroBrix, 020.000 ); +gMaselliUR22_RecipeType := 0; + +mMaselli_RecipeTmr(IN:=gProdMeterTransferRecipe,PT:=t#400ms) ; +gMaselliSetNewRec := mMaselli_RecipeTmr.Q ; +IF gProdMeterTransferRecipe THEN + gProdMeterTransferRecipe := FALSE ; +END_IF + +IF mReset THEN + gMaselliReset := TRUE ; + gProdMeterTransferRecipe := FALSE ; + gMaselliSetNewRec := FALSE ; +ELSE + gMaselliReset := FALSE ; +END_IF +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/MAXCARBOCO2_VOL.EXP b/backend/script_groups/TwinCat/.example/MAXCARBOCO2_VOL.EXP new file mode 100644 index 0000000..74821d4 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MAXCARBOCO2_VOL.EXP @@ -0,0 +1,23 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION MaxCarboCO2_Vol : REAL +VAR_INPUT + i_Temp : REAL ; + i_Press : REAL ; +END_VAR +VAR + mAbsTemp : REAL ; + mAux : REAL ; +END_VAR + +(* @END_DECLARATION := '0' *) +IF i_Temp<=0 THEN i_Temp:= 12.0 ; END_IF +mAbsTemp := i_Temp + gZeroAbsolute ; +IF (0.03275 * mAbsTemp - 7.9567)<>0 AND i_Press <>0 AND (0.000261 + mAux * (1 + 1.0332 / i_Press))<>0 THEN + mAux := (0.01898 - 0.0000476 * mAbsTemp) / (0.03275 * mAbsTemp - 7.9567) ; + MaxCarboCO2_Vol := i_Press * mAbsTemp / 1.0332 * (0.000261 + mAux * (1 + 1.0332 / i_Press)) ; +ELSE + MaxCarboCO2_Vol := -1 ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/MESSAGESCROLL.EXP b/backend/script_groups/TwinCat/.example/MESSAGESCROLL.EXP new file mode 100644 index 0000000..4acded6 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MESSAGESCROLL.EXP @@ -0,0 +1,44 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK MessageScroll +VAR_INPUT + msg_array : ARRAY [0..70] OF BOOL; + scroll_sec : INT; +END_VAR +VAR_OUTPUT + msg_code: INT; +END_VAR +VAR + mONS: R_TRIG ; + msg_ptr: POINTER TO BYTE; + i_sec: INT; + i_msg: INT; + msg_active: BOOL; +END_VAR + +(* @END_DECLARATION := '0' *) +mONS(CLK:=gClock_1s) ; +IF i_msg < SIZEOF(msg_array) THEN + msg_ptr := ADR (msg_array[i_msg]) ; + IF msg_ptr^ = 1 THEN + msg_active := TRUE; + msg_code := i_msg ; + IF mONS.Q THEN + IF i_sec <= scroll_sec THEN + i_sec := i_sec + 1; + ELSE + i_sec := 0; + i_msg := i_msg + 1; + END_IF + END_IF + ELSE + i_msg := i_msg + 1; + i_sec := 0; + END_IF +ELSE + i_msg := 0 ; + msg_active := FALSE; + msg_code := i_msg ; +END_IF +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/MESSAGE_SCROLL.EXP b/backend/script_groups/TwinCat/.example/MESSAGE_SCROLL.EXP new file mode 100644 index 0000000..1d49b6b --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MESSAGE_SCROLL.EXP @@ -0,0 +1,7 @@ +(* @PATH := '' *) +TYPE Message_Scroll : +STRUCT + gH_Message : ARRAY [0..70] OF BOOL; +END_STRUCT +END_TYPE +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/MFMANALOG_VALUES.EXP b/backend/script_groups/TwinCat/.example/MFMANALOG_VALUES.EXP new file mode 100644 index 0000000..44dd9e4 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MFMANALOG_VALUES.EXP @@ -0,0 +1,663 @@ + +(* @PATH := '\/TASK0_VOID' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM MFMAnalog_Values +VAR + mCarboCO2DeltaPSim : REAL ; + mTemp : MFM_Real_Struct ; + mAuxONS : F_TRIG ; + mBlendStopONS : BOOL ; + mBlendStopDly : TOF ; + mAuxTP : TP ; + + mH2OValveSlew : SlewLimit ; + mH2OFlowFlted : LowPassFilter ; + mSyrValveSlew : SlewLimit ; + mSyrFlowFlted : LowPassFilter ; + mCarboCO2ValveSlew : SlewLimit ; + mCarboCO2FlowFlted : LowPassFilter ; + mWaterFlowTmp : REAL ; + mSyrupFlowTmp : REAL ; + mCarboCO2FlowTmp : REAL ; + mCO2InjPressure : REAL ; + mWaterFlowDld : Delay ; + mSyrupFlowDld : Delay ; + mCarboCO2FlowDld : Delay ; + mWaterVFMError : LREAL ; + mWaterDRand : FW_DRand ; + mCO2WaterEffectDRand : FW_DRand ; + mCO2WaterCoupling : REAL ; + mSyrupMFMError : LREAL ; + mSyrupDRand : FW_DRand ; + mCO2MFMError : LREAL ; + mCO2DRand : FW_DRand ; + mH2OTotFlted : LowPassFilter ; + mSyrupTotFlted : LowPassFilter ; + mSyrupDensFlted : LowPassFilter ; + mSyrupBrixFlted : LowPassFilter ; + mSyrupTempFlted : LowPassFilter ; + mCarboCO2TotFlted : LowPassFilter ; + mCarboCO2TempFlted : LowPassFilter ; + mCarboCO2DensFlted : LowPassFilter ; + mCO2InjPressFlted : LowPassFilter ; + mProdFlowFlt : LowPassFilter ; + mCO2DensSim : REAL ; + mDummy : BOOL ; + mProdFlowFlted : LowPassFilter; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + + +(* @END_DECLARATION := '0' *) +IF NOT gH_Blender_OPT_Simulation THEN + IF gH_Blender_OPT_Conductimeter_Profibus THEN + mTemp := ConvertReal(gLowCond_Node15 ) ; + gLowCond_Conductivity := mTemp.Analog_Value ; + gLowCond_Conductivity_State := mTemp.Value_State ; + gIn_C2_Conductivity_Water := 1000*gLowCond_Conductivity; + + mTemp := ConvertReal(gLowCondTemp_Node15 ) ; + gLowCond_Temperature := mTemp.Analog_Value ; + gLowCond_Temperature_State := mTemp.Value_State ; + gCIPReturnTemp_PV:=gLowCond_Temperature; + + mTemp := ConvertReal(gHighCond_Node16 ) ; + gHighCond_Conductivity := mTemp.Analog_Value ; + gHighCond_Conductivity_State := mTemp.Value_State ; + gIn_C1_Conductivity_Caustic := 1*gHighCond_Conductivity; + + mTemp := ConvertReal(gHighCondTemp_Node16 ) ; + gHighCond_Temperature := mTemp.Analog_Value ; + gHighCond_Temperature_State := mTemp.Value_State ; + gCIPHeaterTemp_PV:=gHighCond_Temperature; + END_IF + mTemp := ConvertReal( gProductFlow_Node17 ) ; + gVFM_ProductFlow := mTemp.Analog_Value ; (* Product Flowrate Reading From FM Node17 *) + gVFM_ProductFlow_State := mTemp.Value_State ; (* Product Flowrate Error Code *) + + mTemp := ConvertReal( gProductTotalizer1_Node17 ) ; + gVFM_ProductTotalizer := mTemp.Analog_Value ; (* Product Totalizer Reading From FM Node17 *) + gVFM_ProductTotalizer_State := mTemp.Value_State ; (* Product Totalizer Error Code *) + + mTemp := ConvertReal(gProdPH_Node18 ) ; + gProdPH_PHValue := mTemp.Analog_Value ; + gProdPH_PHValue_State := mTemp.Value_State ; + + mTemp := ConvertReal(gTempProdPH_Node18 ) ; + gProdPH_Temperature := mTemp.Analog_Value ; + gProdPH_Temperature_State := mTemp.Value_State ; + + mTemp := ConvertReal(gProdCond_Node19 ) ; + gProdCond_Conductivity := mTemp.Analog_Value ; + gProdCond_Conductivity_State := mTemp.Value_State ; + gProductConductivity := 1000*gProdCond_Conductivity; + + mTemp := ConvertReal(gTempProdCond_Node19 ) ; + gProdCond_Temperature := mTemp.Analog_Value ; + gProdCond_Temperature_State := mTemp.Value_State ; + + mTemp := ConvertReal( gWaterFlow_Node20 ) ; + gMFM_WaterFlow := mTemp.Analog_Value ; (* Water Flowrate Reading From VFM Node20 *) + gMFM_WaterFlow_State := mTemp.Value_State ; (* Water Flowrate Error Code *) + + mTemp := ConvertReal( gWaterTotalizer1_Node20 ) ; + gMFM_WaterTotalizer := mTemp.Analog_Value ; (* Water Totalizer Reading From VFM Node20 *) + gMFM_WaterTotalizer_State := mTemp.Value_State ; (* Water Totalizer Error Code *) + + mTemp := ConvertReal( gSyrMassFlow_Node21 ) ; + gMFM_Syrup1Flow := mTemp.Analog_Value ; (* Syrup Flowrate Reading From MFM Node21 *) + gMFM_Syrup1Flow_State := mTemp.Value_State ; (* Syrup Flowrate Error Code *) + + mTemp := ConvertReal( gSyrTemperature_Node21 ) ; + gMFM_TemperatureSyrup1 := mTemp.Analog_Value ; (* Syrup Temperature Reading From MFM Node21 *) + IF gMFM_TemperatureSyrup1>200 THEN + gMFM_TemperatureSyrup1 := gMFM_TemperatureSyrup1 - gZeroAbsolute ; + END_IF + gMFM_TemperatureSyrup1_State := mTemp.Value_State ;(* Syrup Temperature Error Code *) + + mTemp := ConvertReal(gSyrTotalizer1_Node21 ) ; + gMFM_Syrup1Totalizer := mTemp.Analog_Value ; + gMFM_Syrup1Totalizer_State := mTemp.Value_State ; + + mTemp := ConvertReal( gSyrDensity_Node21 ) ; + gMFM_Syrup1Density := mTemp.Analog_Value + gH2O_Density_Off ; + gMFM_Syrup1Density_State := mTemp.Value_State ; + + mTemp := ConvertReal( gSyrBrix_Node21 ) ; + IF gWorkshopTest THEN + gMFM_Syrup1Brix := gTestSyrBrix ; + ELSE + gMFM_Syrup1Brix := mTemp.Analog_Value ; + END_IF + gMFM_Syrup1Brix_State := mTemp.Value_State ; + + mTemp := ConvertReal( gCO2MassFlow_Node22 ) ; + gMFM_CO2Flow := mTemp.Analog_Value ; + gMFM_CO2Flow_State := mTemp.Value_State ; + + mTemp := ConvertReal( gCO2Temperature_Node22 ) ; + gMFM_CO2Temperature := mTemp.Analog_Value ; + IF gMFM_CO2Temperature>200 THEN + gMFM_CO2Temperature := gMFM_CO2Temperature - gZeroAbsolute ; + END_IF + gMFM_CO2Temperature_State := mTemp.Value_State ; + + mTemp := ConvertReal( gCO2Density_Node22 ) ; + gMFM_CO2Density := mTemp.Analog_Value ; + gMFM_CO2Density_State := mTemp.Value_State ; + + mTemp := ConvertReal( gCO2Totalizer1_Node22 ) ; + gMFM_CO2Totalizer := mTemp.Analog_Value ; + gMFM_CO2Totalizer_State := mTemp.Value_State ; + + mCO2InjPressure := CO2InjPressure(i_Temp:=gMFM_CO2Temperature ,i_Dens:=gMFM_CO2Density) ; +ELSE (* Simulation *) + IF gBlenderProdMode THEN + (* Calculates the flow across the water valve *) + mH2OValveSlew(i_InValue:=gR_Out_H2O_PID, i_SlewMax:=15,i_Cycle:=gTask0Cycle_Time, out:=gH2OValveSlewOut) ; + IF (gCarboWaterLine_Running OR gDeairStartUp_Running) AND gH_EV22_Status THEN + gH2OValveSlewOut := 4 ; + END_IF + mCarboCO2DeltaPSim := DeltaP(i_Flow:=gCarboCO2FlowSim, i_K:= gCarboCO2ValveCv, i_Valve:=gCarboCO2ValveSlewOut) ; + mWaterFlowTmp := ValveFlow(i_DeltaP:=gWaterValveDeltaP-0.02*mCarboCO2DeltaPSim ,i_ValveOp:=gH2OValveSlewOut ,i_KFF:=0.055, i_Dens:=gH2O_Density ) + mWaterVFMError + mCO2WaterCoupling ; + mH2OFlowFlted(i_Value:=mWaterFlowTmp,i_Num:=10 ,i_Enable:=TRUE) ; + + mWaterFlowDld(i_Value:=mH2OFlowFlted.FilterOut ,i_Sample:=2 ) ; + mCO2WaterEffectDRand(nSeed:=0) ; + IF (gCarboStillProduct OR gH_Blender_OPT_DoubleDeair) AND gWaterPipe_Vel>0 AND gBlenderStableFlow AND gAlwaysOff THEN + mCO2WaterCoupling := mCO2WaterEffectDRand.fRndNum * (1 / EXPT(gWaterPipe_Vel,3)) * mWaterFlowDld.i_out * 0.02 ; + ELSE + mCO2WaterCoupling := 0.0 ; + END_IF + mWaterDRand(nSeed:=0) ; + mWaterVFMError := mWaterDRand.fRndNum * gWaterVFMCalcError ; + gWaterFlowSim := mWaterFlowDld.i_out ; + + mSyrValveSlew(i_InValue:=gR_Out_SYR_PID, i_SlewMax:=20,i_Cycle:=gTask0Cycle_Time, out:=gSyrValveSlewOut) ; + mSyrupFlowTmp := ValveFlow(i_DeltaP:=gSyrupValveDeltaP ,i_ValveOp:=gSyrValveSlewOut ,i_KFF:=0.35, i_Dens:=gActualRecipe_SyrDens) + mSyrupMFMError ; + mSyrFlowFlted(i_Value:=mSyrupFlowTmp,i_Num:=10 ,i_Enable:=TRUE) ; + mSyrupFlowDld(i_Value:=mSyrFlowFlted.FilterOut ,i_Sample:=5) ; + mSyrupDRand(nSeed:=0) ; + mSyrupMFMError := mSyrupDRand.fRndNum * gSyrupMFMCalcError ; + gSyrupFlowSim := mSyrupFlowDld.i_out ; + + mCarboCO2ValveSlew(i_InValue:=gR_Out_CO2_PID, i_SlewMax:=20,i_Cycle:=gTask0Cycle_Time, out:=gCarboCO2ValveSlewOut) ; + mCarboCO2FlowTmp := ValveFlow(i_DeltaP:=gCarboCO2ValveDeltaP ,i_ValveOp:=gCarboCO2ValveSlewOut ,i_KFF:=0.34, i_Dens:=gCO2_Density / 1000) + mCO2MFMError ; + mCarboCO2FlowFlted(i_Value:=mCarboCO2FlowTmp ,i_Num:=10 ,i_Enable:=TRUE) ; + mCarboCO2FlowDld(i_Value:=mCarboCO2FlowFlted.FilterOut ,i_Sample:=3) ; + mCO2DRand(nSeed:=0) ; + mCO2MFMError := mCO2DRand.fRndNum * gCO2MFMCalcError ; + gCarboCO2FlowSim := mCarboCO2FlowDld.i_out ; + + gMFM_WaterFlow := gWaterFlowSim ; + gMFM_Syrup1Flow := gSyrupFlowSim ; + gMFM_CO2Flow := gCarboCO2FlowSim ; + + mCO2DensSim := 0.028 + 0.0015 * SIN(Omegat) ; + mCO2InjPressure := CO2InjPressure(i_Temp:=20 ,i_Dens:=mCO2DensSim) ; + + gMFM_Syrup1Brix := gTestSyrBrix ; + gMFM_Syrup1Density := SyrupDensity(i_SyrupBrix:=gTestSyrBrix) ; + END_IF +END_IF + +mCO2InjPressFlted(i_Value:=mCO2InjPressure,i_Num:=8 ,i_Enable:=TRUE) ; +gCO2InjPressureCalc := LIMIT(10, mCO2InjPressFlted.FilterOut, 20) * 1.0 ; + +mProdFlowFlted(i_Value:=gVFM_ProductFlow,i_Num:=8 ,i_Enable:=TRUE) ; +gProd_Flow_Meas := mProdFlowFlted.FilterOut ; + +IF gBlenderProdMode THEN + mH2OFlowFlted(i_Value:=gMFM_WaterFlow,i_Num:=6 ,i_Enable:=gBlenderFlowFltEn) ; + gH2O_Flow_Meas := mH2OFlowFlted.FilterOut ; + mSyrFlowFlted(i_Value:=gMFM_Syrup1Flow,i_Num:=6 ,i_Enable:=gBlenderFlowFltEn) ; + gSYR_Flow_Meas := mSyrFlowFlted.FilterOut ; + mCarboCO2FlowFlted(i_Value:=gMFM_CO2Flow,i_Num:=6 ,i_Enable:=gBlenderFlowFltEn) ; + MFMAnalog_Values.Totalizers ; +ELSE + mH2OFlowFlted(i_Value:=gMFM_WaterFlow,i_Num:=10 ,i_Enable:=gBlenderFlowFltEn) ; + gH2O_Flow_Meas := mH2OFlowFlted.FilterOut ; + mSyrFlowFlted(i_Value:=gMFM_Syrup1Flow,i_Num:=0 ,i_Enable:=gBlenderFlowFltEn) ; + gSYR_Flow_Meas := mSyrFlowFlted.FilterOut ; + mCarboCO2FlowFlted(i_Value:=gMFM_CO2Flow,i_Num:=0 ,i_Enable:=gBlenderFlowFltEn) ; +END_IF + +IF gCO2_Density<>0 THEN + gCO2_Flow_Meas := mCarboCO2FlowFlted.FilterOut / gCO2_Density ; +END_IF + +IF gActualSyrupDens > 0 THEN + gSYR_Vol_Flow_Meas := gSYR_Flow_Meas / gActualSyrupDens ; +ELSE + gSYR_Vol_Flow_Meas := gSYR_Flow_Meas ; +END_IF +mProdFlowFlt(i_Value:=gH2O_Flow_Meas + gSYR_Vol_Flow_Meas,i_Num:=18, i_Enable:=gBlenderFlowFltEn) ; +gActual_Prod_Flow := mProdFlowFlt.FilterOut ; + +MFMAnalog_Values.ResetTotalizers(); +END_PROGRAM +ACTION ResetTotalizers: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIMResetCounter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 8 +_OUTPUT +_POSITIV +_NO_SET +gWaterTotal +_OUTPUT +_POSITIV +_NO_SET +gSyrupTotal +_OUTPUT +_POSITIV +_NO_SET +gCO2Total +_OUTPUT +_POSITIV +_NO_SET +gProductVFMTotal +_OUTPUT +_POSITIV +_NO_SET +gCO2TempTot +_OUTPUT +_POSITIV +_NO_SET +gSyrupTempTot +_OUTPUT +_POSITIV +_NO_SET +gWaterTempTot +_OUTPUT +_POSITIV +_NO_SET +gProductVFMTempTot +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Totalizers: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mBlendStopDly +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mBlendStopONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mBlendStopONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 4 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMFM_WaterTotalizer +_OPERAND +_EXPRESSION +_POSITIV +gWaterTempTot +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterTempTot +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Totalizer +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTempTot +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupTempTot +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_CO2Totalizer +_OPERAND +_EXPRESSION +_POSITIV +1000 +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +gCO2TempTot +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCO2TempTot +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gVFM_ProductTotalizer +_OPERAND +_EXPRESSION +_POSITIV +gProductVFMTempTot +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductVFMTempTot +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +mBlendStopONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +tp +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gBlendResetTotalizer +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 4 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMFM_WaterTotalizer +_OPERAND +_EXPRESSION +_POSITIV +gWaterTempTot +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterTotal +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Totalizer +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTempTot +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupTotal +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_CO2Totalizer +_OPERAND +_EXPRESSION +_POSITIV +1000 +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +gCO2TempTot +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCO2Total +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gVFM_ProductTotalizer +_OPERAND +_EXPRESSION +_POSITIV +gProductVFMTempTot +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductVFMTotal +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/MFM_REAL_STRUCT.EXP b/backend/script_groups/TwinCat/.example/MFM_REAL_STRUCT.EXP new file mode 100644 index 0000000..cf43c38 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MFM_REAL_STRUCT.EXP @@ -0,0 +1,8 @@ +(* @PATH := '\/MFM Value' *) +TYPE MFM_Real_Struct : + STRUCT + Analog_Value : REAL ; + Value_State : BYTE ; + END_STRUCT +END_TYPE +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/MMH2O_TO_FREQ.EXP b/backend/script_groups/TwinCat/.example/MMH2O_TO_FREQ.EXP new file mode 100644 index 0000000..c2a0bf8 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MMH2O_TO_FREQ.EXP @@ -0,0 +1,27 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION mmH2O_TO_Freq : REAL +VAR_INPUT + i_Head : REAL ; (* Request Head in mmH2O *) + i_K_Pump : REAL ; (* Freq to Head Pump Factor *) +END_VAR +VAR +END_VAR + + +(* @END_DECLARATION := '0' *) +(* Calculates the pump frequency to get an input head + + Freq = Pump Frequency [Hz] + K_mBar = Freq to Head Pump Constant + +(* Head [ mBar] = Freq^2 * K_Pump *) + +(******* Pompa INOXPA Modello ______ Motore 4 Poli 960 RPM ********* *) + +IF i_K_Pump<>0 THEN + mmH2O_TO_Freq := SQRT ( i_Head / i_K_Pump ); +END_IF +mmH2O_TO_Freq := LIMIT(0, mmH2O_TO_Freq, 100.0) ; +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/MODVALVEFAULT.EXP b/backend/script_groups/TwinCat/.example/MODVALVEFAULT.EXP new file mode 100644 index 0000000..aac88db --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MODVALVEFAULT.EXP @@ -0,0 +1,358 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM ModValveFault +VAR + mFaultOpenVM1Tmr : TON ; + mFaultOpenVM2Tmr : TON ; + mFaultOpenVM3Tmr : TON ; + mFaultCloseVM1Tmr : TON ; + mFaultCloseVM2Tmr : TON ; + mFaultCloseVM3Tmr : TON ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gInWaterValveClosed +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFaultOpenVM1Tmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 9 +_LD_CONTACT +gInWaterValveClosed +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_BlenderMaintenance +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdPipeRunOut_Latch +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFaultCloseVM1Tmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterValvePos_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gInSyrupValveClosed +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFaultOpenVM2Tmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 10 +_LD_CONTACT +gInSyrupValveClosed +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_BlenderMaintenance +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdPipeRunOut_Latch +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFaultCloseVM2Tmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupValvePos_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gInCarboCO2ValveClosed +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFaultOpenVM3Tmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 9 +_LD_CONTACT +gInCarboCO2ValveClosed +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_BlenderMaintenance +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCarboWaterLine_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFaultCloseVM3Tmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCarboCO2ValvePos_Fault + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/MOVEARRAY.EXP b/backend/script_groups/TwinCat/.example/MOVEARRAY.EXP new file mode 100644 index 0000000..c420528 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MOVEARRAY.EXP @@ -0,0 +1,27 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION MoveArray : BOOL +VAR_INPUT + i_InArrayPtr : DWORD ; + i_OutArrayPtr : DWORD ; + i_UpBound : INT ; +END_VAR +VAR + i : INT ; + mInArrayPointer : POINTER TO BOOL ; + mOutArrayPointer : POINTER TO BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +IF i_UpBound>0 AND i_UpBound<=191 THEN + FOR i:=0 TO i_UpBound DO + mInArrayPointer := i_InArrayPtr + i ; + mOutArrayPointer := i_OutArrayPtr + i ; + mOutArrayPointer^ := mInArrayPointer^ ; + END_FOR; + MoveArray := TRUE ; +ELSE + MoveArray := FALSE ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/MPDS1000.EXP b/backend/script_groups/TwinCat/.example/MPDS1000.EXP new file mode 100644 index 0000000..8bfde9b --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MPDS1000.EXP @@ -0,0 +1,36 @@ +(* @GLOBAL_VARIABLE_LIST := mPDS1000 *) +(* @PATH := '\/Product_Syrup_Meters' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(************************************************************************************) +(* INPUT FROM mPDS1000 *) +(************************************************************************************) + gmPDS1000_Block : mPDS1000_Type ; + gSyrRecipeNum : UINT ; + gmPDS1000SyrBrix : REAL ; + gmPDS1000SyrDens : REAL ; + gmPDS1000SyrTemp : REAL ; + gmPDS1000String : STRING ; + gmPDS1000Error : BOOL ; + gmPDS1000ErrorCode : DWORD ; + +(************************************************************************************) +(* OUTPUT TO mPDS1000 *) +(************************************************************************************) + gmPDS1000Enabled AT%MB1000 : BOOL ; + gmPDS1000Reset AT%MB1001 : BOOL ; + gmPDS1000FastUpDate AT%MB1002 : BOOL ; + gmPDS1000SetCommand AT%MB1003 : BOOL ; + gmPDS1000CommandVal AT%MD1004 : REAL ; + gmPDS1000SetNewRec AT%MB1008 : BOOL ; + gmPDS1000NumRecipe AT%MW1010 : INT ; + gmPDS1000Command AT%MB1012 : STRING(20) ; +END_VAR + +(* @OBJECT_END := mPDS1000 *) +(* @CONNECTIONS := mPDS1000 +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/MPDS1000_CONTROL.EXP b/backend/script_groups/TwinCat/.example/MPDS1000_CONTROL.EXP new file mode 100644 index 0000000..0cc5b33 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MPDS1000_CONTROL.EXP @@ -0,0 +1,945 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM mPDS1000_Control +VAR + mTmrReset : TP ; + mReset : BOOL ; + mCountError : INT ; + mDelayToEn : TOF ; + mTmrFault : TOF ; + + mPDS1000_Block : ADSREAD ; + mPDS1000_Busy : BOOL ; + mPDS1000_Read : BOOL ; + mPDS1000_Error : BOOL ; + mPDS1000_ErrorCode : UDINT ; + mNoFault : BOOL ; + mWarnCode : INT ; + mWarn : BOOL ; + mBadValue : BOOL ; + mBadValueTmr : TON ; + mDummy : BOOL ; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSystem_Task_Info[3].active +_EXPRESSION +_NEGATIV +_LD_CONTACT +gmPDS1000_Block.ComError +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mTmrReset +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mReset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_SyrBrixMeter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS1000_Control.Read_mPDS1000 +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS1000_Control.Write_mPDS1000 +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 7 +_LD_CONTACT +gH_Blender_OPT_SyrBrixMeter +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mDelayToEn +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gDensimeterCal_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFreezeSyrupMeter +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFreezeSyrupMeter +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_mPDS1000_Run + +END_PROGRAM +ACTION Read_mPDS1000: +_LD_BODY +_NETWORKS : 17 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mPDS1000_Read +_EXPRESSION +_NEGATIV +_LD_CONTACT +mPDS1000_Busy +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPDS1000_Read +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mPDS1000_Block +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderAMS_NET_ID +_OPERAND +_EXPRESSION +_POSITIV +811 +_OPERAND +_EXPRESSION +_POSITIV +16#00004020 +_OPERAND +_EXPRESSION +_POSITIV +16#00000064 +_OPERAND +_EXPRESSION +_POSITIV +52 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000_Block +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +mPDS1000_Read +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +ADSREAD +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mPDS1000_Error +_OUTPUT +_POSITIV +_NO_SET +mPDS1000_ErrorCode +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPDS1000_Busy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000_Block.SyrBrix +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000SyrBrix +_OUTPUT +_POSITIV +_NO_SET +gH_mPDS1000_Brix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000_Block.SyrDens +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000SyrDens +_OUTPUT +_POSITIV +_NO_SET +gH_mPDS1000_Dens +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000_Block.SyrTemp +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000SyrTemp +_OUTPUT +_POSITIV +_NO_SET +gH_mPDS1000_Temp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000_Block.ErrorCode +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000ErrorCode +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000_Block.Warning +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000String +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_FUNCTION +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000String +_OPERAND +_EXPRESSION +_POSITIV +'No Osc' +_EXPRESSION +_POSITIV +FIND +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_NEGATIV +gFreezeSyrupMeter +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000_NoOscillation +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_FUNCTION +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000String +_OPERAND +_EXPRESSION +_POSITIV +'No' +_EXPRESSION +_POSITIV +FIND +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_NEGATIV +gmPDS1000_NoOscillation +_OPERAND +_EXPRESSION +_NEGATIV +gFreezeSyrupMeter +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mNoFault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +mWarn +_EXPRESSION +_NEGATIV +_LD_CONTACT +mNoFault +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mBadValueTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mBadValue +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000String +_OPERAND +_EXPRESSION +_POSITIV +'Warn' +_EXPRESSION +_POSITIV +FIND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWarnCode +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mWarnCode +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWarn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gmPDS1000_Block.ComError +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mCountError +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCountError +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gmPDS1000_Block.ComError +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCountError +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mCountError +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS1000Error +_EXPRESSION +_POSITIV +_LD_CONTACT +mBadValue +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderStableFlow +_EXPRESSION +_POSITIV +_LD_CONTACT +gDisableAlarmDuringCalibration +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS1000_Error_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS1000_Error_Fault +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mTmrFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_mPDS1000_Fault + +END_ACTION + +ACTION Write_mPDS1000: +IF gH_Blender_OPT_SyrBrixMeter THEN + gmPDS1000Enabled := TRUE ; +ELSE + gmPDS1000Enabled := FALSE ; +END_IF +IF mReset THEN + gmPDS1000Reset := TRUE ; +ELSE + gmPDS1000Reset := FALSE ; +END_IF +IF gSyrRunOut_Latch AND gAlwaysOff THEN + gmPDS1000FastUpDate := TRUE ; +ELSE + gmPDS1000FastUpDate := FALSE ; +END_IF +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/MPDS1000_TYPE.EXP b/backend/script_groups/TwinCat/.example/MPDS1000_TYPE.EXP new file mode 100644 index 0000000..c4156d2 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MPDS1000_TYPE.EXP @@ -0,0 +1,17 @@ +(* @PATH := '\/Product Syrup Meters' *) +TYPE mPDS1000_Type : +STRUCT + DataBusy : BOOL ; + CmdExec : BOOL ; + ComError : BOOL ; + Dummy : BOOL ; + ErrorCode : DWORD ; + + RecipeNum : INT ; + SyrBrix : REAL ; + SyrTemp : REAL ; + SyrDens : REAL ; + Warning : STRING(30) ; +END_STRUCT +END_TYPE +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/MPDS2000.EXP b/backend/script_groups/TwinCat/.example/MPDS2000.EXP new file mode 100644 index 0000000..ee56755 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MPDS2000.EXP @@ -0,0 +1,29 @@ +(* @GLOBAL_VARIABLE_LIST := mPDS2000 *) +(* @PATH := '\/Product_Syrup_Meters' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(************************************************************************************) +(* INPUT FROM mPDS2000 *) +(************************************************************************************) + gmPDS2000_Block : mPDS2000_Type ; + gmPDS2000Error : BOOL ; + gmPDS2000ComActive : BOOL ; + gmPDS2000ErrorCode : DWORD ; + +(************************************************************************************) +(* OUTPUT TO mPDS2000 *) +(************************************************************************************) + gmPDS2000Enabled AT%MB2000 : BOOL ; + gmPDS2000Reset AT%MB2001 : BOOL ; + gmPDS2000SetNewRec AT%MB2002 : BOOL ; + gmPDS2000ReceiveOnly AT%MB2003 : BOOL ; + gmPDS2000NumRecipe AT%MW2004 : INT ; +END_VAR + +(* @OBJECT_END := mPDS2000 *) +(* @CONNECTIONS := mPDS2000 +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/MPDS2000_CONTROL.EXP b/backend/script_groups/TwinCat/.example/MPDS2000_CONTROL.EXP new file mode 100644 index 0000000..640056f --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MPDS2000_CONTROL.EXP @@ -0,0 +1,972 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM mPDS2000_Control +VAR + mFreezeMeterTmr : TOF ; + mTmrReset : TP ; + mTmrFault : TOF ; + mReset : BOOL ; + mMeterSel : BOOL ; + mCountError : INT ; + + m_mPDS2000_RecipeTmr : TP ; + mPDS2000_Block : ADSREAD ; + mPDS2000_Busy : BOOL ; + mPDS2000_Read : BOOL ; + mPDS2000_Error : BOOL ; + mPDS2000_ErrorCode : UDINT ; + mDummy : BOOL ; + mTmrComErr :TON; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSystem_Task_Info[3].active +_EXPRESSION +_NEGATIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mReset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gmPDS2000Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mTmrReset +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mReset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_MeterType +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BrixMeter +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000Enabled +_OUTPUT +_POSITIV +_NO_SET +mMeterSel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mMeterSel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS2000_Control.Read_mPDS2000 +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS2000_Control.Write_mPDS2000 +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 7 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlendRecircActive +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFlowToFiller +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderStartPumpsONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +mMeterSel +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFreezeMeterTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#30s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gFreezeProductMeter +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +mMeterSel +_EXPRESSION +_POSITIV +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_ProductMeter_Fault +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS2000ComActive +_EXPRESSION +_POSITIV +_LD_CONTACT +gmPDS2000ReceiveOnly +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gH_ProductMeter_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mMeterSel +_EXPRESSION +_POSITIV +_LD_CONTACT +gmPDS2000Error +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS2000ComActive +_EXPRESSION +_POSITIV +_LD_CONTACT +gmPDS2000ReceiveOnly +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gProductMeterOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_MeterReceiveOnly +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000ReceiveOnly + +END_PROGRAM +ACTION Read_mPDS2000: +_LD_BODY +_NETWORKS : 14 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mPDS2000_Read +_EXPRESSION +_NEGATIV +_LD_CONTACT +mPDS2000_Busy +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPDS2000_Read +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mPDS2000_Block +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderAMS_NET_ID +_OPERAND +_EXPRESSION +_POSITIV +811 +_OPERAND +_EXPRESSION +_POSITIV +16#00004020 +_OPERAND +_EXPRESSION +_POSITIV +16#000000C8 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block +_EXPRESSION +_POSITIV +SIZEOF +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mPDS2000_Read +_OPERAND +_EXPRESSION +_NEGATIV +mPDS2000_Busy +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +ADSREAD +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mPDS2000_Error +_OUTPUT +_POSITIV +_NO_SET +mPDS2000_ErrorCode +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPDS2000_Busy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block.ComActive +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000ComActive +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block.ProdBrix +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block.ProdCO2 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductCO2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block.ProdTemp +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block.ProdDens +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductDens +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block.ProdRecipeNum +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductRecipeNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gmPDS2000_Block.ErrorCode +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000ErrorCode +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gmPDS2000_Block.ComError +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mCountError +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCountError +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000_Block.ProdRecipeNum +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000_Block.ProdCO2 +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000_Block.ProdBrix +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000_Block.ProdDens +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000_Block.ProdTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS2000_Block.ComError +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCountError +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mCountError +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gmPDS2000Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gProdMeterTransferRecipe +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mTmrComErr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#25s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gmPDS2000Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gmPDS2000_Error_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS2000Error +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mTmrFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProductMeter_Fault + +END_ACTION + +ACTION Write_mPDS2000: +gmPDS2000NumRecipe := LIMIT (0,gH_A_Recipe_ProdMeterRecipeNum,100) ; +IF gBlenderCIPMode THEN + gmPDS2000NumRecipe := 0 ; +END_IF +m_mPDS2000_RecipeTmr(IN:=(gProdMeterTransferRecipe OR gBlenderCIPMode),PT:=t#2s) ; +gmPDS2000SetNewRec := m_mPDS2000_RecipeTmr.Q ; + +IF gProdMeterTransferRecipe THEN + gProdMeterTransferRecipe := FALSE ; +END_IF +IF mReset THEN + gmPDS2000Reset := TRUE ; + gProdMeterTransferRecipe := FALSE ; + gmPDS2000SetNewRec := FALSE ; +ELSE + gmPDS2000Reset := FALSE ; +END_IF + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/MPDS2000_TYPE.EXP b/backend/script_groups/TwinCat/.example/MPDS2000_TYPE.EXP new file mode 100644 index 0000000..b9dab76 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MPDS2000_TYPE.EXP @@ -0,0 +1,18 @@ +(* @PATH := '\/Product Syrup Meters' *) +TYPE mPDS2000_Type : +STRUCT + DataBusy : BOOL ; + CmdExec : BOOL ; + ComError : BOOL ; + ComActive : BOOL ; + ErrorCode : DWORD ; + + ProdRecipeNum : INT ; + ProdBrix : REAL ; + ProdCO2 : REAL ; + ProdTemp : REAL ; + ProdDens : REAL ; + Warning : STRING(30) ; +END_STRUCT +END_TYPE +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/MPDS_PA_CONTROL.EXP b/backend/script_groups/TwinCat/.example/MPDS_PA_CONTROL.EXP new file mode 100644 index 0000000..9e043a0 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MPDS_PA_CONTROL.EXP @@ -0,0 +1,2601 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '0' *) +PROGRAM mPDS_PA_Control +VAR + mPAFreezeMeterTmr : TOF ; + mPATmrReset : TP ; + mPAReset : BOOL ; + mPASel : BOOL ; + mPACountError : INT ; + mPATmrComErr : TON ; + mPATmrFault : TOF ; + + mDummy : BOOL ; + mMEMMOVEret : UDINT ; + mMEMSETret : UDINT ; + + mWritePAmPDS_PV : WORD ; + mWritePAmPDS_RT : R_TRIG ; + mWritePAmPDS_Reset : BOOL ; + mWritePAmPDS_Count : WORD; + mWritePAmPDS_Out : BOOL ; + mWritePAmPDSCounter : CTU; + + m_PAmPDS_RecipeTmr : TP ; + + mPAmPDSContTr : BOOL ; + mPAmPDSParTr : BOOL ; + mPAmPDSAckTr : BOOL ; + mTransferArray : ARRAY [0..3] OF BYTE ; + mPAmPDS_DevisON: BOOL; + PAmPDSDevis_Tmr: TOF; + mPATAP: TON; (*Anton Paar Delay*) + qPAmPDS_Nan_Filt: BOOL; + mTest: BYTE; + mCo2ReadEn: BOOL; + gPAmPDSTest: BOOL; + mBrixReadEn: BOOL; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 10 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_BrixMeter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_MeterType +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_Enabled +_OUTPUT +_POSITIV +_NO_SET +mPASel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mPASel +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystem_Task_Info[3].active +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mPAReset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gPAmPDS_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mPATmrReset +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPAReset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mPAReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS_PA_Control.Cont_Transfer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mPASel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS_PA_Control.Read_PA_mPDS +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS_PA_Control.Write_PA_mPDS +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 8 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlendRecircActive +_EXPRESSION +_NEGATIV +_LD_CONTACT +gEnableRecircPHE +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFlowToFiller +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderStartPumpsONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +mPASel +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mPAFreezeMeterTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#30s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gFreezeProductMeter +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDSFreeze +_OUTPUT +_POSITIV +_NO_SET +gPAmPDSCarboStop +_OUTPUT +_POSITIV +_NO_SET +gPAmPDSInlinePumpStop +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +mPASel +_EXPRESSION +_POSITIV +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_ProductMeter_Fault +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPAmPDS_CommActive +_EXPRESSION +_POSITIV +_LD_CONTACT +gPAmPDS_ReceiveOnly +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gH_ProductMeter_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mPASel +_EXPRESSION +_POSITIV +_LD_CONTACT +gPAmPDS_Error +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPAmPDS_CommActive +_EXPRESSION +_POSITIV +_LD_CONTACT +gPAmPDS_ReceiveOnly +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gProductMeterOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_MeterReceiveOnly +_EXPRESSION +_POSITIV +_LD_CONTACT +gPAmPDS_DevisON +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_ReceiveOnly + +END_PROGRAM +ACTION ACK_Transfer: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_FUNCTION +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_OUTBlock01[27] +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +CSETBIT32 +_EXPRESSION +_POSITIV +DWORD_TO_BYTE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[27] +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Clear_ParamTransfer: +_LD_BODY +_NETWORKS : 11 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_OUTBlock01[2] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMEMSETret +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_OUTBlock01[6] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMEMSETret +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_OUTBlock01[10] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMEMSETret +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_OUTBlock01[14] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMEMSETret +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_OUTBlock01[18] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MEMSET +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMEMSETret +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[22] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[23] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[24] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[25] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[26] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[27] +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Cont_Transfer: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDSNumRecipe +_EXPRESSION +_POSITIV +INT_TO_BYTE +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[1] +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Parameters_Transfer: +_LD_BODY +_NETWORKS : 8 +_NETWORK + +_COMMENT +Brix-Gain 1/4 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_NEGATIV +gSugarBeverage +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_ProductBrix +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_ProdMeter_ZeroBrix +_EXPRESSION +_POSITIV +ADD +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_ProductBrix +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_ProductBrix +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_BrixGain +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Brix-Gain 2/4 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +17 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[22] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Brix-Gain 3/4 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_BrixGain +_EXPRESSION +_POSITIV +_Dword_Swap_ByteArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTransferArray +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Brix-Gain 4/4 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_OUTBlock01[2] +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +mTransferArray[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MEMMOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMEMMOVEret +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_NEGATIV +gCarboStillProduct +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_CO2Vols +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_ProdMeter_ZeroCO2 +_EXPRESSION +_POSITIV +ADD +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_CO2Vols +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_CO2Vols +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_CO2Gain +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +CO2-Gain 2/4 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +21 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_OUTBlock01[23] +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +CO2-Gain 3/4 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_CO2Gain +_EXPRESSION +_POSITIV +_Dword_Swap_ByteArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTransferArray +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +CO2-Gain 4/4 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_OUTBlock01[6] +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +mTransferArray[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MEMMOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMEMMOVEret +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Read_PA_mPDS: +_LD_BODY +_NETWORKS : 22 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[1] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPAmPDS_DevisON +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +PAmPDSDevis_Tmr +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mPAmPDS_DevisON +_OPERAND +_EXPRESSION +_POSITIV +t#15s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_DevisON +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[1] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_NEGATIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_CommActive +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPamPDS_IN_By84 +_OPERAND +_EXPRESSION +_POSITIV +66 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mBrixReadEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Brix CALC (inversion compensated): 6 +Brix Actual(no inversion compensated): 10 + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mBrixReadEn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_FUNCTION +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock03[84] +_EXPRESSION +_POSITIV +ADR +_EXPRESSION +_POSITIV +ArrayToReal +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPamPDS_IN_By60 +_OPERAND +_EXPRESSION +_POSITIV +66 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCo2ReadEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +gPAmPDS_INBlock02[34] +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mCo2ReadEn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_FUNCTION +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock02[60] +_EXPRESSION +_POSITIV +ADR +_EXPRESSION +_POSITIV +ArrayToReal +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductCO2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_FUNCTION +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock04[104] +_EXPRESSION +_POSITIV +ADR +_EXPRESSION +_POSITIV +ArrayToReal +_OPERAND +_EXPRESSION +_POSITIV +150.0 +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_FUNCTION +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[5] +_EXPRESSION +_POSITIV +ADR +_EXPRESSION +_POSITIV +ArrayToReal +_OPERAND +_EXPRESSION +_POSITIV +5.0 +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductDens +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gProductDens +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock03[70] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +MEMMOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMEMMOVEret +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[5] +_EXPRESSION +_POSITIV +BYTE_TO_INT +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductRecipeNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[1] +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_TransDropOUT +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[1] +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_AI1Low +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[1] +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_AI2Low +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[1] +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_MemError +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[2] +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_WrongPTEType +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_Node8_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_FUNCTION +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_INBlock01[3] +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_CommErr +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPAmPDS_CommErr +_EXPRESSION +_POSITIV +_LD_CONTACT +gPAmPDS_Error +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mPACountError +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPACountError +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +gProductRecipeNum +_OUTPUT +_POSITIV +_NO_SET +gProductCO2 +_OUTPUT +_POSITIV +_NO_SET +gProductBrix +_OUTPUT +_POSITIV +_NO_SET +gProductDens +_OUTPUT +_POSITIV +_NO_SET +gProductTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPAmPDS_CommErr +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPACountError +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mPACountError +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gProdMeterTransferRecipe +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mPATmrComErr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#25s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gPAmPDS_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdBrixTrack_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gPAmPDS_Error_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gPAmPDS_Error +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mPATmrFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProductMeter_Fault + +END_ACTION + +ACTION Transfer_PA_mPDS: +_LD_BODY +_NETWORKS : 6 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mWritePAmPDS_Count +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPAmPDSContTr +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mWritePAmPDS_Count +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPAmPDSParTr +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mWritePAmPDS_Count +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPAmPDSAckTr +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mPAmPDSContTr +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS_PA_Control.Cont_Transfer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mPAmPDSParTr +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS_PA_Control.Parameters_Transfer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mPAmPDSAckTr +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS_PA_Control.ACK_Transfer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Write_PA_mPDS: +gPAmPDSNumRecipe := LIMIT (0,gH_A_Recipe_ProdMeterRecipeNum,32) ; + +IF gBlenderCIPMode THEN + gPAmPDSNumRecipe := 0 ; +END_IF +m_PAmPDS_RecipeTmr(IN:=(gProdMeterTransferRecipe OR gBlenderCIPMode OR gProductionONS),PT:=t#2.5s) ; +gPAmPDSSetNewRec := m_PAmPDS_RecipeTmr.Q ; + +IF gProdMeterTransferRecipe THEN + gProdMeterTransferRecipe := FALSE ; +END_IF + +mWritePAmPDS_RT(CLK := gPAmPDSSetNewRec) ; +mWritePAmPDS_Reset := mWritePAmPDS_RT.Q ; + +IF (gPAmPDSSetNewRec AND NOT gPAmPDS_ReceiveOnly) AND NOT gPAmPDS_DevisON THEN + mWritePAmPDS_PV := 3 ; + mWritePAmPDSCounter(CU := gClock_500ms AND NOT mWritePAmPDS_Out, RESET := mWritePAmPDS_Reset, PV := mWritePAmPDS_PV) ; + mWritePAmPDS_Count := mWritePAmPDSCounter.CV ; + mWritePAmPDS_Out := mWritePAmPDSCounter.Q ; + Transfer_PA_mPDS() ; +ELSE + mWritePAmPDS_Out := FALSE ; + Clear_ParamTransfer(); +END_IF +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/MSE_SLOPE.EXP b/backend/script_groups/TwinCat/.example/MSE_SLOPE.EXP new file mode 100644 index 0000000..e4e9f87 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MSE_SLOPE.EXP @@ -0,0 +1,61 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK MSE_Slope +VAR_INPUT + i_Value : REAL ; (* Istant Value to compute *) + i_Num : UINT ; (* Number of sample used to compute slope *) + i_Cycle : REAL ; (* Cycle time *) + i_Enable : BOOL ; (* Enable the block *) +END_VAR +VAR_OUTPUT + o_MSESlope : REAL ; +END_VAR +VAR + mSumX2 : REAL ; (* Sum of square *) + mX2Sum : REAL ; (* Square of sum *) + mSumX : REAL ; + mSumY : REAL ; + mSumXY : REAL ; + mPtr : INT ; +END_VAR + + +(* @END_DECLARATION := '0' *) +IF i_Enable THEN + IF i_Num >0 THEN + IF i_Num > 30 THEN + i_Num := 30 ; (* Limit the number of samples *) + END_IF + IF mPtr <= i_Num THEN + mPtr := mPtr + 1 ; + mSumY := mSumY + i_Value ; + mSumX2 := mSumX2 + EXPT (i_Cycle * mPtr , 2) ; + mSumXY := mSumXY + (i_Cycle * mPtr * i_Value) ; + mSumX := mSumX + mPtr * i_Cycle ; + IF mPtr = i_Num THEN + mX2Sum := EXPT(mSumX, 2) ; + IF (mPtr * mSumX2 - mX2Sum)<>0 THEN + o_MSESlope := (mPtr * mSumXY - mSumX * mSumY) / (mPtr * mSumX2 - mX2Sum) ; + END_IF + mPtr := 0 ; + mSumX2 := 0 ; + mX2Sum := 0 ; + mSumXY := 0 ; + mSumX := 0 ; + mSumY := 0 ; + END_IF + END_IF + ELSE + o_MSESlope := 0.0 ; + END_IF +ELSE + mPtr := 0 ; + mSumY := 0 ; + mSumX2 := 0 ; + mX2Sum := 0 ; + mSumXY := 0 ; + mSumX := 0 ; + o_MSESlope := 0.0 ; +END_IF +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/MYVAR.EXP b/backend/script_groups/TwinCat/.example/MYVAR.EXP new file mode 100644 index 0000000..5bccbee --- /dev/null +++ b/backend/script_groups/TwinCat/.example/MYVAR.EXP @@ -0,0 +1,18 @@ +(* @GLOBAL_VARIABLE_LIST := MyVar *) +(* @PATH := '\/Blending_Variables' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL PERSISTENT + gInTotSugar : REAL ; + gInTotH2O : REAL ; + gInTotProduct : REAL ; + gOutTankH2O : REAL ; + gOutTankSugar : REAL ; +END_VAR + +(* @OBJECT_END := MyVar *) +(* @CONNECTIONS := MyVar +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/OR_ARRAYBOOL.EXP b/backend/script_groups/TwinCat/.example/OR_ARRAYBOOL.EXP new file mode 100644 index 0000000..269c846 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/OR_ARRAYBOOL.EXP @@ -0,0 +1,25 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION OR_ArrayBool : BOOL +VAR_INPUT + i_ArrayPtr : DWORD ; + i_UpBound : INT ; +END_VAR +VAR + i : INT ; + mArrayPointer : POINTER TO BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +IF i_UpBound>191 THEN + i_UpBound := 191 ; +END_IF +OR_ArrayBool := FALSE ; +mArrayPointer := i_ArrayPtr ; +FOR i:=0 TO i_UpBound DO + mArrayPointer := i_ArrayPtr + i ; + OR_ArrayBool := OR_ArrayBool OR mArrayPointer^ ; +END_FOR; +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/OUTPUT.EXP b/backend/script_groups/TwinCat/.example/OUTPUT.EXP new file mode 100644 index 0000000..b63c3fc --- /dev/null +++ b/backend/script_groups/TwinCat/.example/OUTPUT.EXP @@ -0,0 +1,4069 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) + PROGRAM Output +VAR + mFirstProdColdReqDly : TON ; + mDelayToRunProdPumpVFC : TON ; + mOutWordToVFC : WORD ; + mCO2InjOffset : REAL; + mCO2_SP_filtered : LowPassFilter; + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 133 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Output.AnalogValuesToHMI +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_SYR_Level_PID +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_SyrupInletValve_Enable +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gAlarmHorn +_EXPRESSION +_POSITIV +_LD_CONTACT +gWarningHorn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Horn +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStop_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStop_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gClock_2s +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Blender_Run_Lamp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_POSITIV +_LD_CONTACT +gClock_2s +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Alarm_Lamp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_RotorAlarm_Lamp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_BrixMeter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_LocalCIP +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_RecorderON +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_BrixMeterON +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_HoldO2Meter +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P1_WaterPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Water_Pump_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P5_WaterPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Water_Pump2_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P2_SyrupPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Syrup_Pump_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P3_ProductPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Product_Pump_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P6_RecircPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_RecyclePumpRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gRecircPump_P6_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterPump_P1_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gProductPump_P3_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Thermic_Protection +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +DO_Product_Pump_Run +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Product_Pump_Contactor +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Product_Pump_VFC_Ready +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayToRunProdPumpVFC +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Product_Pump_VFC_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P4_VacuumPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Vacuum_Pump_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P5_RinseTankPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerRinsePump +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCipMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Yellow_Lamp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Green_Lamp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Red_Lamp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gAlarmHorn +_EXPRESSION +_POSITIV +_LD_CONTACT +gWarningHorn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Blu_Lamp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_White_Lamp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV01_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV01_Deair_Lvl_Ctrl_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV01_1_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV01_Deair2_Lvl_Ctrl_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV02_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV02_Deair_FillUp_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV02_1_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV02_Deair2_FillUp_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV03_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV03_Syrup_Lvl_Ctrl_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV04_Manual +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV04_Syrup_FillUp_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFreezeSyrupMeter +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_HoldSyrupMeter +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_SyrupRoomPumpRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Syrup_Room_DO0 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupRoomPump_Status +_OUTPUT +_POSITIV +_NO_SET +gPB_OUT_PRG_SYRUP_REQ +_OUTPUT +_POSITIV +_NO_SET +DO_SyrupRoomPump_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_SyrupRoomWaterReq +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_Syrup_Room_DO1 +_OUTPUT +_POSITIV +_NO_SET +gPB_OUT_PRG_WATER_REQ +_OUTPUT +_POSITIV +_NO_SET +DO_SyrupRoomWaterReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerProduction +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DO0 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.Production_Mode +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_Mode +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_ProductionMode +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerProductAvailable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DO1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.ProductAvailable +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_ProductAvailable +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerMinimumLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DO2 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.MinimumProductLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DO3 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.Rinse_Mode +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Rinse_Mode +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_RinseReq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_Flr_FastRinseReq +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DO4 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.FastRinseRequest +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_FastRinseRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gOut_FillerRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gOut_Flr_WaterRinseReady +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DO5 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.WaterRinseReady +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Rinse_Running +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_WaterRinseReady +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_Flr_ProductCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DO6 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.ProductCompleted +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_ProductCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_Flr_FillerRunOutReq +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_Production_DO7 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.FillerRunOut +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.Prod_ProdRunOut +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_FillerRunOutRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DO0 +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_CIP_Mode +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.CIP_Mode +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.CIP_Mode +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerCIPRunning +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DO1 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.CIP_Running +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.CIP_Running +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_CIP_Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerCIPChangeSanitize +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DO2 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.ChangeSanitize +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.CIP_Change_Sanitize +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_ChangeSanitize +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerCIPDrainRequest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DO3 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.CIP_DrainRequest +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.CIP_Drain_Request +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_CIP_Drain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerCIPCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DO4 +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.CIP_Completed +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.CIP_Completed +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_CIP_Cmpltd +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_FillerCIPCausticSanitizeRunning +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_Filler_CIP_DO5 +_OUTPUT +_POSITIV +_NO_SET +gBlendFillSendData.CIP_Caustic_Running +_OUTPUT +_POSITIV +_NO_SET +gFillerSendData.CausticSanitizeRunning +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIP_Started +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DO0 +_OUTPUT +_POSITIV +_NO_SET +gCIPSendData.Line_Ready +_OUTPUT +_POSITIV +_NO_SET +gPB_OUT_PRG_CIP_REQUEST +_OUTPUT +_POSITIV +_NO_SET +DO_CIP_CIPRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_WaterPipeCIP_Sensor +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DO1 +_OUTPUT +_POSITIV +_NO_SET +DO_CIP_WaterPipe_Ready +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gInCIP_DrainRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPBlenderDrainDone +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerCIPDrainCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DO2 +_OUTPUT +_POSITIV +_NO_SET +gCIPSendData.CIP_DrainCompleted +_OUTPUT +_POSITIV +_NO_SET +gPB_OUT_PRG_CIP_RINSE_DRAIN_END +_OUTPUT +_POSITIV +_NO_SET +DO_CIP_DrainCompleted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gInFillerCIPCycleEnded +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DO3 +_OUTPUT +_POSITIV +_NO_SET +gCIPSendData.CIP_CycleEnded +_OUTPUT +_POSITIV +_NO_SET +gPB_OUT_PRG_CIP_RINSE_CYCLE_ENDED +_OUTPUT +_POSITIV +_NO_SET +DO_CIP_CycleEnded +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOut_CIPChangeReady +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_CIP_Room_DO5 +_OUTPUT +_POSITIV +_NO_SET +gCIPSendData.CIP_ChangeReady +_OUTPUT +_POSITIV +_NO_SET +DO_CIP_ChangeReady +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFreezeProductMeter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_HoldBrixMeter +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_ToBrixMeter_CIP +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOutAmmoniaWaterColdControl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_AmmoniaWaterColdControl +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOutAmmoniaProductColdControl +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_AmmoniaProductColdControl +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOutAmmoniaWaterColdRequest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_AmmoniaWaterColdRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOutAmmoniaProductColdRequest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_AmmoniaProductColdRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOutAmmonia_ByPassHotGas +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Ammonia_ByPassHotGas +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOutAmmoniaCompressorRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Ammonia_CompressorRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_Flr_BottleStop +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerNextRecipe_0 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerNextRecipe_1 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerNextRecipe_2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerNextRecipe_3 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerNextRecipe_4 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerNextRecipe_5 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerNextRecipe_6 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillerNextRecipeNum +_OPERAND +_EXPRESSION +_POSITIV +7 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_FillerNextRecipe_7 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV11_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV11_BlowOff_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV12_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV12_Deair_Reflux_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV13_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV13_Prod_Recirc_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV14_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV14_DeairDrain_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV14_1_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV14_P1_DeairDrain_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV15_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV15_ProductTank_Drain_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV16_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +DO_EV16_SyrupTank_Drain_Valve +_OUTPUT +_POSITIV +_NO_SET +DO_EV16_P1_SyrupTank_Drain_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV17_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV17_BufferTankSprayBall_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV18_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV18_DeairOverfill_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV21_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV21_ProdTankOverfill_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV22_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV22_WaterPumpPrime_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV23_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV23_SerpentineDrain_valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV23_1_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV23_P1_DeairConnection_valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV24_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV24_SyrupRecirc_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV25_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV25_VaccumPumpWater_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV26_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV26_CO2InjShutOff_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV27_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV27_DeairSprayBall_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV28_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV28_DeairStartCO2Inj_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV31_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV31_CIPVenturi_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV32_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV32_CIPWashVenturi_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV33_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV33_CIPCaustic_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV34_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV34_CIPAcid_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV35_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV35_CIPDet_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV36_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV36_CIPRecirc_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV37_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV37_CIPDrain_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV38_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV38_CIPHeater_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV39_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV39_FlatWaterByPass_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV40_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV40_FlatWaterByPass_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV41_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV41_CO2Inlet_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV42_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV42_N2Inlet_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV43_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV43_DeairVacu_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV44_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV44_SyrupLineDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV44_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV44_ProductPipeDrain2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV45_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV45_ProductChillerDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV46_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV46_FillerCO2Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV48_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV48_Deair_Inlet_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV49_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV49_Deair_Bypass_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV50_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV50_Deair_Bypass_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV61_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV61_SyrupTankSprayBall +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV62_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV62_ProductOutlet +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV63_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV63_SyrupLineInletWater +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV64_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV64_SyrupLineInletSyrup1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV65_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV65_SyrupLineInletSyrup2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV66_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV66_FillerRinseWater +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV67_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV67_SyrupLineDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV68_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV68_FillerRinseTankInletWater +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV69_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV69_Blender_ProductPipeDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV71_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV71_FillerRinseTankSprayBall +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV71_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV71_Filler_ProductPipeDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV72_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV72_FillerRinseTankDrain +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV73_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV73_WaterInlet_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV74_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV74_CIPInlet_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV75_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV75_SyrupInlet_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV76_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV76_SyrupBypass_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV77_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV77_SyrupBypass_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV78_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV78_ProductShutOff_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gOutUVLamp_ONOFF +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +DO_UVLamp_Enable +_OUTPUT +_POSITIV +_NO_SET +DO_UV_Lamp_ONOFF +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV80_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV80_Prod_Recirc_WoChiller_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_EV81_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +DO_EV81_Prod_Recirc_Chiller_Valve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Output.CO2InjectionPressure +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCO2InjPressureSP +_OPERAND +_EXPRESSION +_POSITIV +16.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +WritePeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +AO_InjectionPressure +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +mOutWordToVFC = 1 ===> Production +mOutWordToVFC = 2 ===> Rinse +mOutWordToVFC = 3 ===> CIP + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderProdMode +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRinseMode +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mOutWordToVFC +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Supposing that the MAX reference freq. in the VFC is 100 Hz, so 50% in production means 50Hz, 73.2% in CIP means 73.2Hz that is about 3Bar. +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERATOR +_BOX_EXPR : 5 +_OPERAND +_EXPRESSION +_POSITIV +mOutWordToVFC +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +50 +_OPERAND +_EXPRESSION +_POSITIV +50 +_OPERAND +_EXPRESSION +_POSITIV +50 +_EXPRESSION +_POSITIV +MUX +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +WritePeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +AO_ProdPumpFreq +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gCO2EqPressure +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +WritePeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +AO_ToFillerEqPress +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gTotalProductAvailable +_OPERAND +_EXPRESSION +_POSITIV +gMaxProdAvailAmount +_OPERAND +_EXPRESSION +_POSITIV +gMinProdAvailAmount +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +WritePeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +AO_ProductRunOutAmount +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION AnalogValuesToHMI: +(* To the HMI for display *) +gH_WaterTarget := gSP_H2O; +gH_WaterFlowRate := gH2O_Flow_Meas; +gH_WaterTotalizer := gWaterTotal ; + +gH_SyrupTarget := gSP_SYR; +gH_SyrupFlowRate := gSYR_Flow_Meas; +gH_SyrupTotalizerKg := gSyrupTotal ; +IF gActualRecipe_SyrDens<>0 AND gBlenderBlending THEN +(* gH_SyrupTotalizerLt := gSyrupTotal / gActualSyrupDens ;*) + gH_SyrupTotalizerLt := gSyrupTotal / gActualRecipe_SyrDens ; +END_IF +gH_SyrupBrix := gMFM_Syrup1Brix ; +gH_SyrupDensity := gMFM_Syrup1Density ; +gH_SyrupTemperature := gMFM_TemperatureSyrup1 ; + +gH_CO2Target := gSP_CO2 ; +gH_CO2FlowRate := gCO2_Flow_Meas; +gH_CO2Temperature := gMFM_CO2Temperature ; +gH_CO2Density := gMFM_CO2Density ; +gH_CO2Totalizer := gCO2Total ; (* Kg *) +gH_CO2InjPressureSP := gCO2InjPressureSP ; +gH_CO2InjPressure := gCO2InjPressure ; + +(*IF gCO2InjPressure0 AND gActualRecipe_Syrup_Brix_Fact<>0 THEN + mSyrPerc := gProductBrix / (gActualRecipe_Syrup_Brix * gActualRecipe_Syrup_Brix_Fact) ; + mSyrupKgMissing := (mQSugarNominal - mQSugarActual) / (gActualRecipe_Syrup_Brix * gActualRecipe_Syrup_Brix_Fact) * 100 ; +END_IF +mH2OPerc := 1 - mSyrPerc; +IF mSyrPerc<>0 THEN + mRatio_M := mH2OPerc / mSyrPerc ; +END_IF +IF gH2O_Density<>0 THEN + mRatio_V := mRatio_M * gActualRecipe_SyrDens / gH2O_Density ; + mKgH2OToRecover := (mQH2OActual - mQH2ONominal) / gH2O_Density ; +END_IF +CASE gH_Blender_OPT_MeterType OF + 1: ; + IF (mRatio_V+1)<>0 THEN + gProdDensFromMeter := gActualRecipe_SyrDens * (mRatio_M + 1) / (mRatio_V + 1) ; (* Maselli *) + ELSE + gProdDensFromMeter := 1.0 ; + END_IF + 2: ; + gProdDensFromMeter := gProductDens ; (* Anton Paar *) +ELSE + gProdDensFromMeter := 1.0 ; +END_CASE + +mQSugarNominal := (gTankProdAmount + gProdAmountInSerpentine) * gProdDensFromMeter * gActualRecipe_Beverage_Brix / 100 ; +mQSugarActual := (gTankProdAmount + gProdAmountInSerpentine) * gProdDensFromMeter * gProductBrix / 100 ; +mQH2ONominal := gTankProdAmount - mQSugarNominal ; +mQH2OActual := gTankProdAmount - mQSugarActual ; +IF gActualRecipe_SyrDens<>0 THEN + mTotalRecoverProd := (mSyrupKgMissing / gActualRecipe_SyrDens) * (gActualSP_RatioVol + 1); +END_IF +IF gActualSyrupDens<>0 THEN + mSyrupLitMissing := mSyrupKgMissing /gActualSyrupDens ; +END_IF +mTankSpaceAvail := (gProdTankVolume * gProdTankStopLvl / 100) - gTankProdAmount ; +IF mTankSpaceAvail>=2*gProdAmountInSerpentine THEN + mTooMuchProdInTank := FALSE; +ELSE + mTooMuchProdInTank := TRUE; +END_IF +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/PRODTANK_DRAIN.EXP b/backend/script_groups/TwinCat/.example/PRODTANK_DRAIN.EXP new file mode 100644 index 0000000..22db6f3 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PRODTANK_DRAIN.EXP @@ -0,0 +1,1246 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM ProdTank_Drain +VAR + mProdTankDrainTP : TP ; + mProdTankDrainTP0 : TP ; + mProdTankDrainTP1 : TP ; + mAuxONS : R_TRIG ; + mAux1ONS : R_TRIG ; + mStepNum : INT ; + mProdTankMove : _StepMove ; + mAuxStep : INT ; + mTimer : TIME ; + mStepTimer : TIME ; + mProdTankMinLevel : BOOL ; + mProcSelected : BOOL ; + mFlipFlop : BOOL; + mFlipFlopTON : TP; + mFlipFlopTOF : TP; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 11 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankDrain_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_ProdTankDrainReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdTankDrainTP0 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_ProdTankDrainReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Done +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinse_Latch +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerRinse_CompletedLatch +_EXPRESSION +_POSITIV +_LD_CONTACT +gIn_Flr_FastRinseCompleted +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdTankDrainTP1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdTankDrainTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gProdTankDrain_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankDrain_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankDrain_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAux1ONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankDrain_Qualifier +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gSystemRunOut_Reset +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOutInit +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankDrain_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankDrain_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProdTank_Drain._ProdTankDrainReset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gTankPress_OkToBlend +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankDrain_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeSequenceNum +_OPERAND +_EXPRESSION +_POSITIV +10 +_EXPRESSION +_POSITIV +EQ +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeSequenceNum +_OPERAND +_EXPRESSION +_POSITIV +11 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gProdTankDrain_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProcSelected +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeProcValue +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankDrainStep1Time +_OPERAND +_EXPRESSION +_POSITIV +mTimer +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +TIME_TO_REAL +_OPERAND +_EXPRESSION +_POSITIV +1000 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeProcValue +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeWait1 +_OPERAND +_EXPRESSION +_NEGATIV +gIn_ProdTankNotEmpty +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeWait1 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankDrain_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankDrain_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +10 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankDrain_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankDrain_Running +_NETWORK + +_COMMENT +TO HMI Product Tank Drain Running +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Status025 +_OUTPUT +_POSITIV +_NO_SET +gH_PrdTankDrainRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankDrain_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProdTank_Drain._ProdTankDrainSequencer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION _ProdTankDrainReset: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gProdTankDrain_Done + +END_ACTION + +ACTION _ProdTankDrainSequencer: +CASE mStepNum OF + 0: ProdTankDrain_Step_0 ; + + 1: ProdTankDrain_Step_1 ; + + 2: ProdTankDrain_Step_2 ; + +ELSE + ; +END_CASE + + +END_ACTION + +ACTION ProdTankDrain_Step_0: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSP_EV45 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSP_EV15 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSP_EV62 +_OUTPUT +_POSITIV +_SET +gSP_EV69 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_NEGATIV +gIn_ProdTankNotEmpty +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +FALSE +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdTankMinLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mProdTankMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_FastChangeOverEnabled +_OPERAND +_EXPRESSION +_POSITIV +t#25s +_OPERAND +_EXPRESSION +_POSITIV +gProdTankDrainStep0Time +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +mProdTankMinLevel +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gProdTankDrain_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION ProdTankDrain_Step_1: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT +mFlipFlop is +OFF FOR 8sec +ON FOR 2sec +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gClock_20s +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mFlipFlopTOF +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_EXPRESSION +_POSITIV +Tp +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gClock_20s +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFlipFlopTON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_EXPRESSION +_POSITIV +Tp +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFlipFlop +_NETWORK + +_COMMENT +EV45 e EV69 is +Open FOR 7sec +Closed FOR 3sec +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mFlipFlop +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSP_EV45 +_NETWORK + +_COMMENT + + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mFlipFlop +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSP_EV15 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mFlipFlop +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSP_EV62 +_OUTPUT +_POSITIV +_SET +gSP_EV69 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mProdTankMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankDrainStep1Time +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gProdTankDrain_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION ProdTankDrain_Step_2: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankDrain_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/PRODTANK_RUNOUT.EXP b/backend/script_groups/TwinCat/.example/PRODTANK_RUNOUT.EXP new file mode 100644 index 0000000..f52c0c2 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PRODTANK_RUNOUT.EXP @@ -0,0 +1,1635 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '0' *) +PROGRAM ProdTank_RunOut +VAR + mProdTankRunOutTP : TP ; + mProdTankRunOutTP0 : TP ; + mProdTankRunOutTP1 : TP ; + mToFillerStartPipeRunOut_TON : TP ; + mAuxONS : R_TRIG ; + mStepNum : INT ; + mProdTankRunOutMove : _StepMove ; + mAuxStep : INT ; + mTimer : TIME ; + mProdTankMinLevel : BOOL ; + mProdTankRanOut : BOOL ; + mProcSelected : BOOL ; + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 17 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 5 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOut_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_ProdTankRunOutReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdTankRunOutTP0 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_ProdTankRunOutReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdTankRunOutTP1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mProdTankRunOutTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOut_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankRunOut_Request +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gSystemRunOut_Reset +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOutInit +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOut_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gTankPress_OkToBlend +_EXPRESSION +_NEGATIV +_LD_CONTACT +gInLinePressCO2Ok +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOut_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankRunOut_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProdTank_RunOut._ProdTankRunOutReset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH2OOpenInProdPipeRunOut +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_WaterTotalizer +_EXPRESSION +_POSITIV +SEL +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrupValveProdPipeRunOut +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Totalizer +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOutProdTotalizer +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gChillerPushDone +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutProdTotalizer +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOutPushCountInit +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gChillerPushDone +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutPushCount +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutChillerAmount +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_NEGATIV +gProductChillerEn +_OPERAND +_EXPRESSION +_NEGATIV +gSyrRunOut_Done +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gChillerPushDone +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutProdTotalizer +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutPushCountInit +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOutPushCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gChillerPushDone +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +2.0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutPushCountInit +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFillerBottleCount +_OPERAND +_EXPRESSION +_POSITIV +gContainerSize +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOutPushCountInit +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gChillerPushDone +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutPushCount +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankBottomVol +_OPERAND +_EXPRESSION +_POSITIV +20.0 +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdTankRanOut +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFillerBottleCount +_OPERAND +_EXPRESSION +_POSITIV +gContainerSize +_EXPRESSION +_POSITIV +MUL +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutPushCountInit +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOutPushCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeSequenceNum +_OPERAND +_EXPRESSION +_POSITIV +8 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProcSelected +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeProcValue +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutStep0Time +_OPERAND +_EXPRESSION +_POSITIV +mTimer +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +TIME_TO_REAL +_OPERAND +_EXPRESSION +_POSITIV +1000 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeProcValue +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeWait1 +_OPERAND +_EXPRESSION +_POSITIV +mProdTankMinLevel +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeWait1 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankRunOut_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOut_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankRunOut_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProdTank_RunOut._ProdTankRunOutSequencer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Status044 +_OUTPUT +_POSITIV +_NO_SET +gH_ProdTankRunOutRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mToFillerStartPipeRunOut_TON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gToFillerStartPipeRunOut +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProductTankRunOutDone + +END_PROGRAM +ACTION _ProdTankRunOutReset: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +_OUTPUT +_POSITIV +_NO_SET +mAuxStep +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_NEGATIV +_SET +gRinseCloseVM1 +_OUTPUT +_NEGATIV +_SET +gRinseCloseVM2 +_OUTPUT +_NEGATIV +_SET +mProdTankMinLevel +_OUTPUT +_NEGATIV +_SET +gProdTankRunOut_Done + +END_ACTION + +ACTION _ProdTankRunOutSequencer: +CASE mStepNum OF + 0: ProdTankRunOut_Step_0 ; + + 1: ProdTankRunOut_Step_1 ; + + 2: ProdTankRunOut_Step_2 ; + + 3: ProdTankRunOut_Step_3 ; +ELSE + ; +END_CASE + + +END_ACTION + +ACTION ProdTankRunOut_Step_0: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gChillerPushDone +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH2OOpenInProdPipeRunOut +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +DI_Min_Deair_Level +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSp_P1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrupValveProdPipeRunOut +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +GT +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +DI_Min_Syrup_Level +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankMinLvlAux +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSp_P2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gSp_EV01 +_OUTPUT +_POSITIV +_NO_SET +gSp_EV03 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gSp_EV01_1 +_OUTPUT +_POSITIV +_NO_SET +gSp_P5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mProdTankRunOutMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +t#0s +_OPERAND +_EXPRESSION +_POSITIV +gChillerPushDone +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOut_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION ProdTankRunOut_Step_1: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gRinseCloseVM1 +_OUTPUT +_POSITIV +_SET +gRinseCloseVM2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mProdTankRunOutMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOut_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION ProdTankRunOut_Step_2: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_NEGATIV +gIn_ProdTankNotEmpty +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gFillerRanOut +_OPERAND +_EXPRESSION +_POSITIV +mProdTankRanOut +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdTankMinLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mProdTankRunOutMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOutStep0Time +_OPERAND +_EXPRESSION +_POSITIV +mProdTankMinLevel +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gProdTankRunOut_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION ProdTankRunOut_Step_3: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_NEGATIV +_SET +gRinseCloseVM1 +_OUTPUT +_NEGATIV +_SET +gRinseCloseVM2 +_OUTPUT +_NEGATIV +_SET +gChillerPushDone +_OUTPUT +_POSITIV +_SET +gProdTankRunOut_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/PRODUCTAVAILABLE.EXP b/backend/script_groups/TwinCat/.example/PRODUCTAVAILABLE.EXP new file mode 100644 index 0000000..547e7ae --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PRODUCTAVAILABLE.EXP @@ -0,0 +1,256 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure\/System Run Out' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM ProductAvailable +VAR + mSyrupAvailable_Line : REAL; + mSyrupAvailable_Tank : REAL; + mSyrupTankProductAvailable: BOOL; + mSyrupProductAvailable : REAL; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +IF NOT gFastChangeOverActivated THEN + gContainerSize := gH_A_Recipe_BottleSize ; + CASE gH_A_Recipe_BottleShape OF + 0: ; + CASE TRUNC (gContainerSize*2.0) * 5 OF + 0: gTotalEmptyContainer := 2100 ; (* From 0 to 0.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 5: gTotalEmptyContainer := 2100 ; (* From 0.5 to 0.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 10: gTotalEmptyContainer := 2100 ; (* From 1 to 1.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 15: gTotalEmptyContainer := 2100 ; (* From 1.5 to 1.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 20: gTotalEmptyContainer := 2100 ; (* From 2 to 2.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 25: gTotalEmptyContainer := 2100 ; (* From 2.5 to 2.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 30: gTotalEmptyContainer := 2100 ; (* From 3 to 3.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + ELSE + gTotalEmptyContainer := 2100 ; + gProdAvailToFillerRunOut := 1000 ; + END_CASE + + 1: ; + CASE TRUNC (gContainerSize*2.0) * 5 OF + 0: gTotalEmptyContainer := 3300 ; (* From 0 to 0.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 5: gTotalEmptyContainer := 2100 ; (* From 0.5 to 0.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 10: gTotalEmptyContainer := 2800 ; (* From 1 to 1.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 15: gTotalEmptyContainer := 2100 ; (* From 1.5 to 1.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 20: gTotalEmptyContainer := 1600 ; (* From 2 to 2.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 25: gTotalEmptyContainer := 1650 ; (* From 2.5 to 2.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 30: gTotalEmptyContainer := 1750 ; (* From 3 to 3.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + ELSE + gTotalEmptyContainer := 1750 ; + gProdAvailToFillerRunOut := 1000 ; + END_CASE + + 2: ; + CASE TRUNC (gContainerSize*2.0) * 5 OF + 0: gTotalEmptyContainer := 3333 ; (* From 0 to 0.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 5: gTotalEmptyContainer := 2100 ; (* From 0.5 to 0.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 10: gTotalEmptyContainer := 2990 ; (* From 1 to 1.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 15: gTotalEmptyContainer := 2100 ; (* From 1.5 to 1.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 20: gTotalEmptyContainer := 2450 ; (* From 2 to 2.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 25: gTotalEmptyContainer := 2000 ; (* From 2.5 to 2.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 30: gTotalEmptyContainer := 1200 ; (* From 3 to 3.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + ELSE + gTotalEmptyContainer := 1200 ; + gProdAvailToFillerRunOut := 1000 ; + END_CASE + + 3: ; + CASE TRUNC (gContainerSize*2.0) * 5 OF + 0: gTotalEmptyContainer := 4000 ; (* From 0 to 0.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 5: gTotalEmptyContainer := 2100 ; (* From 0.5 to 0.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 10: gTotalEmptyContainer := 3500 ; (* From 1 to 1.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 15: gTotalEmptyContainer := 2100 ; (* From 1.5 to 1.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 20: gTotalEmptyContainer := 2230 ; (* From 2 to 2.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 25: gTotalEmptyContainer := 2100 ; (* From 2.5 to 2.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 30: gTotalEmptyContainer := 1999 ; (* From 3 to 3.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + ELSE + gTotalEmptyContainer := 1999 ; + gProdAvailToFillerRunOut := 1000 ; + END_CASE + + 4: ; + CASE TRUNC (gContainerSize*2.0) * 5 OF + 0: gTotalEmptyContainer := 2300 ; (* From 0 to 0.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 5: gTotalEmptyContainer := 2100 ; (* From 0.5 to 0.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 10: gTotalEmptyContainer := 1960 ; (* From 1 to 1.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 15: gTotalEmptyContainer := 2100 ; (* From 1.5 to 1.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 20: gTotalEmptyContainer := 1700 ; (* From 2 to 2.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 25: gTotalEmptyContainer := 1500 ; (* From 2.5 to 2.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 30: gTotalEmptyContainer := 1200 ; (* From 3 to 3.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + ELSE + gTotalEmptyContainer := 1200 ; + gProdAvailToFillerRunOut := 1000 ; + END_CASE + + 5: ; + CASE TRUNC (gContainerSize*2.0) * 5 OF + 0: gTotalEmptyContainer := 4500 ; (* From 0 to 0.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 5: gTotalEmptyContainer := 2100 ; (* From 0.5 to 0.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 10: gTotalEmptyContainer := 3400 ; (* From 1 to 1.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 15: gTotalEmptyContainer := 2100 ; (* From .1.5 to 1.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 20: gTotalEmptyContainer := 3290 ; (* From 2 to 2.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 25: gTotalEmptyContainer := 3000 ; (* From 2.5 to 2.99 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + 30: gTotalEmptyContainer := 2690 ; (* From 3 to 3.49 Liters *) + gProdAvailToFillerRunOut := 1000 ; + + ELSE + gTotalEmptyContainer := 2690 ; + gProdAvailToFillerRunOut := 1000 ; + END_CASE + ELSE + ; + END_CASE +END_IF +IF NOT gFillerRanOut AND NOT gH_Blender_OPT_BlendFillSystem THEN + gFillerProductAvailable := gFillerProductAvailableAmount ; +ELSE + gFillerProductAvailable := 0.0 ; +END_IF +mSyrupAvailable_Line := LIMIT (0, gH_ProcessSetup_SyrupRunOutLiters - gH_SyrupRunOutCount, gH_ProcessSetup_SyrupRunOutLiters) ; +IF gH_Blender_OPT_SyrupLevel THEN + mSyrupAvailable_Tank := LIMIT (0,gSyrupTankBottomVol + (gSyrupTankVolume - gSyrupTankBottomVol) * gSyrupTankLevel / 100,gSyrupTankVolume) ; +ELSE + mSyrupAvailable_Tank := gSyrupTankSyrupAmount ; +END_IF +IF NOT (gSyrRunOut_Done OR gProdTankRunOut_Latch) THEN + IF gSugarBeverage THEN + gSyrupProductAvailable := (mSyrupAvailable_Line + mSyrupAvailable_Tank) * (gActualSP_RatioVol + 1) ; + ELSE + gSyrupProductAvailable := mSyrupAvailable_Line * (gActualSP_RatioVol + 1) ; + END_IF +ELSE + gSyrupProductAvailable := 0.0 ; +END_IF +IF NOT gProdTankRunOut_Done THEN + gTankProductAvailable := ProductLiterInTank(i_TankLevel:=gProductTankLevel) ; +ELSE + gTankProductAvailable := 0.0 ; +END_IF + +gPrdPipeProductAvailable := LIMIT(0, gProdPipeRunOutProdAmount - gProdPipeRunOutPushCount, gProdPipeRunOutProdAmount) ; +gTotalProductAvailable := (gTankProductAvailable + gSyrupProductAvailable + gPrdPipeProductAvailable + gFillerProductAvailable) ; + +gH_SyrupProductAvailable := gSyrupProductAvailable ; +gH_PrdTankProductAvailable := gTankProductAvailable ; +gH_PrdPipeProductAvailable := gPrdPipeProductAvailable ; +gH_FillerProductAvailable := gFillerProductAvailable ; +gH_TotalProductAvailable := gTotalProductAvailableBottle ; +gH_TotalEmptyContainer := gTotalEmptyContainer ; +IF gContainerSize<>0 THEN + gTotalProductAvailableBottle := gTotalProductAvailable / gContainerSize ; +END_IF +IF (gSyrRunOut_Latch OR gSyrRunOut_Done OR gProdTankRunOut_Latch OR gProdTankRunOut_Done) AND + (((gTotalProductAvailable - gFillerProductAvailable)0 THEN + mDisableBrixHighAlarm := FALSE ; +ELSE + mDisableBrixHighAlarm := TRUE ; +END_IF +IF gH_A_Recipe_ProdMeterLowBrix<>0 THEN + mDisableLowBrixAlarm := FALSE ; +ELSE + mDisableLowBrixAlarm := TRUE ; +END_IF +IF gH_A_Recipe_ProdMeterHighCO2<>0 THEN + mDisableHighCO2Alarm := FALSE ; +ELSE + mDisableHighCO2Alarm := TRUE ; +END_IF +IF gH_A_Recipe_ProdMeterLowCO2<>0 THEN + mDisableLowCO2Alarm := FALSE ; +ELSE + mDisableLowCO2Alarm := TRUE ; +END_IF +IF gH_A_Recipe_ProdHighCond <>0 AND gH_Blender_OPT_ProductConductimeter THEN + mDisableHighCondAlarm := FALSE ; +ELSE + mDisableHighCondAlarm := TRUE ; +END_IF +IF gH_A_Recipe_ProdLowCond <>0 AND gH_Blender_OPT_ProductConductimeter THEN + mDisableLowCondAlarm := FALSE ; +ELSE + mDisableLowCondAlarm := TRUE ; +END_IF + +IF gProductBrix>gH_A_Recipe_ProdMeterHighBrix AND gProductMeterOk AND NOT mDisableBrixHighAlarm AND gFirstProd_Done AND gSugarBeverage AND NOT gWaterRecipe AND NOT gBlenderRinseMode THEN + gH_Message019 := TRUE ; (* High Product Brix *) +ELSE + gH_Message019 := FALSE ; (* High Product Brix *) +END_IF + +IF gProductBrixgH_A_Recipe_ProdMeterHighCO2 AND gProductMeterOk AND NOT mDisableHighCO2Alarm AND gFirstProd_Done AND (gCarboStillProduct OR gH_Blender_OPT_DoubleDeair) AND NOT gBlenderRinseMode THEN + gH_Message021 := TRUE ; (* High Product CO2 *) +ELSE + gH_Message021 := FALSE ; (* High Product CO2 *) +END_IF + +IF gProductConductivity < gH_A_Recipe_ProdLowCond AND gFirstProd_Done AND NOT gBlenderRinseMode AND NOT mDisableLowCondAlarm THEN + gH_Message060 := TRUE ; (* Low Product Conductivity *) +ELSE + gH_Message060 := FALSE ; (* Low Product Conductivity *) +END_IF + +IF gProductConductivity > gH_A_Recipe_ProdHighCond AND gFirstProd_Done AND NOT gBlenderRinseMode AND NOT mDisableHighCondAlarm THEN + gH_Message059 := TRUE ; (* High Product Conductivity *) +ELSE + gH_Message059 := FALSE ; (* High Product Conductivity *) +END_IF + +IF gTempProd_PV < 1.0 AND gPID_ProdTemp_Enabled AND gFirstProd_Done THEN + gH_Message051 := TRUE ; (* Product near to freezing temperature *) +ELSE + gH_Message051 := FALSE ; +END_IF + +IF gTempProd_PV > (gR_TempProd_SP + 4.0) AND gPID_ProdTemp_Enabled AND gFirstProd_Done THEN + gH_Message052 := TRUE ; (* Product temperature too high *) +ELSE + gH_Message052 := FALSE ; +END_IF + +IF gTempWater_PV < 1.0 AND gPID_WaterTemp_Enabled AND gFirstProd_Done THEN + gH_Message053 := TRUE ; (* Water near to freezing temperature *) +ELSE + gH_Message053 := FALSE ; +END_IF + +IF gTempWater_PV > (gR_TempWater_SP + 4.0) AND gPID_WaterTemp_Enabled AND gFirstProd_Done THEN + gH_Message054 := TRUE ; (* Water temperature too high *) +ELSE + gH_Message054 := FALSE ; +END_IF + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/PRODUCTTANKBRIX.EXP b/backend/script_groups/TwinCat/.example/PRODUCTTANKBRIX.EXP new file mode 100644 index 0000000..c4bfda8 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PRODUCTTANKBRIX.EXP @@ -0,0 +1,44 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM ProductTankBrix +VAR + mTemp : REAL ; + mIntH2O : Integral ; + mIntH2O_Syr : Integral ; + mIntSugar : Integral ; + mIntProduct : Integral ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +IF gBlenderBlending AND gActualSyrupDens<>0 THEN + mIntProduct.i_NewValue:=(gH2O_Flow_Meas + gSYR_Flow_Meas / gActualSyrupDens) - gEstimateFillerSpeed ; + mIntProduct.i_IntCycle:=gTask02CycleTime ; + mIntProduct(Out_Integral := gInTotProduct) ; + + mTemp := gH2O_Flow_Meas - gOutTankH2O + (gSYR_Flow_Meas * (1 - gActualSyrupBrix / 100)) ; + + mIntH2O.i_NewValue:=mTemp ; + mIntH2O.i_IntCycle:=gTask02CycleTime ; + mIntH2O(Out_Integral := gInTotH2O) ; + + mIntSugar.i_NewValue:=(gSYR_Flow_Meas * gActualSyrupBrix / 100) - gOutTankSugar ; + mIntSugar.i_IntCycle:=gTask02CycleTime ; + mIntSugar(Out_Integral := gInTotSugar) ; + + gOutTankH2O := gEstimateFillerSpeed * gProductDensity * (1 - gFlowProdBrix / 100) - gBlendError ; + gOutTankSugar := gEstimateFillerSpeed * gProductDensity * gFlowProdBrix / 100 ; +END_IF + +IF gInTotH2O<>0 THEN + gProdTankBrix := gInTotSugar / gInTotH2O * 100 ; +END_IF +IF NOT gBlenderProdMode OR gBlenderRinseMode THEN + gInTotH2O := 0.0 ; + gInTotSugar := 0.0 ; + gInTotProduct := 0.0 ; +END_IF +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/PRODUCTTANK_PRESSCTRL.EXP b/backend/script_groups/TwinCat/.example/PRODUCTTANK_PRESSCTRL.EXP new file mode 100644 index 0000000..592f942 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PRODUCTTANK_PRESSCTRL.EXP @@ -0,0 +1,1120 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM ProductTank_PressCtrl +VAR + mTankPressONS : R_TRIG ; + mTankPressTP : TP ; + mAuxONS3 : R_TRIG; + mAuxONS2 : R_TRIG ; + mAuxONS1 : R_TRIG ; + mAuxONS : R_TRIG ; + mFinalPressOk : TON ; + mEqPressOk : TON ; + mEqPressSR : SR ; + mPrdTankPressFault : TON ; + mCO2MainValveDelay : TON ; + mLatchONS : BOOL ; + mPress_Request : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 20 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gInLinePressAirOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankPress_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 5 +_LD_CONTACT +gH_CMD_ProdTankPressReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Request +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinse_Request +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderRun_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendFillStartUp_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS2 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankPress_Request +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankPress_Latch +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAuxONS3 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankPress_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankPress_Qualifier +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankPress_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_ProdTankPressReq +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPress_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gEqPressSelected +_EXPRESSION +_POSITIV +_LD_CONTACT +gEqPressOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWaitLevelToHold_TankPress +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFirstProdPressHold +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFirstProdPressHold +_EXPRESSION +_POSITIV +_LD_CONTACT +gInLinePressCO2Ok +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankPress_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gProdTankPress_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +mPress_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankPress_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankPress_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankPress_Reset +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankPress_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankPress_Latch +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS1 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mLatchONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankPress_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankPress_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_PrdTankPressRun +_OUTPUT +_POSITIV +_NO_SET +gProdTankPress_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gProdTankPress_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderTankPress_Ok +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdTankDrain_Latch +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mPrdTankPressFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#90s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankPressure_Fault +_NETWORK + +_COMMENT +PrdTankPressError = Press_SP - Press_PV. +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPrdTankPressError +_EXPRESSION +_POSITIV +ABS +_OPERAND +_EXPRESSION +_POSITIV +gPrdTankPressIst +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderTankPress_Ok +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Pressure Ok TO Blend +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gPrdTankPressError +_EXPRESSION +_POSITIV +ABS +_OPERAND +_EXPRESSION +_POSITIV +gPrdTankPressIst * 2 +_EXPRESSION +_POSITIV +LT +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gEqPressSelected +_OPERAND +_EXPRESSION +_POSITIV +gEqPressOk +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gTankPress_OkToBlend +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mCO2MainValveDelay +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 4 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gPrdTankPressError +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +LT +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRun_Running +_OPERAND +_EXPRESSION +_NEGATIV +gProdPipeRunOut_Latch +_OPERAND +_EXPRESSION +_NEGATIV +gCO2LowPress_Fault +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_NEGATIV +gProdTankPress_Latch +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#6s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCloseMainCO2Valve +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_Tank_Press +_OPERAND +_EXPRESSION +_POSITIV +gPressCO2_PV +_EXPRESSION +_POSITIV +SUB +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +LT +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_Tank_Press - gPressCO2_PV +_EXPRESSION +_POSITIV +ABS +_OPERAND +_EXPRESSION +_POSITIV +gPrdTankPressIst +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gTankPress_HighLimit +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gR_PressCO2_SP +_OPERAND +_EXPRESSION +_POSITIV +gCO2EqPressure +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gCarboStillRecipe +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gWaitLevelToHold_TankPress +_OPERAND +_EXPRESSION +_NEGATIV +gEqPressOk +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gEqPressSelected +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mEqPressSR +_BOX_EXPR : 2 +_ENABLED +_FUNCTIONBLOCK +mEqPressOk +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 4 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderTankPress_Ok +_OPERAND +_EXPRESSION +_POSITIV +gProdTankPress_Latch +_OPERAND +_EXPRESSION +_POSITIV +gEqPressSelected +_OPERAND +_EXPRESSION +_NEGATIV +gBlenderRinseMode +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_NEGATIV +gEqPressSelected +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRinseMode +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gEqPressOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gTankPress_HighLimit +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderLevelTarget +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStopLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankPress_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEqPressSelected +_EXPRESSION +_POSITIV +_LD_CONTACT +gEqPressOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mFinalPressOk +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#300ms +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFinalPressureOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gEqPressSelected +_EXPRESSION +_POSITIV +_LD_CONTACT +gFinalPressureOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gEqPressSelected +_NETWORK + +_COMMENT +Waiting Tank Pressure Message +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderTankPress_Ok +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gEqPressOk +_EXPRESSION +_NEGATIV +_LD_CONTACT +gEqPressSelected +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderTankPress_Ok +_EXPRESSION +_NEGATIV +_LD_CONTACT +gEqPressSelected +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status001 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Done +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mPress_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +mLatchONS +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdTankPress_Done + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/PROFIBUS_DATA.EXP b/backend/script_groups/TwinCat/.example/PROFIBUS_DATA.EXP new file mode 100644 index 0000000..41c0a18 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PROFIBUS_DATA.EXP @@ -0,0 +1,15 @@ +(* @GLOBAL_VARIABLE_LIST := Profibus_Data *) +(* @PATH := '\/CIP_SYSTEM' *) +(* @SYMFILEFLAGS := '0' *) +VAR_GLOBAL + gPB_IN_ContolRoom AT %IB256: ARRAY [0..7] OF BYTE; (* from CIP room *) + gPB_OUT_ContolRoom AT %QB256: ARRAY [0..7] OF BYTE; (* from CIP room *) +END_VAR + +(* @OBJECT_END := Profibus_Data *) +(* @CONNECTIONS := Profibus_Data +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/PROFIBUS_NETWORK.EXP b/backend/script_groups/TwinCat/.example/PROFIBUS_NETWORK.EXP new file mode 100644 index 0000000..2be1b74 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PROFIBUS_NETWORK.EXP @@ -0,0 +1,1301 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Profibus_Network +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 37 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_FC3102_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFC3102_Node1_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFC3102_Node1_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FC3102_DP_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProduct_VFC_Node4_DP_State +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProductPumpVFC_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_ProductPumpVFC_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_Node4_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProduct_VFC_Node4_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProductPumpVFC_DP_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFC3102_Node1_DP_State +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FC3102_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gPAmPDS_Node8_DP_State +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_PAmPDS_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_PAmPDS_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPAmPDS_Node8_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gPAmPDS_Node8_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_PAmPDS_DP_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gET200_Node10_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gET200_Node10_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gET200_Node10_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ET200_DP_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gET200_Node10_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ET200_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gValvesBase_Node12_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gValvesBase_Node12_DP_Error +_OUTPUT +_POSITIV +_NO_SET +gH_ValvesBase_Node12_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gValvesBase_Node12_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ValvesBase_Node12_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gValvesBase_Node13_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gValvesBase_Node13_DP_Error +_OUTPUT +_POSITIV +_NO_SET +gH_ValvesBase_Node13_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gValvesBase_Node13_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ValvesBase_Node13_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 4 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gLowCond_Node15_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Conductimeter +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gLowCond_Node15_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gLowCond_Node15_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_LowCond_DP_Node15_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gLowCond_Node15_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_LowCond_DP_Node15_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 4 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gHighCond_Node16_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Conductimeter +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHighCond_Node16_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gHighCond_Node16_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_HighCond_DP_Node16_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gHighCond_Node16_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_HighCond_DP_Node16_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProduct_VFM_Node17_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFM_Node17_DP_Error +_OUTPUT +_POSITIV +_NO_SET +gH_Product_VFM_DP_Error +_OUTPUT +_POSITIV +_NO_SET +gH_Message065 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gProduct_VFM_Node17_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Product_VFM_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdPH_Node18_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gProdPH_Node18_DP_Error +_OUTPUT +_POSITIV +_NO_SET +gH_ProdPH_DP_Error +_OUTPUT +_POSITIV +_NO_SET +gH_Message057 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gProdPH_Node18_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProdPH_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdCond_Node19_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gProdCond_Node19_DP_Error +_OUTPUT +_POSITIV +_NO_SET +gH_ProdCond_DP_Error +_OUTPUT +_POSITIV +_NO_SET +gH_Message058 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gProdCond_Node19_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProdCond_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gWater_VFM_Node20_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWater_VFM_Node20_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gWater_VFM_Node20_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Water_VFM_DP_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gWater_VFM_Node20_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Water_VFM_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrup_MFM_Node21_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrup_MFM_Node21_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrup_MFM_Node21_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Syrup_MFM_DP_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gSyrup_MFM_Node21_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Syrup_MFM_DP_State +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gCarboCO2_MFM_Node22_DP_State +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCarboCO2_MFM_Node22_DP_Error +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCarboCO2_MFM_Node22_DP_Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_CarboCO2_MFM_DP_Error +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +BYTE_TO_INT(gCarboCO2_MFM_Node22_DP_State) +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_CarboCO2_MFM_DP_State +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/PROFIBUS_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/PROFIBUS_VARIABLES.EXP new file mode 100644 index 0000000..0fbbebc --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PROFIBUS_VARIABLES.EXP @@ -0,0 +1,196 @@ +(* @GLOBAL_VARIABLE_LIST := Profibus_Variables *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL (* FC3102 Profibus Network Card Node 1 *) + gFC3102_Node1_DP_State AT %IW1000: UINT ; + gFC3102_Node1_DP_Error : BOOL ; +END_VAR + +VAR_GLOBAL (* Product Pump Varible Fequency Converter - VFC - Node 4 *) + gProduct_VFC_Node4_DP_State AT %IB1050 : BYTE ; + gProduct_VFC_Node4_DP_Error : BOOL ; + gProduct_VFC_ControlWord_STRUCT AT %MW3000 : FC_Control_Word; + gProduct_VFC_ControlWord_AUX AT %MW3000 : ARRAY[0..15] OF BOOL ; + gProduct_VFC_ControlWord AT %QW2000 : INT; + gProduct_VFC_MainRefValue AT %QW2002 : INT ; + gProduct_VFC_StatusWord_STRUCT AT %MW3100 : FC_Status_Word; + gProduct_VFC_StatusWord_AUX AT %MW3100 : ARRAY[0..15] OF BOOL ; + gProduct_VFC_StatusWord AT %IW1052 : INT ; + gProduct_VFC_MainActualValue AT %IW1054 : INT ; +END_VAR + +VAR_GLOBAL (* Profibus Adapter per mPDS Anton Paar Node 8 *) + gPAmPDS_Node8_DP_State AT %IW5128 : BYTE ; + gPAmPDS_Node8_DP_Error : BOOL ; +END_VAR + +VAR_GLOBAL (* Remote I/O ET200 Node 10 *) + gET200_Node10_DP_State AT %IB1020 : BYTE ; + gET200_Node10_DP_Error : BOOL ; +END_VAR + +VAR_GLOBAL (* Pneumatic Festo Node 12 *) + gValvesBase_Node12_DP_State AT %IB1022 : BYTE ; + gValvesBase_Node12_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* Pneumatic Festo Node 13 *) + gValvesBase_Node13_DP_State AT %IB1024 : BYTE ; + gValvesBase_Node13_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* High Conductivemeter Node 15 *) + gLowCond_Node15_DP_State AT %IB1026 : BYTE ; + gLowCond_Node15_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* Low Conductivemeter Node 16 *) + gHighCond_Node16_DP_State AT %IB1028 : BYTE ; + gHighCond_Node16_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* Product FlowMeter Node 17*) + gProduct_VFM_Node17_DP_State AT %IB1048 : BYTE ; + gProduct_VFM_Node17_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* Product PH Meter Node 18 *) + gProdPH_Node18_DP_State AT %IB1036 : BYTE ; + gProdPH_Node18_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* Product Conductivemeter Node 19 *) + gProdCond_Node19_DP_State AT %IB1038 : BYTE ; + gProdCond_Node19_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* Water FlowMeter Node 20 *) + gWater_VFM_Node20_DP_State AT %IB1040 : BYTE ; + gWater_VFM_Node20_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* Syrup 1 FlowMeter Node 21 *) + gSyrup_MFM_Node21_DP_State AT %IB1042 : BYTE ; + gSyrup_MFM_Node21_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL (* CO2 FlowMeter Node 22 *) + gCarboCO2_MFM_Node22_DP_State AT %IB1044 : BYTE ; + gCarboCO2_MFM_Node22_DP_Error : BOOL; +END_VAR + +VAR_GLOBAL + gLowCond_Node15 AT %IB4070: ARRAY[0..4] OF BYTE; + gLowCondTemp_Node15 AT %IB4075: ARRAY[0..4] OF BYTE; +END_VAR + +VAR_GLOBAL + gHighCond_Node16 AT %IB4080: ARRAY[0..4] OF BYTE; + gHighCondTemp_Node16 AT %IB4085: ARRAY[0..4] OF BYTE; +END_VAR + +VAR_GLOBAL + gProductFlow_Node17 AT %IB4060 : ARRAY [0..4] OF BYTE; + gProductTotalizer1_Node17 AT %IB4065: ARRAY [0..4] OF BYTE; + gProductControl_Node17 AT %QB4004 : BYTE; + gProductTotCtrl_Node17 AT %QB4005 : BYTE; +END_VAR + +VAR_GLOBAL + gProdPH_Node18 AT %IB3080: ARRAY[0..4] OF BYTE; + gTempProdPH_Node18 AT %IB3085: ARRAY[0..4] OF BYTE; +END_VAR + +VAR_GLOBAL + gProdCond_Node19 AT %IB3090: ARRAY[0..4] OF BYTE; + gTempProdCond_Node19 AT %IB3095: ARRAY[0..4] OF BYTE; +END_VAR + +VAR_GLOBAL + gWaterFlow_Node20 AT %IB4000 : ARRAY [0..4] OF BYTE; + gWaterTotalizer1_Node20 AT %IB4005: ARRAY [0..4] OF BYTE; + gWaterControl_Node20 AT %QB4000 : BYTE; + gWaterTotCtrl_Node20 AT %QB4001 : BYTE; +END_VAR + +VAR_GLOBAL + gSyrMassFlow_Node21 AT %IB4010: ARRAY[0..4] OF BYTE; + gSyrTotalizer1_Node21 AT %IB4015: ARRAY[0..4] OF BYTE; + gSyrDensity_Node21 AT %IB4020: ARRAY[0..4] OF BYTE; + gSyrTemperature_Node21 AT %IB4025: ARRAY[0..4] OF BYTE; + gSyrBrix_Node21 AT %IB4030: ARRAY[0..4] OF BYTE; + gSyrControl_Node21 AT %QB4002 : BYTE; +END_VAR + +VAR_GLOBAL + gCO2MassFlow_Node22 AT %IB4035: ARRAY[0..4] OF BYTE; + gCO2Totalizer1_Node22 AT %IB4040: ARRAY[0..4] OF BYTE; + gCO2Density_Node22 AT %IB4045: ARRAY[0..4] OF BYTE; + gCO2Temperature_Node22 AT %IB4050 : ARRAY[0..4] OF BYTE; + gCO2CalcDens_Node22 AT %IB4055 : ARRAY[0..4] OF BYTE; + gCO2Control_Node22 AT %QB4003 : BYTE; +END_VAR +(* +VAR_GLOBAL + gSyr2MassFlow_Node23 AT %IB4060 : ARRAY[0..4] OF BYTE; + gSyr2Totalizer1_Node23 AT %IB4065 : ARRAY[0..4] OF BYTE; + gSyr2Density_Node23 AT %IB4070 : ARRAY[0..4] OF BYTE; + gSyr2Temperature_Node23 AT %IB4075 : ARRAY[0..4] OF BYTE; + gSyr2Brix_Node23 AT %IB4080 : ARRAY[0..4] OF BYTE; + gSyr2Control_Node23 AT %QB4004 : BYTE; +END_VAR +*) +VAR_GLOBAL + gMFM_WaterFlow : REAL; + gMFM_WaterFlow_State : BYTE ; + gMFM_WaterTotalizer : REAL; + gMFM_WaterTotalizer_State : BYTE; + gMFM_TemperatureSyrup1 : REAL; + gMFM_TemperatureSyrup1_State : BYTE; + gMFM_Syrup1Brix : REAL; + gMFM_Syrup1Brix_State : BYTE ; + gMFM_Syrup1Flow : REAL; + gMFM_Syrup1Flow_State : BYTE; + gMFM_Syrup1Density : REAL ; + gMFM_Syrup1Density_State : BYTE ; + gMFM_Syrup1Totalizer : REAL ; + gMFM_Syrup1Totalizer_State : BYTE ; + gMFM_CO2Flow : REAL ; + gMFM_CO2Flow_State : BYTE ; + gMFM_CO2Temperature : REAL ; + gMFM_CO2Temperature_State : BYTE ; + gMFM_CO2Density : REAL ; + gMFM_CO2Density_State : BYTE ; + gMFM_CO2Totalizer : REAL ; + gMFM_CO2Totalizer_State : BYTE ; + + gVFM_ProductFlow : REAL; + gVFM_ProductFlow_State : BYTE ; + gVFM_ProductTotalizer : REAL; + gVFM_ProductTotalizer_State : BYTE; + gProdCond_Conductivity : REAL ; + gProdCond_Conductivity_State : BYTE ; + gProdCond_Temperature : REAL ; + gProdCond_Temperature_State : BYTE ; + gProdPH_PHValue : REAL ; + gProdPH_PHValue_State : BYTE ; + gProdPH_Temperature : REAL ; + gProdPH_Temperature_State : BYTE ; + gLowCond_Conductivity : REAL ; + gLowCond_Conductivity_State : BYTE ; + gLowCond_Temperature : REAL ; + gLowCond_Temperature_State : BYTE ; + gHighCond_Conductivity : REAL ; + gHighCond_Conductivity_State : BYTE ; + gHighCond_Temperature : REAL ; + gHighCond_Temperature_State : BYTE ; +END_VAR + + +(* @OBJECT_END := Profibus_Variables *) +(* @CONNECTIONS := Profibus_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/PULSEPRESSURE.EXP b/backend/script_groups/TwinCat/.example/PULSEPRESSURE.EXP new file mode 100644 index 0000000..72e988f --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PULSEPRESSURE.EXP @@ -0,0 +1,23 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION PulsePressure : REAL +VAR_INPUT + i_Flow : REAL ; (* Flow in l/min *) + i_DN_Pipe : REAL ; (* Pipe Diameter mm *) + i_Mass : REAL ; (* Kg of liquid dealing with the Pulse pressure *) + i_T_Filling : REAL ; (* Filling Time in sec *) +END_VAR +VAR + mSection : REAL ; +END_VAR + +(* @END_DECLARATION := '0' *) +mSection := EXPT(i_DN_Pipe / 2000.0, 2) * gP_Greek ; +(*PulsePressure := i_Flow / 60000.0 / mSection * i_Mass / i_T_Filling * 1e-5 ;*) (* in Bar *) +IF mSection<>0 AND i_T_Filling<> 0 THEN + PulsePressure := (i_Flow / 60000.0 / mSection * i_Mass / i_T_Filling) / mSection * 0.1 ; (* in mmH2O *) +ELSE + PulsePressure := 0.0 ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/PUMPSCONTROL.EXP b/backend/script_groups/TwinCat/.example/PUMPSCONTROL.EXP new file mode 100644 index 0000000..6e7899a --- /dev/null +++ b/backend/script_groups/TwinCat/.example/PUMPSCONTROL.EXP @@ -0,0 +1,2115 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM PumpsControl +VAR + mP1_CIP_RunPump : BOOL; + mP1_WaterPump : _PumpControl ; + mP5_WaterPump : _PumpControl ; + mP2_SyrupPump : _PumpControl ; + mP3_ProductPump : _PumpControl ; + mP4_VacuumPump : _PumpControl ; + mP5_RinseTankPump : _PumpControl ; + mP6_RecircPump : _PumpControl ; + mP_SR_SyrRoomPump : _PumpControl ; + mDelayStartP1 : TON ; + mDelayCIPRinseStopP1 : TOF ; + mDelayStopP1 : TOF; + mDelayRunoutStopP1 : TOF; + mDelayStartP5 : TON ; + mDelayStopP5 : TOF; + mDelayStartP5Blending : TON ; + mDelayStartP2 : TON ; + mDelayRunoutStopP2 : TOF ; + mDelayProdStopP3 : TOF ; + mDelayRunOutStopP3 : TOF ; + mDelayCIPStopP3 : TOF ; + mDelayCIPStopP1 : TOF ; + mDelayCIPStopP5 : TOF ; + mDelayCIPStopP2 : TOF ; + mDelayStop_SR_P : TOF; + mBlendDeairDelayOff : TOF; + mDummy : BOOL ; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 20 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_WaterFlow +_OPERAND +_EXPRESSION +_POSITIV +100.0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +gCIP_Started +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP1_CIP_RunPump +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairTankMinLvlAux +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFoamCipEnable +_EXPRESSION +_POSITIV +_LD_CONTACT +mP1_CIP_RunPump +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayStartP1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_LD_CONTACT +gStillWaterByPassEn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 5 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairTankMinLvlAux +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFoamCipEnable +_EXPRESSION +_POSITIV +_LD_CONTACT +mP1_CIP_RunPump +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPBlenderDrainRunning +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPCausticRecoveryRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayCIPStopP1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#20s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairTankMinLvlAux +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFoamCipEnable +_EXPRESSION +_POSITIV +_LD_CONTACT +mP1_CIP_RunPump +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_P1 +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayStopP1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_WaterPumpRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_P1 +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboWaterLine_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P1_WaterPump_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mP1_WaterPump +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gOut_WaterPumpRun +_OPERAND +_EXPRESSION +_POSITIV +DI_Water_Pump_Contactor +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +DI_Water_Pump_Ovrld +_OPERAND +_EXPRESSION +_POSITIV +DI_Water_Pump_SoftStart_Ovrld +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gH_P1_WaterPump_Auto +_OPERAND +_EXPRESSION +_POSITIV +gH_P1_WaterPump_Manual +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +_PumpControl +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterPump_P1_Fault +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P1_WaterPump_Status +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairTank2MinLvlAux +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinse_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayStartP5Blending +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3.5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayStartP5 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairTankLoading +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gDeairTank2MinLvlAux +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_P5 +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayStopP5 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gDeairTank2MinLvlAux +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_DrainRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayCIPStopP5 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#20s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_WaterPump2Run +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_P5 +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboWaterLine_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P5_WaterPump_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mP5_WaterPump +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gOut_WaterPump2Run +_OPERAND +_EXPRESSION +_POSITIV +DI_Water_Pump2_Contactor +_OPERAND +_EXPRESSION +_POSITIV +DI_Water_Pump2_Ovrld +_OPERAND +_EXPRESSION +_POSITIV +gH_P5_WaterPump_Auto +_OPERAND +_EXPRESSION +_POSITIV +gH_P5_WaterPump_Manual +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +_PumpControl +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterPump_P5_Fault +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P5_WaterPump_Status +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrupTankMinLvlAux +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_P2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gSyrupTankMinLvlAux +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_DrainRequest +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_SyrTankFloodRun +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mDelayCIPStopP2 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayStartP2 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#600ms +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_SyrupPumpRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P2_SyrupPump_Status +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mP2_SyrupPump +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gOut_SyrupPumpRun +_OPERAND +_EXPRESSION +_POSITIV +DI_Syrup_Pump_Contactor +_OPERAND +_EXPRESSION +_POSITIV +DI_Syrup_Pump_Ovrld +_OPERAND +_EXPRESSION +_POSITIV +gH_P2_SyrupPump_Auto +_OPERAND +_EXPRESSION +_POSITIV +gH_P2_SyrupPump_Manual +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +_PumpControl +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupPump_P2_Fault +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P2_SyrupPump_Status +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 6 +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdAvailable +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInFillerProductReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendRecircActive +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayProdStopP3 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#4s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdAvailable +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayRunOutStopP3 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#4s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_CIP_ProdTankFloodRun +_EXPRESSION +_NEGATIV +_LD_CONTACT +gInFillerCIPRequest +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayCIPStopP3 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#4s +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEnableRecircPHE +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_ProdTankNotEmpty +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gIn_Flr_WaterRinseRequest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_EV62_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +g_Head_PID_Enable +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_P3 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_ProductPumpRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mP3_ProductPump +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gOut_ProductPumpRun +_OPERAND +_EXPRESSION +_POSITIV +DI_Product_Pump_Contactor +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +DI_Product_Pump_Ovrld +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gIn_ProdPumpFCReady +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Inverter +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gH_P3_ProductPump_Auto +_OPERAND +_EXPRESSION +_POSITIV +gH_P3_ProductPump_Manual +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +_PumpControl +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductPump_P3_Fault +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P3_ProductPump_Status +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +PumpsControl.VFC_Control +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_ByPassDeair +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_A_Recipe_EnDeaireation +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gStillWaterByPassEn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_P4 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_VacuumPump +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_VacuumPumpRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mP4_VacuumPump +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gOut_VacuumPumpRun +_OPERAND +_EXPRESSION +_POSITIV +DI_Vacuum_Pump_Contactor +_OPERAND +_EXPRESSION +_POSITIV +DI_Vacuum_Pump_Ovrld +_OPERAND +_EXPRESSION +_POSITIV +gH_P4_VacuumPump_Auto +_OPERAND +_EXPRESSION +_POSITIV +gH_P4_VacuumPump_Manual +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +_PumpControl +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gVacuumPump_P4_Fault +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P4_VacuumPump_Status +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mP5_RinseTankPump +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gOut_StartRinseTankPump +_OPERAND +_EXPRESSION +_POSITIV +DI_FillerRinseTank_Pump_Contactor +_OPERAND +_EXPRESSION +_POSITIV +DI_FillerRinseTank_Pump_Ovrld +_OPERAND +_EXPRESSION +_POSITIV +gH_P5_RinseTankPump_Auto +_OPERAND +_EXPRESSION +_POSITIV +gH_P5_RinseTankPump_Manual +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +_PumpControl +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gRinseTankPump_P5_Fault +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P5_RinseTankPump_Status +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendRecircActive +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gEnableRecircPHE +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gIn_ProdTankNotEmpty +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_RecircPumpRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mP6_RecircPump +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gOut_RecircPumpRun +_OPERAND +_EXPRESSION +_POSITIV +DI_Recycle_Pump_Contactor +_OPERAND +_EXPRESSION +_POSITIV +DI_Recycle_Pump_Ovrld +_OPERAND +_EXPRESSION +_POSITIV +gH_P6_RecircPump_Auto +_OPERAND +_EXPRESSION +_POSITIV +gH_P6_RecircPump_Manual +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +_PumpControl +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gRecircPump_P6_Fault +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P6_RecircPump_Status +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrupLineDrainValveAux +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStartPumps +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupTankLoading +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrMFMStartUp_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_SyrRoomPump +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIP_SyrTankFloodRun +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairTankLoading +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayStop_SR_P +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#15S +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gH_SyrupRoomPump_Auto +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SyrupRoomPump_Manual +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_SyrupRoomPump_Auto +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_SyrupRoomPumpRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOut_SyrupRoomWaterReq + +END_PROGRAM +ACTION VFC_Control: +_LD_BODY +_NETWORKS : 7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProduct_VFC_StatusWord +_EXPRESSION +_POSITIV +_Word_To_BoolArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_StatusWord_AUX +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 4 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B02_Brake +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B03_Coast +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B04_QuickStop +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B05_HoldOutputFrequency +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Alarm025 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B07_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_P3_ProductPump_Status +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B06_RampStop +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_P3_ProductPump_Manual +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B00_RefValue_LSB +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B09_RampSelection +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord_STRUCT.B10_DataValid +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProduct_VFC_ControlWord_AUX +_EXPRESSION +_POSITIV +_BoolArray_To_Word +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_ControlWord +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/READANALOGIN.EXP b/backend/script_groups/TwinCat/.example/READANALOGIN.EXP new file mode 100644 index 0000000..b15d596 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/READANALOGIN.EXP @@ -0,0 +1,28 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION ReadAnalogIn : Peripherial +VAR_INPUT + i_Periferial : INT ; + i_MaxAnalog : REAL ; + i_MinAnalog : REAL ; + i_PerMin : INT ; + i_PerMax : INT ; +END_VAR +VAR + mSlope : REAL ; + mZero : REAL ; +END_VAR + +(* @END_DECLARATION := '0' *) +IF i_PerMax <>i_PerMin THEN + mSlope := (i_MaxAnalog - i_MinAnalog) / (i_PerMax - i_PerMin) ; + mZero := i_MinAnalog - i_PerMin * mSlope ; + ReadAnalogIn.Value := i_Periferial * mSlope + mZero ; +END_IF +IF i_Periferial >= 16#7FFF THEN + ReadAnalogIn.Error := TRUE ; +ELSE + ReadAnalogIn.Error := FALSE ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/READPERIPHERIAL.EXP b/backend/script_groups/TwinCat/.example/READPERIPHERIAL.EXP new file mode 100644 index 0000000..ff1dc60 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/READPERIPHERIAL.EXP @@ -0,0 +1,23 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION ReadPeripherial : REAL +VAR_INPUT + i_Periferial : INT ; + i_MaxAnalog : REAL ; + i_MinAnalog : REAL ; + i_PerMin : INT ; + i_PerMax : INT ; +END_VAR +VAR + mSlope : REAL ; + mZero : REAL ; +END_VAR +(* @END_DECLARATION := '0' *) +IF i_PerMax <> i_PerMin THEN + mSlope := (i_MaxAnalog - i_MinAnalog) / (i_PerMax - i_PerMin) ; + mZero := i_MinAnalog - i_PerMin * mSlope ; + ReadPeripherial := i_Periferial * mSlope + mZero ; +END_IF + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/SAFETIES.EXP b/backend/script_groups/TwinCat/.example/SAFETIES.EXP new file mode 100644 index 0000000..722e1e9 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SAFETIES.EXP @@ -0,0 +1,3745 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Safeties +VAR + mAlarmHornReset : BOOL ; + mWarningHornReset : BOOL ; + mAlarmHornActive : SR ; + mWarningHornActive : SR ; + mProdBrixHighONS : R_TRIG ; + mProdBrixLowONS : R_TRIG ; + mProdCO2HighONS : R_TRIG ; + mProdCO2LowONS : R_TRIG ; + mWaterHighTempONS : R_TRIG ; + mProdHighTempONS : R_TRIG ; + mProdCondHighONS : R_TRIG ; + mProdCondLowONS : R_TRIG ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 81 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 32 +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_NEGATIV +_LD_CONTACT +gNotARecipe_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterPump_P1_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterPump_P5_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupPump_P2_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gRecircPump_P6_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterVFM_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupMFM_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCO2MFM_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterValvePos_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupValvePos_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboCO2ValvePos_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendErrorHighSyr_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlendErrorLowSyr_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboCO2Error_LowCO2_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboCO2Error_HighCO2_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gFC3102_Node1_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gET200_Node10_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gValvesBase_Node12_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gValvesBase_Node13_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gWater_VFM_Node20_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrup_MFM_Node21_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboCO2_MFM_Node22_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gAirLowPress_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCO2LowPress_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gLineCO2LowPressure +_EXPRESSION +_POSITIV +_LD_CONTACT +gDensimeterCalError +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrTankLowLvl_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairTankLowLvl_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPRecircFlowMissing_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gInManifoldNotReadyForProd +_EXPRESSION +_POSITIV +_LD_CONTACT +gInManifoldNotReadyForCIP +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHighPriorityAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 39 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm020 +_EXPRESSION +_POSITIV +_LD_CONTACT +gProductBrixTooHigh +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm021 +_EXPRESSION +_POSITIV +_LD_CONTACT +gProductBrixTooLow +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm022 +_EXPRESSION +_POSITIV +_LD_CONTACT +gProductCO2TooHigh +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm023 +_EXPRESSION +_POSITIV +_LD_CONTACT +gProductCO2TooLow +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gVacuumPump_P4_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gProductPump_P3_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankPressure_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gVacuumTimeOut_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gmPDS1000_NoOscillation +_EXPRESSION +_POSITIV +_LD_CONTACT +gmPDS1000_Error_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gmPDS2000_Error_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gPAmPDS_Error_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRoomPump_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrBrixOutSpec_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gManualSyrupDrainValve +_EXPRESSION +_POSITIV +_LD_CONTACT +gManualWaterDrainValve +_EXPRESSION +_POSITIV +_LD_CONTACT +gRinseTankPump_P5_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupLineNotSelected +_EXPRESSION +_POSITIV +_LD_CONTACT +gInAmmoniaLowPressure +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm067 +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterTempTooHigh +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm068 +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTempTooHigh +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gLowCond_Node15_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gHighCond_Node16_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRoomWaterPump_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerCommFault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPCommFault +_EXPRESSION +_POSITIV +_LD_CONTACT +gFlrCO2ValveEV46Pos_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdValveEV62Pos_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gDiffSensor_Analog_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupDensityOutSpec_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrTankHighLvl_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gAmmoniaCompressor_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeaireationValveFault +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankPressureValveFault +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterInletValveEV73Pos_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPInletValveEV74Pos_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gPAmPDS_Node8_DP_Error +_EXPRESSION +_POSITIV +_LD_CONTACT +gPAmPDS_TransDropOUT +_EXPRESSION +_POSITIV +_LD_CONTACT +gUVLampHighTemperature +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gLowPriorityAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_NEGATIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Alarm001 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm001 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gNotARecipe_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Alarm002 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm002 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDensimeterCalError +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Alarm003 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm003 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFillerCommFault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Alarm004 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm004 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPCommFault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Alarm006 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm006 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDiffSensor_Analog_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Alarm007 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm007 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrTankHighLvl_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Alarm008 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm008 +_NETWORK + +_COMMENT +Profibus Slave Valve Base 12 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gValvesBase_Node12_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm010 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm010 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Slave Valve Base 13 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gValvesBase_Node13_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm011 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm011 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Slave Low Conductimeter Node 15 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gLowCond_Node15_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm012 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm012 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Slave Low Conductimeter Node 16 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gHighCond_Node16_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm013 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm013 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankPressureValveFault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm014 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm014 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeaireationValveFault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm015 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm015 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterInletValveEV73Pos_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm016 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm016 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPInletValveEV74Pos_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm017 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm017 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdValveEV62Pos_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm018 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm018 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFlrCO2ValveEV46Pos_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm019 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm019 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Product Brix Too High +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProductBrixTooHigh +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdBrixHighONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm020 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm020 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Product Brix Too Low +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProductBrixTooLow +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdBrixLowONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm021 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm021 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Product CO2 Too High +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProductCO2TooHigh +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdCO2HighONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm022 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm022 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Product CO2 Too Low +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProductCO2TooLow +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdCO2LowONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm023 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm023 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gIn_ProdPumpFCReady +_EXPRESSION +_NEGATIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm025 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Inverter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm025 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +P6 Recirculation Pump Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gRecircPump_P6_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm026 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm026 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +mPDS1000_Error_Fault +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS1000_Error_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm027 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm027 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Tube NOT Oscillating in Densimeter +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS1000_NoOscillation +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm028 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm028 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +P5 Water Pump Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterPump_P5_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm029 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm029 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +P1 Water Pump Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterPump_P1_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm030 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm030 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +P2 Syrup Pump Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrupPump_P2_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm031 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm031 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +P3 Product Pump Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProductPump_P3_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm032 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm032 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +P4 Vacuum Pump Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gVacuumPump_P4_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm033 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm033 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +P5 Rinse Tank Pump Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gRinseTankPump_P5_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm034 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm034 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Water Flowmeter Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterVFM_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm035 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm035 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Syrup Flowmeter Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrupMFM_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm036 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm036 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +CarboCO2 Flowmeter Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCO2MFM_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm037 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm037 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Water Modulating Valve Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterValvePos_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm038 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm038 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Syrup Modulating Valve Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrupValvePos_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm039 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm039 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +CO2 Modulating Valve Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboCO2ValvePos_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm040 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm040 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Product Tank Pressure Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankPressure_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm041 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm041 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Blend Error High Syrup Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendErrorHighSyr_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm042 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm042 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Blend Error Low Syrup Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendErrorLowSyr_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm043 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm043 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Carbo CO2 Error High Co2 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboCO2Error_LowCO2_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm044 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm044 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Carbo CO2 Error Low Co2 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboCO2Error_HighCO2_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm045 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm045 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Vacuum TimeOut Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gVacuumTimeOut_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm046 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm046 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Local CIP PROGRAM Transfer TIME Out Elapsed +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPTransferProgTimeOut_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm047 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm047 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCIPRecircFlowMissing_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm048 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm048 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Master FC3102 Node 1 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gFC3102_Node1_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm050 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm050 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Slave ET200 Node 10 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gET200_Node10_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm051 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm051 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Slave Promag53 Water FM Node 20 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gWater_VFM_Node20_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm052 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm052 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Slave Promass63 Syrup FM Node 21 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrup_MFM_Node21_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm053 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm053 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Slave Promass63 CO2 FM Node 22 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboCO2_MFM_Node22_DP_Error +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm054 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm054 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Profibus Slave Product Pump Frequency Converter Node 4 Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProduct_VFC_Node4_DP_Error +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm055 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm055 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +UPS Battery NOT ready - DOESN'T STOP THE MACHINE +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_UPS_Siemens +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_BatteryNotReady +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm057 +_NETWORK + +_COMMENT +Profibus Adapter mPDS Error Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gPAmPDS_Error_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm058 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm058 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +mPDS2000_Error_Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gmPDS2000_Error_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm059 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm059 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Inlet Air Low Pressure Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gAirLowPress_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm060 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm060 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Inlet CO2 Low Pressure Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCO2LowPress_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gLineCO2LowPressure +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm061 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm061 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Deaireator Water MInimum Level +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairTankLowLvl_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm062 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm062 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Syrup Tank Minimum Level +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrTankLowLvl_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm063 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm063 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Syrup Room Pump Fault +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRoomPump_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm064 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm064 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT +Syrup Brix Out OF Spec Alarm +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrBrixOutSpec_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm065 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm065 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInAmmoniaLowPressure +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm066 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm066 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterTempTooHigh +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mWaterHighTempONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm067 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm067 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTempTooHigh +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdHighTempONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm068 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm068 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRoomWaterPump_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm069 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm069 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrupDensityOutSpec_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm070 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm070 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gAmmoniaCompressor_Fault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm072 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm072 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gUVLampHighTemperature +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm075 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm075 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInUVLampAlarm +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm076 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm076 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm090 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm090 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gManualWaterDrainValve +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm120 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm120 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gManualSyrupDrainValve +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm121 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm121 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrupLineNotSelected +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm122 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm122 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInManifoldNotReadyForProd +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm130 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm130 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInManifoldNotReadyForCIP +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Alarm131 +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_Alarm131 +_OUTPUT +_POSITIV +_SET +gBlenderAlarm +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_Reset_Horn_Btn +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_POSITIV +_LD_CONTACT +mAlarmHornReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mAlarmHornReset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_POSITIV +_LD_CONTACT +mAlarmHornReset +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAlarmHornActive +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +mAlarmHornReset +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gAlarmHorn +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +DI_Reset_Horn_Btn +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_POSITIV +_LD_CONTACT +mWarningHornReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWarningHornReset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_POSITIV +_LD_CONTACT +mWarningHornReset +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mWarningHornActive +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +mWarningHornReset +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWarningHorn + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/SELCHECKBRIXSOURCE.EXP b/backend/script_groups/TwinCat/.example/SELCHECKBRIXSOURCE.EXP new file mode 100644 index 0000000..299de04 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SELCHECKBRIXSOURCE.EXP @@ -0,0 +1,964 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM SelCheckBrixSource +VAR + m_mPDS1000Selector : BOOL ; + mBrix_mPDS1000Selector : BOOL ; + mDens_mPDS1000Selector : BOOL ; + mSyrDensDelayAlrm : TON ; + mSyrBxDelayAlrm : TON ; + mSyrBrixOutSpec : BOOL ; + mSyrBrixSlopeFB : MSE_Slope ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 18 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gH_Blender_OPT_SyrBrixMeter +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_mPDS1000_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +m_mPDS1000Selector +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +m_mPDS1000Selector +_OPERAND +_EXPRESSION +_POSITIV +gMFM_TemperatureSyrup1 +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000SyrTemp +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMeterSyrTemp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +m_mPDS1000Selector +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Brix +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000SyrBrix +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMeterSyrBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrBrix +_OPERAND +_EXPRESSION +_POSITIV +100 +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMeterSyrBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gWorkshopTest +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrBrix +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMeterSyrBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +m_mPDS1000Selector +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Density +_OPERAND +_EXPRESSION +_POSITIV +gmPDS1000SyrDens +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMeterSyrDens +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gWorkshopTest +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrDens +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SyrDens +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMeterSyrDens +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0.8 +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrDens +_OPERAND +_EXPRESSION +_POSITIV +1.9 +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMeterSyrDens +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrBrix +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPV_SyrBrixOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gWorkShopTest +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrDens +_OPERATOR +_BOX_EXPR : 2 +_FUNCTION +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gH_SyrupTemperature +_EXPRESSION +_POSITIV +WaterDensity +_OPERAND +_EXPRESSION +_POSITIV +gGoodSyrupDensOffset +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +GT +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_SwitchOff_DensityOk +_OPERAND +_EXPRESSION +_NEGATIV +gSugarBeverage +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SyrDens +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPV_SyrDensOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrDensDelayAlrm +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 4 +_OPERAND +_EXPRESSION +_NEGATIV +gPV_SyrDensOk +_OPERAND +_EXPRESSION +_NEGATIV +gSugarBeverage +_OPERAND +_EXPRESSION +_NEGATIV +gSyrRunOut_Done +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#4s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupDensityOutSpec_Fault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gActualRecipe_Syrup_Brix_Fact +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrAutoCorr_Latch +_OPERAND +_EXPRESSION +_POSITIV +gPV_SyrBrixOk +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrRunOut_Latch +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SyrBrixMeter +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrAutoCorr_Latch +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_SyrBrixMeter +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdRunSyrFact +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_EXPRESSION +_POSITIV +MUL +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrBrix +_EXPRESSION +_POSITIV +MUL +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdRunSyrMFMFact +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_EXPRESSION +_POSITIV +MUL +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Brix +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gActualSyrupBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +gActualSyrupBrix +_OPERAND +_EXPRESSION +_POSITIV +100 +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gActualSyrupBrix +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrAutoCorr_Latch +_OPERAND +_EXPRESSION +_POSITIV +gFirstProd_Latch +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +gPV_SyrDensOk +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SyrDens +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrDens +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gActualSyrupDens +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 5 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrBrix +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +ABS +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_MaxDeltaBrix +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +gBlenderStableFlow +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_Simulation +_OPERAND +_EXPRESSION +_NEGATIV +gSyrAutoCorr_Running +_OPERAND +_EXPRESSION +_POSITIV +gSugarBeverage +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrBrixOutSpec +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mSyrBrixOutSpec +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mSyrBxDelayAlrm +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#4s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrBrixOutSpec_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrBrixSlopeFB +_BOX_EXPR : 4 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Brix +_OPERAND +_EXPRESSION +_POSITIV +8 +_OPERAND +_EXPRESSION +_POSITIV +gTask02CycleTime +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +MSE_Slope +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupMFMBrixSlope +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/SIGNALS_INTEFACE.EXP b/backend/script_groups/TwinCat/.example/SIGNALS_INTEFACE.EXP new file mode 100644 index 0000000..e90a472 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SIGNALS_INTEFACE.EXP @@ -0,0 +1,29 @@ +(* @GLOBAL_VARIABLE_LIST := Signals_Inteface *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL + gFillerSendData : FillerSendStruct ; + gFillerReceiveData : FillerReceiveStruct ; + gFillerSendDataArr : ARRAY[0..9] OF BYTE ; + gFillerReceiveDataArr : ARRAY[0..9] OF BYTE ; + gFillerReadDB : STRING := 'DB71,B60' ; (* From Filler Read DB *) + gFillerWriteDB : STRING := 'DB71,B70' ; (* To Filler Write DB *) + + gBlendFillSendData : BlendFillSendStruct ; + gBlendFillReceiveData : BlendFillRecStruct ; + gBlendFillSendDataArr : ARRAY[0..39] OF BYTE ; + gBlendFillReceiveDataArr : ARRAY[0..39] OF BYTE ; + gBlendFillReadDB : STRING := 'DB79,B10' ; (* From Filler Read DB *) + gBlendFillWriteDB : STRING := 'DB79,B50' ; (* To Filler Write DB *) + + gCIPSendData AT %MW6000 : CIPSendStruct ; + gCIPReceiveData : CIPReceiveStruct ; +END_VAR + +(* @OBJECT_END := Signals_Inteface *) +(* @CONNECTIONS := Signals_Inteface +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/SIGNAL_GEN.EXP b/backend/script_groups/TwinCat/.example/SIGNAL_GEN.EXP new file mode 100644 index 0000000..499cfcc --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SIGNAL_GEN.EXP @@ -0,0 +1,26 @@ + +(* @PATH := '\/TASK0_VOID' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Signal_Gen +VAR + mRamp : SlewLimit ; + mRampOut : REAL ; +END_VAR + +(* @END_DECLARATION := '0' *) +gTask0Cycle_Time := UDINT_TO_REAL (gSystem_Task_Info [1].cycleTime) / 10000000; + +IF gTime_sec<>0 THEN + Omegat := 2 * gP_Greek * gTime_sec * 5 / 60 ; +END_IF + +mRamp(i_InValue:= 0.4 * gBlenderNomSpeed * BOOL_TO_INT (gClock_120s),i_SlewMax:=(0.4 * gBlenderNomSpeed / 10) ,i_Cycle:=gTask0Cycle_Time, out:=mRampOut ) ; +Ramp_Sgn := mRampOut ; + +IF gFirstProd_Done AND NOT gBlenderAlarm AND gInFillerProductReq THEN + gFillerProductFlow := gBlenderNomSpeed * 0.55 + Ramp_Sgn ; +ELSE + gFillerProductFlow := 0 ; +END_IF + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/SINUSOIDAL_SIGNAL.EXP b/backend/script_groups/TwinCat/.example/SINUSOIDAL_SIGNAL.EXP new file mode 100644 index 0000000..9d3ecc5 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SINUSOIDAL_SIGNAL.EXP @@ -0,0 +1,16 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION Sinusoidal_Signal : REAL +VAR_INPUT + i_Amplitude : UINT ; + i_Frequency : REAL ; +END_VAR +VAR +END_VAR + +(* @END_DECLARATION := '0' *) +IF gTime_sec<>0 THEN + Sinusoidal_Signal := i_Amplitude * (1 - SIN (2 * gP_Greek * i_Frequency * gTime_sec / 60) ); +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/SLEWLIMIT.EXP b/backend/script_groups/TwinCat/.example/SLEWLIMIT.EXP new file mode 100644 index 0000000..a46bee6 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SLEWLIMIT.EXP @@ -0,0 +1,37 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK SlewLimit +VAR_INPUT + i_InValue : REAL ; (* Real Input Value To Smooth *) + i_SlewMax : REAL ; (* Maximum Slew Rate Accepted *) + i_Cycle : REAL ; (* Cycle Time *) +END_VAR +VAR_IN_OUT + out : REAL ; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +VAR + mStep : REAL ; +END_VAR +(* @END_DECLARATION := '0' *) +mStep := i_SlewMax * i_Cycle ; + +IF i_InValue >= out THEN + IF (i_InValue - out) > mStep THEN + out := out + mStep ; + ELSE + out := i_InValue ; + END_IF +ELSE + IF (out - i_InValue) > mStep THEN + out := out - mStep ; + ELSE + out := i_InValue ; + END_IF +END_IF + + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/SLIM_BLOCK.EXP b/backend/script_groups/TwinCat/.example/SLIM_BLOCK.EXP new file mode 100644 index 0000000..46e1df1 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SLIM_BLOCK.EXP @@ -0,0 +1,1990 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM SLIM_Block +VAR + mEnableSLIM_DB_Process : BOOL ; + + mDoFirstWrite : BOOL ; + mDoFirstWriteONS : R_TRIG ; + mDoSecondWrite : BOOL ; + mDoSecondWriteONS : F_TRIG ; + mEnableWriteWord : BOOL ; + mEnableWriteWordONS : F_TRIG ; + mEnableWriteWordResetONS : R_TRIG ; + mCleanAfterAlarmReset : BOOL ; + mMoveArrayResult : BOOL ; + mCleanArrayResult : BOOL ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 30 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +SLIM_Block.Write_SlimData +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 9 +_LD_CONTACT +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_BuildUp +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Operator +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Supplies +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_External +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Starvation2 +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_BuildUp2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Starvation +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 9 +_LD_CONTACT +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_Starvation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Operator +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Supplies +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_External +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Starvation2 +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_BuildUp2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_BuildUp +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 9 +_ENABLED +_FUNCTION +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_OperatorAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +OR_ArrayBool +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Starvation +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_BuildUp +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Fault +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Supplies +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_External +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Starvation2 +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_BuildUp2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Operator +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 9 +_ENABLED +_FUNCTION +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_SuppliesAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +OR_ArrayBool +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Starvation +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_BuildUp +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Operator +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Fault +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_External +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Starvation2 +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_BuildUp2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Supplies +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 9 +_ENABLED +_FUNCTION +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_ExternalAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +OR_ArrayBool +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Starvation +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_BuildUp +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Operator +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Fault +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Supplies +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Starvation2 +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_BuildUp2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_External +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 9 +_ENABLED +_FUNCTION +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_FaultAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +191 +_EXPRESSION +_POSITIV +OR_ArrayBool +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Starvation +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_BuildUp +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Operator +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Supplies +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_External +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_Starvation2 +_OPERAND +_EXPRESSION +_NEGATIV +gSLIM3_BuildUp2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Fault +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 9 +_LD_CONTACT +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_Starvation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_BuildUp +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Operator +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Supplies +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_External +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_BuildUp2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Starvation2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 9 +_LD_CONTACT +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_Starvation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_BuildUp +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Operator +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Supplies +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_External +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Starvation2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_BuildUp2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 9 +_LD_CONTACT +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_Starvation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_BuildUp +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Operator +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Supplies +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_External +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Starvation2 +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_BuildUp2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Production +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIMDisableAlarmRoutine +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mEnableSLIM_DB_Process +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_PLCDataAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIMDisableAlarmRoutine +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDoSecondWriteONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDoSecondWrite +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 8 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Starvation +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_BuildUp +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Operator +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Fault +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Supplies +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_External +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Starvation2 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_BuildUp2 +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +mEnableWriteWord +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDoFirstWriteONS +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mEnableWriteWord +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDoFirstWrite +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Slim New State +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mDoSecondWrite +_EXPRESSION +_POSITIV +_LD_CONTACT +mDoFirstWrite +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 9 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Starvation +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Starvation +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_BuildUp +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_BuildUp +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Operator +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Operator +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Supplies +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Supplies +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_External +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_External +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Fault +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Fault +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Starvation2 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Starvation2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_BuildUp2 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_BuildUp2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Production +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Production +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Slim Operator Alarms +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_Operator +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mDoSecondWrite +_EXPRESSION +_POSITIV +_LD_CONTACT +mDoFirstWrite +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_OperatorAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_OperatorAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +MoveArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMoveArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Slim Fault Alarms +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_Fault +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mDoSecondWrite +_EXPRESSION +_POSITIV +_LD_CONTACT +mDoFirstWrite +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_FaultAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_FaultAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +191 +_EXPRESSION +_POSITIV +MoveArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMoveArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Slim Supplies Alarms +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_Supplies +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mDoSecondWrite +_EXPRESSION +_POSITIV +_LD_CONTACT +mDoFirstWrite +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_SuppliesAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_SuppliesAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +MoveArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMoveArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Slim External Alarms +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIM3_External +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mDoSecondWrite +_EXPRESSION +_POSITIV +_LD_CONTACT +mDoFirstWrite +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_ExternalAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_ExternalAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +MoveArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMoveArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Slim Messages an Info Alarms +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Messages[0] +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_Messages[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +MoveArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMoveArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mDoSecondWrite +_OPERAND +_EXPRESSION +_POSITIV +mDoFirstWrite +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +mDoFirstWrite +_OUTPUT +_POSITIV +_NO_SET +mDoSecondWrite +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mEnableWriteWordONS +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mEnableWriteWord +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCleanAfterAlarmReset +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_POSITIV +_LD_CONTACT +mCleanAfterAlarmReset +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mEnableWriteWordResetONS +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Production +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +mEnableWriteWord +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_NEGATIV +_LD_CONTACT +mCleanAfterAlarmReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +FALSE +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 9 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Starvation +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_BuildUp +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Operator +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Supplies +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_External +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Fault +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Starvation2 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_BuildUp2 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Production +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_OperatorAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +CleanBoolArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCleanArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSLIM3_Production +_EXPRESSION +_POSITIV +_LD_CONTACT +gSLIMDisableAlarmRoutine +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +mCleanAfterAlarmReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSLIM3_Latch_Production +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Clean Fault Alarms from Slim Temp variables +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_NEGATIV +_LD_CONTACT +mCleanAfterAlarmReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_FaultAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +191 +_EXPRESSION +_POSITIV +CleanBoolArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCleanArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Clean Supplies Alarms from Slim Temp variables +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_NEGATIV +_LD_CONTACT +mCleanAfterAlarmReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_SuppliesAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +CleanBoolArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCleanArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Clean External Alarms from Slim Temp variables +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_NEGATIV +_LD_CONTACT +mCleanAfterAlarmReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_ExternalAlarms[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +CleanBoolArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mCleanArrayResult +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +MOVE Messages Into Slim Temp variables +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mEnableSLIM_DB_Process +_EXPRESSION +_NEGATIV +_LD_CONTACT +mCleanAfterAlarmReset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Messages[0] +_EXPRESSION +_POSITIV +ADR +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSLIM3_Latch_Messages[0] +_EXPRESSION +_POSITIV +ADR +_OPERAND +_EXPRESSION +_POSITIV +63 +_EXPRESSION +_POSITIV +MoveArray +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mMoveArrayResult +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION Write_SlimData: +gSLIM3_ActualRecipeName := gH_A_Recipe_Name; +gSLIM3_BlenderStateValue := gH_BlenderStateNum; + + +(*********************************** Operator Alarm ****************************************) +gSLIM3_OperatorAlarms[0] := gBlenderCIPMode OR (gSLIM3_OperatorAlarms[0] AND NOT gBlenderRun_Running) ; +gSLIM3_OperatorAlarms[1] := gBlenderRinseMode OR (gSLIM3_OperatorAlarms[1] AND NOT gBlenderRun_Running) ; +gSLIM3_OperatorAlarms[2] := gBlenderOperatorStop OR (gSLIM3_OperatorAlarms[2] AND NOT gBlenderRun_Running); +gSLIM3_OperatorAlarms[3] := gEmergencyPressed OR (gSLIM3_OperatorAlarms[3] AND NOT gBlenderRun_Running); +gSLIM3_OperatorAlarms[4] := gH_Alarm002 OR (gSLIM3_OperatorAlarms[4] AND NOT gBlenderRun_Running) ; +gSLIM3_OperatorAlarms[5] := gManualSyrupDrainValve OR (gSLIM3_OperatorAlarms[5] AND NOT gBlenderRun_Running) ; +gSLIM3_OperatorAlarms[6] := gManualWaterDrainValve OR (gSLIM3_OperatorAlarms[6] AND NOT gBlenderRun_Running) ; + +(*********************************** Fault Alarm ****************************************) +gSLIM3_FaultAlarms[0] := gH_Alarm030 OR (gSLIM3_FaultAlarms[0] AND NOT gBlenderRun_Running) ; +gSLIM3_FaultAlarms[1] := gH_Alarm031 OR (gSLIM3_FaultAlarms[1] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[2] := gH_Alarm032 OR (gSLIM3_FaultAlarms[2] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[3] := gH_Alarm033 OR (gSLIM3_FaultAlarms[3] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[4] := gH_Alarm035 OR (gSLIM3_FaultAlarms[4] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[5] := gH_Alarm036 OR (gSLIM3_FaultAlarms[5] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[6] := gH_Alarm037 OR (gSLIM3_FaultAlarms[6] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[7] := gH_Alarm038 OR (gSLIM3_FaultAlarms[7] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[8] := gH_Alarm039 OR (gSLIM3_FaultAlarms[8] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[9] := gH_Alarm040 OR (gSLIM3_FaultAlarms[9] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[10] := gH_Alarm041 OR (gSLIM3_FaultAlarms[10] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[11] := gH_Alarm042 OR (gSLIM3_FaultAlarms[11] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[12] := gH_Alarm043 OR (gSLIM3_FaultAlarms[12] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[13] := gH_Alarm044 OR (gSLIM3_FaultAlarms[13] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[14] := gH_Alarm045 OR (gSLIM3_FaultAlarms[14] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[15] := gH_Alarm046 OR (gSLIM3_FaultAlarms[15] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[16] := gH_Alarm047 OR (gSLIM3_FaultAlarms[16] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[17] := gH_Alarm050 OR (gSLIM3_FaultAlarms[17] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[18] := gH_Alarm051 OR (gSLIM3_FaultAlarms[18] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[19] := gH_Alarm052 OR (gSLIM3_FaultAlarms[19] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[20] := gH_Alarm053 OR (gSLIM3_FaultAlarms[20] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[21] := gH_Alarm054 OR (gSLIM3_FaultAlarms[21] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[22] := gH_Alarm055 OR (gSLIM3_FaultAlarms[22] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[23] := gH_Alarm058 OR (gSLIM3_FaultAlarms[23] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[24] := gH_Alarm059 OR (gSLIM3_FaultAlarms[24] AND NOT gBlenderRun_Running); + +gSLIM3_FaultAlarms[29] := gH_Alarm003 OR (gSLIM3_FaultAlarms[29] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[30] := gH_Alarm020 OR (gSLIM3_FaultAlarms[30] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[31] := gH_Alarm021 OR (gSLIM3_FaultAlarms[31] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[32] := gH_Alarm057 OR (gSLIM3_FaultAlarms[32] AND NOT gBlenderRun_Running); + +gSLIM3_FaultAlarms[33] := gH_Alarm007 OR (gSLIM3_FaultAlarms[33] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[34] := gH_Alarm018 OR (gSLIM3_FaultAlarms[34] AND NOT gBlenderRun_Running); +gSLIM3_FaultAlarms[35] := gH_Alarm019 OR (gSLIM3_FaultAlarms[35] AND NOT gBlenderRun_Running); + +(*********************************** Supplies Alarm ****************************************) +gSLIM3_SuppliesAlarms[0] := gH_Alarm060 OR (gSLIM3_SuppliesAlarms[0] AND NOT gBlenderRun_Running) ; +gSLIM3_SuppliesAlarms[1] := gH_Alarm061 OR (gSLIM3_SuppliesAlarms[1] AND NOT gBlenderRun_Running) ; +gSLIM3_SuppliesAlarms[2] := gH_Alarm062 OR (gSLIM3_SuppliesAlarms[2] AND NOT gBlenderRun_Running) ; +gSLIM3_SuppliesAlarms[3] := gH_Alarm063 OR (gSLIM3_SuppliesAlarms[3] AND NOT gBlenderRun_Running) ; +gSLIM3_SuppliesAlarms[4] := gH_Alarm064 OR (gSLIM3_SuppliesAlarms[4] AND NOT gBlenderRun_Running) ; +gSLIM3_SuppliesAlarms[5] := gH_Alarm065 OR (gSLIM3_SuppliesAlarms[5] AND NOT gBlenderRun_Running) ; + +(*********************************** External Alarm ****************************************) +gSLIM3_ExternalAlarms[0] := gInFillerCIPRequest AND gBlenderCIPMode OR (gSLIM3_ExternalAlarms[0] AND NOT gBlenderRun_Running) ; +gSLIM3_ExternalAlarms[1] := gBlenderRun_Wait AND gBlenderProdMode AND gAlwaysOff ; +gSLIM3_ExternalAlarms[2] := gSyrRoomPump_Fault OR (gSLIM3_ExternalAlarms[0] AND NOT gBlenderRun_Running) ; + +(*************************************** Messages ****************************************) +gSLIM3_Messages[0] := gSyrAutoCorr_Running ; +gSLIM3_Messages[1] := gSyrRunOut_Running ; +gSLIM3_Messages[2] := gFirstProd_Running ; +gSLIM3_Messages[3] := gProdBrixTrack_Running ; +gSLIM3_Messages[4] := FALSE ; +gSLIM3_Messages[5] := gWaterFlowTooLow ; +gSLIM3_Messages[6] := gWaterSpeedTooLow ; +gSLIM3_Messages[7] := gProdBrixTrack_Latch AND gProdBrixTrack_Wait ; +gSLIM3_Messages[8] := FALSE ; +gSLIM3_Messages[9] := gH_Message027 ; +gSLIM3_Messages[10] := gH_Message028 ; +gSLIM3_Messages[11] := gH_Message029 ; +gSLIM3_Messages[12] := NOT gOut_FillerProductAvailable ; + +gSLIM3_Messages[13] := gH_Message061 ; +gSLIM3_Messages[14] := gH_Status062 ; +gSLIM3_Messages[15] := gH_Status063 ; +gSLIM3_Messages[16] := gH_Status064 ; + +(*************************************** Analog Values ****************************************) +gSLIM3_AnalogValues[0] := REAL_TO_DINT(gH_WaterFlowRate * 10) ; +gSLIM3_AnalogValues[1] := REAL_TO_DINT(gH_WaterDeairTemperature * 10) ; +gSLIM3_AnalogValues[2] := REAL_TO_DINT(gH_SyrupFlowRate * 10) ; +gSLIM3_AnalogValues[3] := REAL_TO_DINT(gH_SyrupTemperature * 10) ; +gSLIM3_AnalogValues[4] := REAL_TO_DINT(gH_SyrupDensity * 1000) ; +gSLIM3_AnalogValues[5] := REAL_TO_DINT(gH_SyrupBrix * 100) ; +gSLIM3_AnalogValues[6] := REAL_TO_DINT(gH_CO2FlowRate * 10) ; +gSLIM3_AnalogValues[7] := REAL_TO_DINT(gH_CO2Temperature * 10) ; +gSLIM3_AnalogValues[8] := REAL_TO_DINT(gH_CO2Density * 1000) ; +gSLIM3_AnalogValues[9] := REAL_TO_DINT(gH_ProductTankPressurePV * 10) ; +gSLIM3_AnalogValues[10] := REAL_TO_DINT(gH_ProductTankLevel) ; +gSLIM3_AnalogValues[11] := REAL_TO_DINT(gH_ProductTemperature * 10) ; +gSLIM3_AnalogValues[12] := REAL_TO_DINT(gProductBrix * 100) ; +gSLIM3_AnalogValues[13] := REAL_TO_DINT(gProductCO2 * 100) ; +gSLIM3_AnalogValues[14] := REAL_TO_DINT(gH_ActualRatio * 100) ; +gSLIM3_AnalogValues[15] := REAL_TO_DINT(gActual_Prod_Flow) ; + +(*************************************** Totalizers ****************************************) +gSLIM3_Totalizers[0] := gSLIM_Sec ; +gSLIM3_Totalizers[1] := REAL_TO_DINT(gH_WaterTotalizer) ; +gSLIM3_Totalizers[2] := REAL_TO_DINT(gH_SyrupTotalizerKg) ; +gSLIM3_Totalizers[3] := REAL_TO_DINT(gH_SyrupTotalizerLt) ; +gSLIM3_Totalizers[4] := REAL_TO_DINT(gH_CO2Totalizer) ; +gSLIM3_Totalizers[5] := REAL_TO_DINT(gH_ProductTotalizer) ; +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/SLIM_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/SLIM_VARIABLES.EXP new file mode 100644 index 0000000..3a95d6d --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SLIM_VARIABLES.EXP @@ -0,0 +1,71 @@ +(* @GLOBAL_VARIABLE_LIST := SLIM_Variables *) +(* @PATH := '\/SLIM_Data' *) +(* @SYMFILEFLAGS := '8192' *) +VAR_GLOBAL + gSLIMResetCounter : BOOL ; + gSLIMResetHour : BOOL ; + gSLIMDisableOperatingBtn : BOOL ; + gSLIMDisableBatchBtn : BOOL ; + gSLIMDisableAlarmRoutine : BOOL ; + + gSLIMOperating : BOOL ; + gSLIMBatch : BOOL ; + + gSLIM3_Starvation : BOOL ; + gSLIM3_BuildUp : BOOL ; + gSLIM3_Operator : BOOL ; + gSLIM3_Supplies : BOOL ; + gSLIM3_External : BOOL ; + gSLIM3_Fault : BOOL ; + gSLIM3_Starvation2 : BOOL ; + gSLIM3_BuildUp2 : BOOL ; + gSLIM3_Production : BOOL ; + + gSLIM3_Latch_Starvation : BOOL ; + gSLIM3_Latch_BuildUp : BOOL ; + gSLIM3_Latch_Operator : BOOL ; + gSLIM3_Latch_Supplies : BOOL ; + gSLIM3_Latch_External : BOOL ; + gSLIM3_Latch_Fault : BOOL ; + gSLIM3_Latch_Starvation2 : BOOL ; + gSLIM3_Latch_BuildUp2 : BOOL ; + gSLIM3_Latch_Production : BOOL ; + + + gSLIMBit_0_Operating : BOOL ; + gSLIMBit_1_Operating : BOOL ; + gSLIMBit_0_Batch : BOOL ; + gSLIMBit_1_Batch : BOOL ; + +(**********************************************************************************************************************) +(* DATA FROM/TO SLIM *) +(**********************************************************************************************************************) + + gSLIM3_BlenderStateValue : INT ; + gSLIM3_ActualRecipeName : STRING(30) ; + + gSLIM3_OperatorAlarms : ARRAY [0..63] OF BOOL ; + gSLIM3_FaultAlarms : ARRAY [0..191] OF BOOL ; + gSLIM3_SuppliesAlarms : ARRAY [0..63] OF BOOL ; + gSLIM3_ExternalAlarms : ARRAY [0..63] OF BOOL ; + gSLIM3_Messages : ARRAY [0..63] OF BOOL ; + + gSLIM3_Latch_OperatorAlarms : ARRAY [0..63] OF BOOL ; + gSLIM3_Latch_FaultAlarms : ARRAY [0..191] OF BOOL ; + gSLIM3_Latch_SuppliesAlarms : ARRAY [0..63] OF BOOL ; + gSLIM3_Latch_ExternalAlarms : ARRAY [0..63] OF BOOL ; + gSLIM3_Latch_Messages : ARRAY [0..63] OF BOOL ; + + gSLIM3_AnalogValues : ARRAY [0..31] OF DWORD ; + gSLIM3_Totalizers : ARRAY [0..31] OF DWORD ; + +(* gSLIM3_DB : ARRAY [0..74] OF DWORD ;*) +END_VAR + +(* @OBJECT_END := SLIM_Variables *) +(* @CONNECTIONS := SLIM_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/SOFTNET_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/SOFTNET_VARIABLES.EXP new file mode 100644 index 0000000..60b5c70 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SOFTNET_VARIABLES.EXP @@ -0,0 +1,28 @@ +(* @GLOBAL_VARIABLE_LIST := SoftNet_Variables *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL CONSTANT + + uiS7ADS_VARNAMESIZE: UINT := 22; + uiS7ADS_PORTNO: UINT := 19000; + + ADS_IDXGRP_GETVARHANDLEBYNAME: UDINT := 16#F003; + ADS_IDXGRP_READVARBYHANDLE: UDINT := 16#F005; + ADS_IDXGRP_RELEASEVARHANDLE: UDINT := 16#F006; + + ADS_IDXGRP_RESETDIAGNOSEDATA: UDINT := 16#FF00; + ADS_IDXGRP_READDIAGNOSEDATA: UDINT := 16#FF01; + + ADS_IDXOFS_RESETDIAGNOSEDATA: UDINT := 16#0000; + ADS_IDXOFS_READDIAGNOSECOUNTER: UDINT := 16#0000; + ADS_IDXOFS_READDIAGNOSETIMER: UDINT := 16#1000; + +END_VAR + +(* @OBJECT_END := SoftNet_Variables *) +(* @CONNECTIONS := SoftNet_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/SPEEDADJUST.EXP b/backend/script_groups/TwinCat/.example/SPEEDADJUST.EXP new file mode 100644 index 0000000..483da8e --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SPEEDADJUST.EXP @@ -0,0 +1,29 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION SpeedAdjust : REAL +VAR_INPUT + i_PrdTnkLvl : REAL ; + i_TrgTnkLvl : REAL ; + i_IstLvl : REAL ; + i_SpeedPerc : REAL ; +END_VAR +VAR + a : REAL ; (* Angolar Coefficient *) + b : REAL ; (* Constant *) +END_VAR +(* @END_DECLARATION := '0' *) +(* The following function calculates the percentage speed correction to get Product Tank target Level +the equation used is: y = a * PrdTankLvl + b ; that is a = - SpeedPerc / IstLvl; and b = 1 - TrgTnkLvl * a +the function yelds 1.0 at 50% of level; (1 - SpeedPerc) at 80% level; the maximum is (1 + SpeedPerc) *) + +i_SpeedPerc := i_SpeedPerc / 100.0 ; +IF i_IstLvl>0 THEN + a := -i_SpeedPerc / i_IstLvl ; + b := 1 - (a * i_TrgTnkLvl) ; + SpeedAdjust := a * i_PrdTnkLvl + b ; + SpeedAdjust := LIMIT(1 - i_SpeedPerc,SpeedAdjust ,1 + i_SpeedPerc) ; +ELSE + SpeedAdjust := 0.0 ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/SP_AND_P_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/SP_AND_P_VARIABLES.EXP new file mode 100644 index 0000000..93cd37f --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SP_AND_P_VARIABLES.EXP @@ -0,0 +1,218 @@ +(* @GLOBAL_VARIABLE_LIST := Sp_and_P_Variables *) +(* @PATH := '\/Blending_Variables' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL +(************************************************************************************) +(* SUSTAIN P VARIABLES *) +(************************************************************************************) + gSp_EV01 : BOOL ; (* *) + gSp_EV01_1 : BOOL ; (* *) + gSp_EV02 : BOOL ; (* *) + gSp_EV02_1 : BOOL ; (* *) + gSp_EV03 : BOOL ; (* *) + gSp_EV04 : BOOL ; (* *) + gSp_EV69 : BOOL ; (* *) + gSp_EV49 : BOOL ; (* *) + gSp_EV50 : BOOL ; (* *) + gSp_EV05 : BOOL ; (* *) + gSp_EV06 : BOOL ; (* *) + gSp_EV07 : BOOL ; (* *) + gSp_EV08 : BOOL ; (* *) + gSp_EV11 : BOOL ; (* *) + gSp_EV12 : BOOL ; (* *) + gSp_EV13 : BOOL ; (* *) + gSp_EV14 : BOOL ; (* *) + gSp_EV14_1 : BOOL ; (* *) + gSp_EV15 : BOOL ; (* *) + gSp_EV16 : BOOL ; (* *) + gSp_EV16_1 : BOOL ; (* *) + gSp_EV17 : BOOL ; (* *) + gSp_EV17_1 : BOOL ; (* *) + gSp_EV18 : BOOL ; (* *) + gSp_EV21 : BOOL ; (* *) + gSp_EV22 : BOOL ; (* *) + gSp_EV23 : BOOL ; (* *) + gSp_EV23_1 : BOOL ; (* *) + gSp_EV24 : BOOL ; (* *) + gSp_EV25 : BOOL ; (* *) + gSp_EV26 : BOOL ; (* *) + gSp_EV27 : BOOL ; (* *) + gSp_EV28 : BOOL ; (* *) + gSp_EV31 : BOOL ; (* *) + gSp_EV32 : BOOL ; (* *) + gSp_EV33 : BOOL ; (* *) + gSp_EV34 : BOOL ; (* *) + gSp_EV35 : BOOL ; (* *) + gSp_EV36 : BOOL ; (* *) + gSp_EV37 : BOOL ; (* *) + gSp_EV38 : BOOL ; (* *) + gSp_EV39 : BOOL ; (* *) + gSp_EV40 : BOOL ; (* *) + gSp_EV41 : BOOL ; (* *) + gSp_EV42 : BOOL ; (* *) + gSp_EV43 : BOOL ; (* *) + gSp_EV44 : BOOL ; (* *) + gSp_EV45 : BOOL ; (* *) + gSp_EV46 : BOOL ; (* *) + gSp_EV47 : BOOL ; (* *) + gSp_EV48 : BOOL ; (* *) + gSp_EV51 : BOOL ; (* *) + gSp_EV52 : BOOL ; (* *) + gSp_EV53 : BOOL ; (* *) + gSp_EV54 : BOOL ; (* *) + gSp_EV55 : BOOL ; (* *) + gSp_EV56 : BOOL ; (* *) + gSp_EV57 : BOOL ; (* *) + gSp_EV58 : BOOL ; (* *) + gSp_EV61 : BOOL ; (* *) + gSp_EV62 : BOOL ; (* *) + gSp_EV63 : BOOL ; (* *) + gSp_EV64 : BOOL ; (* *) + gSp_EV65 : BOOL ; (* *) + gSp_EV66 : BOOL ; (* *) + gSp_EV67 : BOOL ; (* *) + gSp_EV68 : BOOL ; (* *) + gSp_EV71 : BOOL ; (* *) + gSp_EV72 : BOOL ; (* *) + gSp_EV73 : BOOL ; (* *) + gSp_EV74 : BOOL ; (* *) + gSp_EV75 : BOOL ; (* *) + gSp_EV76 : BOOL ; (* *) + gSp_EV77 : BOOL ; (* *) + gSp_EV78 : BOOL ; (* *) + gSp_EV79 : BOOL ; (* *) + gSp_EV80 : BOOL ; (* *) + gSp_EV81 : BOOL ; (* *) + gSp_EV83 : BOOL ; (* *) + gSp_EV84 : BOOL ; (* *) + gSp_EV89 : BOOL ; (* *) + gSp_P1 : BOOL ; (* *) + gSp_P2 : BOOL ; (* *) + gSp_P3 : BOOL ; (* *) + gSp_P4 : BOOL ; (* *) + gSp_P5 : BOOL ; (* *) + gSp_SyrRoomPump : BOOL ; (* *) + gSp_BldTankPress_En : BOOL ; (* Enable Buffer Tank Pressure Control *) + gSp_CarboPipe_En : BOOL ; (* Enable To Carbonate Water Pipe During Deair StartUp *) + gSp_PID_Head_Manual : BOOL ; + gSp_PID_Head_Enable : BOOL ; + gSp_FillerProdLoad : BOOL ; + gSp_LimitCO2PressValve : BOOL ; + gSp_CIP_Temp_En : BOOL ; (* Enable Temperature Control PID During CIP *) + gSp_CIP_CO2_Inj : BOOL ; (* Enable CO2 Injection During CIP *) + gSp_CIPRunning : BOOL ; + gSp_CIPDrainRequest : BOOL ; + gSp_CIPHotPhase : BOOL ; + gSp_CIPChangeSanitize : BOOL ; + +(************************************************************************************) +(* P VARIABLES *) +(************************************************************************************) + gP_EV01 : BOOL ; (* *) + gP_EV01_1 : BOOL ; (* *) + gP_EV02 : BOOL ; (* *) + gP_EV02_1 : BOOL ; (* *) + gP_EV03 : BOOL ; (* *) + gP_EV04 : BOOL ; (* *) + gP_EV05 : BOOL ; (* *) + gP_EV06 : BOOL ; (* *) + gP_EV07 : BOOL ; (* *) + gP_EV08 : BOOL ; (* *) + gP_EV11 : BOOL ; (* *) + gP_EV12 : BOOL ; (* *) + gP_EV13 : BOOL ; (* *) + gP_EV14 : BOOL ; (* *) + gP_EV14_1 : BOOL ; (* *) + gP_EV15 : BOOL ; (* *) + gP_EV16 : BOOL ; (* *) + gP_EV16_1 : BOOL ; (* *) + gP_EV17 : BOOL ; (* *) + gP_EV17_1 : BOOL ; (* *) + gP_EV18 : BOOL ; (* *) + gP_EV69 : BOOL ; (* *) + gP_EV49 : BOOL ; (* *) + gP_EV50 : BOOL ; (* *) + gP_EV21 : BOOL ; (* *) + gP_EV22 : BOOL ; (* *) + gP_EV23 : BOOL ; (* *) + gP_EV23_1 : BOOL ; (* *) + gP_EV24 : BOOL ; (* *) + gP_EV25 : BOOL ; (* *) + gP_EV26 : BOOL ; (* *) + gP_EV27 : BOOL ; (* *) + gP_EV28 : BOOL ; (* *) + gP_EV31 : BOOL ; (* *) + gP_EV32 : BOOL ; (* *) + gP_EV33 : BOOL ; (* *) + gP_EV34 : BOOL ; (* *) + gP_EV35 : BOOL ; (* *) + gP_EV36 : BOOL ; (* *) + gP_EV37 : BOOL ; (* *) + gP_EV38 : BOOL ; (* *) + gP_EV39 : BOOL ; (* *) + gP_EV40 : BOOL ; (* *) + gP_EV41 : BOOL ; (* *) + gP_EV42 : BOOL ; (* *) + gP_EV43 : BOOL ; (* *) + gP_EV44 : BOOL ; (* *) + gP_EV45 : BOOL ; (* *) + gP_EV46 : BOOL ; (* *) + gP_EV47 : BOOL ; (* *) + gP_EV48 : BOOL ; (* *) + gP_EV51 : BOOL ; (* *) + gP_EV52 : BOOL ; (* *) + gP_EV53 : BOOL ; (* *) + gP_EV54 : BOOL ; (* *) + gP_EV55 : BOOL ; (* *) + gP_EV56 : BOOL ; (* *) + gP_EV57 : BOOL ; (* *) + gP_EV58 : BOOL ; (* *) + gP_EV61 : BOOL ; (* *) + gP_EV62 : BOOL ; (* *) + gP_EV63 : BOOL ; (* *) + gP_EV64 : BOOL ; (* *) + gP_EV65 : BOOL ; (* *) + gP_EV66 : BOOL ; (* *) + gP_EV67 : BOOL ; (* *) + gP_EV68 : BOOL ; (* *) + gP_EV71 : BOOL ; (* *) + gP_EV72 : BOOL ; (* *) + gP_EV73 : BOOL ; (* *) + gP_EV74 : BOOL ; (* *) + gP_EV75 : BOOL ; (* *) + gP_EV76 : BOOL ; (* *) + gP_EV77 : BOOL ; (* *) + gP_EV78 : BOOL ; (* *) + gP_EV79 : BOOL ; (* *) + gP_EV80 : BOOL ; (* *) + gP_EV81 : BOOL ; (* *) + gP_EV83 : BOOL ; (* *) + gP_EV84 : BOOL ; (* *) + gP_EV89 : BOOL ; (* *) + gP_P1 : BOOL ; (* *) + gP_P2 : BOOL ; (* *) + gP_P3 : BOOL ; (* *) + gP_P4 : BOOL ; (* *) + gP_P5 : BOOL ; (* *) + gP_SyrRoomPump : BOOL ; (* *) + gP_BldTankPress_En : BOOL ; (* *) + gP_CarboPipe_En : BOOL ; (* Enable To Carbonate Water Pipe During Deair StartUp *) + gP_PID_Head_Manual : BOOL ; + gP_PID_Head_Enable : BOOL ; + gP_FillerProdLoad : BOOL ; + gP_LimitCO2PressValve : BOOL ; + gP_CIP_Temp_En : BOOL ; (* Enable Temperature Control PID During CIP *) + gP_CIP_CO2_Inj : BOOL ; + gP_CIPRunning : BOOL ; + gP_CIPDrainRequest : BOOL ; + gP_CIPHotPhase : BOOL ; + gP_CIPChangeSanitize : BOOL ; +END_VAR + +(* @OBJECT_END := Sp_and_P_Variables *) +(* @CONNECTIONS := Sp_and_P_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/STANDARD.LIB_5.6.98 09_39_02.EXP b/backend/script_groups/TwinCat/.example/STANDARD.LIB_5.6.98 09_39_02.EXP new file mode 100644 index 0000000..badfec2 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/STANDARD.LIB_5.6.98 09_39_02.EXP @@ -0,0 +1,27 @@ +LIBRARY +STANDARD.LIB 5.6.98 09:39:02 +(* @LIBRARYSYMFILEINFO := '0' *) +NumOfPOUs: 20 +CONCAT: 0 +CTD: 0 +CTU: 0 +CTUD: 0 +DELETE: 0 +F_TRIG: 0 +FIND: 0 +INSERT: 0 +LEFT: 0 +LEN: 0 +MID: 0 +R_TRIG: 0 +REPLACE: 0 +RIGHT: 0 +RS: 0 +SEMA: 0 +SR: 0 +TOF: 0 +TON: 0 +TP: 0 +NumOfGVLs: 1 +Global Variables 0: 59392 +END_LIBRARY diff --git a/backend/script_groups/TwinCat/.example/STATISTICALANALISYS.EXP b/backend/script_groups/TwinCat/.example/STATISTICALANALISYS.EXP new file mode 100644 index 0000000..41a94a8 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/STATISTICALANALISYS.EXP @@ -0,0 +1,107 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK StatisticalAnalisys +VAR_INPUT + i_Value : REAL ; + i_Cols : UINT ; + i_Rows : UINT ; +END_VAR +VAR_OUTPUT + MeanValue : REAL ; + Variance : REAL ; + Std_Deviation : REAL ; +END_VAR +VAR + mData : ARRAY [1..4, 1..40] OF REAL ; + mMeanValue : ARRAY [1..40] OF REAL ; + mVariance : ARRAY [1..40] OF REAL ; + mDimArray : INT := 40 ; + mDataX : INT := 1 ; + mDataY : INT := 1 ; + mCycle : INT ; + i : INT ; + mTemp : REAL ; + mTemp1 : REAL ; + mTemp2 : REAL ; + mCalcMean : BOOL ; + mHold : BOOL ; + mHold3 : BOOL ; + mHold7 : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +(*IF NOT mHold AND mDataX<=4 AND mDataY<=40 THEN*) +IF i_Cols>mDimArray THEN + i_Cols := mDimArray ; +END_IF +IF i_Rows>4 THEN + i_Rows := 4 ; +ELSIF i_Rows<1THEN + i_Rows := 1 ; +END_IF +IF mDataX<=i_Rows AND mDataY<=i_Cols THEN + mData[mDataX, mDataY] := i_Value ; + mDataX := mDataX + 1 ; +END_IF +IF mDataX>i_Rows THEN + mDataX := 1 ; + mHold := TRUE ; + mCalcMean := TRUE ; +END_IF +IF mDataY>i_Cols THEN + mDataY := 1 ; + mHold := TRUE ; +END_IF + +IF mCalcMean THEN + mCalcMean := FALSE ; + mMeanValue[mDataY] := 0 ; + FOR i:=1 TO i_Rows DO + mMeanValue[mDataY] := mMeanValue[mDataY] + mData[i, mDataY] ; + END_FOR + mMeanValue[mDataY] := mMeanValue[mDataY] / i_Rows ; + MeanValue := 0 ; + FOR i:=1 TO i_Cols DO + MeanValue := MeanValue + mMeanValue[i] ; + END_FOR + MeanValue := MeanValue / i_Cols ; + mVariance[mDataY] := 0 ; + FOR i:=1 TO i_Rows DO + mTemp := mData[i, mDataY] - MeanValue ; + mTemp1 := EXPT(mTemp, 2) ; + mVariance[mDataY] := mVariance[mDataY] + EXPT(mTemp, 2) ; + END_FOR + mVariance[mDataY] := mVariance[mDataY] / i_Rows ; + Variance := 0 ; + FOR i:=1 TO i_Cols DO + Variance := Variance + mVariance[i] ; + END_FOR + Variance := Variance / i_Cols ; + IF Variance>0 THEN + Std_Deviation := SQRT(Variance) ; + END_IF + mDataY := mDataY + 1 ; +END_IF + +IF mHold THEN + mCycle := mCycle + 1 ; +ELSE + mCycle := 0 ; +END_IF + +IF mHold AND NOT mHold3 AND mCycle>=2 THEN + mHold3 := TRUE ; + mHold := FALSE ; +END_IF + +IF mHold AND mHold3 AND mCycle>=6 THEN + mHold7 := TRUE ; + mHold := FALSE ; +END_IF + +IF mHold3 AND mHold7 THEN + mHold3 := FALSE ; + mHold7 := FALSE ; +END_IF + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/SYRBRIX_AUTOCORRECTION.EXP b/backend/script_groups/TwinCat/.example/SYRBRIX_AUTOCORRECTION.EXP new file mode 100644 index 0000000..46cc67c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYRBRIX_AUTOCORRECTION.EXP @@ -0,0 +1,1232 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM SyrBrix_Autocorrection +VAR + mSyrBrix_AutoCorrReqTP : TP ; + mSyrBrix_AutoCorrReqTP1 : TP ; + mAuxONS : R_TRIG ; + mAuxONS1 : R_TRIG ; + mAuxONS2 : R_TRIG ; + m2sONS : BOOL ; + mProdSyrFactAcq : BOOL ; + mLatchONS : BOOL ; + mSyrupFactFlt : LowPassFilter ; + mProdSyrFact : REAL ; + mSyrupMFMFactFlt : LowPassFilter ; + mSyrMFMFact : REAL ; + mZeroTest : BOOL ; + mZeroTest1 : BOOL ; + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 24 +_NETWORK + +_COMMENT +Syrup Autocorrection means that the measured syrup brix AND syrup density from meter, are used instead +OF the one from the recipe, TO calculate the volumetric ratio. +Activated only IF the beverage is sugar based. +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gSugarBeverage +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrAutoCorr_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrBrix_AutoCorrReqTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_CMD_SyrAutoReq +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrAutoCorr_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrAutoCorr_Qualifier +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrAutoCorr_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_SyrBrixMeter +_EXPRESSION +_POSITIV +_LD_CONTACT +gmPDS1000Error +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_SyrBrixMeter +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrupMFM_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrAutoCorr_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrAutoCorr_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrAutoCorr_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrAutoCorr_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrAutoCorr_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS2 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mLatchONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrAutoCorr_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrAutoCorr_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +SyrBrix_Autocorrection.SyrupCorrPerc +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gClock_2s +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mAuxONS1 +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +m2sONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gSyrAutoCorr_Qualifier +_EXPRESSION +_POSITIV +_LD_CONTACT +gPV_SyrBrixOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderEnToRamp +_EXPRESSION +_POSITIV +_LD_CONTACT +m2sONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdSyrFactAcq +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mProdSyrFact +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdRunSyrFact +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mZeroTest +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mSyrMFMFact +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdRunSyrMFMFact +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mZeroTest1 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +This segment calculates the Syrup Factor during production, so when the Surup Run Out starts OR the Autocorrection +is activated, the actual syrup brix doesn't change and so also the actual ratio doesn't. +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mZeroTest +_EXPRESSION +_NEGATIV +_LD_CONTACT +mProdSyrFactAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_SyrBrixMeter +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrAutoCorr_Latch +_OPERAND +_EXPRESSION +_POSITIV +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +OR +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrBrix +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gMeterSyrBrix +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +mProdSyrFact +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProdSyrFact +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +This segment calculates the Syrup Factor during production, so when the Surup Run Out starts OR the Autocorrection +is activated, the actual syrup brix doesn't change and so also the actual ratio doesn't. +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mZeroTest1 +_EXPRESSION +_NEGATIV +_LD_CONTACT +mProdSyrFactAcq +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrAutoCorr_Latch +_OPERAND +_EXPRESSION +_POSITIV +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +OR +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Brix +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Brix +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +mSyrMFMFact +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrMFMFact +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +mZeroTest +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrBrixOutSpec_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gProdRunSyrFact +_OUTPUT +_POSITIV +_NO_SET +mProdSyrFact +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +mZeroTest1 +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrBrixOutSpec_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gProdRunSyrMFMFact +_OUTPUT +_POSITIV +_NO_SET +mSyrMFMFact +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mProdSyrFactAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrupFactFlt +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProdSyrFact +_OPERAND +_EXPRESSION +_POSITIV +12 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdRunSyrFact +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mProdSyrFactAcq +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrupMFMFactFlt +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mSyrMFMFact +_OPERAND +_EXPRESSION +_POSITIV +12 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdRunSyrMFMFact +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrAutoCorr_Request +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProdRunSyrFact +_OPERAND +_EXPRESSION +_POSITIV +gH_A_Recipe_SyrupFactor +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_A_Recipe_SyrupFactor +_OUTPUT +_POSITIV +_NO_SET +gActualRecipe_Syrup_Brix_Fact +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrFactUpdate +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gR_Out_SYR_PID +_OPERAND +_EXPRESSION +_POSITIV +95.0 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMinRatio +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_SyrupBrixCorrection +_OPERAND +_EXPRESSION +_POSITIV +52 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gMaxSyrAutoCorrDone +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +gMinRatio +_OUTPUT +_NEGATIV +_SET +gMaxSyrAutoCorrDone +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrAutoCorr_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrBrixAutoRun +_NETWORK + +_COMMENT +Message Syrup Autocorrection Running TO HMI +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrAutoCorr_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status004 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gMaxSyrAutoCorrDone +_EXPRESSION +_POSITIV +_LD_CONTACT +gMinRatio +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrAutoCorr_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +mLatchONS +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrAutoCorr_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrAutoCorr_Done + +END_PROGRAM +ACTION SyrupCorrPerc: +IF gSyrAutoCorr_Latch AND gActualRecipe_Syrup_Brix_Fact<>0 AND gActualRecipe_Syrup_Brix<>0 THEN + gH_SyrupBrixCorrection := 100.0 - (gActualSyrupBrix / (gActualRecipe_Syrup_Brix * gActualRecipe_Syrup_Brix_Fact) * 100.0) ; +ELSE + gH_SyrupBrixCorrection := 0.0 ; +END_IF + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/SYRUPDENSITY.EXP b/backend/script_groups/TwinCat/.example/SYRUPDENSITY.EXP new file mode 100644 index 0000000..55805c7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYRUPDENSITY.EXP @@ -0,0 +1,20 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION SyrupDensity : REAL +VAR_INPUT + i_SyrupBrix : REAL ; +END_VAR +VAR +END_VAR +(* @END_DECLARATION := '0' *) +(* +IF gDens_Sucrose<>0 AND ((i_SyrupBrix / gDens_Sucrose + 100) - i_SyrupBrix)<>0 THEN + SyrupDensity := 1/ ((i_SyrupBrix / gDens_Sucrose + 100) - i_SyrupBrix) ; +END_IF +*) +IF gDens_Sucrose<>0 AND (gH2O_Density / gDens_Sucrose)<>1 THEN + SyrupDensity := gH2O_Density / (1 + i_SyrupBrix / 100 * ((gH2O_Density / gDens_Sucrose) - 1)) ; +END_IF + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/SYRUPROOMCTRL.EXP b/backend/script_groups/TwinCat/.example/SYRUPROOMCTRL.EXP new file mode 100644 index 0000000..c855404 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYRUPROOMCTRL.EXP @@ -0,0 +1,72 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM SyrupRoomCtrl +VAR + mChangeSyrupTankONS : R_TRIG ; + mChangeSyrupLitersONS : R_TRIG ; + mSaveLiters : REAL ; + mSaveNumTank : INT ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +SyrupRoomCtrl.UpdateValues +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION UpdateValues: +gH_ProcessSetup_SyrupRoomTank := LIMIT (1, gH_ProcessSetup_SyrupRoomTank, 20) ; +IF NOT gH_Blender_OPT_FastChangeOverEnabled THEN + IF mSaveNumTank=0 THEN + mSaveNumTank := gH_ProcessSetup_SyrupRoomTank ; + END_IF + IF mSaveNumTank<>gH_ProcessSetup_SyrupRoomTank THEN + gH_ProcessSetup_SyrupRunOutLiters := gSyrupRoomTankLiter[gH_ProcessSetup_SyrupRoomTank] ; + mSaveNumTank := gH_ProcessSetup_SyrupRoomTank ; + END_IF + IF gH_ProcessSetup_SyrupRunOutLiters<>gSyrupRoomTankLiter[gH_ProcessSetup_SyrupRoomTank] THEN + gSyrupRoomTankLiter[gH_ProcessSetup_SyrupRoomTank] := gH_ProcessSetup_SyrupRunOutLiters ; + END_IF +ELSE + gH_ProcessSetup_SyrupRoomTank := 1 ; +END_IF + + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/SYRUP_LINE_MFM_PREP.EXP b/backend/script_groups/TwinCat/.example/SYRUP_LINE_MFM_PREP.EXP new file mode 100644 index 0000000..a908860 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYRUP_LINE_MFM_PREP.EXP @@ -0,0 +1,2118 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Syrup_Line_MFM_Prep +VAR + mSyrLineMFMPrepONS : R_TRIG ; + mSyrLineMFMPrepReqTP : TP ; + mSyrLineMFMPrepReqTP1 : TP ; + mSyrLineMFMPrep_TimeOut : TON ; + mTimeOutElapsed : BOOL ; + mDelayON_StopPump : TON ; + mDelayON_SyrupMin : TON ; + mDelayON_PumpStatus : TON; + mSyrMinLevel : BOOL ; + mStopPumpP2 : BOOL ; + mPumpP2Running : BOOL; + mStepNum : INT ; + mTimeStep : INT ; + mInitTimer : BOOL ; + mSyrMFMStepMove : _StepMove ; + mAuxStep : INT ; + mTimer : TIME ; + mTimeOutTime : TIME ; + mTimePassing : TIME ; + mProcSelected : BOOL ; + mWaterCountAcheaved : BOOL ; + mSyrupLineManualDrain : BOOL; + mSyrupLineManualDrainSR : SR; + mSyrupLineManualDrainTON : TON; + mSyrupLineManualDrained : BOOL; + mToggleLine : BOOL ; + mFuzzyNetOut : BOOL ; + mDummy : BOOL ; +END_VAR +VAR CONSTANT + mWaterCountActivation : REAL := 51.0 ; + mSyrupDensityActivation : REAL := 101.0 ; + mSyrupBrixActivation : REAL := 101.0 ; + mFuzzyNetActivation : REAL := 100.0 ; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 23 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineMFMPrep_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_SyrupTank_Prep +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrLineMFMPrepReqTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CMD_EnableNextRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderAlarm +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mSyrLineMFMPrepReqTP1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineMFMPrep_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 5 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrLineMFMPrepONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineMFMPrep_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrLineMFMPrep_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Syrup_Line_MFM_Prep._SyrLineMFMPrep_Reset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gAirLowPress_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupPump_P2_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRoomPump_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineMFMPrep_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeSequenceNum +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mProcSelected +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 3 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeProcValue +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mTimePassing +_OPERAND +_EXPRESSION +_POSITIV +mTimer +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +TIME_TO_REAL +_OPERAND +_EXPRESSION +_POSITIV +1000 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeProcValue +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeWait1 +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankMinLvlAux +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeWait1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mProcSelected +_OPERAND +_EXPRESSION +_POSITIV +gH_FastChangeWait2 +_OPERAND +_EXPRESSION +_NEGATIV +gSyrupMFM_EPD +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeWait2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrLineMFMPrep_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineMFMPrep_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineMFMPrep_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_SyrupRunOutLiters +_OPERAND +_EXPRESSION +_POSITIV +1.5 +_EXPRESSION +_POSITIV +MUL +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_MinProduction +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_MinProduction +_OPERAND +_EXPRESSION +_POSITIV +6 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +REAL_TO_TIME +_OPERAND +_EXPRESSION +_POSITIV +1000 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimeOutTime +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrLineMFMPrep_TimeOut +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +mTimeOutTime +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimeOutElapsed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrupTankMinLvlAux +_EXPRESSION +_NEGATIV +_LD_CONTACT +DI_Min_Syrup_Level +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mDelayON_StopPump +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#4s600ms +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStopPumpP2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Min_Syrup_Level +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayON_SyrupMin +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#500ms +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupTankMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrMinLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_P2_SyrupPump_Status +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayON_PumpStatus +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPumpP2Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrupLineManualDrainSR +_BOX_EXPR : 2 +_ENABLED +_FUNCTIONBLOCK +mSyrupLineManualDrainTON +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrupLineDrainValveAux +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +ton +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OPERAND +_EXPRESSION +_NEGATIV +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +SR +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrupLineManualDrain +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +mSyrupLineManualDrain +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupLineDrainValveAux +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrupLineManualDrained +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Totalizer +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineTankPrepCountInit +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_NEGATIV +gSugarBeverage +_OPERAND +_EXPRESSION +_POSITIV +gPV_SyrDensOk +_OPERAND +_EXPRESSION +_POSITIV +mPumpP2Running +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +mSyrupDensityActivation +_EXPRESSION +_POSITIV +SEL +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Brix +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_Syrup_Brix_Fact +_EXPRESSION +_POSITIV +MUL +_OPERAND +_EXPRESSION +_POSITIV +gSugaredSyrupBrixThrsd +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +mPumpP2Running +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +mSyrupBrixActivation +_EXPRESSION +_POSITIV +SEL +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gMFM_Syrup1Totalizer +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineTankPrepCountInit +_EXPRESSION +_POSITIV +SUB +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_SyrupRunOutLiters +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mWaterCountAcheaved +_OPERAND +_EXPRESSION +_POSITIV +gH_P2_SyrupPump_Status +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +mWaterCountActivation +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +ADD +_OPERAND +_EXPRESSION +_POSITIV +mFuzzyNetActivation +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFuzzyNetOut +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 8 +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrMFMStartUp_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Qualifier +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Message008 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrTankPrepRun +_NETWORK + +_COMMENT +Syrup TAnk Prep Running Message +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrLineMFMPrep_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrMFMStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status003 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrLineMFMPrep_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Syrup_Line_MFM_Prep._SyrLineMFMPrep_Sequencer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupTankPrepDone + +END_PROGRAM +ACTION _SyrLineMFMPrep_Reset: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimeStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +mWaterCountAcheaved +_OUTPUT +_NEGATIV +_SET +gSyrLineMFMPrep_Done + +END_ACTION + +ACTION _SyrLineMFMPrep_Sequencer: +CASE mStepNum OF + 0: SyrLineMFM_Step_0 ; + + 1: SyrLineMFM_Step_1 ; + + 2: SyrLineMFM_Step_2 ; + + 3: SyrLineMFM_Step_3 ; + + 4: SyrLineMFM_Step_4 ; + + 5: SyrLineMFM_Step_5 ; + +ELSE + ; +END_CASE +END_ACTION + +ACTION SyrLineMFM_Step_0: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV24 +_OUTPUT +_POSITIV +_SET +gSp_EV03 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +16 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 0: Wait Syrup Tank Minimum Level +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrMFMStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankMinLvlAux +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SyrLineMFM_Step_1: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mSyrMinLevel +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_SyrupLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV03 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mStopPumpP2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_P2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV24 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +16 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 1: Wait Syrup MFM Pipe Full Signal +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrMFMStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankPrepStep1Time +_OPERAND +_EXPRESSION +_NEGATIV +gSyrupMFM_EPD +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SyrLineMFM_Step_2: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mStopPumpP2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV44 +_OUTPUT +_POSITIV +_SET +gSp_P2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mSyrMinLevel +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_SyrupLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV03 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +16 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 2: Wait Syrup Count +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrMFMStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +t#0s +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +mWaterCountAcheaved +_OPERAND +_EXPRESSION +_POSITIV +mSyrupLineManualDrained +_OPERAND +_EXPRESSION +_POSITIV +gSugarBeverage +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SyrLineMFM_Step_3: +_LD_BODY +_NETWORKS : 4 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mStopPumpP2 +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_SET +gSp_EV44 +_OUTPUT +_POSITIV +_SET +gSp_P2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mSyrMinLevel +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_SyrupLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV03 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +16 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +Step 2: Wait Syrup Count + Syrup Density + Syrup Brix > 100 +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrMFMStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankPrepStep2Time +_OPERAND +_EXPRESSION +_NEGATIV +gSyrupMFM_EPD +_OPERAND +_EXPRESSION +_POSITIV +mFuzzyNetOut +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SyrLineMFM_Step_4: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mSyrMinLevel +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_SyrupLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV03 +_NETWORK + +_COMMENT +Step 3: Check Syrup Density +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrMFMStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +5 +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankMinLvlAux +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gSyrLineMFMPrep_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SyrLineMFM_Step_5: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineMFMPrep_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/SYRUP_MFM_STARTUP.EXP b/backend/script_groups/TwinCat/.example/SYRUP_MFM_STARTUP.EXP new file mode 100644 index 0000000..a0e6ce1 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYRUP_MFM_STARTUP.EXP @@ -0,0 +1,660 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Syrup_MFM_StartUp +VAR + mSyrMFMStartUpONS : R_TRIG ; + mSyrMFMStartUpReqTP : TP ; + mStepNum : INT ; + mTimeStep : INT ; + mInitTimer : BOOL ; + mSyrMFMStepMove : _StepMove ; + mAuxStep : INT ; + mTimer : TIME ; + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 9 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrMFMStartUp_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_CMD_SyrupMFM_Prep +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrMFMStartUpReqTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gSyrMFMStartUp_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrMFMStartUp_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 5 +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrMFMStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gSyrMFMStartUp_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrMFMStartUpONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrMFMStartUp_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrMFMStartUp_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Syrup_MFM_StartUp._SyrMFMStartUp_Reset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gAirLowPress_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupPump_P2_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRoomPump_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrMFMStartUp_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrMFMStartUp_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrMFMStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrMFMStartUp_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrMFMStartUp_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrMFMStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrMFMStartUp_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrMFMStartUp_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrMFMStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrMFMPrepRun +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrMFMStartUp_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Syrup_MFM_StartUp._SyrMFMStartUp_Sequencer +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION _SyrMFMStartUp_Reset: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimeStep +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gSyrLineMFMPrep_Done + +END_ACTION + +ACTION _SyrMFMStartUp_Sequencer: +CASE mStepNum OF + 0: SyrMFM_Step_0 ; + + 1: SyrMFM_Step_1 ; + + 2: SyrMFM_Step_2 ; + +ELSE + ; +END_CASE +END_ACTION + +ACTION SyrMFM_Step_0: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSp_EV03 +_NETWORK + +_COMMENT +Step 0: Wait Syrup Tank Minimum Level +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrMFMStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +1 +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankMinLvlAux +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gSyrMFMStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SyrMFM_Step_1: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_SET +gSp_P2 +_OUTPUT +_POSITIV +_SET +gSp_EV24 +_OUTPUT +_POSITIV +_SET +gSp_EV03 +_NETWORK + +_COMMENT +Step 1: Wait Syrup Tank Minimum Level +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSyrMFMStepMove +_BOX_EXPR : 6 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepNum +_OPERAND +_EXPRESSION +_POSITIV +2 +_OPERAND +_EXPRESSION +_POSITIV +t#20s +_OPERAND +_EXPRESSION +_NEGATIV +gSyrupMFM_EPD +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_OPERAND +_EXPRESSION +_POSITIV +gSyrMFMStartUp_Wait +_EXPRESSION +_POSITIV +_StepMove +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimer +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepNum +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION SyrMFM_Step_2: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrLineMFMPrep_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/SYRUP_RUNOUT.EXP b/backend/script_groups/TwinCat/.example/SYRUP_RUNOUT.EXP new file mode 100644 index 0000000..4b3473f --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYRUP_RUNOUT.EXP @@ -0,0 +1,775 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Syrup_RunOut +VAR + mSyrRunOutReqCMDTP : TP ; + mSyrRunOutReqTP : TP ; + mAuxONS : R_TRIG ; + mSyrupRanOut : BOOL ; + mMinRatio : BOOL ; + mSyrRunOutSR : SR ; + + mDummy : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 16 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRunOut_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_SyrRunOutReq +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrRunOutReqCMDTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gSystemRunOut_Qualifier +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CMD_StartSystemRunOut +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrRunOutReqTP +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRunOut_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrRoomWaterPump_Fault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRunOut_Wait +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Qualifier +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mAuxONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRunOut_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrRunOut_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Syrup_RunOut.SyrupRunOut_Reset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRunOut_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRunOut_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupRunOutCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gPV_SyrDensOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_SyrupTotalizerLt +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRunOutCountInit +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gPV_SyrDensOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_SyrupRunOutCount +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_SyrupRunOutLiters +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrupRanOut +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_SyrupTotalizerLt +_OPERAND +_EXPRESSION +_POSITIV +gSyrRunOutCountInit +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupRunOutCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_SyrupRunOutLiters +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupRunOutCount +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrRunOutRun +_NETWORK + +_COMMENT +Syrup Run Out Running Message TO HMI +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrRunOut_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status005 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +mSyrupRanOut +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_A_Recipe_Transfer +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Latch +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrAutoCorr_Done +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_RunOut_Water +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrupTankMinLvlAux +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSugarBeverage +_EXPRESSION +_NEGATIV +_LD_CONTACT +mSyrupRanOut +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrRunOut_Done +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SyrupRunOutDone + +END_PROGRAM +ACTION SyrupRunOut_Reset: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gSyrRunOut_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/SYSTEMRUNOUT_VARIABLES.EXP b/backend/script_groups/TwinCat/.example/SYSTEMRUNOUT_VARIABLES.EXP new file mode 100644 index 0000000..56453bd --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYSTEMRUNOUT_VARIABLES.EXP @@ -0,0 +1,150 @@ +(* @GLOBAL_VARIABLE_LIST := SystemRunOut_Variables *) +(* @PATH := '\/Blending_Variables\/System Run Out Variables' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL CONSTANT + gProdTankRunOutStep0Time : TIME := t#500ms ; (* Step 0 Product Tank Run Out Time *) + + gProdPipeDrainStep0Time : TIME := t#40s ; (* Step 0 Product Pipe Drain Time *) + gFillerRinseStep0Time : TIME := t#2s ; (* Step 0 Filler Rinse Time *) + gFastRinseStep0Time : TIME := t#1m20s ; (* Step 0 Blender Fast Rinse Time *) + + gProdPipeRunOutWaterCountEn : BOOL := TRUE ; (* Water Count Liters used to push Product *) + + gSyrupTankVolume : REAL := 66.0 ; (* Syrup Tank Total Volume *) + gSyrupTankBottomVol : REAL := 7.8 ; (* Syrup Tank Bottom Volume Below Analog level Probe *) + gSyrupTankSyrupAmount : REAL := 30.0 ; (* Syrup tank syrup amount when analog level probe NOT present - Liters *) + gFillerProductAvailableAmount : REAL := 250.0 ; (* Filler Tank Product Amount - Liters - To be used if the filler doesn't have the analog level probe *) + gProdAvailBottle_ToFillerBottleBlock : REAL := 4500.0 ; (* Number of empty Container *) +END_VAR + +VAR_GLOBAL + gProdPipeRunOutFillerBottleCountEn : BOOL ; (* Filler Bottle Count Used to push Product *) + gProdTankDrainStep0Time : TIME ; (* Step 0 Product Tank Drain Time t#6s *) + gProdTankDrainStep1Time : TIME ; (* Step 1 Product Tank Drain Time t#50s *) + gProdPipeRunOutStep0Time : TIME ; (* Step 0 Product Pipe Run Out Time t#0ms*) + + gH2OOpenInProdPipeRunOut : REAL ; (*30.0Start up *) + gSyrupValveProdPipeRunOut : REAL ; (*90.0 Start up *) + + gProdPipeRunOutProdAmount : REAL ; (* Water amount used to push product through product pipe + serpentine - in Liters 250 *) + gProdTankRunOutChillerAmount : REAL ; (* Water amount used to push product through product chiller - in Liters 30 *) + + gChillerPushDone : BOOL ; + gLoadNextRecipe : BOOL ; + gSystemRunOutInit : BOOL ; + gFillerNextRecipeNum : SINT ; (* *) + gProdAvailToFillerRunOut : REAL ; + gTotalProductAvailable : REAL ; + gTotalProductAvailableBottle : REAL ; + gTankProductAvailable : REAL ; + gPrdPipeProductAvailable : REAL ; + gSyrupProductAvailable : REAL ; + gFillerProductAvailable : REAL ; + gContainerSize : REAL ; + gTotalEmptyContainer : REAL ; (* Number of Empty Container *) + + gFillerRinseTankEmpty : BOOL ; + gFillerRinseTankDrain : BOOL ; + gFromFillerFastRinseCompleted : BOOL ; + + gInConveyerFull : BOOL ; + gIn_Flr_WaterRinseRequest : BOOL ; (* *) + gIn_Flr_FastChangeLastContainerFilled : BOOL ; (* *) + gIn_Flr_FastRinseCompleted : BOOL ; + gIn_Flr_OpenEV69ProdPipeDrain : BOOL ; + gIn_FillerRinseTankMaxLevel : BOOL ; + gIn_FillerRinseTankMinLevel : BOOL ; + + gOutFillerSlowSpeed : BOOL ; + gOut_OpenEV68InletWater : BOOL ; + gOut_OpenEV66FlrTankOut : BOOL ; + gOut_OpenEV71RinseTankSprayBall : BOOL ; + gOut_OpenEV71FillerProductPipeDrain : BOOL ; + gOut_OpenEV72RinseTankDrain : BOOL ; + gOut_OpenEV69ProdPipeDrain2 : BOOL ; + gOut_StartRinseTankPump : BOOL ; + + gOut_Flr_FastRinseReq : BOOL ; + gOut_Flr_WaterRinseReady : BOOL ; + gOut_Flr_ProductCompleted : BOOL ; (* No more product available *) + gOut_Flr_FillerRunOutReq : BOOL ; (* Last 500 liters of product available *) + + gToFillerStartPipeRunOut : BOOL ; + + gFillerLevel : REAL ; + gFillerBottleCount : REAL ; + gCloseSyrupLineValves : BOOL ; + gSyrupLine1_EV64 : BOOL ; + gSyrupLine2_EV65 : BOOL ; + +(************************************************************************************) +(* SYSTEM RUN OUT VARIABLES *) +(************************************************************************************) + gSystemRunOut_Qualifier : BOOL ; (* *) + gSystemRunOut_Request : BOOL ; (* *) + gSystemRunOut_Reset : BOOL ; (* *) + gSystemRunOut_Latch : BOOL ; (* *) + gSystemRunOut_Running : BOOL ; (* *) + gSystemRunOut_Wait : BOOL ; (* *) + + gProdPipeRunOut_Qualifier : BOOL ; (* *) + gProdPipeRunOut_Request : BOOL ; (* *) + gProdPipeRunOut_Reset : BOOL ; (* *) + gProdPipeRunOut_Latch : BOOL ; (* *) + gProdPipeRunOut_Running : BOOL ; (* *) + gProdPipeRunOut_Wait : BOOL ; (* *) + + gFillerRinse_Qualifier : BOOL ; (* *) + gFillerRinse_Request : BOOL ; (* *) + gFillerRinse_Reset : BOOL ; (* *) + gFillerRinse_Latch : BOOL ; (* *) + gFillerRinse_Running : BOOL ; (* *) + gFillerRinse_Wait : BOOL ; (* *) + + gFastRinse_Qualifier : BOOL ; (* *) + gFastRinse_Request : BOOL ; (* *) + gFastRinse_Reset : BOOL ; (* *) + gFastRinse_Latch : BOOL ; (* *) + gFastRinse_Running : BOOL ; (* *) + gFastRinse_Wait : BOOL ; (* *) + + gProdPipeDrain_Qualifier : BOOL ; (* *) + gProdPipeDrain_Request : BOOL ; (* *) + gProdPipeDrain_Reset : BOOL ; (* *) + gProdPipeDrain_Latch : BOOL ; (* *) + gProdPipeDrain_Running : BOOL ; (* *) + gProdPipeDrain_Wait : BOOL ; (* *) + +END_VAR + +VAR_GLOBAL PERSISTENT + gSystemRunOutStarted : BOOL ; + gFastChangeOverActivated : BOOL ; + + gProdPipeRunOutProdTotalizer : REAL ; + gProdTankRunOutProdTotalizer : REAL ; + + gSystemRunOut_Done : BOOL ; (* *) + gProdPipeRunOut_Done : BOOL ; (* *) + gFillerRinse_Done : BOOL ; (* *) + gFastRinse_Done : BOOL ; (* *) + gProdPipeDrain_Done : BOOL ; (* *) + + gFillerRanOut : BOOL ; (* *) + gToFillerProdRunOut : BOOL ; (* *) + gToFillerProductCompleted : BOOL ; (* *) + gFillerTankRinseLoaded : BOOL ; + + gProdTankRunOutPushCountInit : REAL ; + gProdTankRunOutPushCount : REAL ; + gProdPipeRunOutPushCountInit : REAL ; + gProdPipeRunOutPushCount : REAL ; +END_VAR + +(* @OBJECT_END := SystemRunOut_Variables *) +(* @CONNECTIONS := SystemRunOut_Variables +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/SYSTEM_DATAS.EXP b/backend/script_groups/TwinCat/.example/SYSTEM_DATAS.EXP new file mode 100644 index 0000000..f789054 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYSTEM_DATAS.EXP @@ -0,0 +1,27 @@ +(* @GLOBAL_VARIABLE_LIST := System_Datas *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_GLOBAL + gTask0Cycle_Time : REAL ; (* Cycle Time in Seconds to the TASK00 [Void] *) + gPID_Cycle_Time : REAL ; (* Cycle Time in Seconds to the TASK01 [PID] *) + gTask02CycleTime : REAL ; (* Cycle Time in Seconds to the TASK02 [_Blender_Ctrl_Main] *) + + gSystem_Task_Info : ARRAY [1..4] OF systemtaskinfotype; + gCPU_Counts : GETCPUCOUNTER ; + gSystem_Time : GETSYSTEMTIME; + gSystem_Info : systeminfotype ; + + gRetainDataLoadOk : BOOL ; + gPersistentDataLoadOk : BOOL ; + + gCPU_UsageFB : TC_CpuUsage ; + gCPU_Usage : UDINT ; +END_VAR + +(* @OBJECT_END := System_Datas *) +(* @CONNECTIONS := System_Datas +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/SYSTEM_RUN_OUT.EXP b/backend/script_groups/TwinCat/.example/SYSTEM_RUN_OUT.EXP new file mode 100644 index 0000000..fa8bbc3 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/SYSTEM_RUN_OUT.EXP @@ -0,0 +1,1375 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Procedure\/System Run Out' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM System_Run_Out +VAR + mReqONS : R_TRIG ; + mSystemRunOut_ONS : R_TRIG ; + mSystemRunOutInitONS : R_TRIG ; + mSystemRunOut_Abort : BOOL ; + mSystemRunOut_AbortTON : TON ; + mSystemRunOutAck : TON ; + mSwapSyrupLine_TON : TON ; + mSystemRunOutAux : BOOL ; + mSystemRunOutAux1 : BOOL; + mToggleLine : BOOL; + + mDummy : BOOL ; + mAuxToggleLine : BOOL; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 30 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderSuppliesOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSystemRunOut_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_SystemRunOutEnable +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mReqONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSystemRunOut_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSystemRunOut_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSystemRunOut_Request +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_SystemRunOutEnabled +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSystemRunOut_Qualifier +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +mSystemRunOut_Abort +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSystemRunOut_Reset +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSystemRunOut_Reset +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +System_Run_Out._Reset +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSystemRunOut_Wait +_NETWORK + +_COMMENT +Pressing RESET Button AND THEN Press the Emergency Button, Cause System Run Out ABORT!!!!! +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSystemRunOut_AbortTON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gEmergencyPressed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSystemRunOut_Abort +_NETWORK + +_COMMENT +Syrup Run Out Request Activate Sytem Run Out Sequences +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrRunOut_Request +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdTankRunOut_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Latch +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gSystemRunOut_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_SystemRunOutEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Reset +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSystemRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSystemRunOut_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSystemRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_NO_SET +gH_SystemRunOutRunning +_OUTPUT +_POSITIV +_NO_SET +gH_Status039 +_OUTPUT +_POSITIV +_SET +gFastChangeOverActivated +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSystemRunOutInitONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_CONTACT +gSystemRunOutStarted +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSystemRunOutInit +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gSystemRunOutStarted +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSystemRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSystemRunOut_Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSystemRunOut_Running +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrRunOut_Request +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gCloseSyrupLineValves +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrLineMFMPrep_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrMFMStartUp_Request +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderRinse_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCloseSyrupLineValves +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gFastChangeOverActivated +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CMD_SwapSyrupLine +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrLineMFMPrep_Request +_EXPRESSION +_POSITIV +_LD_CONTACT +mToggleLine +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mAuxToggleLine +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mAuxToggleLine +_EXPRESSION +_POSITIV +_LD_CONTACT +mToggleLine +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_SyrLine1Slctd +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_NEGATIV +_SET +gH_CMD_SyrLine1Slctd +_OUTPUT +_POSITIV +_SET +gH_CMD_SyrLine2Slctd +_OUTPUT +_POSITIV +_SET +mToggleLine +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mAuxToggleLine +_EXPRESSION +_POSITIV +_LD_CONTACT +mToggleLine +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CMD_SyrLine2Slctd +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 3 +_OUTPUT +_POSITIV +_SET +gH_CMD_SyrLine1Slctd +_OUTPUT +_NEGATIV +_SET +gH_CMD_SyrLine2Slctd +_OUTPUT +_POSITIV +_SET +mToggleLine +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_SyrLine1Slctd +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_SyrRoom_SelectLine1 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupLine2_EV65 +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCloseSyrupLineValves +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_EV64_Auto +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_EV64_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV64_Manual +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupLine1_EV64 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CMD_SyrLine2Slctd +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_SyrRoom_SelectLine2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupLine1_EV64 +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCloseSyrupLineValves +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_EV65_Auto +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_EV65_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV65_Manual +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupLine2_EV65 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 7 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupLine1_EV64 +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrupLine2_EV65 +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mSwapSyrupLine_TON +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gCloseSyrupLineValves +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupLineNotSelected +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 4 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProdPipeRunOut_Done +_OPERAND +_EXPRESSION +_POSITIV +gH_CMD_EnableNextRecipe +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_N_Recipe_Name +_OPERAND +_EXPRESSION +_POSITIV +'' +_EXPRESSION +_POSITIV +NE +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_N_Recipe_Type +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +NE +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +gFastChangeOverActivated +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gLoadNextRecipe +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeProcValue +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +FALSE +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeWait1 +_OUTPUT +_POSITIV +_NO_SET +gH_FastChangeWait2 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProductAvailable +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProductPipeDrain +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProductPipeRunOut +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FillerRinse +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FastRinse +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_CONTACT +gSystemRunOut_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSystemRunOutAux +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +mSystemRunOutAux +_EXPRESSION +_POSITIV +_LD_CONTACT +gFillerRinse_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankDrain_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gFastRinse_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdPipeDrain_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSystemRunOutAux1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mSystemRunOutAux1 +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +gCarboWaterLine_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_Deaireation +_EXPRESSION +_NEGATIV +_LD_CONTACT +gCarboStillProduct +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gFirstProd_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CMD_EnableNextRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSystemRunOut_Done + +END_PROGRAM +ACTION _Reset: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 6 +_OUTPUT +_NEGATIV +_SET +gSystemRunOutStarted +_OUTPUT +_NEGATIV +_SET +gFillerRanOut +_OUTPUT +_NEGATIV +_SET +gH_SystemRunOutEnabled +_OUTPUT +_NEGATIV +_SET +gFastChangeOverActivated +_OUTPUT +_NEGATIV +_SET +mToggleLine +_OUTPUT +_NEGATIV +_SET +gSystemRunOut_Done + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/TANKLEVEL.EXP b/backend/script_groups/TwinCat/.example/TANKLEVEL.EXP new file mode 100644 index 0000000..2687f6c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/TANKLEVEL.EXP @@ -0,0 +1,1652 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM TankLevel +VAR + mDeairLevFault : TON ; + mDeairLevFault1 : TON ; + mDeairLevFault2 : TON ; + mDeairTankLoadDelay : TP ; + mSyrLevFault : TON ; + mSyrLevFault1 : TON ; + mSyrLevFault2 : TON ; + mSyrTankFlooded : BOOL ; + mSyrTankLoadDelay : TP ; + mSyrTankHighLvlONS: R_TRIG; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 35 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairTankLowLvl_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Alarm062 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_EV01 +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mDeairTankLoadDelay +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#40s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairTankLoading +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gDeairTankMinLvlAux +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV01_Status +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDeairLevFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1m +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gDeairTankMinLvlAux +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV01_Status +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairTankLoading +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_FUNCTIONBLOCK +mDeairLevFault1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#5s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderBlending +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDeairLevFault2 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDeairTankLowLvl_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrTankLowLvl_Fault +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Alarm063 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_EV03 +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mSyrTankLoadDelay +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#30s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupTankLoading +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 8 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_EV03_Status +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupTankMinLvlAux +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gProdPipeRunOut_Latch +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrupTankLoading +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mSyrLevFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#100ms +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrLevFault1 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#30s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrTankLowLvl_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankLevel +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupTankMinLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankLevel +_OPERAND +_EXPRESSION +_POSITIV +95 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mSyrTankFlooded +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 5 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +mSyrTankFlooded +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mSyrLevFault2 +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_FUNCTIONBLOCK +mSyrTankHighLvlONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrTankHighLvl_Fault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPSyrupStopLevel +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankLevel +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_CIP_SyrTankFloodRun +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_CIPSyrTankMaxLevel +_OPERAND +_EXPRESSION +_POSITIV +100 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPSyrupStopLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +CIP Stop level Stops the pumps when MAX level getted, same stuff also in Rinse +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_CIP_ProdTankFloodRun +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCIPSyrupStopLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCIPSyrupStopLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSyrupTankLevel +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_CIPSyrTankMinLevel +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPSyrupStopLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStopLevel +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +gProdTankStopLvl +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderStopLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderStopLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankStopLvl +_OPERAND +_EXPRESSION +_POSITIV +gProdTankStartLvl +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderStopLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderStopLevel +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPStopLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProdTankMaxLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStartLevel +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankStopLvl +_OPERAND +_EXPRESSION +_POSITIV +gProdTankStartLvl +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderStartLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderStartLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankStopLvl +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankStartLvl +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderStartLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCIPStopLevel +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gH_CIP_ProdTankFloodRun +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_CIPProdTankMaxLevel +_OPERAND +_EXPRESSION +_POSITIV +98 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPStopLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT +CIP Stop level Stops the pumps when MAX level getted, same stuff also in Rinse +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_CIP_ProdTankFloodRun +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCIPStopLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCIPStopLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_CIPProdTankMinLevel +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPStopLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +gProdTankMinLvl +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderMinLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankMinLvl +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderMinLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gWaitLevelToHold_TankPress +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +gTankPressWaitLvl +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaitLevelToHold_TankPress +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gWaitLevelToHold_TankPress +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gTankPressWaitLvl +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaitLevelToHold_TankPress +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankRunOut_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gWaitLevelToHold_TankPress +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderMinLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProdTankMinLevel +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPMaxLevel +_NETWORK + +_COMMENT +Product Tank Flood reached +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCIPMaxLevel +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +98 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPMaxLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCIPMaxLevel +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_CIPProdTankMaxLevel +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPMaxLevel +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderLevelOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_MinTankLevel +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderLevelOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderLevelOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_MinTankLevel +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderLevelOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderLevelOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_ProdTankLevelOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderLevelTarget +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +gProdTankTargetLvl +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderLevelTarget +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlenderLevelTarget +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProdTankTargetLvl +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_NEGATIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderLevelTarget +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gIn_ProdTankNotEmpty +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gProdTankEmpty +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdTankEmpty +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gProdTankEmpty +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 4 +_ENABLED +_OPERAND +_EXPRESSION +_NEGATIV +gDeairTankMinLvlAux +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_NEGATIV +gDeairTank2MinLvlAux +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_DoubleDeair +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_NEGATIV +gSyrupTankMinLvlAux +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gIn_ProdTankNotEmpty +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderMinLevel +_OPERAND +_EXPRESSION +_POSITIV +gSyrupRoomEn +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_NEGATIV +AND +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderEmpty +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/TANKLEVELTOHEIGHT.EXP b/backend/script_groups/TwinCat/.example/TANKLEVELTOHEIGHT.EXP new file mode 100644 index 0000000..8579e90 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/TANKLEVELTOHEIGHT.EXP @@ -0,0 +1,19 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION TankLevelToHeight : REAL +VAR_INPUT + Level_Percentage : REAL ; + Level_Perc0 : REAL ; + Level_Height0 : REAL ; + Level_Perc1 : REAL ; + Level_Height1 : REAL ; +END_VAR +VAR +END_VAR + +(* @END_DECLARATION := '0' *) +IF Level_Perc1<>0 THEN + TankLevelToHeight := (Level_Percentage * (Level_Height1 - Level_Height0) / Level_Perc1) + Level_Height0 ; +END_IF +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/TASK CONFIGURATION.EXP b/backend/script_groups/TwinCat/.example/TASK CONFIGURATION.EXP new file mode 100644 index 0000000..a427edb --- /dev/null +++ b/backend/script_groups/TwinCat/.example/TASK CONFIGURATION.EXP @@ -0,0 +1,16 @@ + +RESOURCE +TASK TASK00 (PRIORITY := 0, INTERVAL := T#50ms); + Void + +END_TASK +TASK TASK01 (PRIORITY := 1, INTERVAL := T#300ms); + _Blender_PID_Main + +END_TASK +TASK TASK02 (PRIORITY := 2, INTERVAL := T#240ms); + _Blender_Ctrl_Main + +END_TASK + +END_RESOURCE diff --git a/backend/script_groups/TwinCat/.example/TCPLCUTILITIES.LIB_11.12.01 09_39_02.EXP b/backend/script_groups/TwinCat/.example/TCPLCUTILITIES.LIB_11.12.01 09_39_02.EXP new file mode 100644 index 0000000..2dd9d11 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/TCPLCUTILITIES.LIB_11.12.01 09_39_02.EXP @@ -0,0 +1,41 @@ +LIBRARY +TcPlcUtilities.lib 11.12.01 09:39:02 +(* @LIBRARYSYMFILEINFO := '0' *) +NumOfPOUs: 34 +BCD_TO_DEC: 0 +DEC_TO_BCD: 0 +DEG_TO_RAD: 0 +DT_TO_SYSTEMTIME: 0 +GetRemotePCInfo: 0 +NT_AbortShutdown: 0 +NT_GetTime: 0 +NT_Reboot: 0 +NT_SetTimeToRTCTime: 0 +NT_Shutdown: 0 +NT_StartProcess: 0 +OTSTRUCT_TO_TIME: 0 +PLC_ReadSymInfo: 0 +PLC_ReadSymInfoByName: 0 +PLC_Reset: 0 +PLC_Start: 0 +PLC_Stop: 0 +Profiler: 0 +RAD_TO_DEG: 0 +ScopeASCIIExport: 0 +ScopeGetRecordLen: 0 +ScopeGetState: 0 +ScopeLoadFile: 0 +ScopeManualTrigger: 0 +ScopeSetOffline: 0 +ScopeSetOnline: 0 +ScopeSetRecordLen: 0 +ScopeViewExport: 0 +SYSTEMTIME_TO_DT: 0 +TC_CpuUsage: 0 +TC_Restart: 0 +TC_Stop: 0 +TIME_TO_OTSTRUCT: 0 +WritePersistentData: 0 +NumOfGVLs: 1 +Global_Variables: 59392 +END_LIBRARY diff --git a/backend/script_groups/TwinCat/.example/TCSYSTEM.LIB_16.9.02 09_39_02.EXP b/backend/script_groups/TwinCat/.example/TCSYSTEM.LIB_16.9.02 09_39_02.EXP new file mode 100644 index 0000000..4da3fca --- /dev/null +++ b/backend/script_groups/TwinCat/.example/TCSYSTEM.LIB_16.9.02 09_39_02.EXP @@ -0,0 +1,65 @@ +LIBRARY +TcSystem.lib 16.9.02 09:39:02 +(* @LIBRARYSYMFILEINFO := '0' *) +NumOfPOUs: 58 +ADSCLEAREVENTS: 0 +ADSLOGDINT: 0 +ADSLOGEVENT: 0 +ADSLOGLREAL: 0 +ADSLOGSTR: 0 +ADSRDDEVINFO: 0 +ADSRDSTATE: 0 +ADSRDWRT: 0 +ADSRDWRTEX: 0 +ADSRDWRTIND: 0 +ADSRDWRTRES: 0 +ADSREAD: 0 +ADSREADEX: 0 +ADSREADIND: 0 +ADSREADRES: 0 +ADSWRITE: 0 +ADSWRITEIND: 0 +ADSWRITERES: 0 +ADSWRTCTL: 0 +AnalyzeExpression: 0 +AppendErrorString: 0 +CLEARBIT32: 0 +CSETBIT32: 0 +DRAND: 0 +F_CreateAmsNetId: 0 +F_GetVersionTcSystem: 0 +FB_EOF: 0 +FB_FileClose: 0 +FB_FileDelete: 0 +FB_FileGets: 0 +FB_FileOpen: 0 +FB_FilePuts: 0 +FB_FileRead: 0 +FB_FileRename: 0 +FB_FileSeek: 0 +FB_FileTell: 0 +FB_FileWrite: 0 +FILECLOSE: 0 +FILEOPEN: 0 +FILEREAD: 0 +FILESEEK: 0 +FILEWRITE: 0 +GETBIT32: 0 +GETCPUACCOUNT: 0 +GETCPUCOUNTER: 0 +GETCURTASKINDEX: 0 +GETSYSTEMTIME: 0 +LPTSIGNAL: 0 +MEMCMP: 0 +MEMCPY: 0 +MEMMOVE: 0 +MEMSET: 0 +ROL32: 0 +ROR32: 0 +SETBIT32: 0 +SFCActionControl: 0 +SHL32: 0 +SHR32: 0 +NumOfGVLs: 1 +Global_Variables: 59392 +END_LIBRARY diff --git a/backend/script_groups/TwinCat/.example/TESTFLOWMETERS.EXP b/backend/script_groups/TwinCat/.example/TESTFLOWMETERS.EXP new file mode 100644 index 0000000..b9518ee --- /dev/null +++ b/backend/script_groups/TwinCat/.example/TESTFLOWMETERS.EXP @@ -0,0 +1,221 @@ + +(* @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 + diff --git a/backend/script_groups/TwinCat/.example/UDP_STRUCT.EXP b/backend/script_groups/TwinCat/.example/UDP_STRUCT.EXP new file mode 100644 index 0000000..eed527f --- /dev/null +++ b/backend/script_groups/TwinCat/.example/UDP_STRUCT.EXP @@ -0,0 +1,9 @@ +(* @PATH := '\/Signals Inteface' *) +TYPE UDP_Struct : + STRUCT + DriverConnect : INT ; + Data : ARRAY [0..99] OF BYTE ; + END_STRUCT +END_TYPE + +(* @END_DECLARATION := '0' *) diff --git a/backend/script_groups/TwinCat/.example/UV_LAMP.EXP b/backend/script_groups/TwinCat/.example/UV_LAMP.EXP new file mode 100644 index 0000000..c16b36d --- /dev/null +++ b/backend/script_groups/TwinCat/.example/UV_LAMP.EXP @@ -0,0 +1,300 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '0' *) +PROGRAM UV_Lamp +VAR + mDelayCoolingUVLamp : TON; + mUVLampNotReady : BOOL; + mUVLampDelayOff : TOF; + mUVLampDrainCloseDelay : TP ; + mUVLampDrainOpen : BOOL ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDelayCoolingUVLamp +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_NEGATIV +gH_EV01_Status +_OPERAND +_EXPRESSION +_POSITIV +gOutUVLamp_ONOFF +_OPERAND +_EXPRESSION +_NEGATIV +mUVLampDrainCloseDelay.Q +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +T#30m +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mUVLampDrainOpen +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mUVLampDrainCloseDelay +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mUVLampDrainOpen +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gUVLampHighTemperature +_OPERAND +_EXPRESSION +_POSITIV +gOutUVLamp_ONOFF +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +OR +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gUV_Lamp_Drain +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_NEGATIV +gInUVLampReady +_OPERAND +_EXPRESSION +_POSITIV +gUVLamp_ONOFF +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mUVLampNotReady +_OUTPUT +_POSITIV +_NO_SET +gH_Message040 +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_NEGATIV +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gUV_Lamp_Qualifier +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mUVLampDelayOff +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +T#30m +_EXPRESSION +_POSITIV +TOF +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gUV_Lamp_Qualifier +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gUV_Lamp_Request +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gUV_Lamp_Request +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gUV_Lamp_Latch +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gUV_Lamp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gOutUVLamp_ONOFF + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/VACUUMCTRL.EXP b/backend/script_groups/TwinCat/.example/VACUUMCTRL.EXP new file mode 100644 index 0000000..1e2735c --- /dev/null +++ b/backend/script_groups/TwinCat/.example/VACUUMCTRL.EXP @@ -0,0 +1,237 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM VacuumCtrl +VAR + mVacuumFaultTmr : TON ; +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gDeairVacuumPress +_OPERAND +_EXPRESSION +_POSITIV +gIn_DeaireatorPressure +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gDeairVacuumOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gDeairVacuumPress +_OPERAND +_EXPRESSION +_POSITIV +gDeairVacuumIst +_EXPRESSION +_POSITIV +ADD +_OPERAND +_EXPRESSION +_POSITIV +gIn_DeaireatorPressure +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gDeairVacuumOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_VacuumPump +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlenderDeairVacuum_Ok +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gStillWaterByPassEn +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gVacuumAcheaved +_NETWORK + +_COMMENT +Message TO HMI: Waiting VAcuum IF needed. +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 4 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gH_Blender_OPT_ByPassDeair +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_A_Recipe_EnDeaireation +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gVacuumAcheaved +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gDeairStartUp_Latch +_EXPRESSION +_POSITIV +_LD_CONTACT +gDeairStartUp_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_Status007 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_P4_VacuumPump_Status +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mVacuumFaultTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3m0s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_LD_CONTACT +gVacuumAcheaved +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gVacuumTimeOut_Fault + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/VALVEFAULT.EXP b/backend/script_groups/TwinCat/.example/VALVEFAULT.EXP new file mode 100644 index 0000000..ed17614 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/VALVEFAULT.EXP @@ -0,0 +1,176 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK ValveFault +VAR_INPUT + in_ValveOut : BOOL ; + in_ValveClose : BOOL ; + in_ValveOpen : BOOL ; + in_ValveReset : BOOL ; + in_FaultDelayTime : TIME ; +END_VAR +VAR_OUTPUT + out_ValveFault : BOOL ; + out_ValveOut : BOOL ; +END_VAR +VAR + mFault : BOOL ; + mTmrDelayFault : TON ; +END_VAR + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +in_ValveReset +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +in_ValveOut +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +in_ValveOpen +_EXPRESSION +_NEGATIV +_LD_CONTACT +in_ValveClose +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +in_ValveOut +_EXPRESSION +_NEGATIV +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +in_ValveOpen +_EXPRESSION +_POSITIV +_LD_CONTACT +in_ValveClose +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mTmrDelayFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +in_FaultDelayTime +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +mFault +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +in_ValveReset +_EXPRESSION +_NEGATIV +_LD_CONTACT +out_ValveFault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +out_ValveFault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +in_ValveOut +_EXPRESSION +_POSITIV +_LD_CONTACT +out_ValveFault +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +out_ValveOut + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/VALVEFLOW.EXP b/backend/script_groups/TwinCat/.example/VALVEFLOW.EXP new file mode 100644 index 0000000..50f80e9 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/VALVEFLOW.EXP @@ -0,0 +1,18 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION ValveFlow : REAL +VAR_INPUT + i_DeltaP : REAL ; + i_ValveOp : REAL ; + i_KFF : REAL ; + i_Dens : REAL ; +END_VAR +VAR +END_VAR +(* @END_DECLARATION := '0' *) +IF i_KFF<>0 AND i_DeltaP>=0 AND i_Dens<>0THEN + ValveFlow := i_ValveOp * SQRT(i_DeltaP / i_Dens) / i_KFF ; +END_IF + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/VARIABLE_CONFIGURATION.EXP b/backend/script_groups/TwinCat/.example/VARIABLE_CONFIGURATION.EXP new file mode 100644 index 0000000..b1abc96 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/VARIABLE_CONFIGURATION.EXP @@ -0,0 +1,13 @@ +(* @GLOBAL_VARIABLE_LIST := Variable_Configuration *) +(* @PATH := '' *) +(* @SYMFILEFLAGS := '59392' *) +VAR_CONFIG +END_VAR + +(* @OBJECT_END := Variable_Configuration *) +(* @CONNECTIONS := Variable_Configuration +FILENAME : '' +FILETIME : 0 +EXPORT : 0 +NUMOFCONNECTIONS : 0 +*) diff --git a/backend/script_groups/TwinCat/.example/VOID.EXP b/backend/script_groups/TwinCat/.example/VOID.EXP new file mode 100644 index 0000000..69ee363 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/VOID.EXP @@ -0,0 +1,24 @@ + +(* @PATH := '\/TASK0_VOID' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Void +VAR + mToggle : BOOL ; + mDummy : BOOL; + mMessage : MessageScroll; + mStatus : MessageScroll; +END_VAR +(* @END_DECLARATION := '0' *) +Clock_Signal(); +Signal_Gen(); +mMessage(msg_array := gH_Message, scroll_sec:= 1, msg_code=> gH_Message_code); +mStatus(msg_array := gH_Status, scroll_sec:= 1, msg_code=> gH_Status_code); + +MFMAnalog_Values(); +IF NOT mToggle THEN + mToggle := TRUE ; +ELSE + mToggle := FALSE ; +END_IF + +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/WATERDENSITY.EXP b/backend/script_groups/TwinCat/.example/WATERDENSITY.EXP new file mode 100644 index 0000000..8cff8f4 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/WATERDENSITY.EXP @@ -0,0 +1,12 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION WaterDensity : REAL +VAR_INPUT + i_Temperature : REAL ; +END_VAR +VAR +END_VAR +(* @END_DECLARATION := '0' *) +WaterDensity := 0.99985 + 0.000061577 * i_Temperature - 0.0000081546 * i_Temperature * i_Temperature + 0.000000047799 * i_Temperature * i_Temperature * i_Temperature ; +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/WORD_TO_BYTES.EXP b/backend/script_groups/TwinCat/.example/WORD_TO_BYTES.EXP new file mode 100644 index 0000000..85ef133 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/WORD_TO_BYTES.EXP @@ -0,0 +1,22 @@ + +(* @PATH := '\/Functions_Collection\/FillingHead' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM Word_To_Bytes +VAR_INPUT + i_Word : WORD ; +END_VAR +VAR_OUTPUT + o_Bytes_0 : BYTE ; + o_Bytes_1 : BYTE ; +END_VAR +VAR + mAuxShl : WORD ; +END_VAR + + +(* @END_DECLARATION := '0' *) +mAuxShl := i_Word ; +o_Bytes_0 := WORD_TO_BYTE(i_Word) ; +mAuxShl := SHR(mAuxShl, 8) ; +o_Bytes_1 := WORD_TO_BYTE(mAuxShl) ; +END_PROGRAM diff --git a/backend/script_groups/TwinCat/.example/WRITEPERIPHERIAL.EXP b/backend/script_groups/TwinCat/.example/WRITEPERIPHERIAL.EXP new file mode 100644 index 0000000..f681ae7 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/WRITEPERIPHERIAL.EXP @@ -0,0 +1,23 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION WritePeripherial : WORD +VAR_INPUT + i_Analog : REAL ; + i_MaxAnalog : REAL ; + i_MinAnalog : REAL ; + i_PerMin : UINT ; + i_PerMax : UINT ; +END_VAR +VAR + mSlope : REAL ; + mZero : REAL ; +END_VAR +(* @END_DECLARATION := '0' *) +IF i_MaxAnalog <> i_MinAnalog THEN + mSlope := (i_PerMax - i_PerMin) / (i_MaxAnalog - i_MinAnalog) ; + mZero := i_PerMin - i_MinAnalog * mSlope ; + WritePeripherial := REAL_TO_WORD (i_Analog * mSlope + mZero ) ; +END_IF + +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/_BLENDER_CTRL_MAIN.EXP b/backend/script_groups/TwinCat/.example/_BLENDER_CTRL_MAIN.EXP new file mode 100644 index 0000000..7447466 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_BLENDER_CTRL_MAIN.EXP @@ -0,0 +1,3685 @@ + +(* @PATH := '\/TASK2_ControlMain\/Blender_Logic' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM _Blender_Ctrl_Main +VAR + mProdONS : R_TRIG ; + mCIPONS : R_TRIG ; + mRinseONS : R_TRIG ; + mWaterVFMCtrl : BYTE ; + mSyrupMFMCtrl : BYTE ; + mCO2MFMCtrl : BYTE ; + mProductMFMCtrl : BYTE ; + mResetTotalizerTmr : TP ; + mResetTotalizer : BOOL ; + mResetWaterTotTmr : TP ; + mResetWaterTot : BOOL ; + mResetSyrupTotTmr : TP ; + mResetSyrupTot : BOOL ; + mResetCO2TotTmr : TP ; + mResetCO2Tot : BOOL ; + mResetProductTotTmr : TP ; + mResetProductTot : BOOL ; + mDelayPowerOnTmr : TP ; + mDelayPowerOn : BOOL ; + mDelayS7CallTmr : TON ; + mEmergencyPressONS : F_TRIG ; + mWaterValveDly : TON ; + mDelayPowerOff : TON ; + + mSystemShutDown : NT_Shutdown ; + mNTShutDownBusy : BOOL ; + mShutDownRequest : BOOL; + mShutDownError : BOOL ; + mShutDownErrorCode : UDINT ; + mDelayOffShutDown : TON ; + mPowerOffONS : F_TRIG ; + mPowerOff : BOOL ; + mAbortShutDown : NT_AbortShutdown ; + + mDummy : BOOL ; + mONS1 : R_TRIG; + m1HourONS : BOOL; + m1sClockONS : BOOL; + m1MinONS : BOOL; + +END_VAR + +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 73 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gAlwaysOff +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mEmergencyPressONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gEmergencyPressed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gInLinePressCO2Ok +_EXPRESSION +_POSITIV +_LD_CONTACT +gWorkshopTest +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInLinePressAirOk +_EXPRESSION +_POSITIV +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderSuppliesOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_TrackFillerSpeed +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +gTrackFillerSpeed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_CONTACT +gH_Blender_OPT_TrackFillerSpeed +_EXPRESSION +_NEGATIV +_LD_CONTACT +gManual_PID_H2O +_EXPRESSION +_POSITIV +_LD_CONTACT +gManual_PID_SYR +_EXPRESSION +_POSITIV +_LD_CONTACT +gManual_PID_CO2 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gTrackFillerSpeed +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSystem_Task_Info[3].active +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Blender_Ctrl_Main._1st_Cycle +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gSystem_Task_Info[3].active +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mDelayPowerOnTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDelayPowerOn +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mDelayS7CallTmr +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_SignalExchange +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_OPERAND +_EXPRESSION +_POSITIV +gSystem_Task_Info[3].active +_EXPRESSION +_POSITIV +AND +_OPERAND +_EXPRESSION +_POSITIV +t#15s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDelayS7Call +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Blender_Ctrl_Main.CheckPersistantData +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_Prod_CIP +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderProdMode +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_Prod_CIP +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +19 +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_BlenderStateNum +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gBlenderCIPMode +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 5 +_OUTPUT +_NEGATIV +_SET +gH_ProductMeter_Fault +_OUTPUT +_NEGATIV +_SET +gmPDS2000_Error_Fault +_OUTPUT +_NEGATIV +_SET +gH_ProductMeter_Run +_OUTPUT +_NEGATIV +_SET +gFreezeProductMeter +_OUTPUT +_NEGATIV +_SET +gProductMeterOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_CoolerType +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gGencoldChillerEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_CoolerControl +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +EQ +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_CoolerControl +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductChillerEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_CoolerControl +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductDoubleStadiumChillerEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_CoolerControl +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +EQ +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_CoolerControl +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +EQ +_EXPRESSION +_POSITIV +OR +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gWaterChillerEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProdPipeRunOutWaterCountEn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProdPipeRunOutFillerBottleCountEn +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_StillWaterByPass +_EXPRESSION +_POSITIV +_LD_CONTACT +gWaterRecipe +_EXPRESSION +_POSITIV +_LD_CONTACT +gCarboStillRecipe +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gStillWaterByPassEn +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_Promass +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSyrupRoomEn +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gSyrupRoomEn +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrupLineDrainValveAux +_EXPRESSION +_POSITIV +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_NEGATIV +_LD_CONTACT +gSyrLineMFMPrep_Done +_EXPRESSION +_POSITIV +_LD_CONTACT +gSyrRunOut_Done +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gInCIP_CIPRunning +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Running +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gManualSyrupDrainValve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gWaterManualDrainValveAux +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_FastChangeOverEnabled +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mWaterValveDly +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#1s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gManualWaterDrainValve +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS1000_Control +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS2000_Control +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Maselli_Control +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +mPDS_PA_Control +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +GetProdBrixCO2_FromAnalogInput +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +GetProdO2_FromAnalogInput +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProductQuality +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Input +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +SelCheckBrixSource +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +TankLevel +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderProdMode +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mProdONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_CONTACT +mDelayPowerOn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProductionONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProductionONS +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderStarted +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Blender_Ctrl_Main._ProductionMode_Init +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gH_Blender_Prod_CIP +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mRinseONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_CONTACT +mDelayPowerOn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gRinseONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mCIPONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_LD_CONTACT +mDelayPowerOn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gCIPONS +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCIPONS +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Blender_Ctrl_Main._CIPMode_init +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Blender_Ctrl_Main.Reset_Sp_Word +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Blender_RunControl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProductTank_PressCtrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FirstProduction +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +CIP_MAIN +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +BlenderRinse +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Safeties +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +VacuumCtrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +SyrupRoomCtrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ProductTankBrix +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +AmmoniaCtrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mDelayPowerOn +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Blender_ProcedureCall +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Pneumatic_Valve_Ctrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +PumpsControl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_UVLamp +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +UV_Lamp +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Output +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +SLIM_Block +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Filler_Control +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +FillerRinseTank_Ctrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Blender_Ctrl_Main.Update_P_Word +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Blender_Ctrl_Main.SystemShutDown_DueToPowerFault +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gBlendResetTotalizer +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mResetTotalizerTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mResetTotalizer +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gWaterVFMResetTot +_EXPRESSION +_POSITIV +_LD_CONTACT +mResetTotalizer +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mResetWaterTotTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mResetWaterTot +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gWaterVFMResetTot +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gWaterVFMResetTot +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gSyrupMFMResetTot +_EXPRESSION +_POSITIV +_LD_CONTACT +mResetTotalizer +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mResetSyrupTotTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mResetSyrupTot +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gSyrupMFMResetTot +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gSyrupMFMResetTot +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gCO2MFMResetTot +_EXPRESSION +_POSITIV +_LD_CONTACT +mResetTotalizer +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mResetCO2TotTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mResetCO2Tot +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gCO2MFMResetTot +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gCO2MFMResetTot +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gProductMFMResetTot +_EXPRESSION +_POSITIV +_LD_CONTACT +mResetTotalizer +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mResetProductTotTmr +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mResetProductTot +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gProductMFMResetTot +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gProductMFMResetTot +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gBlendResetTotalizer +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +gBlendResetTotalizer +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Blender_Ctrl_Main._MFM_Command +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +Profibus_Network +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ModValveFault +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_All_Auto +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_All_Auto +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +ManualActive +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION _1st_Cycle: +_All_Auto; +END_ACTION + +ACTION _All_Auto: +gH_EV01_Auto := TRUE ; +gH_EV02_Auto := TRUE ; +gH_EV01_1_Auto := TRUE ; +gH_EV02_1_Auto := TRUE ; +gH_EV03_Auto := TRUE ; +gH_EV04_Auto := TRUE ; +gH_EV01_Manual := FALSE ; +gH_EV02_Manual := FALSE ; +gH_EV01_1_Manual := FALSE ; +gH_EV02_1_Manual := FALSE ; +gH_EV03_Manual := FALSE ; +gH_EV04_Manual := FALSE ; + +gH_EV11_Auto := TRUE ; +gH_EV12_Auto := TRUE ; +gH_EV13_Auto := TRUE ; +gH_EV14_Auto := TRUE ; +gH_EV14_1_Auto := TRUE ; +gH_EV15_Auto := TRUE ; +gH_EV16_Auto := TRUE ; +gH_EV17_Auto := TRUE ; +gH_EV16_1_Auto := TRUE ; +gH_EV18_Auto := TRUE ; +gH_EV11_Manual := FALSE ; +gH_EV12_Manual := FALSE ; +gH_EV13_Manual := FALSE ; +gH_EV14_Manual := FALSE ; +gH_EV14_1_Manual := FALSE ; +gH_EV15_Manual := FALSE ; +gH_EV16_Manual := FALSE ; +gH_EV17_Manual := FALSE ; +gH_EV16_1_Manual := FALSE ; +gH_EV18_Manual := FALSE ; + +gH_EV21_Auto := TRUE ; +gH_EV22_Auto := TRUE ; +gH_EV23_Auto := TRUE ; +gH_EV23_1_Auto := TRUE ; +gH_EV24_Auto := TRUE ; +gH_EV25_Auto := TRUE ; +gH_EV26_Auto := TRUE ; +gH_EV27_Auto := TRUE ; +gH_EV28_Auto := TRUE ; +gH_EV21_Manual := FALSE ; +gH_EV22_Manual := FALSE ; +gH_EV23_Manual := FALSE ; +gH_EV23_1_Manual := FALSE ; +gH_EV24_Manual := FALSE ; +gH_EV25_Manual := FALSE ; +gH_EV26_Manual := FALSE ; +gH_EV27_Manual := FALSE ; +gH_EV28_Manual := FALSE ; + +gH_EV31_Auto := TRUE ; +gH_EV32_Auto := TRUE ; +gH_EV33_Auto := TRUE ; +gH_EV34_Auto := TRUE ; +gH_EV35_Auto := TRUE ; +gH_EV36_Auto := TRUE ; +gH_EV37_Auto := TRUE ; +gH_EV38_Auto := TRUE ; +gH_EV39_Auto := TRUE ; +gH_EV31_Manual := FALSE ; +gH_EV32_Manual := FALSE ; +gH_EV33_Manual := FALSE ; +gH_EV35_Manual := FALSE ; +gH_EV36_Manual := FALSE ; +gH_EV37_Manual := FALSE ; +gH_EV38_Manual := FALSE ; +gH_EV39_Manual := FALSE ; + +gH_EV40_Auto := TRUE ; +gH_EV41_Auto := TRUE ; +gH_EV42_Auto := TRUE ; +gH_EV43_Auto := TRUE ; +gH_EV44_Auto := TRUE ; +gH_EV45_Auto := TRUE ; +gH_EV46_Auto := TRUE ; +gH_EV47_Auto := TRUE ; +gH_EV48_Auto := TRUE ; +gH_EV49_Auto := TRUE ; +gH_EV40_Manual := FALSE ; +gH_EV41_Manual := FALSE ; +gH_EV42_Manual := FALSE ; +gH_EV43_Manual := FALSE ; +gH_EV44_Manual := FALSE ; +gH_EV45_Manual := FALSE ; +gH_EV46_Manual := FALSE ; +gH_EV47_Manual := FALSE ; +gH_EV48_Manual := FALSE ; +gH_EV49_Manual := FALSE ; + +gH_EV50_Auto := TRUE ; +gH_EV51_Auto := TRUE ; +gH_EV52_Auto := TRUE ; +gH_EV53_Auto := TRUE ; +gH_EV54_Auto := TRUE ; +gH_EV55_Auto := TRUE ; +gH_EV56_Auto := TRUE ; +gH_EV57_Auto := TRUE ; +gH_EV58_Auto := TRUE ; +gH_EV59_Auto := TRUE ; +gH_EV50_Manual := FALSE ; +gH_EV51_Manual := FALSE ; +gH_EV52_Manual := FALSE ; +gH_EV53_Manual := FALSE ; +gH_EV54_Manual := FALSE ; +gH_EV55_Manual := FALSE ; +gH_EV56_Manual := FALSE ; +gH_EV57_Manual := FALSE ; +gH_EV58_Manual := FALSE ; +gH_EV59_Manual := FALSE ; + +gH_EV61_Auto := TRUE ; +gH_EV62_Auto := TRUE ; +gH_EV63_Auto := TRUE ; +gH_EV64_Auto := TRUE ; +gH_EV65_Auto := TRUE ; +gH_EV66_Auto := TRUE ; +gH_EV67_Auto := TRUE ; +gH_EV68_Auto := TRUE ; +gH_EV69_Auto := TRUE ; +gH_EV61_Manual := FALSE ; +gH_EV62_Manual := FALSE ; +gH_EV63_Manual := FALSE ; +gH_EV64_Manual := FALSE ; +gH_EV65_Manual := FALSE ; +gH_EV66_Manual := FALSE ; +gH_EV67_Manual := FALSE ; +gH_EV68_Manual := FALSE ; +gH_EV69_Manual := FALSE ; + +gH_EV71_Auto := TRUE ; +gH_EV72_Auto := TRUE ; +gH_EV73_Auto := TRUE ; +gH_EV74_Auto := TRUE ; +gH_EV75_Auto := TRUE ; +gH_EV76_Auto := TRUE ; +gH_EV77_Auto := TRUE ; +gH_EV78_Auto := TRUE ; +gH_EV79_Auto := TRUE ; +gH_EV81_Auto := TRUE ; +gH_EV83_Auto := TRUE ; +gH_EV84_Auto := TRUE ; +gH_EV89_Auto := TRUE ; +gH_EV71_Manual := FALSE ; +gH_EV72_Manual := FALSE ; +gH_EV73_Manual := FALSE ; +gH_EV74_Manual := FALSE ; +gH_EV75_Manual := FALSE ; +gH_EV76_Manual := FALSE ; +gH_EV77_Manual := FALSE ; +gH_EV78_Manual := FALSE ; +gH_EV79_Manual := FALSE ; +gH_EV81_Manual := FALSE ; +gH_EV83_Manual := FALSE ; +gH_EV84_Manual := FALSE ; +gH_EV89_Manual := FALSE ; + +gH_P1_WaterPump_Auto := TRUE ; +gH_P2_SyrupPump_Auto := TRUE ; +gH_P3_ProductPump_Auto := TRUE ; +gH_P1_WaterPump_Manual := FALSE ; +gH_P2_SyrupPump_Manual := FALSE ; +gH_P3_ProductPump_Manual := FALSE; +gH_P4_VacuumPump_Auto := TRUE ; +gH_P4_VacuumPump_Manual :=FALSE ; +gH_P5_WaterPump_Auto := TRUE ; +gH_P5_WaterPump_Manual := FALSE ; +gH_P5_RinseTankPump_Auto := TRUE ; +gH_P5_RinseTankPump_Manual := FALSE ; +gH_P6_RecircPump_Auto := TRUE ; +gH_P6_RecircPump_Manual := FALSE ; +gH_SyrupRoomPump_Auto := TRUE; +gH_SyrupRoomPump_Manual := FALSE; + +gH_WaterValve_Auto := TRUE ; +gH_SyrupValve_Auto := TRUE ; +gH_CO2CarboValve_Auto := TRUE ; +gH_CO2PressValve_Auto := TRUE ; +gH_SyrupLevelValve_Auto := TRUE ; +gH_VEP_DeaireationValve_Auto := TRUE ; +gH_WaterTempValve_Man_Out_ON := FALSE ; +gH_ProdTempValve_Man_Out_ON := FALSE ; +gH_CIPTempValve_Man_Out_ON := FALSE ; + +gH_Blender_All_Auto := FALSE ; +END_ACTION + +ACTION _CIPMode_init: +_Blender_PID_Main._PID_Reset_Integral ; +END_ACTION + +ACTION _MFM_Command: +IF mResetWaterTot THEN + mWaterVFMCtrl := 1 ; +ELSE + mWaterVFMCtrl := 0 ; +END_IF + +IF mResetSyrupTot THEN + mSyrupMFMCtrl := 3 ; +ELSE + mSyrupMFMCtrl := 0 ; +END_IF + +IF mResetCO2Tot THEN + mCO2MFMCtrl := 3 ; +ELSE + mCO2MFMCtrl := 0 ; +END_IF + +IF mResetProductTot THEN + mProductMFMCtrl := 1 ; +ELSE + mProductMFMCtrl := 0 ; +END_IF + +CASE mWaterVFMCtrl OF + 1: gWaterTotCtrl_Node20 := 01; (* Reset Totalizer 1*) + + 2: gWaterTotCtrl_Node20 := 02 ; (* Preset Totalizer2 *) + +ELSE + gWaterTotCtrl_Node20 := 00; +END_CASE; + +CASE mSyrupMFMCtrl OF + 1: gSyrControl_Node21 := 01; (* Reset Totalizer 1*) + + 2: gSyrControl_Node21 := 02; (* Reset Totalizer 2*) + + 3: gSyrControl_Node21 := 03; (* Reset Totalizer 1& 2*) + + 4: gSyrControl_Node21 := 04; (* Zeropoint Adjust *) + + 5: gSyrControl_Node21 := 05; (* Positive Zero Return *) + + 6: gSyrControl_Node21 := 06; (* Negative Zero Return *) + +ELSE + gSyrControl_Node21 := 00; +END_CASE; + +CASE mCO2MFMCtrl OF + 1: gCO2Control_Node22 := 01; (* Reset Totalizer 1*) + + 2: gCO2Control_Node22 := 02; (* Reset Totalizer 2 *) + + 3: gCO2Control_Node22 := 03 ; (* Reset Totalizer 1 & 2*) + + 4: gCO2Control_Node22 := 04; (* Zeropoint Adjust *) + + 5: gCO2Control_Node22 := 05; (* Positive Zero Return *) + + 6: gCO2Control_Node22 := 06; (* Negative Zero Return *) + +ELSE + gCO2Control_Node22 := 00; +END_CASE; + +CASE mProductMFMCtrl OF + 1: gProductTotCtrl_Node17 := 01; (* Reset Totalizer 1*) + + 2: gProductTotCtrl_Node17 := 02 ; (* Preset Totalizer1 *) + +ELSE + gProductTotCtrl_Node17 := 00; +END_CASE; + +END_ACTION + +ACTION _ProductionMode_Init: +_Blender_PID_Main._PID_Reset_Integral ; +_Blender_Ctrl_Main.InitErrors() ; +gH_SyrupRunOutCount := 0.0 ; +END_ACTION + +ACTION CheckPersistantData: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSystem_Info.BootDataFlags +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPersistentDataLoadOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gSystem_Info.BootDataFlags +_EXPRESSION +_POSITIV +BYTE_TO_DWORD +_OPERAND +_EXPRESSION +_POSITIV +5 +_EXPRESSION +_POSITIV +GETBIT32 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gRetainDataLoadOk +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION InitErrors: +IF NOT gWaterRecipe THEN + gBlendError := gH_ProcessSetup_StartUpBrixExtraWater ; +ELSE + gBlendError := 0 ; +END_IF +IF gCarboStillRecipe OR gH_Blender_OPT_DoubleDeair THEN + gCarboCO2Error := gH_ProcessSetup_StartUpCO2ExtraWater * gActualRecipe_SP_Vol_CO2 * gActualRecipe_Vol_CO2_Fact ; +ELSE + gCarboCO2Error := 0 ; +END_IF +END_ACTION + +ACTION ManualActive: +_LD_BODY +_NETWORKS : 1 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 89 +_LD_CONTACT +gH_EV01_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV02_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV01_1_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV02_1_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV03_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV04_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV11_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV12_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV13_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV14_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV14_1_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV15_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV16_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV16_1_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV17_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV18_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV21_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV22_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV23_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV23_1_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV24_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV25_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV26_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV27_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV28_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV31_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV32_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV33_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV34_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV35_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV36_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV37_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV38_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV39_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV40_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV41_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV42_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV43_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV44_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV45_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV46_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV47_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV48_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV49_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV50_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV51_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV52_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV53_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV54_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV55_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV56_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV57_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV58_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV59_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV61_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV62_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV63_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV64_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV65_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV66_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV67_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV68_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV69_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV71_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV72_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV73_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV74_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV75_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV76_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV77_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV78_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_EV79_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_P1_WaterPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_P2_SyrupPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_P3_ProductPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_P4_VacuumPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_P5_WaterPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_P5_RinseTankPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_P6_RecircPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_SyrupRoomPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_WaterValve_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_SyrupValve_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CO2CarboValve_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_CO2PressValve_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_SyrupLevelValve_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_VEP_DeaireationValve_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_ProdTempValve_Man_Out_ON +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_WaterTempValve_Man_Out_ON +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_CIPTempValve_Man_Out_ON +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_ManualActive +_OUTPUT +_POSITIV +_NO_SET +gH_Message003 + +END_ACTION + +ACTION Reset_Sp_Word: +gSp_EV01 := FALSE ; +gSp_EV01_1 := FALSE ; +gSp_EV02 := FALSE ; +gSp_EV02_1 := FALSE ; +gSp_EV03 := FALSE ; +gSp_EV04 := FALSE ; +gSp_EV69 := FALSE ; +gSp_EV49 := FALSE ; +gSp_EV50 := FALSE ; +gSp_EV05 := FALSE ; +gSp_EV06 := FALSE ; +gSp_EV07 := FALSE ; +gSp_EV08 := FALSE ; +gSp_EV11 := FALSE ; +gSp_EV12 := FALSE ; +gSp_EV13 := FALSE ; +gSp_EV14 := FALSE ; +gSp_EV14_1 := FALSE ; +gSp_EV15 := FALSE ; +gSp_EV16 := FALSE ; +gSp_EV16_1 := FALSE ; +gSp_EV17 := FALSE ; +gSp_EV17_1 := FALSE ; +gSp_EV18 := FALSE ; +gSp_EV21 := FALSE ; +gSp_EV22 := FALSE ; +gSp_EV23 := FALSE ; +gSp_EV23_1 := FALSE ; +gSp_EV24 := FALSE ; +gSp_EV25 := FALSE ; +gSp_EV26 := FALSE ; +gSp_EV27 := FALSE ; +gSp_EV28 := FALSE ; +gSp_EV31 := FALSE ; +gSp_EV32 := FALSE ; +gSp_EV33 := FALSE ; +gSp_EV34 := FALSE ; +gSp_EV35 := FALSE ; +gSp_EV36 := FALSE ; +gSp_EV37 := FALSE ; +gSp_EV38 := FALSE ; +gSp_EV39 := FALSE ; +gSp_EV40 := FALSE ; +gSp_EV41 := FALSE ; +gSp_EV42 := FALSE ; +gSp_EV43 := FALSE ; +gSp_EV44 := FALSE ; +gSp_EV45 := FALSE ; +gSp_EV46 := FALSE ; +gSp_EV47 := FALSE ; +gSp_EV48 := FALSE ; +gSp_EV51 := FALSE ; +gSp_EV52 := FALSE ; +gSp_EV53 := FALSE ; +gSp_EV54 := FALSE ; +gSp_EV55 := FALSE ; +gSp_EV56 := FALSE ; +gSp_EV57 := FALSE ; +gSp_EV58 := FALSE ; +gSp_EV61 := FALSE ; +gSp_EV62 := FALSE ; +gSp_EV63 := FALSE ; +gSp_EV64 := FALSE ; +gSp_EV65 := FALSE ; +gSp_EV66 := FALSE ; +gSp_EV67 := FALSE ; +gSp_EV68 := FALSE ; +gSp_EV71 := FALSE ; +gSp_EV72 := FALSE ; +gSp_EV73 := FALSE ; +gSp_EV74 := FALSE ; +gSp_EV75 := FALSE ; +gSp_EV76 := FALSE ; +gSp_EV77 := FALSE ; +gSp_EV78 := FALSE ; +gSp_EV79 := FALSE ; +gSp_EV80 := FALSE ; +gSp_EV81 := FALSE ; +gSp_EV83 := FALSE ; +gSp_EV84 := FALSE ; +gSp_EV89 := FALSE ; + +gSp_P1 := FALSE ; +gSp_P2 := FALSE ; +gSp_P3 := FALSE ; +gSp_P4 := FALSE ; +gSp_P5 := FALSE ; +gSp_SyrRoomPump := FALSE ; +gSp_BldTankPress_En := FALSE ; +gSp_CarboPipe_En := FALSE ; +gSp_PID_Head_Manual := FALSE ; +gSp_PID_Head_Enable := FALSE ; +gSp_FillerProdLoad := FALSE ; +gSp_LimitCO2PressValve := FALSE ; +gSp_CIP_Temp_En := FALSE ; +gSp_CIP_CO2_Inj := FALSE ; +gSp_CIPRunning := FALSE ; +gSp_CIPDrainRequest := FALSE ; +gSp_CIPHotPhase := FALSE ; +gSp_CIPChangeSanitize := FALSE ; +END_ACTION + +ACTION SystemShutDown_DueToPowerFault: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_UPS_Siemens +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mPowerOffONS +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +DI_PowerSuppliesOk +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_SET +mPowerOff +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_PowerSuppliesOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +mPowerOff +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 6 +_LD_CONTACT +gET200_Node10_DP_Error +_EXPRESSION +_NEGATIV +_LD_CONTACT +gFC3102_Node1_DP_Error +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_LD_CONTACT +DI_PowerSuppliesOk +_EXPRESSION +_NEGATIV +_LD_CONTACT +mPowerOff +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayPowerOff +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#10ms +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_HMIShutdownRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_HMIShutdownRequest +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mDelayOffShutDown +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +t#3s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mShutDownRequest +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mSystemShutDown +_BOX_EXPR : 4 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gBlenderAMS_NET_ID +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +mShutDownRequest +_OPERAND +_EXPRESSION +_POSITIV +t#10s +_EXPRESSION +_POSITIV +NT_Shutdown +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +mShutDownError +_OUTPUT +_POSITIV +_NO_SET +mShutDownErrorCode +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mNTShutDownBusy +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Update_P_Word: +gP_EV01 := gSp_EV01 ; +gP_EV01_1 := gSp_EV01_1 ; +gP_EV02 := gSp_EV02 ; +gP_EV02_1 := gSp_EV02_1 ; +gP_EV03 := gSp_EV03 ; +gP_EV04 := gSp_EV04 ; +gP_EV69 := gSp_EV69 ; +gP_EV49 := gSp_EV49 ; +gP_EV50 := gSp_EV50 ; +gP_EV05 := gSp_EV05 ; +gP_EV06 := gSp_EV06 ; +gP_EV07 := gSp_EV07 ; +gP_EV08 := gSp_EV08 ; +gP_EV11 := gSp_EV11 ; +gP_EV12 := gSp_EV12 ; +gP_EV13 := gSp_EV13 ; +gP_EV14 := gSp_EV14 ; +gP_EV14_1 := gSp_EV14_1 ; +gP_EV15 := gSp_EV15 ; +gP_EV16 := gSp_EV16 ; +gP_EV16_1 := gSp_EV16_1 ; +gP_EV17 := gSp_EV17 ; +gP_EV17_1 := gSp_EV17_1 ; +gP_EV18 := gSp_EV18 ; +gP_EV21 := gSp_EV21 ; +gP_EV22 := gSp_EV22 ; +gP_EV23 := gSp_EV23 ; +gP_EV23_1 := gSp_EV23_1 ; +gP_EV24 := gSp_EV24 ; +gP_EV25 := gSp_EV25 ; +gP_EV26 := gSp_EV26 ; +gP_EV27 := gSp_EV27 ; +gP_EV28 := gSp_EV28 ; +gP_EV31 := gSp_EV31 ; +gP_EV32 := gSp_EV32 ; +gP_EV33 := gSp_EV33 ; +gP_EV34 := gSp_EV34 ; +gP_EV35 := gSp_EV35 ; +gP_EV36 := gSp_EV36 ; +gP_EV37 := gSp_EV37 ; +gP_EV38 := gSp_EV38 ; +gP_EV39 := gSp_EV39 ; +gP_EV40 := gSp_EV40 ; +gP_EV41 := gSp_EV41 ; +gP_EV42 := gSp_EV42 ; +gP_EV43 := gSp_EV43 ; +gP_EV44 := gSp_EV44 ; +gP_EV45 := gSp_EV45 ; +gP_EV46 := gSp_EV46 ; +gP_EV47 := gSp_EV47 ; +gP_EV48 := gSp_EV48 ; +gP_EV51 := gSp_EV51 ; +gP_EV52 := gSp_EV52 ; +gP_EV53 := gSp_EV53 ; +gP_EV54 := gSp_EV54 ; +gP_EV55 := gSp_EV55 ; +gP_EV56 := gSp_EV56 ; +gP_EV57 := gSp_EV57 ; +gP_EV58 := gSp_EV58 ; +gP_EV61 := gSp_EV61 ; +gP_EV62 := gSp_EV62 ; +gP_EV63 := gSp_EV63 ; +gP_EV64 := gSp_EV64 ; +gP_EV65 := gSp_EV65 ; +gP_EV66 := gSp_EV66 ; +gP_EV67 := gSp_EV67 ; +gP_EV68 := gSp_EV68 ; +gP_EV71 := gSp_EV71 ; +gP_EV72 := gSp_EV72 ; +gP_EV73 := gSp_EV73 ; +gP_EV74 := gSp_EV74 ; +gP_EV75 := gSp_EV75 ; +gP_EV76 := gSp_EV76 ; +gP_EV77 := gSp_EV77 ; +gP_EV78 := gSp_EV78 ; +gP_EV79 := gSp_EV79 ; +gP_EV80 := gSp_EV80 ; +gP_EV81 := gSp_EV81 ; +gP_EV83 := gSp_EV83 ; +gP_EV84 := gSp_EV84 ; +gP_EV89 := gSp_EV89 ; +gP_P1 := gSp_P1 ; +gP_P2 := gSp_P2 ; +gP_P3 := gSp_P3 ; +gP_P4 := gSp_P4 ; +gP_P5 := gSp_P5 ; +gP_SyrRoomPump := gSp_SyrRoomPump ; +gP_BldTankPress_En := gSp_BldTankPress_En ; +gP_CarboPipe_En := gSp_CarboPipe_En ; +gP_PID_Head_Manual := gSp_PID_Head_Manual ; +gP_PID_Head_Enable := gSp_PID_Head_Enable ; +gP_FillerProdLoad := gSp_FillerProdLoad ; +gP_LimitCO2PressValve := gSp_LimitCO2PressValve ; +gP_CIP_Temp_En := gSp_CIP_Temp_En ; +gP_CIP_CO2_Inj := gSp_CIP_CO2_Inj ; +gP_CIPRunning := gSp_CIPRunning ; +gP_CIPDrainRequest := gSp_CIPDrainRequest ; +gP_CIPHotPhase := gSp_CIPHotPhase ; +gP_CIPChangeSanitize := gSp_CIPChangeSanitize ; +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/_BLENDER_PID_MAIN.EXP b/backend/script_groups/TwinCat/.example/_BLENDER_PID_MAIN.EXP new file mode 100644 index 0000000..8432cad --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_BLENDER_PID_MAIN.EXP @@ -0,0 +1,1169 @@ + +(* @PATH := '\/TASK1_PID\/PID_Controllers' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM _Blender_PID_Main +VAR CONSTANT + mBP_H2O : REAL := 200 ; + mBP_SYR : REAL := 200 ; + mBP_CO2 : REAL := 200 ; +END_VAR + +VAR + mSlewOk : BOOL ; + mWaterFlowSlewValveSav : REAL ; + mWaterFlowSlewMFMSav : REAL ; + mWaterFlowSlewCycleCount : REAL ; + mSyrupFlowSlewMFM : REAL ; + mStopErrorsTimeOut : TON ; + mCriticalBlendingTOF : TOF ; + mCriticalBlending : BOOL ; + mFirstProdBlendErrEnTON : TON ; + mPrevRecipeName : STRING ; + mWaterFF_SlewLimit : SlewLimit ; + mCarboCO2Error : REAL ; + mSyrFact : REAL ; + mProdTotalizerLt : Integral ; + mProdSimLt : REAL ; + mTargetProdSlwd : SlewLimit ; + mTargetFillerProdSlwd : SlewLimit ; + mTargetProdSlewOut : REAL ; + mTargetRatioSlwd : SlewLimit ; + mTargetRatioSlewOut : REAL ; + mAuxONS : R_TRIG ; + mAux1ONS : R_TRIG ; + mProdBrixFlowFlt : LowPassFilter ; + mProdBrixFlowF : REAL ; + mPressCO2Flow : REAL ; + mPressCO2Total : REAL ; + mTemp : REAL ; + mPtr : POINTER TO REAL ; + + mH2OKpLimit : SlewLimit ; + mH2OKp : REAL ; + + mSyrKpLimit : SlewLimit ; + mSyrKp : REAL ; + + mCO2DevStdFlt : LowPassFilter ; + mCO2DevStdFOut : REAL ; + mCO2DevStdInt : INT ; + mCO2KpLimit : SlewLimit ; + mCO2Kp : REAL ; + + mWaterMaxFlow : REAL ; + mWaterMinFlow : REAL ; + mSyrupMaxFlow : REAL ; + mSyrupMinFlow : REAL ; + mMinRatio : REAL ; + mMaxRatio : REAL ; + mBevBrixMax : REAL ; + mBevBrixMin : REAL ; + mBevBrixDelta : REAL ; + + mCalc : REAL ; + + mBlendErrorRecTmr : TON ; + mCarboErrorRecTmr : TON ; + mBlendErrorSav : REAL ; + mCarboErrorSav : REAL ; + mSP_SYR_Flow : REAL; + mTargetSyrupLvlSlwd : SlewLimit; +END_VAR + + +(* @END_DECLARATION := '0' *) +Init_PID_Parameters; +_PID_Check; +_PID_SP_Calc; +_PID_FF_Calc ; +BlendingFault ; +NotARecipeCheck ; + + +gManual_PID_TempWater := gH_WaterTempValve_Man_Out_ON ; +IF gManual_PID_TempWater THEN + gManual_Value_TempWater := gH_WaterTempValve_Out_Man_Value ; +ELSE + gH_WaterTempValve_Out_Man_Value := gR_Out_TempWater_PID ; +END_IF + +gManual_PID_TempProd := gH_ProdTempValve_Man_Out_ON ; +IF gManual_PID_TempProd THEN + gManual_Value_TempProd := gH_ProdTempValve_Out_Man_Value ; +ELSE + gH_ProdTempValve_Out_Man_Value := gR_Out_TempProd_PID ; +END_IF + +gManual_PID_CIPTemp := gH_CIPTempValve_Man_Out_ON ; +IF gManual_PID_CIPTemp THEN + gManual_Value_CIPTemp := gH_CIPTempValve_Out_Man_Value ; +ELSE + gH_CIPTempValve_Out_Man_Value := gR_Out_CIPTemp_PID ; +END_IF + +gManual_PID_SYR_Level := NOT gH_SyrupLevelValve_Auto ; +IF gManual_PID_SYR_Level THEN + gManual_Value_SYR_Level := gH_SyrupLevelValve_Manual ; +ELSE + gH_SyrupLevelValve_Manual := gR_Out_SYR_Level_PID ; +END_IF +(*IF gSyrupTankLoading THEN + gManual_PID_SYR_Level := TRUE ; + gManual_Value_SYR_Level := gSyrupTank_ValveOV_Loading ; +END_IF*) + +IF NOT gH_VEP_DeaireationValve_Auto THEN + gOutDeaireationValve := gH_VEP_DeaireationValve_Manual ; +ELSE + IF gBlenderProdMode AND NOT gH_Blender_OPT_Flowtronic THEN + IF gDeairFlow_SP > 0 THEN + IF gH_EV28_Status THEN + gOutDeaireationValve := DeaireationValve(in_DeaireationFlow:= gDeairFlow_SP, in_InletPressure:= gCO2InjPressure, in_FlowCoefficient:= gH_ProcessSetup_DeaireationKVValve); + ELSE + gOutDeaireationValve := DeaireationValve(in_DeaireationFlow:= gDeairFlow_SP, in_InletPressure:= gActualRecipe_SP_Tank_Press, in_FlowCoefficient:= gH_ProcessSetup_DeaireationKVValve); + END_IF + ELSE + gOutDeaireationValve := 0.0 ; + END_IF + ELSIF gBlenderProdMode AND gH_Blender_OPT_Flowtronic THEN + gOutDeaireationValve := gIn_DeairFlow_PV * 100.0 / 500.0; + END_IF + gH_VEP_DeaireationValve_Manual := gOutDeaireationValve ; +END_IF + +IF NOT gH_Blender_OPT_Simulation THEN + gPressCO2_PV := gProductTankPress ; +END_IF +IF gBlenderProdMode THEN + IF gH_Blender_OPT_Simulation THEN + IF gPID_PressCO2_Enabled THEN + IF NOT gPID_PressCO2_Release THEN + mPressCO2Flow := ValveFlow(i_DeltaP:= (gR_PressCO2_SP - gPressCO2_PV),i_ValveOp:=gR_Out_PressCO2_PID ,i_KFF:=1100.5, i_Dens:=gCO2_Density / 1000 ) ; + mPressCO2Total := mPressCO2Total + (mPressCO2Flow * gPIDPressCO2_CycleTime * 60) ; + ELSE + mPressCO2Total := mPressCO2Total - ValveFlow(i_DeltaP:= gPressCO2_PV,i_ValveOp:=9 ,i_KFF:=20, i_Dens:=gCO2_Density / 1000 ); + END_IF + END_IF + IF gH_EV12_Status THEN + mPressCO2Total := mPressCO2Total - ValveFlow(i_DeltaP:= gPressCO2_PV,i_ValveOp:=2 ,i_KFF:=20, i_Dens:=gCO2_Density / 1000 ); + END_IF + IF gProdTankVolume>0 AND mProdSimLtgProdTankBottomVol THEN + gProductTankLevel := ((mProdSimLt - gProdTankBottomVol) / (gProdTankVolume - gProdTankBottomVol)) * 100 ; + END_IF +(* Filler Product Compsumtion simulation *) + ELSE + ; + END_IF (* End of IF gH_Blender_OPT_Simulation then... *) +(* Transfer the Flowrate Measure to the PID's PV Input *) + gH2O_Flow_PV := gH2O_Flow_Meas ; + gSYR_Flow_PV := gSYR_Flow_Meas ; + gCO2_Flow_PV := gCO2_Flow_Meas ; + + IF gBlenderStableFlow AND (gH2O_Flow_Meas<50) THEN + gWaterFlowTooLow := TRUE ; + ELSE + gWaterFlowTooLow := FALSE ; + END_IF + +(* Calculates the actual product brix from Flows *) + IF gH2O_Flow_Meas<>0 AND gSYR_Flow_Meas<>0 THEN + mProdBrixFlowF := (gSYR_Flow_Meas * gActualSyrupBrix) / (gH2O_Flow_Meas + gSYR_Flow_Meas) ; + mProdBrixFlowFlt(i_Value:=mProdBrixFlowF,i_Num:=49, i_Enable:=gBlenderBlending) ; + gFlowProdBrix := mProdBrixFlowFlt.FilterOut ; + END_IF + + IF (gR_H2O_SP + gR_SYR_SP)<>0 AND gActualSyrupDens<>0 THEN + gProductDensity := (gR_H2O_SP + gR_SYR_SP) / (gR_H2O_SP + gR_SYR_SP / gActualSyrupDens) ; + END_IF + +(* PID's Manual Bit *) + gManual_PID_H2O := NOT gH_WaterValve_Auto ; + gManual_PID_SYR := NOT gH_SyrupValve_Auto ; + gManual_PID_CO2 := NOT gH_CO2CarboValve_Auto ; + + IF gManual_PID_H2O THEN + gManual_Value_H2O := gH_WaterValve_Manual ; + ELSE + gH_WaterValve_Manual := gR_Out_H2O_PID ; + END_IF + IF (gProdPipeRunOut_Running OR gProdTankRunOut_Running) AND gProdPipeRunOutWaterCountEn (*AND gH_Blender_OPT_FastChangeOverEnabled *)THEN + gManual_PID_H2O := TRUE ; + gManual_Value_H2O := gH2OOpenInProdPipeRunOut ; + END_IF + + IF gManual_PID_SYR THEN + gManual_Value_SYR := gH_SyrupValve_Manual ; + ELSE + gH_SyrupValve_Manual := gR_Out_SYR_PID ; + END_IF + IF (gProdPipeRunOut_Running OR gProdTankRunOut_Running) AND gProdPipeRunOutWaterCountEn (*AND gH_Blender_OPT_FastChangeOverEnabled *)THEN + gManual_PID_SYR := TRUE ; + gManual_Value_SYR := gSyrupValveProdPipeRunOut ; + END_IF + + IF gManual_PID_CO2 THEN + gManual_Value_CO2 := gH_CO2CarboValve_Manual ; + ELSE + gH_CO2CarboValve_Manual := gR_Out_CO2_PID ; + END_IF + gManual_PID_PressCO2 := NOT gH_CO2PressValve_Auto ; + IF gManual_PID_PressCO2 THEN + gManual_Value_PressCO2 := gH_CO2PressValve_Manual ; + ELSE + gH_CO2PressValve_Manual := gR_Out_PressCO2_PID ; + END_IF + + IF gBlenderBlending THEN + IF mWaterFlowSlewCycleCount>0 AND NOT mSlewOk THEN + gWaterFlowSlewValve := gR_Out_H2O_PID / mWaterFlowSlewCycleCount ; + gWaterFlowSlewMFM := gMFM_WaterFlow / mWaterFlowSlewCycleCount ; + mSyrupFlowSlewMFM := gMFM_Syrup1Flow / mWaterFlowSlewCycleCount ; + mWaterFlowSlewCycleCount := gPID_Cycle_Time + mWaterFlowSlewCycleCount ; + IF gWaterFlowSlewMFM>mWaterFlowSlewMFMSav THEN + mSlewOk := TRUE ; + END_IF + mWaterFlowSlewMFMSav := gWaterFlowSlewMFM ; + ELSE + mWaterFlowSlewCycleCount := gPID_Cycle_Time + mWaterFlowSlewCycleCount ; + END_IF + ELSE + mWaterFlowSlewMFMSav := 0.0 ; + mWaterFlowSlewCycleCount := 0.0 ; + gWaterFlowSlewValve := 0.0 ; + gWaterFlowSlewMFM := 0.0 ; + mSyrupFlowSlewMFM := 0.0 ; + mSlewOk := FALSE ; + END_IF + + IF gSYR_Flow_Meas>0 AND gActualSyrupDens<>0 THEN + gActual_Ratio := gH2O_Flow_Meas / gSYR_Flow_Meas * gActualSyrupDens ; + END_IF + + IF gH2O_Flow_Meas>0 AND gCO2_Density<>0 AND gActualSyrupDens<>0 THEN + gActual_CO2_Vol := (gCO2_Flow_Meas / gCO2_Density) / (gH2O_Flow_Meas + (gSYR_Flow_Meas / gActualSyrupDens)) ; + END_IF + + IF gWaterVFM_Area<>0 THEN + gWaterSpeedToStopError := gH2O_Flow_Meas / gWaterVFM_Area / 10.0 / 60.0 ; (* m/s *) + gWaterVFM_Vel := gSP_H2O / gWaterVFM_Area / 10.0 / 60.0 ; (* m/s *) + END_IF + mStopErrorsTimeOut(PT := t#10s, IN := NOT gBlenderBlending) ; + IF gWaterSpeedToStopError>gWaterVFM_MinVel AND NOT mStopErrorsTimeOut.Q THEN + gStopBlendCarboError := FALSE ; + ELSE + gStopBlendCarboError := TRUE ; + END_IF + IF gWaterVFM_Vel>gWaterVFM_MinVel THEN + gWaterSpeedToStop := FALSE ; + ELSE + gWaterSpeedToStop := TRUE ; + END_IF + IF gWaterPipe_Area<>0 THEN + gWaterPipe_Vel := gH2O_Flow_Meas / gWaterPipe_Area / 10.0 / 60.0 ; (* m/s *) + END_IF + IF gBlenderStableFlow AND (gWaterPipe_Vel<0.6) AND gH_Blender_OPT_CarboPresent THEN + gWaterSpeedTooLow := TRUE ; + ELSE + gWaterSpeedTooLow := FALSE ; + END_IF +(************************************************************************************************************************) +(* Calculates blend error *) + IF gActualSyrupDens<>0 THEN + gSyrupVolFlow_PV := gSYR_Flow_PV / gActualSyrupDens ; + END_IF + IF gWaterRecipe THEN + gBlendError := 0.0 ; + END_IF + IF gBlendErrorEn AND gActualSyrupDens<>0 THEN + IF gFirstProd_Latch AND gSugarBeverage THEN + IF gActualRecipe_Syrup_Brix<>0 THEN + mSyrFact := gMeterSyrBrix / gActualRecipe_Syrup_Brix ; + END_IF + gBlendErrorInt.i_NewValue := (gH2O_Flow_PV + ((1 - mSyrFact) * gSyrupVolFlow_PV) - gSyrupVolFlow_PV * mSyrFact * gActualSP_RatioVol) / 60 ; + gBlendErrorInt.i_IntCycle := gPID_Cycle_Time ; + gBlendErrorInt(Out_Integral:=gBlendError); + ELSE + gBlendErrorInt.i_NewValue:=(gH2O_Flow_PV - (gSYR_Flow_PV / gActualSyrupDens) * gActualSP_RatioVol) / 60 ; + gBlendErrorInt.i_IntCycle := gPID_Cycle_Time ; + gBlendErrorInt(Out_Integral:=gBlendError) ; + END_IF + ELSE +(* gBlendErrorInt(Out_Integral:=gBlendError);*) ; + END_IF + + IF gCarboCO2ErrorEn THEN + gCarboCO2ErrorInt.i_NewValue:=((gActual_Prod_Flow * gActual_SP_CO2) - gCO2_Flow_Meas) / 60 ; + gCarboCO2ErrorInt.i_IntCycle := gPID_Cycle_Time ; + gCarboCO2ErrorInt(Out_Integral:=gCarboCO2Error) ; + ELSE +(* gCarboCO2ErrorInt(Out_Integral:=gCarboCO2Error);*) ; + END_IF + + IF gBlenderRinseMode THEN + gManual_PID_H2O := TRUE; + gManual_Value_H2O := gH_ProcessSetup_RinseWaterValveOV; + gManual_PID_SYR := TRUE; + gManual_Value_SYR := gH_ProcessSetup_RinseSyrupValveOV; + IF gRinseDrainRunning AND NOT gH_Blender_OPT_FastChangeOverEnabled THEN + gManual_PID_PressCO2 := TRUE ; + gManual_Value_PressCO2 := gRinseDrainOpeningPressValve ; + END_IF + END_IF + gR_CIPTemp_SP := 0.0 ; +ELSE (* CIP *) + gR_CIPTemp_SP := gCIP_SPTemperature + gCIP_SP_DeltaT ;(* Increasing Real Temperature Set Point *) + + gR_PressCO2_SP := 0.0 ; + gPID_PressCO2_Release := TRUE ; + gManual_PID_PressCO2 := TRUE ; + gManual_Value_PressCO2 := 0.0 ; + + gManual_PID_H2O := TRUE; + IF gH_CIP_SyrTankFloodRun OR NOT gOut_WaterPumpRun THEN + gManual_Value_H2O := 0.0 ; + ELSE + gManual_Value_H2O := gH_ProcessSetup_CIPWaterValveOV; + END_IF + + gManual_PID_SYR := TRUE; + IF gH_CIP_SyrTankFloodRun THEN + gManual_Value_SYR := 0.0 ; + ELSE + gManual_Value_SYR := gH_ProcessSetup_CIPSyrupValveOV; + END_IF + + gManual_PID_CO2 := TRUE; + IF gP_CIP_CO2_Inj THEN + gManual_Value_CO2 := gCIP_CO2_InjectionValue; + ELSE + gManual_Value_CO2 := 0.0; + END_IF + + IF gH_Blender_OPT_Simulation THEN + mPressCO2Total := 0.0 ; + mProdSimLt := 0.0 ; + gProductTankLevel := 0.0 ; + END_IF +END_IF + +IF gFastChangeOverActivated THEN + mAux1ONS(CLK:=gLoadNextRecipe) ; +ELSE + gLoadNextRecipe := FALSE ; +END_IF +IF mAux1ONS.Q THEN + _Blender_PID_Main.NextRecipe ; + _Blender_PID_Main.Actual_Recipe_Load ; + gLoadNextRecipe := FALSE ; +END_IF +mAuxONS(CLK:=gH_A_Recipe_Transfer) ; +IF mAuxONS.Q THEN + Actual_Recipe_Load ; +END_IF +gH_A_Recipe_Transfer := FALSE; + +gCIPTemp_PV := gCIPHeaterTemp_PV ; +gTempWater_PV := gWaterTemperature ; +gTempProd_PV := gProductTemperature ; +gSYR_Level_PV := gSyrupTankLevel ; + +(* Call PID Blocks *) +Blender_PID_Ctrl_Loop(); +FlowMeter_Error() ; +TestFlowmeters(); +END_PROGRAM +ACTION _PID_Check: +gSystem_Task_Info := SystemTaskInfoArr; +gSystem_Info := systeminfo; + +gPID_Cycle_Time := UDINT_TO_REAL (gSystem_Task_Info [2].cycleTime) / 10000; +gPID_Cycle_Time := gPID_Cycle_Time / 1000; + +IF gPID_Cycle_Time = 0 THEN + gTask_Cycle_Alarm := TRUE; +ELSE + gTask_Cycle_Alarm := FALSE; +END_IF +END_ACTION + +ACTION _PID_FF_Calc: +gWaterFrictionLoss := FrictionLoss(i_Flow:=gSP_H2O, i_K:= gH_ProcessSetup_KWaterLoss, i_Dens:=gH2O_Density) ; +IF gWaterFrictionLoss>gH_ProcessSetup_WaterPumpPressure THEN + gWaterFrictionLoss := gH_ProcessSetup_WaterPumpPressure ; +ELSIF gWaterFrictionLoss<0 THEN + gWaterFrictionLoss := 0.0 ; +END_IF +gSyrupFrictionLoss := FrictionLoss(i_Flow:=gSP_SYR, i_K:= gH_ProcessSetup_KSyrupLoss, i_Dens:=gActualSyrupDens) ; +IF gSyrupFrictionLoss>gH_ProcessSetup_SyrupPumpPressure THEN + gSyrupFrictionLoss := gH_ProcessSetup_SyrupPumpPressure ; +ELSIF gSyrupFrictionLoss<0 THEN + gSyrupFrictionLoss := 0.0 ; +END_IF + +IF gBlenderBlending THEN + IF gPID_H2O_Enabled THEN + IF gEqPressSelected THEN + gWaterValveDeltaP := gH_ProcessSetup_WaterPumpPressure - gWaterFrictionLoss - gPressCO2_PV ; + ELSE + gWaterValveDeltaP := gH_ProcessSetup_WaterPumpPressure - gWaterFrictionLoss - gActualRecipe_SP_Tank_Press ; + END_IF + IF gBlenderStableFlow THEN +(* 100% / 12.5 sec = 8 %/sec slew limit to Water PID Feed Forward *) + mWaterFF_SlewLimit(i_InValue:=FeedForward(i_Flow:=gSP_H2O ,i_KFF:=gH_ProcessSetup_FFWaterPID, i_Delta_P:=gWaterValveDeltaP), i_SlewMax:= 8, i_Cycle := gPID_Cycle_Time,out := gR_FF_to_H2O_PID) ; + ELSE + gR_FF_to_H2O_PID := FeedForward(i_Flow:=gSP_H2O ,i_KFF:=gH_ProcessSetup_FFWaterPID, i_Delta_P:=gWaterValveDeltaP) ; + END_IF + gH_WaterValveFFOut := gR_FF_to_H2O_PID ; + IF NOT gModValveRiseTimeCalcEn THEN + gModValveRiseTimeCalcEn:= TRUE ; + gH2OValveRiseUpTime := REAL_TO_INT(gR_FF_to_H2O_PID / 18) ; + END_IF + END_IF +ELSE + gR_FF_to_H2O_PID := 0.0 ; + gModValveRiseTimeCalcEn := FALSE ; +END_IF + +IF gBlenderBlending THEN + IF gPID_SYR_Enabled THEN + IF gFirstProd_Latch THEN + gSyrupValveDeltaP := gH_ProcessSetup_SyrupPumpPressure - gSyrupFrictionLoss - gPressCO2_PV ; + ELSE + gSyrupValveDeltaP := gH_ProcessSetup_SyrupPumpPressure - gSyrupFrictionLoss - gActualRecipe_SP_Tank_Press ; + END_IF + gR_FF_to_SYR_PID := FeedForward(i_Flow:=gSP_SYR ,i_KFF:=gH_ProcessSetup_FFSyrupPID ,i_Delta_P:= gSyrupValveDeltaP) ; + gH_SyrupValveFFOut := gR_FF_to_SYR_PID ; + END_IF +ELSE + gR_FF_to_SYR_PID := 0.0 ; +END_IF + +IF gBlenderBlending OR gP_CarboPipe_En THEN + IF gPID_CarboCO2_Enabled THEN + gCarboCO2ValveDeltaP := gH_ProcessSetup_CarboCO2Pressure - gH_ProcessSetup_WaterPumpPressure ; +(* gCarboCO2ValveDeltaP := gCO2InjPressure - gH_ProcessSetup_WaterPumpPressure ; *) +(* IF gBlenderStableFlow THEN*) + gR_FF_to_CO2_PID := FeedForward(i_Flow:=gSP_CO2 ,i_KFF:=gH_ProcessSetup_FFCarboCO2PID ,i_Delta_P:=gCarboCO2ValveDeltaP ) ; +(* ELSE + gR_FF_to_CO2_PID := FeedForward(i_Flow:=(gActual_SP_CO2 * gActual_Prod_SP) ,i_KFF:=gH_ProcessSetup_FFCarboCO2PID ,i_Delta_P:=gCarboCO2ValveDeltaP ) ; + END_IF*) + IF gR_FF_to_CO2_PID<0 THEN + gR_FF_to_CO2_PID := 0; + END_IF + gH_carboCO2ValveFFOut := gR_FF_to_CO2_PID ; + END_IF +ELSE + gR_FF_to_CO2_PID := 0.0 ; +END_IF + +IF gBlenderBlending THEN + mSP_SYR_Flow := gSP_SYR ; +ELSIF gSyrLineMFMPrep_Latch OR gSyrMFMStartUp_Latch THEN + mSP_SYR_Flow := gSyrupTank_FirstProductionRate ; +ELSE + mSP_SYR_Flow := 0.0 ; +END_IF +IF gBlenderBlending OR gSyrLineMFMPrep_Latch OR gSyrMFMStartUp_Latch THEN + IF gPID_SYRLevel_Enabled THEN + gR_FF_to_SYR_Level_PID := FeedForward(i_Flow:=mSP_SYR_Flow ,i_KFF:=gH_ProcessSetup_FFSyrupLevelPID ,i_Delta_P:= gH_ProcessSetup_SyrupLinePressure) ; + gH_SyrupLevelValveFFOut := gR_FF_to_SYR_Level_PID ; + END_IF +ELSE + gR_FF_to_SYR_Level_PID := 0.0 ; +END_IF + +IF gGencoldChillerEn AND gCoolerEnabled THEN + gR_FF_TempWater_PID := 100 - CVQ_1p7_8_Perc(gR_TempWater_SP) ; + gR_FF_TempProd_PID := 100 - CVQ_1p7_8_Perc(gR_TempProd_SP) ; +ELSE + gR_FF_TempWater_PID := 0 ; + gR_FF_TempProd_PID := 0 ; +END_IF +END_ACTION + +ACTION _PID_Reset_Integral: +gI_ITLVAL_H2O := 0.0 ; +gH2OPIDIntValue := 0.0 ; +gI_ITL_PID_H2O := TRUE ; + +gI_ITLVAL_SYR := 0.0 ; +gSyrupPIDIntValue := 0.0 ; +gI_ITL_PID_SYR := TRUE ; + +gI_ITLVAL_CO2 := 0.0 ; +gCarboCO2PIDIntValue := 0.0; +gI_ITL_PID_CO2 := TRUE ; + +gI_ITLVAL_PressCO2 := 0.0 ; +gI_ITL_PID_PressCO2 := TRUE ; + +gI_ITLVAL_SYR_Level := 0.0 ; +gI_ITL_PID_SYR_Level := TRUE ; + +gI_ITL_PID_TempProd := TRUE ; +gI_ITLVAL_TempProd := 0.0 ; + +gI_ITL_PID_TempWater := TRUE ; +gI_ITLVAL_TempWater := 0.0 ; +END_ACTION + +ACTION _PID_SP_Calc: +gActualRecipe_SP_MaxDeltaBrix := gH_Blender_OPT_MaxSyrDeltaBrix ; +IF gH_Blender_OPT_BrixMeter AND gH_A_Recipe_ProdMeterHighBrix>gActualRecipe_Beverage_Brix AND gAlwaysOff THEN + mBevBrixDelta := (gH_A_Recipe_ProdMeterHighBrix - gActualRecipe_Beverage_Brix) / 2.0 ; +ELSE +(* mBevBrixDelta := 0.1 ; Pepsico Vitoria Plant - New Eurostar 2000 140 Valves *) + mBevBrixDelta := 0.06 ; (* Coca Cola Begano Plant - New Starcans 2000 91 Valves *) +END_IF +IF gSugarBeverage AND gActualSyrupBrix<>0 THEN + IF gFirstProd_Latch THEN + gActualSyrupPerc := (gActualRecipe_Beverage_Brix + gActualRecipe_Bev_Brix_Offset + gFirstProdExtraBrix) / gActualSyrupBrix ; + ELSE + gActualSyrupPerc := (gActualRecipe_Beverage_Brix + gActualRecipe_Bev_Brix_Offset + gBrixTrackingCorr) / gActualSyrupBrix ; + END_IF +ELSE + IF gFirstProd_Latch THEN + gActualSyrupPerc := 1 / (gH_A_Recipe_Ratio + 1 ) + gFirstProdDietExtraSyr ; (* During First Production: syrup injection 1.2% more *) + ELSE + gActualSyrupPerc := 1 / (gH_A_Recipe_Ratio + 1 ) ; + END_IF +END_IF +IF gWaterRecipe THEN + gActualWaterPerc := 1.0 ; + gActualSyrupPerc := 0.0 ; +ELSE + gActualWaterPerc := 1 - gActualSyrupPerc ; +END_IF +IF gActualSyrupPerc<> 0 THEN + IF gActualSyrupDens>0.99 AND NOT gSugarBeverage THEN + gActual_RatioM := gActualWaterPerc / (gActualSyrupPerc * gActualSyrupDens) ; + ELSE + gActual_RatioM := gActualWaterPerc / gActualSyrupPerc ; + END_IF +END_IF +IF gH2O_Density<>0 THEN + gActualSP_RatioVol := gActual_RatioM * gActualSyrupDens / gH2O_Density ; +END_IF +IF gActualSP_RatioVol=0 THEN + gActualSP_RatioVol := 0.01 ; +END_IF + +IF gModValveFullStrokeTime<>0 THEN + gBlenderProdSlewMax := gBlenderNomSpeed / gModValveFullStrokeTime ; + mPtr := ADR(gProductionSlewRate) ; + IF gProductionSlewRate>gBlenderProdSlewMax THEN + mPtr^ := gBlenderProdSlewMax ; + END_IF +END_IF + +(* Limit the minimum and maximum recipe Production Rate *) +IF gActual_Prod_SP > gBlenderNomSpeed THEN + gActual_Prod_SP := gBlenderNomSpeed ; +END_IF +IF gActual_Prod_SP < gH_ProcessSetup_MinProduction AND NOT gBlenderRun_Wait THEN + gActual_Prod_SP := gH_ProcessSetup_MinProduction ; +END_IF + +IF gBlenderProdMode THEN +(* Calculates the CO2 Equilibrium Pressure plus 0.5 Atm, to Pressurize Product Tank *) + IF gCarboStillRecipe OR gH_Blender_OPT_DoubleDeair THEN + gCO2EqPressure := LIMIT (0, CO2EqPress(i_CO2Vol := gActualRecipe_SP_Vol_CO2 * gFirstProdExtraCO2Fact * gActualRecipe_Vol_CO2_Fact , i_Temp:=gActualRecipe_SP_Prod_Temp ), gActualRecipe_SP_Tank_Press) + 0.3 ; + ELSE + gCO2EqPressure := gActualRecipe_SP_Tank_Press ; + END_IF + +(* Transfer the Set Point to the PID's SP Input *) + IF gBlenderRinseMode OR (gProdTankDrain_Latch AND (gSyrRunOut_Done OR NOT gFirstProdLatched)) THEN + gR_PressCO2_SP := gH_ProcessSetup_RinseProdTankPress ; + ELSIF NOT gWaitLevelToHold_TankPress AND (NOT gFirstProd_Done OR (gFirstProd_Done AND NOT (gProdTankRunOut_Latch OR gProdTankRunOut_Done OR gProdPipeRunOut_Done))) THEN + gR_PressCO2_SP := gCO2EqPressure ; + ELSE + gR_PressCO2_SP := gActualRecipe_SP_Tank_Press ; + END_IF + + IF gFirstProd_Latch AND NOT gBlenderRun_Wait THEN (* During First Production set minimum speed *) + gActual_Prod_SP := gH_ProcessSetup_MinProduction * gFirstProdSpeedGain ; + END_IF + IF gBlenderStartPumps AND NOT gBlenderBlending AND gEnRampDownToStop THEN (* Start blending with minimum speed *) + gActual_Prod_SP := gH_ProcessSetup_MinProduction ; + ELSIF NOT gEnRampDownToStop THEN + gActual_Prod_SP := gSP_ProdTrackFiller ; + ELSE + IF NOT gFirstProd_Latch AND gBlenderEnToRamp THEN + mTargetFillerProdSlwd(i_InValue:=gSP_ProdTrackFiller, i_SlewMax:=gFillerSpeedTrackSlew, i_Cycle:=gPID_Cycle_Time, out:=gActual_Prod_SP) ; + END_IF + IF gBlenderRun_Wait THEN + (* Stop Blender with the Maximum Slope *) + mTargetProdSlwd(i_InValue:=0.0, i_SlewMax:=gBlenderProdSlewMax ,i_Cycle:=gPID_Cycle_Time, out:=gActual_Prod_SP ) ; (* Slewed at "gBlenderProdSlewMax" L/sec *) + END_IF + END_IF +ELSE + gActual_Prod_SP := 0.0 ; +END_IF +mTargetRatioSlwd(i_InValue:=gActualSP_RatioVol,i_SlewMax:=0.02,i_Cycle:=gPID_Cycle_Time, out:=mTargetRatioSlewOut ) ; (* Slewed at 0.02 *) + +IF gBlenderRun_Running AND NOT gBlenderRinseMode THEN + IF NOT gWaterRecipe AND (gActualSP_RatioVol + 1.0)<>0 THEN + gSP_H2O := gActual_Prod_SP / (gActualSP_RatioVol + 1.0) * gActualSP_RatioVol ; + ELSE + gSP_H2O := gActual_Prod_SP ; + END_IF +ELSE + gSP_H2O := 0.0 ; +END_IF + +IF gR_H2O_SP>0 THEN + IF ABS(gBlendError)>0.5 AND ABS((gR_H2O_SP-gH2O_Flow_PV) / gR_H2O_SP)>0.2 AND (gActual_Prod_SP>(0.6*gBlenderNomSpeed)) AND gFlowToFiller THEN + mCriticalBlending := TRUE ; + ELSE + mCriticalBlending := FALSE ; + END_IF +ELSE + mCriticalBlending := FALSE ; +END_IF +mCriticalBlendingTOF(IN:=mCriticalBlending,PT:=REAL_TO_TIME(gModValveFullStrokeTime*1000)) ; +gCriticalBlending := mCriticalBlendingTOF.Q ; + +IF (gBlenderEnToRamp AND (gR_Out_H2O_PID>95)) OR gCriticalBlending OR (gBlenderStopping AND gBlenderBlending) THEN + gTrackH2OEnable := TRUE ; +ELSE + gTrackH2OEnable := FALSE ; +END_IF + +IF gBlenderRun_Running AND NOT gWaterRecipe AND NOT gBlenderRinseMode THEN + IF gBlenderStableFlow THEN + IF gTrackH2OEnable AND gBlenderEnToRamp THEN + gSP_SYR := ((gH2O_Flow_Meas / gActualSP_RatioVol) + ( gBlendError * gK_RecBlendError )) * gActualSyrupDens ; + ELSE + gSP_SYR := ((gActual_Prod_SP / (gActualSP_RatioVol + 1.0)) + ( gBlendError * gK_RecBlendError )) * gActualSyrupDens ; + END_IF + ELSE + IF gTrackH2OEnable THEN +(* gSP_SYR := (gH2O_Flow_Meas / gActualSP_RatioVol) * gActualSyrupDens ;*) + gSP_SYR := ((gH2O_Flow_Meas / gActualSP_RatioVol) + ( gBlendError * gK_RecBlendError )) * gActualSyrupDens ; + ELSE + gSP_SYR := ((gActual_Prod_SP / (gActualSP_RatioVol + 1.0)) + ( gBlendError * gK_RecBlendError )) * gActualSyrupDens ; +(* gSP_SYR := (gActual_Prod_SP / (gActualSP_RatioVol + 1.0)) * gActualSyrupDens ;*) + END_IF + END_IF +ELSE + gSP_SYR := 0.0 ; +END_IF + +gDeairCO2Comp := DeairCO2TempComp(i_Temp:=gDeairWaterTemp, i_CO2Off:=gH_Blender_OPT_CO2_Offset) ; +gWaterO2 := PPM_O2(i_Temp:=gDeairWaterTemp); +gSyrupO2 := PPM_O2(i_Temp:=gMFM_TemperatureSyrup1) * (1 - gActualRecipe_Syrup_Brix / 100) ; +IF (gActual_RatioM + 1)<>0 THEN + gProductO2 := (gActual_RatioM * gDeairWaterO2 + gSyrupO2) / (gActual_RatioM + 1) ; +END_IF ; +gCO2Solubility := CO2_Solubility(gDeairWaterTemp) * gDeairEfficiency ; +IF gBlenderEnToRamp OR gBlenderRinseMode OR gBlenderCIPMode OR gCarboWaterLine_Latch THEN + gDeairCO2Vol := MaxCarboCO2_Vol(gDeairWaterTemp, gDeairPressure) * gDeairEfficiency ; +END_IF +gDeairCO2Comp := gDeairCO2Vol - gH_Blender_OPT_CO2_Offset ; +gFillerCO2Loss := gH_Blender_OPT_CO2_Offset ; + +IF gFirstProd_Latch THEN + gActual_SP_CO2 := (gActualRecipe_SP_Vol_CO2 - gDeairCO2Comp) * gFirstProdExtraCO2Fact * gActualRecipe_Vol_CO2_Fact * (1 - gActualRecipe_Beverage_Brix / 100.0) ; (* nL/min *) +ELSE + gActual_SP_CO2 := (gActualRecipe_SP_Vol_CO2 - gDeairCO2Comp) * gActualRecipe_Vol_CO2_Fact * (1 - gActualRecipe_Beverage_Brix / 100.0) ; (* nL/min *) +END_IF +IF gBlenderBlending AND gCarboStillProduct AND gBlenderStableFlow AND NOT gBlenderRinseMode THEN + gSP_CO2 := (gActual_SP_CO2 * gActual_Prod_Flow) + (gCarboCO2Error * gK_RecCarboCO2Error) ; +ELSIF gBlenderBlending AND NOT gBlenderStableFlow AND (gCarboStillProduct OR gH_Blender_OPT_DoubleDeair) AND NOT gBlenderRinseMode THEN + gSP_CO2 := (gActual_SP_CO2 * gActual_Prod_SP) + (gCarboCO2Error * gK_RecCarboCO2Error) ; +(* gSP_CO2 := (gActual_SP_CO2 * gActual_Prod_Flow) ;*) +ELSIF gP_CarboPipe_En AND gCarboStillProduct AND NOT gBlenderRinseMode THEN + IF gActualSP_RatioVol <>0 AND NOT gWaterRecipe THEN + gSP_CO2 := gActual_SP_CO2 *(gH2O_Flow_Meas + gH2O_Flow_Meas / gActualSP_RatioVol) ; + ELSE + gSP_CO2 := (gActual_SP_CO2 * gActual_Prod_Flow) ; + END_IF +ELSE + gSP_CO2 := 0.0 ; +END_IF + +gR_H2O_SP := gSP_H2O ; +gR_SYR_SP := gSP_SYR ; + +gMaxCarboCO2_V := MaxCarboCO2_Vol(i_Temp:=gDeairWaterTemp , i_Press :=gH_ProcessSetup_WaterPumpPressure - 1.5 ) ; +IF gP_CarboPipe_En THEN + gR_CO2_SP := gSP_CO2 ; +ELSE + gR_CO2_SP := LIMIT(0, gSP_CO2, (gMaxCarboCO2_V * gSP_H2O)) ; +END_IF + +IF gBlenderProdMode THEN + IF gBlenderRinseMode THEN + gR_SYR_Level_SP := gH_ProcessSetup_CIPSyrTankMinLevel; + ELSIF gSyrLineMFMPrep_Latch OR gSyrRunOut_Latch THEN + gR_SYR_Level_SP := gSyrupTankFirst_EndProdLvl; + ELSIF gFirstProd_Running AND gBlenderBlending THEN + mTargetSyrupLvlSlwd(i_InValue:=gSyrupTankProdLvl, i_SlewMax:=gSyrupTank_LvlSlewRate, i_Cycle:=gPID_Cycle_Time, out:=gR_SYR_Level_SP) ; + ELSIF gFirstProd_Done THEN + gR_SYR_Level_SP := gSyrupTankProdLvl; + END_IF +ELSE + IF gH_CIP_SyrTankFloodRun THEN + gR_SYR_Level_SP := 100.0 ; + ELSE + gR_SYR_Level_SP := gH_ProcessSetup_CIPSyrTankMinLevel; + END_IF +END_IF + +IF gBlenderProdMode THEN + IF gProductChillerEn THEN + gR_TempWater_SP := gH_A_Recipe_SP_ProdTemp ; + gR_TempProd_SP := gH_A_Recipe_SP_ProdTemp ; + ELSIF gWaterChillerEn THEN + gR_TempWater_SP := gH_A_Recipe_SP_ProdTemp - (gCpSyrup * (gMeterSyrTemp - gH_A_Recipe_SP_ProdTemp) * gActualSyrupDens / gCpH2O) ; + END_IF + IF gH_ColdRinseRun OR gFirstProd_Latch OR gCarboWaterLine_Latch THEN + gR_TempWater_SP := gFirstProdColdRinseTempSP ; + gR_TempProd_SP := gFirstProdColdRinseTempSP ; + END_IF +ELSIF gBlenderCIPMode AND gGencoldChillerEn THEN + gR_TempWater_SP := 0.0 ; + gR_TempProd_SP := 0.0 ; +ELSE + gR_TempWater_SP := 100.0 ; + gR_TempProd_SP := 100.0 ; +END_IF + +IF gBlenderProdMode AND gH_EV01_Status OR gDeairStartUp_Latch THEN + IF gBlenderRinseMode OR gCarboWaterLine_Running THEN + gDeairFlow_SP := gH2O_Flow_Meas * gH_ProcessSetup_DeaireationFactor ; + ELSE +(* gDeairFlow_SP := gR_H2O_SP * gH_ProcessSetup_DeaireationFactor ;*) + gDeairFlow_SP := gActual_Prod_SP * gH_ProcessSetup_DeaireationFactor ; + END_IF + IF gDeairTankLoading OR (NOT gDeairTankMinLvlAux AND NOT gDeairStartUp_Done) THEN + gDeairFlow_SP := gBlenderNomSpeed * gH_ProcessSetup_DeaireationFactor ; + ELSIF gDeairTankMinLvlAux AND NOT gDeairStartUp_Done THEN + gDeairFlow_SP := gH_ProcessSetup_MinProduction * gH_ProcessSetup_DeaireationFactor ; + END_IF + IF NOT gCarboStillRecipe OR NOT gH_Blender_OPT_Deaireation THEN + gDeairFlow_SP := gDeairFlow_SP / 10 ; + END_IF +ELSE + gDeairFlow_SP := 0.0; +END_IF + +IF NOT gH_EV28_Status AND gH_Blender_OPT_Flowtronic THEN + gDeairFlow_SP := gIn_DeairFlow_PV ; +END_IF +END_ACTION + +ACTION Actual_Recipe_Load: +IF gH_Blender_OPT_BrixMeter AND (gH_Blender_OPT_MeterType=1 OR gH_Blender_OPT_MeterType=2) AND gProductRecipeNum<>gH_A_Recipe_ProdMeterRecipeNum THEN + gProdMeterTransferRecipe := TRUE ; +END_IF + +IF gH_Blender_OPT_BrixMeter AND (gH_Blender_OPT_MeterType = 4 OR gH_Blender_OPT_MeterType = 5) THEN + gProdMeterTransferRecipe := TRUE ; +END_IF + +gActualRecipe_Syrup_Brix_Fact := gH_A_Recipe_SyrupFactor ; +gActualRecipe_SyrDens := gH_A_Recipe_SyrupDensity ; +gActualRecipe_SP_Prod := gH_A_Recipe_ProductionRate ; +gActualRecipe_SP_Tank_Press := gH_A_Recipe_ProdTankPress ; +gActualRecipe_SP_MinTankLevel := gH_A_Recipe_PrdTankMinLevel ; +gActualRecipe_SP_FillingValveHead := gH_A_Recipe_FillingValveHead_SP ; +gActualRecipe_SP_Prod_Temp := gH_A_Recipe_SP_ProdTemp ; + +CASE gH_A_Recipe_Type OF + 1: ; (* Recipe Diet Type *) + gSugarBeverage := FALSE ; + gActualSP_RatioVol := gH_A_Recipe_Ratio ; + gActualRecipe_Bev_Brix_Offset := 0.0 ; + gActualRecipe_Syrup_Brix := 0.0 ; + gActualRecipe_Syrup_Brix_Fact := 1.0 ; + gActualRecipe_Beverage_Brix := 0.0 ; + + gNotARecipe_Fault := FALSE ; + + 2: ; (* Recipe Regular Type *) + gSugarBeverage := TRUE ; + gActualSP_RatioVol := gH_A_Recipe_Ratio ; + gActualRecipe_Bev_Brix_Offset := gH_A_Recipe_ProdBrixOffset ; + gActualRecipe_Syrup_Brix := gH_A_Recipe_SyrupBrix ; + gActualRecipe_Beverage_Brix := gH_A_Recipe_ProductBrix ; + gActualRecipe_Syrup_Brix_Fact := gH_A_Recipe_SyrupFactor ; + + gNotARecipe_Fault := FALSE ; + + 3: ; (* Recipe Ratio Type *) + gSugarBeverage := TRUE ; + gActualSP_RatioVol := gH_A_Recipe_Ratio ; + gActualRecipe_Bev_Brix_Offset := 0.0 ; + gActualRecipe_Syrup_Brix := gH_A_Recipe_SyrupBrix ; + gActualRecipe_Beverage_Brix := gH_A_Recipe_ProductBrix ; + gActualRecipe_Syrup_Brix_Fact := gH_A_Recipe_SyrupFactor ; + + gNotARecipe_Fault := FALSE ; +ELSE + gNotARecipe_Fault := TRUE ; + gSugarBeverage := FALSE ; +END_CASE + +(*IF mPrevRecipeName<> gH_A_Recipe_Name AND NOT gFirstProd_Latch THEN + _Blender_Ctrl_Main.InitErrors() ; + mPrevRecipeName := gH_A_Recipe_Name ; +END_IF +*) +IF gH_Blender_OPT_CoolerPresent AND gH_Blender_OPT_CoolerControl>=1 AND gH_A_Recipe_EnProdTemp THEN + gCoolerEnabled := TRUE ; +ELSE + gCoolerEnabled := FALSE ; +END_IF + +IF gH_Blender_OPT_CarboPresent THEN + gActualRecipe_SP_Vol_CO2 := gH_A_Recipe_CO2Vols ; +ELSE + gActualRecipe_SP_Vol_CO2 := 0.0 ; +END_IF +gActualRecipe_Vol_CO2_Fact := gH_A_Recipe_CO2Fact ; + +IF gH_Blender_OPT_CO2_N2_Injection AND gH_Blender_OPT_VacuumPump THEN + IF gH_A_Recipe_CO2 AND gActualRecipe_SP_Vol_CO2>0.1THEN + gCarboStillRecipe := TRUE; + END_IF + IF NOT gH_A_Recipe_CO2 AND gActualRecipe_SP_Vol_CO2>0.1THEN + gCarboStillRecipe := FALSE; + END_IF + IF NOT gH_A_Recipe_CO2 AND gActualRecipe_SP_Vol_CO2<0.1THEN + gCarboStillRecipe := FALSE; + END_IF +ELSE + IF mPrevRecipeName<> gH_A_Recipe_Name THEN + IF gActualRecipe_SP_Vol_CO2>0.1 AND gActualRecipe_Vol_CO2_Fact > 0.1 AND NOT gH_Blender_OPT_DoubleDeair THEN + gCarboStillRecipe := TRUE; (*gH_A_Recipe_GasStill ;*) + ELSE + gCarboStillRecipe := FALSE; + END_IF + END_IF +END_IF + +IF gActualRecipe_SP_Vol_CO2<0.1THEN +gH_A_Recipe_CO2 := FALSE; +END_IF + +IF gH_Blender_OPT_CO2_N2_Injection AND NOT gH_A_Recipe_CO2 THEN + IF gH_A_Recipe_CO2Vols>0.1 AND NOT gH_Blender_OPT_DoubleDeair THEN + gCarboStillProduct := TRUE ; + ELSE + gCarboStillProduct := FALSE ; + END_IF +ELSE + IF gActualRecipe_SP_Vol_CO2>0.1 AND gActualRecipe_Vol_CO2_Fact > 0.1 AND NOT gH_Blender_OPT_DoubleDeair THEN + gCarboStillProduct := TRUE; (*gH_A_Recipe_GasStill ;*) + ELSE + gCarboStillProduct := FALSE; + END_IF +END_IF + +IF NOT gH_Blender_OPT_CO2_N2_Injection THEN + IF gActualRecipe_SP_Vol_CO2>0.1THEN + gH_A_Recipe_CO2 := TRUE; + END_IF +END_IF + +IF gActualSP_RatioVol>19 THEN + gWaterRecipe := TRUE ; + gSugarBeverage := FALSE ; +ELSE + gWaterRecipe := FALSE ; +END_IF +IF (gH_Blender_OPT_ByPassDeair AND NOT gH_A_Recipe_EnDeaireation) OR (gH_Blender_OPT_StillWaterByPass AND gWaterRecipe AND NOT gCarboStillRecipe) THEN + gSkipDeaireation := TRUE ; +ELSE + gSkipDeaireation := FALSE ; +END_IF +mPrevRecipeName := gH_A_Recipe_Name; +END_ACTION + +ACTION BlendingFault: +IF gFirstProd_Latch AND gBlenderEnToRamp THEN + mFirstProdBlendErrEnTON(PT := t#20s, IN := TRUE) ; +ELSE + mFirstProdBlendErrEnTON(IN := FALSE) ; +END_IF +IF (ABS(gBlendError)>gH_MaxBlendError AND gBlenderBlending) AND (mFirstProdBlendErrEnTON.Q OR gFirstProd_Done) THEN + IF gBlendError>0 THEN + gBlendErrorLowSyr_Fault := TRUE ; + ELSE + gBlendErrorHighSyr_Fault := TRUE ; + END_IF +END_IF + +IF (gBlendErrorLowSyr_Fault OR gBlendErrorHighSyr_Fault) AND DI_Reset_Btn THEN +(* IF gMaxBlendErrorAfterFault THEN*) + gBlendError := 0 ; +(* gMaxBlendErrorAfterFault := FALSE ;*) +(* ELSE + mBlendErrorSav := gBlendError ; + gMaxBlendErrorAfterFault := TRUE ; + END_IF*) + gMaxBlendErrorAfterFault := TRUE ; + gBlendErrorLowSyr_Fault := FALSE ; + gBlendErrorHighSyr_Fault := FALSE ; +END_IF + +mBlendErrorRecTmr(IN:=gMaxBlendErrorAfterFault AND gBlenderStableFlow ,PT:=t#10s ) ; +IF mBlendErrorRecTmr.Q THEN +(* IF ABS(gBlendError)0 THEN + gBlendErrorLowSyr_Fault := TRUE ; + ELSIF gBlendError<0 THEN + gBlendErrorHighSyr_Fault := TRUE ;*) + END_IF +END_IF + +IF (ABS(gCarboCO2Error)>gH_MaxCarboCO2Error AND gBlenderBlending) AND (mFirstProdBlendErrEnTON.Q OR gFirstProd_Done) THEN + IF gCarboCO2Error>0 THEN + gCarboCO2Error_LowCO2_Fault := TRUE ; + ELSE + gCarboCO2Error_HighCO2_Fault := TRUE ; + END_IF +END_IF + +IF (gCarboCO2Error_LowCO2_Fault OR gCarboCO2Error_HighCO2_Fault) AND DI_Reset_Btn THEN +(* IF gMaxCarboErrorAfterFault THEN + gMaxCarboErrorAfterFault := FALSE ;*) + gCarboCO2Error := 0 ; +(* ELSE + mCarboErrorSav := gCarboCO2Error ; + gMaxCarboErrorAfterFault := TRUE ; + END_IF*) + gMaxCarboErrorAfterFault := TRUE ; + gCarboCO2Error_LowCO2_Fault := FALSE ; + gCarboCO2Error_HighCO2_Fault := FALSE ; +END_IF + +mCarboErrorRecTmr(IN:=gMaxCarboErrorAfterFault AND gBlenderStableFlow ,PT:=t#20s ) ; +IF mCarboErrorRecTmr.Q THEN +(* IF ABS(gCarboCO2Error)0 THEN + gCarboCO2Error_LowCO2_Fault := TRUE ; + ELSIF gCarboCO2Error<0 THEN + gCarboCO2Error_HighCO2_Fault := TRUE ;*) + END_IF +END_IF +END_ACTION + +ACTION FlowMeter_Error: +IF gSP_H2O<>0 THEN + gWaterVFMCalcError := gWaterVFMMeasError / 100 * gSP_H2O ; +END_IF +IF gSP_SYR<>0 THEN + gSyrupMFMCalcError := (gSyrupMFMMeasError / 100 + (gSyrupMFMZeroStab / (gSP_SYR * 60)) / 100) * gSP_SYR ; +END_IF +IF gSP_CO2<>0 THEN + gCO2MFMCalcError := (gCO2MFMMeasError / 100 + (gCO2MFMZeroStab / (gSP_CO2 * 60 / 1000)) / 100) * gSP_CO2 ; +END_IF + +mWaterMaxFlow := gSP_H2O + gWaterVFMCalcError ; +mWaterMinFlow := gSP_H2O - gWaterVFMCalcError ; +IF gActualRecipe_SyrDens<>0 THEN + mSyrupMaxFlow := (gSP_SYR + gSyrupMFMCalcError) / gActualRecipe_SyrDens ; + mSyrupMinFlow := (gSP_SYR - gSyrupMFMCalcError) / gActualRecipe_SyrDens ; +END_IF +IF mSyrupMaxFlow<>0 THEN + mMinRatio := mWaterMinFlow / mSyrupMaxFlow ; +END_IF +IF mSyrupMinFlow<>0 THEN + mMaxRatio := mWaterMaxFlow / mSyrupMinFlow ; +END_IF +IF gActualRecipe_SyrDens<>0 THEN + mBevBrixMax := gActualRecipe_Syrup_Brix / ((mMinRatio / gActualRecipe_SyrDens) + 1) ; + mBevBrixMin := gActualRecipe_Syrup_Brix / ((mMaxRatio / gActualRecipe_SyrDens) + 1) ; +END_IF +gBlenderBlendMaxError := mBevBrixMax - mBevBrixMin ; +END_ACTION + +ACTION Init_PID_Parameters: +gK_RecBlendError := gH_ProcessSetup_KRecBlendError ; +gK_RecCarboCO2Error := gH_ProcessSetup_KRecCarboCO2Error ; + +gR_H2O_TI := gH_ProcessSetup_TIWaterPID ; +gR_SYR_TI := gH_ProcessSetup_TISyrupPID ; +gR_CO2_TI := gH_ProcessSetup_TICarboCO2PID ; +gR_SYR_Level_TI := gH_ProcessSetup_TISyrupLevelPID ; + +gR_H2O_TD := gH_ProcessSetup_TDWaterPID ; +gR_SYR_TD := gH_ProcessSetup_TDSyrupPID ; +gR_CO2_TD := gH_ProcessSetup_TDCarboCO2PID ; +gR_SYR_Level_TD := gH_ProcessSetup_TDSyrupLevelPID ; + +gR_PressCO2_KP := gH_ProcessSetup_KpCO2PressPID ; +gR_PressCO2_Deadb_W := gH_ProcessSetup_DeadBandCO2PressPID ; + +gR_CIPTemp_TI := gH_ProcessSetup_TICIPTempPID ; +gR_CIPTemp_TD := gH_ProcessSetup_TDCIPTempPID ; + +gR_TempWater_TI := gH_ProcessSetup_TIWaterTempPID ; +gR_TempWater_TD := gH_ProcessSetup_TDWaterTempPID ; + +gR_TempProd_TI := gH_ProcessSetup_TIProdTempPID ; +gR_TempProd_TD := gH_ProcessSetup_TDProdTempPID ; + +gPIDPressCO2_CycleTime := gPID_Cycle_Time ; +gPIDCarboCO2_CycleTime := gPID_Cycle_Time ; +gPIDH2O_CycleTime := gPID_Cycle_Time ; +gPIDSYR_CycleTime := gPID_Cycle_Time ; +gPIDSYR_Level_CycleTime := gPID_Cycle_Time ; +gPIDTempProd_CycleTime := gPID_Cycle_Time ; +gPIDTempWater_CycleTime := gPID_Cycle_Time ; +gPIDCIPTemp_CycleTime := gPID_Cycle_Time ; + +IF gH_ProcessSetup_BPWaterPID<>0 THEN + gR_H2O_KP := 100 / gH_ProcessSetup_BPWaterPID ; + mH2OKp := gR_H2O_KP ; + mH2OKpLimit(i_InValue:=mH2OKp, i_SlewMax:=0.02 ,i_Cycle:=gPID_Cycle_Time, out:=gR_H2O_KP ) ; +ELSE + gR_H2O_KP := 0.0 ; +END_IF + +IF gH_ProcessSetup_BPSyrupPID<>0 THEN + gR_SYR_KP:= 100 / gH_ProcessSetup_BPSyrupPID ; + IF gBlenderStopping THEN + mSyrKp := gR_SYR_KP * 1.4 ; + ELSE + mSyrKp := gR_SYR_KP ; + END_IF + mSyrKpLimit(i_InValue:=mSyrKp, i_SlewMax:=0.08 ,i_Cycle:=gPID_Cycle_Time, out:=gR_SYR_KP ) ; +ELSE + gR_SYR_KP:= 0.0 ; +END_IF + +IF gH_ProcessSetup_BPCarboCO2PID<>0 THEN + gR_CO2_KP:= 100 / gH_ProcessSetup_BPCarboCO2PID ; + mCO2DevStdFlt(i_Value:=gCarboCO2Stat_DevStd,i_Num:=10, i_Enable:=gBlenderFlowFltEn) ; + mCO2DevStdFOut := ABS(mCO2DevStdFlt.FilterOut) ; + IF gBlenderStableFlow THEN + mCO2DevStdInt := REAL_TO_INT(mCO2DevStdFOut * 1) ; + END_IF + IF mCO2DevStdInt<1 THEN + mCO2Kp := 1 ; + ELSIF mCO2DevStdInt>10 THEN + mCO2DevStdInt := 10 ; + END_IF + IF gBlenderStopping THEN + mCO2Kp := gR_CO2_KP * 1.3 ; + ELSIF gP_CarboPipe_En THEN +(* mCO2Kp := gR_CO2_KP / 2.5 ;*) + mCO2Kp := 0.006 ; + gR_CO2_KP := mCO2Kp ; + gR_CO2_TD := 0.0 ; +(* gR_CO2_TI := 30 ;*) + ELSIF mCO2DevStdInt>5 AND NOT gBlenderStopping THEN + mCO2Kp := gR_CO2_KP / 2; + ELSE + mCO2Kp := gR_CO2_KP ; + END_IF + mCO2KpLimit(i_InValue:=mCO2Kp, i_SlewMax:=0.8 ,i_Cycle:=gPID_Cycle_Time, out:=gR_CO2_KP ) ; +ELSE + gR_CO2_KP:= 0.0 ; +END_IF + +IF gH_ProcessSetup_BPSyrupLevelPID<>0 THEN + gR_SYR_Level_KP := 100 / gH_ProcessSetup_BPSyrupLevelPID ; +ELSE + gR_SYR_Level_KP := 0.0 ; +END_IF + +IF gH_ProcessSetup_BPProdTempPID<>0 THEN + gR_TempProd_KP := 100 / gH_ProcessSetup_BPProdTempPID ; +ELSE + gR_TempProd_KP := 0.0 ; +END_IF + +IF gH_ProcessSetup_BPWaterTempPID<>0 THEN + gR_TempWater_KP := 100 / gH_ProcessSetup_BPWaterTempPID ; +ELSE + gR_TempWater_KP := 0.0 ; +END_IF + +IF gH_ProcessSetup_BPCIPTempPID<>0 THEN + gR_CIPTemp_KP := 100 / gH_ProcessSetup_BPCIPTempPID ; +ELSE + gR_CIPTemp_KP := 0.0 ; +END_IF +END_ACTION + +ACTION NextRecipe: +gH_A_Recipe_Name := gH_N_Recipe_Name ; +gH_A_Recipe_SyrupBrix := gH_N_Recipe_SyrupBrix ; +gH_A_Recipe_SyrupDensity := gH_N_Recipe_SyrupDensity ; +gH_A_Recipe_SyrupFactor := gH_N_Recipe_SyrupFactor ; +gH_A_Recipe_ProductBrix := gH_N_Recipe_ProductBrix ; +gH_A_Recipe_ProdBrixOffset := gH_N_Recipe_ProdBrixOffset ; +gH_A_Recipe_ProductionRate := gH_N_Recipe_ProductionRate ; +gH_A_Recipe_Ratio := gH_N_Recipe_Ratio ; +gH_A_Recipe_CO2Vols := gH_N_Recipe_CO2Vols ; +gH_A_Recipe_CO2Fact := gH_N_Recipe_CO2Fact ; +gH_A_Recipe_CO2 := gH_N_Recipe_CO2; +gH_A_Recipe_ProdTankPress := gH_N_Recipe_ProdTankPress ; + +gH_A_Recipe_SP_ProdTemp := gH_N_Recipe_SP_ProdTemp ; +gH_A_Recipe_EnProdTemp := gH_N_Recipe_EnProdTemp ; +gH_A_Recipe_PrdTankMinLevel := gH_N_Recipe_PrdTankMinLevel ; +gH_A_Recipe_Type := gH_N_Recipe_Type ; +gH_A_Recipe_WaterValveSave := gH_N_Recipe_WaterValveSave ; +gH_A_Recipe_SyrupValveSave := gH_N_Recipe_SyrupValveSave ; +gH_A_Recipe_CarboCO2ValveSave := gH_N_Recipe_CarboCO2ValveSave ; + +gH_A_Recipe_ProdMeterRecipeNum := gH_N_Recipe_ProdMeterRecipeNum ; +gH_A_Recipe_ProdMeterHighBrix := gH_N_Recipe_ProdMeterHighBrix ; +gH_A_Recipe_ProdMeterLowBrix := gH_N_Recipe_ProdMeterLowBrix ; +gH_A_Recipe_ProdMeterHighCO2 := gH_N_Recipe_ProdMeterHighCO2 ; +gH_A_Recipe_ProdMeterLowCO2 := gH_N_Recipe_ProdMeterLowCO2 ; +gH_A_Recipe_ProdMeter_ZeroCO2 := gH_N_Recipe_ProdMeter_ZeroCO2 ; +gH_A_Recipe_ProdMeter_ZeroBrix := gH_N_Recipe_ProdMeter_ZeroBrix ; +gH_A_Recipe_ProdHighCond := gH_N_Recipe_ProdHighCond ; +gH_A_Recipe_ProdLowCond := gH_N_Recipe_ProdLowCond ; + +gH_A_Recipe_FillerNextRecipeNum := gH_N_Recipe_FillerNextRecipeNum ; +gH_A_Recipe_FillingValveHead_SP := gH_N_Recipe_FillingValveHead_SP ; + +gH_A_Recipe_EnDeaireation := gH_N_Recipe_EnDeaireation ; +gH_A_Recipe_WaterSelection := gH_N_Recipe_WaterSelection ; +gH_A_Recipe_BottleSize := gH_N_Recipe_BottleSize ; +gH_A_Recipe_BottleShape := gH_N_Recipe_BottleShape ; + + +gH_N_Recipe_Transfer := FALSE ; +END_ACTION + +ACTION NotARecipeCheck: +IF (gH_A_Recipe_Type>=1) AND (gH_A_Recipe_Type<=3) OR NOT gBlenderProdMode THEN + gNotARecipe_Fault := FALSE ; +ELSE + gNotARecipe_Fault := TRUE ; +END_IF +END_ACTION + +ACTION PressureLoss: +IF gMeterSyrDens<>0 AND ni<>0 AND d<>0 THEN + Re := 2 * (gSYR_Flow_Meas / 60) / (gP_Greek * d * ni * gMeterSyrDens) ; +END_IF +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_DWORD.EXP b/backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_DWORD.EXP new file mode 100644 index 0000000..02450ba --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_DWORD.EXP @@ -0,0 +1,22 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION _BoolArray_To_DWord : DWORD +VAR_INPUT + i_Array : ARRAY [0..31] OF BOOL ; +END_VAR +VAR + i : INT ; + mTemp : DWORD ; +END_VAR + + + +(* @END_DECLARATION := '0' *) +FOR i:=0 TO 31 DO + IF i_Array[i] THEN + mTemp := REAL_TO_DWORD(EXPT(2, i)) ; (* 2^i *) + _BoolArray_To_DWord := _BoolArray_To_DWord + mTemp ; + END_IF +END_FOR +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_WORD.EXP b/backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_WORD.EXP new file mode 100644 index 0000000..c68ff0e --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_BOOLARRAY_TO_WORD.EXP @@ -0,0 +1,22 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION _BoolArray_To_Word : WORD +VAR_INPUT + i_Array : ARRAY [0..15] OF BOOL ; +END_VAR +VAR + i : INT ; + mTemp : WORD ; +END_VAR + + + +(* @END_DECLARATION := '0' *) +FOR i:=0 TO 15 DO + IF i_Array[i] THEN + mTemp := REAL_TO_WORD(EXPT(2, i)) ; (* 2^i *) + _BoolArray_To_Word := _BoolArray_To_Word + mTemp ; + END_IF +END_FOR +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/_DWORD_SWAP_BYTEARRAY.EXP b/backend/script_groups/TwinCat/.example/_DWORD_SWAP_BYTEARRAY.EXP new file mode 100644 index 0000000..d250656 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_DWORD_SWAP_BYTEARRAY.EXP @@ -0,0 +1,29 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION _Dword_Swap_ByteArray : ARRAY [0..3] OF BYTE +VAR_INPUT + i_Real : REAL ; +END_VAR +VAR + i : INT ; + j : INT ; + k : INT ; + mAuxDWord : DWORD ; + mAuxByte : BYTE ; + mOutByte: BYTE; +END_VAR +(* @END_DECLARATION := '0' *) +MEMCPY(ADR(mAuxDWord), ADR(i_Real), 4) ; +FOR k := 0 TO 3 DO + mOutByte := 0; + mAuxByte := DWORD_TO_BYTE (mAuxDWord) ; + FOR i:=0 TO 7 DO + IF (SHR (mAuxByte, i) MOD 2) = 1 THEN + mOutByte := mOutByte + REAL_TO_BYTE(EXPT(2, i)) ; + END_IF + END_FOR + _Dword_Swap_ByteArray[3 - k] := mOutByte ; + mAuxDword := SHR (mAuxDWord, 8); +END_FOR +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/_DWORD_TO_BOOLARRAY.EXP b/backend/script_groups/TwinCat/.example/_DWORD_TO_BOOLARRAY.EXP new file mode 100644 index 0000000..5051532 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_DWORD_TO_BOOLARRAY.EXP @@ -0,0 +1,21 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION _DWord_To_BoolArray :ARRAY [0..31] OF BOOL +VAR_INPUT + i_DWord : DWORD ; +END_VAR +VAR + i : INT ; + mAuxDWord : DWORD ; +END_VAR + + + +(* @END_DECLARATION := '0' *) +mAuxDWord := i_DWord ; +FOR i:=0 TO 31 DO + mAuxDWord := SHR (i_DWord, i) ; + _DWord_To_BoolArray[i] := DWORD_TO_BOOL (mAuxDWord MOD 2) ; +END_FOR +END_FUNCTION diff --git a/backend/script_groups/TwinCat/.example/_FILLING_HEAD_PID_CTRL.EXP b/backend/script_groups/TwinCat/.example/_FILLING_HEAD_PID_CTRL.EXP new file mode 100644 index 0000000..a922c61 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_FILLING_HEAD_PID_CTRL.EXP @@ -0,0 +1,2606 @@ + +(* @PATH := '\/TASK1_PID\/PID_Controllers\/Filling_Valve_PID' *) +(* @SYMFILEFLAGS := '59392' *) +PROGRAM _Filling_Head_PID_Ctrl +VAR + mFillerProdSlew : REAL ; + mFillerEstSlew : SlewLimit ; + mKp_Loss : REAL ; + mR_KP : REAL ; (* *) + mR_TI : REAL ; (* *) + mR_TD : REAL ; (* *) + _Hold_int_PID : BOOL ; (* Freeze integral PID *) + _Init_int_PID : BOOL ; (* Reset Integral PID *) + mManual_Value : REAL ; (* *) + mReal_FF_value : REAL ; (* *) + mReal_Max_FF : REAL ; (* *) + mLMN_FAC : REAL ; + mDeadBand : REAL ; + mInit_Int_PID : REAL ; + mHr_Hs : REAL ; + + mFillingHead_PID : FB41_PIDController; (* Filling Valve Head PID Function Block Istance *) + mI_Sel_FillHead : BOOL ; + mP_Sel_FillHead : BOOL ; + mD_Sel_FillHead : BOOL ; + mPID_FillHead_OUT : REAL ; + mPIDFillHeadProp : REAL ; + mPIDFillHeadInt : REAL ; + mPIDFillHeadDer : REAL ; + + mP3_Freq_Flted : LowPassFilter ; + mDiffTransducer_Flted : LowPassFilter ; + mFillValve1Press_Flted : LowPassFilter ; + + mFillingHead_KP_PID : FB41_PIDController; (* Head PID KP Control Function Block Istance *) + mFillHead_PID_En : BOOL ; + mI_Sel_FillHead_KP : BOOL ; + mP_Sel_FillHead_KP : BOOL ; + mD_Sel_FillHead_KP : BOOL ; + mPID_FillHead_KP_OUT : REAL ; + mPIDFillHead_KP_Prop : REAL ; + mPIDFillHead_KP_Int : REAL ; + mPIDFillHead_KP_Der : REAL ; + _Hold_int_KP_PID : BOOL ; (* Freeze integral PID *) + _Init_int_KP_PID : BOOL ; (* Reset Integral PID *) + mManual_KP_Value : REAL ; (* *) + mReal_KP_FF_value : REAL ; (* *) + mDead_KP_Band : REAL ; + mInit_Int_KP_PID : REAL ; + + mFillingHeadPIDStat : StatisticalAnalisys ; + mHeadKP_SlewLimit : SlewLimit ; + mHead_KP_Temp : REAL ; + + mOutWordToVFC : WORD ; + mRealTemp : REAL ; + mAnalogInTemp : Peripherial ; + + mReset_Int_ONS : R_TRIG ; + mReset_Int : BOOL ; + + mEn_ProdPressLoss : TON ; + mStartFillTON : TON ; + mStopFillTP : TP ; + mStopFillingN_ONS : F_TRIG ; + mFillerFilling : BOOL ; + mStopFilling : BOOL; + mDummy : BOOL ; + mDiffSensFaultEn: TON; +END_VAR +VAR_OUTPUT + EN_Out : BOOL ; +END_VAR + + + +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 31 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Filling_Head_PID_Ctrl.Read_Analog +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Filling_Head_PID_Ctrl._KP_PID_Ctrl +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Filling_Head_PID_Ctrl.Calcolous +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 3 +_ASSIGN +_FUNCTION +_BOX_EXPR : 4 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProd_Flow +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_FillerProdPipeDN +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_FillerProdPipeMass +_OPERAND +_EXPRESSION +_POSITIV +gFillingTime +_EXPRESSION +_POSITIV +PulsePressure +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gStopFillingExtraHead +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProductTankLevel +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_ProdTankHeight_0 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_ProdTankLevelPerc_2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_ProdTankHeight_2 +_EXPRESSION +_POSITIV +TankLevelToHeight +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_ProductTankHeight +_OUTPUT +_POSITIV +_NO_SET +gProd_Tank_Height +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_FillingValveHead +_OPERAND +_EXPRESSION +_POSITIV +gContainerSize +_EXPRESSION +_POSITIV +FillingTime +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gFillingTime +_OUTPUT +_POSITIV +_NO_SET +gH_ProcessSetup_FillingTime +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 3 +_ASSIGN +_FUNCTIONBLOCK +mFillerEstSlew +_BOX_EXPR : 4 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gInFillerBottleFilling +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gProd_FlowEstimated +_EXPRESSION +_POSITIV +SEL +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +0.5 +_OPERAND +_EXPRESSION +_POSITIV +mFillerProdSlew +_OPERAND +_EXPRESSION +_POSITIV +100000.0 +_EXPRESSION +_POSITIV +LIMIT +_OPERAND +_EXPRESSION +_POSITIV +gPID_Cycle_Time +_OPERAND +_EXPRESSION +_POSITIV +gProd_FlowEstimatedSlw +_EXPRESSION +_POSITIV +SlewLimit +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFiller_Speed +_OPERAND +_EXPRESSION +_POSITIV +60.0 +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +gContainerSize +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProd_FlowEstimated +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFiller_Speed +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +mFillerProdSlew +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gProd_FlowEstimated +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFillingTime +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +GT +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +gFillingTime +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFillerProdSlew +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mStopFillTP +_BOX_EXPR : 2 +_ENABLED +_FUNCTIONBLOCK +mStopFillingN_ONS +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +mFillerFilling +_EXPRESSION +_POSITIV +F_TRIG +_OUTPUTS : 0 +_OPERATOR +_BOX_EXPR : 1 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gFillingTime +_OPERAND +_EXPRESSION +_POSITIV +1000.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +REAL_TO_TIME +_EXPRESSION +_POSITIV +TP +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStopFilling +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStopFilling +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gStopFillingExtraHead +_OPERAND +_EXPRESSION +_POSITIV +-1.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHeadDinamicComp +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +g_MAN_Head +_OPERAND +_EXPRESSION +_POSITIV +gProd_HeadPIDMax_Freq +_OPERAND +_EXPRESSION +_POSITIV +gMax_P3_Freq +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHead_PID_Max_Freq +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_FillHead +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_FillHead +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_FillHead +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gBlenderCIPMode +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRinseMode +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +g_Head_CIP_Rinse +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_P3_ProductPump_Auto +_EXPRESSION +_NEGATIV +_LD_CONTACT +gH_P3_ProductPump_Manual +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +g_Head_Drain +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gH_EV62_Status +_EXPRESSION +_POSITIV +_LD_CONTACT +g_Head_CIP_Rinse +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_PID_Head_Manual +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +g_MAN_Head +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 4 +_LD_AND +_LD_OPERATOR : 6 +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +gP_PID_Head_Enable +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +gProdPipeRunOut_Done +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlendFillStartUp_Done +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gInFillerEV46Enable +_EXPRESSION +_POSITIV +_LD_CONTACT +gFlrCO2ValveEV46Pos_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gInFillerEV62Enable +_EXPRESSION +_POSITIV +_LD_CONTACT +gProdValveEV62Pos_Fault +_EXPRESSION +_NEGATIV +_LD_CONTACT +gDiffSensor_Analog_Fault +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +g_Head_CIP_Rinse +_EXPRESSION +_POSITIV +_LD_CONTACT +gBlenderRun_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +g_MAN_Head +_EXPRESSION +_POSITIV +_LD_CONTACT +gP_PID_Head_Manual +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gH_Blender_OPT_BlendFillSystem +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +g_Head_PID_Enable +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +g_Head_PID_Enable +_EXPRESSION +_NEGATIV +_LD_CONTACT +gBlendFillStartUp_Latch +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_Hold_int_PID +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +g_MAN_Head +_EXPRESSION +_POSITIV +_LD_CONTACT +g_Head_Drain +_EXPRESSION +_POSITIV +_LD_CONTACT +g_Head_CIP_Rinse +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mReset_Int_ONS +_BOX_EXPR : 1 +_EMPTY +_EXPRESSION +_POSITIV +R_TRIG +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Filling_Head_PID_Ctrl.Reset_Integral +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gHead_PID_Max_Freq +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_KProdPump +_EXPRESSION +_POSITIV +Freq_To_mmH2O +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gPID_Head_Max_Value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_FillerDiameter +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_FillingValveNum +_EXPRESSION +_POSITIV +INT_TO_REAL +_OPERAND +_EXPRESSION +_POSITIV +gFiller_Speed +_EXPRESSION +_POSITIV +Cetrifugal_Head +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillerCentrifugalHead +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_OPERAND +_EXPRESSION +_POSITIV +gProd_Flow +_OPERAND +_EXPRESSION +_POSITIV +4000 +_EXPRESSION +_POSITIV +LIMIT +_OPERAND +_EXPRESSION +_POSITIV +mKp_Loss +_EXPRESSION +_POSITIV +Flow_To_Press_Loss +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gTotalPressLoss +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_FillingValveHeight +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Latch +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_FillingValveHead +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mReal_Max_FF +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mReal_Max_FF +_OPERAND +_EXPRESSION +_POSITIV +gProd_Tank_Height +_EXPRESSION +_POSITIV +SUB +_OPERAND +_EXPRESSION +_POSITIV +gTotalPressLoss +_OPERAND +_EXPRESSION +_POSITIV +gHeadDinamicComp +_EXPRESSION +_POSITIV +ADD +_OPERAND +_EXPRESSION +_POSITIV +gPID_Head_Max_Value +_EXPRESSION +_POSITIV +LIMIT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mReal_FF_value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mReal_FF_value +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_KProdPump +_EXPRESSION +_POSITIV +mmH2O_TO_Freq +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_P3_FrequencyFFOut +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_DiffSensor_Height +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_DiffSensor_DeltaHeight +_EXPRESSION +_POSITIV +ADD +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_DiffSensor_Offset +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDiffSensor_Height +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_FillingValveHeight +_OPERAND +_EXPRESSION +_POSITIV +gDiffSensor_Height +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mHr_Hs +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSensor_Head_PV +_OPERAND +_EXPRESSION +_POSITIV +gFillerCentrifugalHead +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mHr_Hs +_OPERAND +_EXPRESSION +_POSITIV +-1.0 +_EXPRESSION +_POSITIV +MUL +_EXPRESSION +_POSITIV +ADD +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFillingValveHead_PV +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mManual_Value +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_KProdPump +_EXPRESSION +_POSITIV +Freq_To_mmH2O +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mManual_Value +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 2 +_LD_CONTACT +g_Head_PID_Enable +_EXPRESSION +_POSITIV +_LD_CONTACT +_Init_int_PID +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillingHead_PID +_BOX_EXPR : 20 +_ENABLED +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_FillingValveHead +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_EXPRESSION +_POSITIV +ADD +_OPERAND +_EXPRESSION +_POSITIV +gFillingValveHead_PV +_OPERAND +_EXPRESSION +_POSITIV +mManual_Value +_OPERAND +_EXPRESSION +_POSITIV +mR_KP +_OPERAND +_EXPRESSION +_POSITIV +mR_TI +_OPERAND +_EXPRESSION +_POSITIV +mR_TD +_OPERAND +_EXPRESSION +_POSITIV +mDeadBand +_OPERAND +_EXPRESSION +_POSITIV +gPID_Head_Max_Value +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +mLMN_FAC +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gHead_PID_Cycle +_OPERAND +_EXPRESSION +_POSITIV +mInit_Int_PID +_OPERAND +_EXPRESSION +_POSITIV +mReal_FF_value +_OPERAND +_EXPRESSION +_POSITIV +g_MAN_Head +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_FillHead +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_FillHead +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_FillHead +_OPERAND +_EXPRESSION +_POSITIV +_Hold_int_PID +_OPERAND +_EXPRESSION +_POSITIV +_Init_int_PID +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +mPIDFillHeadProp +_OUTPUT +_POSITIV +_NO_SET +mPIDFillHeadInt +_OUTPUT +_POSITIV +_NO_SET +mPIDFillHeadDer +_OUTPUT +_POSITIV +_NO_SET +g_Max_Head +_OUTPUT +_POSITIV +_NO_SET +g_Min_Head +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPID_FillHead_OUT +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +_Init_int_PID +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_NEGATIV +_SET +_Init_int_PID +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +g_Head_PID_Enable +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +mPID_FillHead_OUT +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_KProdPump +_EXPRESSION +_POSITIV +mmH2O_TO_Freq +_EXPRESSION +_POSITIV +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gH_P3_Frequency +_OUTPUT +_POSITIV +_NO_SET +gOut_Freq_Head_PID +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 4 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillingValveHead_PV +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_FillingValveHead +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gSensor_Head_PV +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gH_DiffSensorPressure +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gEstimatedFlowEnable +_OPERAND +_EXPRESSION +_POSITIV +gVFM_ProductFlow +_OPERAND +_EXPRESSION +_POSITIV +gProd_FlowEstimatedSlw +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProd_Flow +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERATOR +_BOX_EXPR : 1 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillReceiveData.ProductTemp +_EXPRESSION +_POSITIV +INT_TO_REAL +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +DIV +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gFiller_Temperature +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gFillingValveHead_PV +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gActualRecipe_SP_FillingValveHead +_OPERAND +_EXPRESSION +_POSITIV +10.0 +_EXPRESSION +_POSITIV +SUB +_EXPRESSION +_POSITIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +g_Head_OK +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Filling_Head_PID_Ctrl.Write_Analog +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +_ASSIGN +_FUNCTIONBLOCK +??? +_BOX_EXPR : 0 +_ENABLED +_EXPRESSION +_POSITIV +_Filling_Head_PID_Ctrl.PID_Monitor +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDummy +ENABLELIST_END +_OUTPUTS : 0 + +END_PROGRAM +ACTION _KP_PID_Ctrl: +_LD_BODY +_NETWORKS : 5 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mI_Sel_FillHead_KP +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mP_Sel_FillHead_KP +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gAlwaysOff +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mD_Sel_FillHead_KP +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mFillHead_PID_En +_EXPRESSION +_POSITIV +_LD_CONTACT +g_Head_PID_Enable +_EXPRESSION +_POSITIV +_LD_CONTACT +g_MAN_Head +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillingHead_KP_PID +_BOX_EXPR : 20 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +0.2 +_OPERAND +_EXPRESSION +_POSITIV +gHeadFilStat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +mManual_KP_Value +_OPERAND +_EXPRESSION +_POSITIV +2.0 +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +3 +_OPERAND +_EXPRESSION +_POSITIV +mDead_KP_Band +_OPERAND +_EXPRESSION +_POSITIV +mHead_KP_Temp +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +mHead_KP_Temp +_OPERAND +_EXPRESSION +_POSITIV +4 +_EXPRESSION +_POSITIV +DIV +_OPERAND +_EXPRESSION +_POSITIV +1.0 +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +gHead_PID_Cycle +_OPERAND +_EXPRESSION +_POSITIV +mInit_Int_KP_PID +_OPERAND +_EXPRESSION +_POSITIV +mReal_KP_FF_value +_OPERAND +_EXPRESSION +_POSITIV +FALSE +_OPERAND +_EXPRESSION +_POSITIV +mI_Sel_FillHead_KP +_OPERAND +_EXPRESSION +_POSITIV +mP_Sel_FillHead_KP +_OPERAND +_EXPRESSION +_POSITIV +mD_Sel_FillHead_KP +_OPERAND +_EXPRESSION +_POSITIV +_Hold_int_KP_PID +_OPERAND +_EXPRESSION +_POSITIV +_Init_int_KP_PID +_EXPRESSION +_POSITIV +FB41_PIDController +_OUTPUTS : 5 +_OUTPUT +_POSITIV +_NO_SET +mPIDFillHead_KP_Prop +_OUTPUT +_POSITIV +_NO_SET +mPIDFillHead_KP_Int +_OUTPUT +_POSITIV +_NO_SET +mPIDFillHead_KP_Der +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mPID_FillHead_KP_OUT +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mFillHead_PID_En +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 1 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mPID_FillHead_KP_OUT +_EXPRESSION +_POSITIV +MOVE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mR_KP +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Calcolous: +gHead_PID_Cycle := gPID_Cycle_Time ; +mLMN_FAC := 1.0 ; +mDeadBand := 0.0 ; + +mKp_Loss := gH_ProcessSetup_KProdLoss ; + +IF gH_ProcessSetup_BPFillingValvePID<>0 THEN +(* IF gHeadPIDCtrlOk THEN*) + mHead_KP_Temp := 100 / gH_ProcessSetup_BPFillingValvePID ; +(* ELSE + mHead_KP_Temp := 50 / gH_ProcessSetup_BPFillingValvePID ; + END_IF*) +END_IF +mHeadKP_SlewLimit(i_InValue:=mHead_KP_Temp, i_SlewMax:=0.01, i_Cycle:=gHead_PID_Cycle, out:=mR_KP) ; + +mR_TI := gH_ProcessSetup_TIFillingValvePID ; +mR_TD := gH_ProcessSetup_TDFillingValvePID ; + +mManual_Value := 0.0 ; +IF NOT gH_P3_ProductPump_Auto AND gH_P3_ProductPump_Manual THEN + mManual_Value := gH_P3_ProductPumpFC_Manual ; + mLMN_FAC := 1.0 ; +ELSIF g_MAN_Head AND NOT g_Head_CIP_Rinse THEN + mManual_Value := gHead_PID_Manual_Value ; + mLMN_FAC := 1.0 ; +ELSIF g_Head_Drain THEN + mManual_Value := 0.0 ; + mLMN_FAC := 1.0 ; +ELSIF g_Head_CIP_Rinse AND gBlenderRinseMode THEN + mManual_Value :=gH_ProcessSetup_RinseProdPumpFreq ; + mLMN_FAC := 1.0 ; +ELSIF g_Head_CIP_Rinse THEN + mManual_Value :=gH_ProcessSetup_CIPProdPumpFreq ; + mLMN_FAC := 1.0 ; +ELSIF g_Head_PID_Enable AND gH_P3_ProductPump_Auto THEN + gH_P3_ProductPumpFC_Manual := mmH2O_TO_Freq(mPID_FillHead_OUT,gH_ProcessSetup_KProdPump) ; + mManual_Value := 0.0 ; + mLMN_FAC := 1.0 ; +ELSE + mManual_Value := 0.0 ; + mLMN_FAC := 0.0 ; +END_IF +END_ACTION + +ACTION PID_Monitor: +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTIONBLOCK +mFillingHeadPIDStat +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gOut_Freq_Head_PID +_OPERAND +_EXPRESSION +_POSITIV +14 +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +StatisticalAnalisys +_OUTPUTS : 2 +_OUTPUT +_POSITIV +_NO_SET +gHeadFillStat_Variance +_OUTPUT +_POSITIV +_NO_SET +gHeadFilStat_DevStd +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHeadFillStat_MeanValue +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gHeadPIDCtrlOk +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gHeadFilStat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +0.4 +_EXPRESSION +_POSITIV +LT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHeadPIDCtrlOk +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gHeadPIDCtrlOk +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gHeadFilStat_DevStd +_OPERAND +_EXPRESSION +_POSITIV +0.6 +_EXPRESSION +_NEGATIV +GT +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gHeadPIDCtrlOk +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Read_Analog: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 2 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +gProduct_VFC_MainActualValue +_OPERAND +_EXPRESSION +_POSITIV +gMax_P3_Freq +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue_VFC +_EXPRESSION +_POSITIV +ReadPeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mRealTemp +_ASSIGN +_FUNCTIONBLOCK +mP3_Freq_Flted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mRealTemp +_OPERAND +_EXPRESSION +_POSITIV +10 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gP3_Frequency +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 3 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +AI_DifferentialTransducer +_OPERAND +_EXPRESSION +_POSITIV +gDiffSensor_MaxValue +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue +_EXPRESSION +_POSITIV +ReadAnalogIn +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mAnalogInTemp +_ASSIGN +_FUNCTIONBLOCK +mDiffTransducer_Flted +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mAnalogInTemp.Value +_OPERAND +_EXPRESSION +_POSITIV +4 +_OPERAND +_EXPRESSION +_POSITIV +TRUE +_EXPRESSION +_POSITIV +LowPassFilter +_OUTPUTS : 0 +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gSensor_Head_PV +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mAnalogInTemp.Error +_FUNCTIONBLOCK +mDiffSensFaultEn +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gBlendFillStartUp_Done +_OPERAND +_EXPRESSION +_POSITIV +t#2s +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +AND +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gDiffSensor_Analog_Fault +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + +ACTION Reset_Integral: +mInit_Int_PID := 0.0 ; +_Init_int_PID := TRUE ; +END_ACTION + +ACTION Write_Analog: +_LD_BODY +_NETWORKS : 2 +_NETWORK + +_COMMENT +mOutWordToVFC = 1 ===> Production +mOutWordToVFC = 2 ===> Rinse +mOutWordToVFC = 3 ===> CIP + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_NEGATIV +gH_Blender_OPT_BlendFillSystem +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderRinseMode +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderProdMode +_OPERATOR +_BOX_EXPR : 3 +_OPERAND +_EXPRESSION +_POSITIV +gBlenderCIPMode +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +3 +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +1 +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +2 +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mOutWordToVFC +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +gH_Blender_OPT_Simulation +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_FUNCTION +_BOX_EXPR : 5 +_ENABLED +_OPERATOR +_BOX_EXPR : 3 +_OPERATOR +_BOX_EXPR : 2 +_OPERAND +_EXPRESSION +_POSITIV +gH_Blender_OPT_BlendFillSystem +_OPERAND +_EXPRESSION +_POSITIV +gH_P3_ProductPump_Status +_EXPRESSION +_POSITIV +AND +_OPERATOR +_BOX_EXPR : 5 +_OPERAND +_EXPRESSION +_POSITIV +mOutWordToVFC +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gOut_Freq_Head_PID +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_RinseProdPumpFreq +_OPERAND +_EXPRESSION +_POSITIV +gH_ProcessSetup_CIPProdPumpFreq +_EXPRESSION +_POSITIV +MUX +_OPERAND +_EXPRESSION +_POSITIV +gOut_Freq_Head_PID +_EXPRESSION +_POSITIV +SEL +_OPERAND +_EXPRESSION +_POSITIV +gMax_P3_Freq +_OPERAND +_EXPRESSION +_POSITIV +0.0 +_OPERAND +_EXPRESSION +_POSITIV +0 +_OPERAND +_EXPRESSION +_POSITIV +gAnalogMaxValue_VFC +_EXPRESSION +_POSITIV +WritePeripherial +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +gProduct_VFC_MainRefValue +ENABLELIST_END +_OUTPUTS : 0 + +END_ACTION + diff --git a/backend/script_groups/TwinCat/.example/_PUMPCONTROL.EXP b/backend/script_groups/TwinCat/.example/_PUMPCONTROL.EXP new file mode 100644 index 0000000..5545f25 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_PUMPCONTROL.EXP @@ -0,0 +1,168 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '4096' *) +FUNCTION_BLOCK _PumpControl +VAR_INPUT + in_PumpStart :BOOL; + in_PumpContactor :BOOL; + in_PumpOverload :BOOL; + in_PumpAuto :BOOL; + in_PumpManual :BOOL; + in_FaultDelayTime :TIME; +END_VAR +VAR_OUTPUT + out_PumpRun :BOOL; + out_PumpFault :BOOL; +END_VAR +VAR + mFault :BOOL; + mTmrDelayFault :TON; +END_VAR +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 3 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +out_PumpRun +_EXPRESSION +_POSITIV +_LD_CONTACT +in_PumpContactor +_EXPRESSION +_NEGATIV +_FUNCTIONBLOCK +mTmrDelayFault +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +in_FaultDelayTime +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +_EMPTY +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mFault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_OR +_LD_OPERATOR : 3 +_LD_CONTACT +mFault +_EXPRESSION +_POSITIV +_LD_CONTACT +in_PumpOverload +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +DI_Reset_Btn +_EXPRESSION +_NEGATIV +_LD_CONTACT +out_PumpFault +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +out_PumpFault +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_OR +_LD_OPERATOR : 2 +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +in_PumpStart +_EXPRESSION +_POSITIV +_LD_CONTACT +in_PumpAuto +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +in_PumpAuto +_EXPRESSION +_NEGATIV +_LD_CONTACT +in_PumpManual +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_LD_CONTACT +gAuxVoltageOk +_EXPRESSION +_POSITIV +_LD_CONTACT +out_PumpFault +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +out_PumpRun + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/_STEPMOVE.EXP b/backend/script_groups/TwinCat/.example/_STEPMOVE.EXP new file mode 100644 index 0000000..dbc2f21 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_STEPMOVE.EXP @@ -0,0 +1,280 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION_BLOCK _StepMove +VAR_INPUT + ActualStep : INT ; + NextStep : INT ; + PresetTimer : TIME ; + Condition1Ok : BOOL ; + Condition2Ok : BOOL ; + Wait : BOOL ; +END_VAR +VAR_OUTPUT + StepNum : INT ; + ActualTime : TIME ; +END_VAR +VAR + mLocalTime : TIME ; + mDelayReq : BOOL ; + mLocalTimer : TON ; + mStepTransition : BOOL ; + mTimerDone : BOOL ; + mConditionOk : BOOL ; +END_VAR +(* @END_DECLARATION := '0' *) +_LD_BODY +_NETWORKS : 7 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mStepTransition +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 2 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +PresetTimer +_OPERAND +_EXPRESSION +_POSITIV +t#0s +_EXPRESSION +_POSITIV +NE +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mDelayReq +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mDelayReq +_OPERAND +_EXPRESSION +_POSITIV +t#100ms +_OPERAND +_EXPRESSION +_POSITIV +PresetTimer +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mLocalTime +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 2 +_LD_CONTACT +mConditionOk +_EXPRESSION +_POSITIV +_LD_CONTACT +mTimerDone +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mStepTransition +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +Condition1Ok +_EXPRESSION +_POSITIV +_LD_CONTACT +Condition2Ok +_EXPRESSION +_POSITIV +_LD_CONTACT +Wait +_EXPRESSION +_NEGATIV +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mConditionOk +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_EMPTY +_EXPRESSION +_POSITIV + + +ENABLELIST : 1 +_ASSIGN +_OPERATOR +_BOX_EXPR : 3 +_ENABLED +_OPERAND +_EXPRESSION +_POSITIV +mStepTransition +_OPERAND +_EXPRESSION +_POSITIV +ActualStep +_OPERAND +_EXPRESSION +_POSITIV +NextStep +_EXPRESSION +_POSITIV +SEL +_EXPRESSION +_POSITIV +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +StepNum +ENABLELIST_END +_OUTPUTS : 0 +_NETWORK +NoInitTimer: +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_AND +_LD_OPERATOR : 3 +_LD_CONTACT +mStepTransition +_EXPRESSION +_NEGATIV +_LD_CONTACT +mConditionOk +_EXPRESSION +_POSITIV +_FUNCTIONBLOCK +mLocalTimer +_BOX_EXPR : 2 +_EMPTY +_OPERAND +_EXPRESSION +_POSITIV +mLocalTime +_EXPRESSION +_POSITIV +TON +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +ActualTime +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 1 +_OUTPUT +_POSITIV +_NO_SET +mTimerDone +_NETWORK + +_COMMENT + +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +mStepTransition +_EXPRESSION +_POSITIV +_EXPRESSION +_POSITIV + + +ENABLELIST : 0 +ENABLELIST_END +_OUTPUTS : 2 +_OUTPUT +_NEGATIV +_SET +mConditionOk +_OUTPUT +_NEGATIV +_SET +mStepTransition + +END_FUNCTION_BLOCK diff --git a/backend/script_groups/TwinCat/.example/_WORD_TO_BOOLARRAY.EXP b/backend/script_groups/TwinCat/.example/_WORD_TO_BOOLARRAY.EXP new file mode 100644 index 0000000..bf43ea0 --- /dev/null +++ b/backend/script_groups/TwinCat/.example/_WORD_TO_BOOLARRAY.EXP @@ -0,0 +1,21 @@ + +(* @PATH := '\/Functions_Collection' *) +(* @SYMFILEFLAGS := '0' *) +FUNCTION _Word_To_BoolArray :ARRAY [0..15] OF BOOL +VAR_INPUT + i_Word : WORD ; +END_VAR +VAR + i : INT ; + mAuxWord : WORD ; +END_VAR + + + +(* @END_DECLARATION := '0' *) +mAuxWord := i_Word ; +FOR i:=0 TO 15 DO + mAuxWord := SHR (i_Word, i) ; + _Word_To_BoolArray[i] := WORD_TO_BOOL (mAuxWord MOD 2) ; +END_FOR +END_FUNCTION diff --git a/backend/script_groups/TwinCat/README.md b/backend/script_groups/TwinCat/README.md new file mode 100644 index 0000000..f785450 --- /dev/null +++ b/backend/script_groups/TwinCat/README.md @@ -0,0 +1,172 @@ +# Convertidor LAD a Pseudocódigo Estructurado + +## Descripción + +Este proyecto proporciona herramientas para convertir código LAD (Ladder Diagram) de TwinCAT a pseudocódigo estructurado compatible con IEC61131-3. El convertidor mantiene la semántica original del código LAD mientras lo transforma a un formato más legible y estructurado. + +## Características + +- ✅ **Parsing completo de LAD**: Analiza la estructura completa de archivos `.EXP` de TwinCAT +- ✅ **Conversión semántica**: Mantiene la lógica original del diagrama ladder +- ✅ **Formato estructurado**: Genera código pseudo estructurado con IF-THEN-END_IF +- ✅ **Manejo de contactos**: Convierte contactos normales y negados correctamente +- ✅ **Function blocks**: Identifica y convierte llamadas a bloques de función +- ✅ **Operadores matemáticos**: Maneja operaciones aritméticas y lógicas +- ✅ **Comentarios**: Preserva comentarios de las redes originales + +## Archivos del Proyecto + +### Convertidores Principales + +1. **`simple_lad_converter.py`** - Convertidor simplificado y robusto (recomendado) +2. **`lad_to_pseudocode_converter.py`** - Convertidor básico inicial +3. **`lad_to_pseudocode_converter_enhanced.py`** - Versión avanzada con más características + +### Archivos de Prueba + +- **`test_simple.py`** - Script de prueba para el convertidor simple +- **`ejemplo_conversion.py`** - Ejemplo de uso del convertidor básico +- **`test_enhanced_converter.py`** - Prueba para el convertidor avanzado + +## Uso Rápido + +### Método Simple (Recomendado) + +```bash +python test_simple.py +``` + +Este comando procesará el archivo `.example/INPUT.EXP` y generará `output_simple.txt` con el código convertido. + +### Uso Directo del Convertidor + +```python +from simple_lad_converter import SimpleLadConverter + +converter = SimpleLadConverter() +converter.parse_file("mi_archivo.EXP") +structured_code = converter.save_to_file("salida.txt") +``` + +### Línea de Comandos + +```bash +python lad_to_pseudocode_converter.py archivo_entrada.EXP archivo_salida.txt +``` + +## Estructura del Código LAD Soportada + +El convertidor puede procesar las siguientes estructuras de TwinCAT: + +### Elementos LAD Reconocidos + +- `_NETWORK` - Inicio de red +- `_LD_ASSIGN` - Asignaciones +- `_LD_CONTACT` - Contactos (entradas) +- `_LD_AND` / `_LD_OR` - Operaciones lógicas +- `_FUNCTIONBLOCK` - Bloques de función +- `_OPERATOR` - Operadores matemáticos +- `_COMMENT` / `_END_COMMENT` - Comentarios +- `_OUTPUT` - Variables de salida + +### Operadores Soportados + +- **Aritméticos**: ADD, SUB, MUL, DIV +- **Lógicos**: AND, OR +- **Comparación**: LT, GT, EQ +- **Especiales**: SEL, MOVE + +## Ejemplo de Conversión + +### Código LAD Original +``` +_NETWORK +_COMMENT +Verificación de presión CO2 +_END_COMMENT +_LD_ASSIGN +_LD_CONTACT +DI_Air_InletPress_OK +_NEGATIV +_FUNCTIONBLOCK +mAirPressOk +_OUTPUT +gInLinePressAirOk +``` + +### Código Estructurado Generado +``` +// Red 5 +// Verificación de presión CO2 +IF NOT DI_Air_InletPress_OK THEN + gInLinePressAirOk := mAirPressOk(); +END_IF; +``` + +## Estructura del Archivo de Salida + +El código generado sigue esta estructura: + +``` +// Código pseudo estructurado generado desde LAD TwinCAT +// Compatible con IEC61131-3 +PROGRAM Input_Converted + + // Red 1 + IF condicion1 AND condicion2 THEN + variable_salida := funcion_bloque(parametros); + END_IF; + + // Red 2 + variable := operando1 ADD operando2; + + // Red N... + +END_PROGRAM +``` + +## Resultados de la Conversión + +El convertidor ha procesado exitosamente el archivo `INPUT.EXP` que contiene: + +- **86 redes LAD** en total +- **Múltiples tipos de elementos**: contactos, function blocks, operadores +- **Preservación de comentarios** originales +- **Conversión correcta de lógica condicional** con IF-THEN-END_IF + +### Estadísticas del Ejemplo + +- Archivo de entrada: `.example/INPUT.EXP` (4,611 líneas) +- Redes procesadas: 86 +- Archivo de salida: ~235 líneas de código estructurado +- Reducción de complejidad: ~95% + +## Ventajas del Código Convertido + +1. **Legibilidad**: Más fácil de leer que el formato LAD textual +2. **Mantenibilidad**: Estructura clara con comentarios preservados +3. **Debugging**: Lógica condicional explícita +4. **Documentación**: Comentarios de red integrados +5. **Portabilidad**: Formato pseudo-código universal + +## Limitaciones Conocidas + +- Algunos parámetros internos pueden aparecer como `_POSITIV`, `_NEGATIV` +- Estructuras complejas de LAD pueden requerir revisión manual +- El convertidor es específico para el formato de TwinCAT + +## Desarrollo Futuro + +- [ ] Mejorar el parsing de parámetros de function blocks +- [ ] Añadir soporte para más tipos de operadores +- [ ] Implementar validación de sintaxis +- [ ] Crear interfaz gráfica para conversión +- [ ] Soporte para otros formatos de PLC + +## Contribuciones + +Este convertidor fue desarrollado para facilitar el análisis y mantenimiento de código LAD en proyectos de automatización industrial. Las contribuciones y mejoras son bienvenidas. + +--- + +**Nota**: Este es un proyecto de código abierto para ayudar en la migración y análisis de código LAD de TwinCAT a formatos más estructurados. \ No newline at end of file diff --git a/backend/script_groups/TwinCat/ejemplo_conversion.py b/backend/script_groups/TwinCat/ejemplo_conversion.py new file mode 100644 index 0000000..644a586 --- /dev/null +++ b/backend/script_groups/TwinCat/ejemplo_conversion.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Ejemplo de uso del convertidor LAD a pseudocódigo estructurado +""" + +from lad_to_pseudocode_converter import LadToStructuredConverter + +def convertir_input_exp(): + """Ejemplo de conversión del archivo INPUT.EXP""" + + # Crear instancia del convertidor + converter = LadToStructuredConverter() + + try: + # Cargar y parsear el archivo LAD + print("Parseando archivo INPUT.EXP...") + converter.parse_file(".example/INPUT.EXP") + + # Convertir a código estructurado + print("Convirtiendo a pseudocódigo estructurado...") + structured_code = converter.convert_to_structured() + + # Guardar resultado + output_file = "INPUT_pseudocode.txt" + converter.save_to_file(output_file) + + # Mostrar estadísticas + print(f"\n=== Estadísticas de conversión ===") + print(f"Redes procesadas: {len(converter.networks)}") + print(f"Archivo de salida: {output_file}") + + # Mostrar las primeras líneas como ejemplo + print(f"\n=== Primeras líneas del resultado ===") + lines = structured_code.split('\n') + for i, line in enumerate(lines[:30]): + print(f"{i+1:3d}: {line}") + + if len(lines) > 30: + print("...") + print(f"(Total de {len(lines)} líneas)") + + return True + + except Exception as e: + print(f"Error durante la conversión: {e}") + return False + +def mostrar_detalles_red(converter, network_id): + """Muestra los detalles de una red específica""" + if network_id <= len(converter.networks): + network = converter.networks[network_id - 1] + print(f"\n=== Detalles de Red {network_id} ===") + print(f"Comentario: {network.comment}") + print(f"Elementos: {len(network.elements)}") + + for i, element in enumerate(network.elements): + print(f" {i+1}. {element.element_type.value}: {element.name}") + if element.expression: + print(f" Expresión: {element.expression}") + if element.parameters: + print(f" Parámetros: {element.parameters}") + +if __name__ == "__main__": + print("=== Convertidor LAD a Pseudocódigo Estructurado ===") + print("Procesando archivo INPUT.EXP de TwinCAT...") + + if convertir_input_exp(): + print("\n✓ Conversión completada exitosamente!") + else: + print("\n✗ Error en la conversión") \ No newline at end of file diff --git a/backend/script_groups/TwinCat/lad_to_pseudocode_converter.py b/backend/script_groups/TwinCat/lad_to_pseudocode_converter.py new file mode 100644 index 0000000..f8fb791 --- /dev/null +++ b/backend/script_groups/TwinCat/lad_to_pseudocode_converter.py @@ -0,0 +1,391 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Convertidor de código LAD (Ladder Diagram) de TwinCAT a pseudocódigo estructurado +Compatible con IEC61131-3 + +Autor: Asistente AI +Fecha: 2024 +""" + +import re +from typing import List, Dict, Any, Optional +from dataclasses import dataclass +from enum import Enum + + +class ElementType(Enum): + CONTACT = "CONTACT" + COIL = "COIL" + FUNCTION_BLOCK = "FUNCTION_BLOCK" + OPERATOR = "OPERATOR" + EXPRESSION = "EXPRESSION" + ASSIGN = "ASSIGN" + + +@dataclass +class LadderElement: + """Representa un elemento de la escalera LAD""" + element_type: ElementType + name: str + expression: str = "" + positive: bool = True + enabled: bool = True + parameters: List[str] = None + outputs: List[str] = None + + def __post_init__(self): + if self.parameters is None: + self.parameters = [] + if self.outputs is None: + self.outputs = [] + + +@dataclass +class LadderNetwork: + """Representa una red completa de LAD""" + network_id: int + comment: str = "" + elements: List[LadderElement] = None + + def __post_init__(self): + if self.elements is None: + self.elements = [] + + +class LadToStructuredConverter: + """Conversor principal de LAD a código estructurado""" + + def __init__(self): + self.networks: List[LadderNetwork] = [] + self.current_network: Optional[LadderNetwork] = None + self.output_lines: List[str] = [] + + def parse_file(self, file_path: str) -> None: + """Parse el archivo LAD completo""" + with open(file_path, 'r', encoding='utf-8', errors='ignore') as f: + content = f.read() + + # Encontrar la sección LAD + lad_start = content.find('_LD_BODY') + if lad_start == -1: + raise ValueError("No se encontró sección _LD_BODY en el archivo") + + lad_content = content[lad_start:] + self._parse_lad_content(lad_content) + + def _parse_lad_content(self, content: str) -> None: + """Parse el contenido LAD línea por línea""" + lines = content.split('\n') + i = 0 + + while i < len(lines): + line = lines[i].strip() + + if line == '_NETWORK': + i = self._parse_network(lines, i) + else: + i += 1 + + def _parse_network(self, lines: List[str], start_idx: int) -> int: + """Parse una red individual""" + network_id = len(self.networks) + 1 + network = LadderNetwork(network_id=network_id) + self.current_network = network + + i = start_idx + 1 + + while i < len(lines) and not lines[i].strip().startswith('_NETWORK'): + line = lines[i].strip() + + if line == '_COMMENT': + i, comment = self._parse_comment(lines, i) + network.comment = comment + elif line == '_LD_ASSIGN': + i = self._parse_assignment(lines, i) + elif line == '_LD_CONTACT': + i = self._parse_contact(lines, i) + elif line == '_LD_AND' or line == '_LD_OR': + i = self._parse_logic_operation(lines, i, line) + elif line.startswith('_FUNCTIONBLOCK'): + i = self._parse_function_block(lines, i) + elif line.startswith('_OPERATOR'): + i = self._parse_operator(lines, i) + else: + i += 1 + + self.networks.append(network) + return i + + def _parse_comment(self, lines: List[str], start_idx: int) -> tuple[int, str]: + """Parse un comentario""" + i = start_idx + 1 + comment_lines = [] + + while i < len(lines): + line = lines[i].strip() + if line == '_END_COMMENT': + break + if line and not line.startswith('_'): + comment_lines.append(line) + i += 1 + + return i + 1, '\n'.join(comment_lines) + + def _parse_assignment(self, lines: List[str], start_idx: int) -> int: + """Parse una asignación""" + i = start_idx + 1 + + # Buscar el elemento a asignar + target_var = "" + source_expr = "" + + while i < len(lines): + line = lines[i].strip() + + if line == '_EMPTY': + i += 1 + continue + elif line == '_EXPRESSION': + i += 1 + continue + elif line == '_POSITIV' or line == '_NEGATIV': + i += 1 + continue + elif line.startswith('_OUTPUT'): + # Siguiente línea debería ser la variable de salida + i += 2 # Saltar _POSITIV/_NEGATIV + i += 1 # Saltar _NO_SET o _SET + if i < len(lines): + target_var = lines[i].strip() + break + elif line == 'ENABLELIST_END': + break + elif not line.startswith('_') and not line.startswith('ENABLELIST'): + if not target_var: + source_expr = line + i += 1 + + if target_var: + element = LadderElement( + element_type=ElementType.ASSIGN, + name=target_var, + expression=source_expr + ) + self.current_network.elements.append(element) + + return i + 1 + + def _parse_contact(self, lines: List[str], start_idx: int) -> int: + """Parse un contacto""" + i = start_idx + 1 + contact_name = "" + is_positive = True + + if i < len(lines): + contact_name = lines[i].strip() + i += 1 + + if i < len(lines): + polarity = lines[i].strip() + is_positive = polarity == '_POSITIV' + i += 1 + + element = LadderElement( + element_type=ElementType.CONTACT, + name=contact_name, + positive=is_positive + ) + self.current_network.elements.append(element) + + return i + + def _parse_logic_operation(self, lines: List[str], start_idx: int, operation: str) -> int: + """Parse operaciones lógicas AND/OR""" + i = start_idx + 1 + + # Extraer el tipo de operación + op_type = operation.replace('_LD_', '') + + element = LadderElement( + element_type=ElementType.OPERATOR, + name=op_type + ) + self.current_network.elements.append(element) + + return i + + def _parse_function_block(self, lines: List[str], start_idx: int) -> int: + """Parse un bloque de función""" + i = start_idx + 1 + fb_name = "" + parameters = [] + + if i < len(lines): + fb_name = lines[i].strip() + i += 1 + + # Buscar parámetros + while i < len(lines): + line = lines[i].strip() + if line.startswith('_OPERAND'): + i += 2 # Saltar _EXPRESSION y _POSITIV + if i < len(lines): + param = lines[i].strip() + parameters.append(param) + elif line == '_OUTPUTS': + break + i += 1 + + element = LadderElement( + element_type=ElementType.FUNCTION_BLOCK, + name=fb_name, + parameters=parameters + ) + self.current_network.elements.append(element) + + return i + + def _parse_operator(self, lines: List[str], start_idx: int) -> int: + """Parse un operador""" + i = start_idx + 1 + operator_name = "" + operands = [] + + while i < len(lines): + line = lines[i].strip() + + if line.startswith('_OPERAND'): + i += 2 # Saltar _EXPRESSION y _POSITIV + if i < len(lines): + operand = lines[i].strip() + operands.append(operand) + elif line.startswith('_EXPRESSION') and i + 1 < len(lines): + next_line = lines[i + 1].strip() + if not next_line.startswith('_'): + operator_name = next_line + i += 1 + elif line == '_OUTPUTS': + break + i += 1 + + element = LadderElement( + element_type=ElementType.OPERATOR, + name=operator_name, + parameters=operands + ) + self.current_network.elements.append(element) + + return i + + def convert_to_structured(self) -> str: + """Convierte las redes LAD a código pseudo estructurado""" + self.output_lines = [] + + self.output_lines.append("// Código pseudo estructurado generado desde LAD") + self.output_lines.append("// Compatible con IEC61131-3") + self.output_lines.append("") + + for network in self.networks: + self._convert_network_to_structured(network) + self.output_lines.append("") + + return '\n'.join(self.output_lines) + + def _convert_network_to_structured(self, network: LadderNetwork) -> None: + """Convierte una red a código estructurado""" + self.output_lines.append(f"// Red {network.network_id}") + + if network.comment: + comment_lines = network.comment.split('\n') + for line in comment_lines: + if line.strip(): + self.output_lines.append(f"// {line.strip()}") + + # Procesar elementos de la red + conditions = [] + assignments = [] + + for element in network.elements: + if element.element_type == ElementType.CONTACT: + condition = element.name + if not element.positive: + condition = f"NOT {condition}" + conditions.append(condition) + + elif element.element_type == ElementType.ASSIGN: + if conditions: + condition_str = " AND ".join(conditions) + self.output_lines.append(f"IF {condition_str} THEN") + self.output_lines.append(f" {element.name} := {element.expression};") + self.output_lines.append("END_IF;") + else: + self.output_lines.append(f"{element.name} := {element.expression};") + + elif element.element_type == ElementType.FUNCTION_BLOCK: + params_str = ", ".join(element.parameters) if element.parameters else "" + if conditions: + condition_str = " AND ".join(conditions) + self.output_lines.append(f"IF {condition_str} THEN") + self.output_lines.append(f" {element.name}({params_str});") + self.output_lines.append("END_IF;") + else: + self.output_lines.append(f"{element.name}({params_str});") + + elif element.element_type == ElementType.OPERATOR: + if element.name == "AND": + # AND lógico - ya manejado en condiciones + pass + elif element.name == "OR": + # OR lógico - cambiar estrategia de condiciones + if len(conditions) > 1: + last_condition = conditions.pop() + conditions[-1] = f"({conditions[-1]} OR {last_condition})" + else: + # Otros operadores matemáticos + if element.parameters and len(element.parameters) >= 2: + expr = f"{element.parameters[0]} {element.name} {element.parameters[1]}" + if conditions: + condition_str = " AND ".join(conditions) + self.output_lines.append(f"IF {condition_str} THEN") + self.output_lines.append(f" // Resultado := {expr};") + self.output_lines.append("END_IF;") + else: + self.output_lines.append(f"// Resultado := {expr};") + + def save_to_file(self, output_path: str) -> None: + """Guarda el código estructurado a un archivo""" + structured_code = self.convert_to_structured() + + with open(output_path, 'w', encoding='utf-8') as f: + f.write(structured_code) + + print(f"Código pseudo estructurado guardado en: {output_path}") + + +def main(): + """Función principal""" + import sys + + if len(sys.argv) != 3: + print("Uso: python lad_to_pseudocode_converter.py ") + sys.exit(1) + + input_file = sys.argv[1] + output_file = sys.argv[2] + + try: + converter = LadToStructuredConverter() + converter.parse_file(input_file) + converter.save_to_file(output_file) + + print(f"Conversión completada exitosamente!") + print(f"Redes procesadas: {len(converter.networks)}") + + except Exception as e: + print(f"Error durante la conversión: {e}") + sys.exit(1) + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/backend/script_groups/TwinCat/lad_to_pseudocode_converter_enhanced.py b/backend/script_groups/TwinCat/lad_to_pseudocode_converter_enhanced.py new file mode 100644 index 0000000..aa1c64a --- /dev/null +++ b/backend/script_groups/TwinCat/lad_to_pseudocode_converter_enhanced.py @@ -0,0 +1,429 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Convertidor mejorado de código LAD (Ladder Diagram) de TwinCAT a pseudocódigo estructurado +Compatible con IEC61131-3 + +Autor: Asistente AI +Fecha: 2024 +""" + +import re +from typing import List, Dict, Any, Optional, Tuple +from dataclasses import dataclass, field +from enum import Enum + + +class LadElementType(Enum): + CONTACT = "CONTACT" + COIL = "COIL" + FUNCTION_BLOCK = "FUNCTION_BLOCK" + OPERATOR = "OPERATOR" + ASSIGNMENT = "ASSIGNMENT" + CONDITION = "CONDITION" + + +@dataclass +class LadVariable: + """Representa una variable en LAD""" + name: str + negated: bool = False + value: str = "" + + +@dataclass +class LadExpression: + """Representa una expresión en LAD""" + operator: str = "" + operands: List[str] = field(default_factory=list) + result_var: str = "" + + +@dataclass +class LadNetwork: + """Representa una red LAD completa""" + id: int + comment: str = "" + contacts: List[LadVariable] = field(default_factory=list) + operators: List[str] = field(default_factory=list) + function_blocks: List[Dict] = field(default_factory=list) + expressions: List[LadExpression] = field(default_factory=list) + outputs: List[LadVariable] = field(default_factory=list) + assignments: List[Dict] = field(default_factory=list) + + +class EnhancedLadConverter: + """Convertidor mejorado de LAD a código estructurado""" + + def __init__(self): + self.networks: List[LadNetwork] = [] + self.output_lines: List[str] = [] + + def parse_file(self, file_path: str) -> None: + """Parse el archivo LAD completo""" + with open(file_path, 'r', encoding='utf-8', errors='ignore') as f: + content = f.read() + + # Encontrar la sección LAD + lad_start = content.find('_LD_BODY') + if lad_start == -1: + raise ValueError("No se encontró sección _LD_BODY en el archivo") + + # Extraer solo la sección LAD hasta END_PROGRAM + lad_end = content.find('END_PROGRAM', lad_start) + if lad_end == -1: + lad_content = content[lad_start:] + else: + lad_content = content[lad_start:lad_end] + + self._parse_networks(lad_content) + + def _parse_networks(self, content: str) -> None: + """Parse todas las redes del contenido LAD""" + lines = content.split('\n') + i = 0 + network_id = 0 + + while i < len(lines): + if lines[i].strip() == '_NETWORK': + network_id += 1 + i = self._parse_single_network(lines, i, network_id) + else: + i += 1 + + def _parse_single_network(self, lines: List[str], start_idx: int, network_id: int) -> int: + """Parse una red individual""" + network = LadNetwork(id=network_id) + i = start_idx + 1 + + # Parse comment + if i < len(lines) and lines[i].strip() == '_COMMENT': + i, comment = self._extract_comment(lines, i) + network.comment = comment + + # Parse network content + while i < len(lines): + line = lines[i].strip() + + if line == '_NETWORK': + # Inicio de nueva red + break + elif line == '_LD_ASSIGN': + i = self._parse_assignment_block(lines, i, network) + elif line == '_LD_CONTACT': + i = self._parse_contact(lines, i, network) + elif line == '_LD_AND' or line == '_LD_OR': + network.operators.append(line.replace('_LD_', '')) + i += 1 + elif line.startswith('_FUNCTIONBLOCK'): + i = self._parse_function_block_detailed(lines, i, network) + else: + i += 1 + + self.networks.append(network) + return i + + def _extract_comment(self, lines: List[str], start_idx: int) -> Tuple[int, str]: + """Extrae comentario de la red""" + i = start_idx + 1 + comment_lines = [] + + while i < len(lines): + line = lines[i].strip() + if line == '_END_COMMENT': + break + if line and not line.startswith('_'): + comment_lines.append(line) + i += 1 + + return i + 1, ' '.join(comment_lines) + + def _parse_contact(self, lines: List[str], start_idx: int, network: LadNetwork) -> int: + """Parse un contacto""" + i = start_idx + 1 + + if i < len(lines): + contact_name = lines[i].strip() + i += 1 + + # Verificar polaridad + negated = False + if i < len(lines) and lines[i].strip() == '_NEGATIV': + negated = True + + contact = LadVariable(name=contact_name, negated=negated) + network.contacts.append(contact) + + return i + 1 + + def _parse_assignment_block(self, lines: List[str], start_idx: int, network: LadNetwork) -> int: + """Parse un bloque de asignación completo""" + i = start_idx + 1 + assignment_data = { + 'conditions': [], + 'target_var': '', + 'source_expr': '', + 'operator': '', + 'operands': [], + 'function_name': '', + 'fb_params': [] + } + + while i < len(lines): + line = lines[i].strip() + + if line == '_NETWORK' or line == 'ENABLELIST_END': + break + elif line == '_LD_CONTACT': + i += 1 + if i < len(lines): + contact_name = lines[i].strip() + i += 1 + negated = False + if i < len(lines) and lines[i].strip() == '_NEGATIV': + negated = True + i += 1 + assignment_data['conditions'].append(LadVariable(contact_name, negated)) + elif line.startswith('_FUNCTIONBLOCK'): + # Parse function block dentro de asignación + i, fb_data = self._parse_functionblock_in_assignment(lines, i) + assignment_data.update(fb_data) + elif line.startswith('_OPERATOR'): + i, op_data = self._parse_operator_in_assignment(lines, i) + assignment_data.update(op_data) + elif line.startswith('_OUTPUT'): + # Siguiente información es sobre la salida + i = self._parse_output_info(lines, i, assignment_data) + elif not line.startswith('_') and line and 'ENABLELIST' not in line: + # Variable o expresión + if not assignment_data['target_var']: + assignment_data['source_expr'] = line + else: + i += 1 + + if assignment_data['target_var'] or assignment_data['function_name']: + network.assignments.append(assignment_data) + + return i + + def _parse_functionblock_in_assignment(self, lines: List[str], start_idx: int) -> Tuple[int, Dict]: + """Parse function block dentro de asignación""" + i = start_idx + 1 + fb_data = {'function_name': '', 'fb_params': []} + + if i < len(lines): + fb_data['function_name'] = lines[i].strip() + i += 1 + + # Buscar parámetros + while i < len(lines) and not lines[i].strip().startswith('_OUTPUT'): + line = lines[i].strip() + if line.startswith('_OPERAND'): + i += 2 # Saltar _EXPRESSION y _POSITIV/_NEGATIV + if i < len(lines): + param = lines[i].strip() + fb_data['fb_params'].append(param) + i += 1 + + return i, fb_data + + def _parse_operator_in_assignment(self, lines: List[str], start_idx: int) -> Tuple[int, Dict]: + """Parse operador dentro de asignación""" + i = start_idx + 1 + op_data = {'operator': '', 'operands': []} + + # Buscar operandos y operador + while i < len(lines) and not lines[i].strip().startswith('_OUTPUT'): + line = lines[i].strip() + + if line.startswith('_OPERAND'): + i += 2 # Saltar _EXPRESSION y _POSITIV/_NEGATIV + if i < len(lines): + operand = lines[i].strip() + op_data['operands'].append(operand) + elif line in ['ADD', 'SUB', 'MUL', 'DIV', 'AND', 'OR', 'LT', 'GT', 'EQ', 'SEL', 'MOVE']: + op_data['operator'] = line + i += 1 + + return i, op_data + + def _parse_output_info(self, lines: List[str], start_idx: int, assignment_data: Dict) -> int: + """Parse información de salida""" + i = start_idx + 1 + + # Saltar información de salida hasta encontrar la variable + while i < len(lines): + line = lines[i].strip() + if not line.startswith('_') and line and 'ENABLELIST' not in line: + assignment_data['target_var'] = line + break + i += 1 + + return i + 1 + + def _parse_function_block_detailed(self, lines: List[str], start_idx: int, network: LadNetwork) -> int: + """Parse function block detallado""" + i = start_idx + 1 + fb_data = {'name': '', 'params': [], 'outputs': []} + + if i < len(lines): + fb_data['name'] = lines[i].strip() + i += 1 + + # Parse parámetros y salidas + while i < len(lines): + line = lines[i].strip() + if line.startswith('_OPERAND'): + i += 2 + if i < len(lines): + param = lines[i].strip() + fb_data['params'].append(param) + elif line.startswith('_OUTPUT'): + i += 3 # Saltar información de salida + if i < len(lines): + output = lines[i].strip() + fb_data['outputs'].append(output) + elif line == '_NETWORK': + break + i += 1 + + network.function_blocks.append(fb_data) + return i + + def convert_to_structured(self) -> str: + """Convierte las redes a código pseudo estructurado""" + self.output_lines = [ + "// Código pseudo estructurado generado desde LAD TwinCAT", + "// Compatible con IEC61131-3", + "PROGRAM Input_Converted", + "" + ] + + for network in self.networks: + self._convert_network_to_structured(network) + + self.output_lines.append("END_PROGRAM") + return '\n'.join(self.output_lines) + + def _convert_network_to_structured(self, network: LadNetwork) -> None: + """Convierte una red a código estructurado""" + self.output_lines.append(f" // Red {network.id}") + + if network.comment: + self.output_lines.append(f" // {network.comment}") + + # Procesar asignaciones de la red + for assignment in network.assignments: + self._convert_assignment_to_structured(assignment) + + # Procesar function blocks independientes + for fb in network.function_blocks: + self._convert_function_block_to_structured(fb) + + self.output_lines.append("") + + def _convert_assignment_to_structured(self, assignment: Dict) -> None: + """Convierte una asignación a código estructurado""" + conditions = assignment.get('conditions', []) + target_var = assignment.get('target_var', '') + source_expr = assignment.get('source_expr', '') + operator = assignment.get('operator', '') + operands = assignment.get('operands', []) + function_name = assignment.get('function_name', '') + fb_params = assignment.get('fb_params', []) + + # Construir condiciones + condition_str = "" + if conditions: + condition_parts = [] + for cond in conditions: + if cond.negated: + condition_parts.append(f"NOT {cond.name}") + else: + condition_parts.append(cond.name) + condition_str = " AND ".join(condition_parts) + + # Construir la expresión de asignación + if function_name: + # Function block call + params_str = ", ".join(fb_params) if fb_params else "" + if target_var: + expr = f"{target_var} := {function_name}({params_str})" + else: + expr = f"{function_name}({params_str})" + elif operator and operands: + # Operación matemática/lógica + if len(operands) == 2: + if operator == "SEL": + expr = f"{target_var} := SEL({operands[0]}, {operands[1]}, condition)" + else: + expr = f"{target_var} := {operands[0]} {operator} {operands[1]}" + elif len(operands) == 1: + if operator == "MOVE": + expr = f"{target_var} := {operands[0]}" + else: + expr = f"{target_var} := {operator}({operands[0]})" + else: + expr = f"{target_var} := {operator}({', '.join(operands)})" + elif source_expr and target_var: + # Asignación simple + expr = f"{target_var} := {source_expr}" + else: + return # Sin información suficiente + + # Generar código estructurado + if condition_str: + self.output_lines.append(f" IF {condition_str} THEN") + self.output_lines.append(f" {expr};") + self.output_lines.append(f" END_IF;") + else: + self.output_lines.append(f" {expr};") + + def _convert_function_block_to_structured(self, fb: Dict) -> None: + """Convierte un function block a código estructurado""" + name = fb.get('name', '') + params = fb.get('params', []) + + if name: + params_str = ", ".join(params) if params else "" + self.output_lines.append(f" {name}({params_str});") + + def save_to_file(self, output_path: str) -> None: + """Guarda el código estructurado a un archivo""" + structured_code = self.convert_to_structured() + + with open(output_path, 'w', encoding='utf-8') as f: + f.write(structured_code) + + print(f"Código pseudo estructurado guardado en: {output_path}") + + +def main(): + """Función principal""" + import sys + + if len(sys.argv) != 3: + print("Uso: python lad_to_pseudocode_converter_enhanced.py ") + return + + input_file = sys.argv[1] + output_file = sys.argv[2] + + try: + converter = EnhancedLadConverter() + converter.parse_file(input_file) + converter.save_to_file(output_file) + + print(f"Conversión completada exitosamente!") + print(f"Redes procesadas: {len(converter.networks)}") + + # Mostrar estadísticas por red + for network in converter.networks[:5]: # Primeras 5 redes + print(f"Red {network.id}: {len(network.assignments)} asignaciones, {len(network.contacts)} contactos") + + except Exception as e: + print(f"Error durante la conversión: {e}") + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/backend/script_groups/TwinCat/simple_lad_converter.py b/backend/script_groups/TwinCat/simple_lad_converter.py new file mode 100644 index 0000000..c466cd0 --- /dev/null +++ b/backend/script_groups/TwinCat/simple_lad_converter.py @@ -0,0 +1,268 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Convertidor simplificado de LAD TwinCAT a pseudocódigo estructurado +""" + +import re + +class SimpleLadConverter: + """Convertidor simplificado de LAD a código estructurado""" + + def __init__(self): + self.networks = [] + self.current_network_id = 0 + + def parse_file(self, file_path): + """Parse el archivo LAD""" + with open(file_path, 'r', encoding='utf-8', errors='ignore') as f: + content = f.read() + + # Encontrar sección LAD + lad_start = content.find('_LD_BODY') + if lad_start == -1: + print("No se encontró _LD_BODY") + return + + # Extraer contenido LAD + lines = content[lad_start:].split('\n') + self._parse_networks(lines) + + def _parse_networks(self, lines): + """Parse todas las redes""" + i = 0 + while i < len(lines): + if lines[i].strip() == '_NETWORK': + self.current_network_id += 1 + i = self._parse_network(lines, i) + else: + i += 1 + + def _parse_network(self, lines, start_idx): + """Parse una red individual""" + network = { + 'id': self.current_network_id, + 'comment': '', + 'contacts': [], + 'assignments': [], + 'outputs': [] + } + + i = start_idx + 1 + + # Parse comentario + if i < len(lines) and lines[i].strip() == '_COMMENT': + i, comment = self._parse_comment(lines, i) + network['comment'] = comment + + # Parse contenido de la red + current_assignment = { + 'conditions': [], + 'target': '', + 'expression': '', + 'function_block': '', + 'operator': '', + 'operands': [] + } + + while i < len(lines): + line = lines[i].strip() + + if line == '_NETWORK': + break + elif line == '_LD_ASSIGN': + if current_assignment['target'] or current_assignment['function_block']: + network['assignments'].append(current_assignment.copy()) + current_assignment = { + 'conditions': [], + 'target': '', + 'expression': '', + 'function_block': '', + 'operator': '', + 'operands': [] + } + i += 1 + elif line == '_LD_CONTACT': + i += 1 + if i < len(lines): + contact_name = lines[i].strip() + i += 1 + negated = False + if i < len(lines) and lines[i].strip() == '_NEGATIV': + negated = True + i += 1 + current_assignment['conditions'].append({ + 'name': contact_name, + 'negated': negated + }) + elif line.startswith('_FUNCTIONBLOCK'): + i += 1 + if i < len(lines): + current_assignment['function_block'] = lines[i].strip() + i += 1 + elif line.startswith('_OPERATOR'): + i += 1 + # Buscar operador y operandos + while i < len(lines) and not lines[i].strip().startswith('_OUTPUT'): + subline = lines[i].strip() + if subline in ['ADD', 'SUB', 'MUL', 'DIV', 'AND', 'OR', 'LT', 'GT', 'EQ', 'SEL', 'MOVE']: + current_assignment['operator'] = subline + elif subline.startswith('_OPERAND'): + i += 2 # Saltar _EXPRESSION y _POSITIV + if i < len(lines): + operand = lines[i].strip() + current_assignment['operands'].append(operand) + i += 1 + continue + elif line.startswith('_OUTPUT'): + # Buscar variable de salida + i += 1 + while i < len(lines) and lines[i].strip().startswith('_'): + i += 1 + if i < len(lines): + current_assignment['target'] = lines[i].strip() + i += 1 + elif not line.startswith('_') and line and 'ENABLELIST' not in line: + if not current_assignment['expression']: + current_assignment['expression'] = line + i += 1 + else: + i += 1 + + # Agregar última asignación si existe + if current_assignment['target'] or current_assignment['function_block']: + network['assignments'].append(current_assignment) + + self.networks.append(network) + return i + + def _parse_comment(self, lines, start_idx): + """Parse comentario""" + i = start_idx + 1 + comment_lines = [] + + while i < len(lines): + line = lines[i].strip() + if line == '_END_COMMENT': + break + if line and not line.startswith('_'): + comment_lines.append(line) + i += 1 + + return i + 1, ' '.join(comment_lines) + + def convert_to_structured(self): + """Convertir a código estructurado""" + output = [] + output.append("// Código pseudo estructurado generado desde LAD TwinCAT") + output.append("// Compatible con IEC61131-3") + output.append("PROGRAM Input_Converted") + output.append("") + + for network in self.networks: + output.append(f" // Red {network['id']}") + if network['comment']: + output.append(f" // {network['comment']}") + + for assignment in network['assignments']: + structured_line = self._convert_assignment(assignment) + if structured_line: + if assignment['conditions']: + # Construir condición + conditions = [] + for cond in assignment['conditions']: + if cond['negated']: + conditions.append(f"NOT {cond['name']}") + else: + conditions.append(cond['name']) + condition_str = " AND ".join(conditions) + output.append(f" IF {condition_str} THEN") + output.append(f" {structured_line};") + output.append(" END_IF;") + else: + output.append(f" {structured_line};") + + output.append("") + + output.append("END_PROGRAM") + return '\n'.join(output) + + def _convert_assignment(self, assignment): + """Convertir una asignación a código estructurado""" + target = assignment['target'] + expression = assignment['expression'] + function_block = assignment['function_block'] + operator = assignment['operator'] + operands = assignment['operands'] + + if function_block: + params = ", ".join(operands) if operands else "" + if target: + return f"{target} := {function_block}({params})" + else: + return f"{function_block}({params})" + + elif operator and operands: + if len(operands) >= 2: + if operator == "SEL": + return f"{target} := SEL({operands[0]}, {operands[1]}, condition)" + else: + return f"{target} := {operands[0]} {operator} {operands[1]}" + elif len(operands) == 1: + if operator == "MOVE": + return f"{target} := {operands[0]}" + else: + return f"{target} := {operator}({operands[0]})" + + elif expression and target: + return f"{target} := {expression}" + + return None + + def save_to_file(self, output_path): + """Guardar código estructurado""" + structured_code = self.convert_to_structured() + + with open(output_path, 'w', encoding='utf-8') as f: + f.write(structured_code) + + print(f"Código guardado en: {output_path}") + return structured_code + +def main(): + """Función principal""" + converter = SimpleLadConverter() + + try: + print("=== Convertidor LAD Simplificado ===") + print("Parseando archivo INPUT.EXP...") + + converter.parse_file(".example/_PUMPCONTROL.EXP") + + print(f"Redes encontradas: {len(converter.networks)}") + + # Mostrar algunas estadísticas + for i, network in enumerate(converter.networks[:5]): + print(f"Red {network['id']}: {len(network['assignments'])} asignaciones") + if network['comment']: + print(f" Comentario: {network['comment']}") + + # Convertir y guardar + print("\nGenerando código estructurado...") + structured_code = converter.save_to_file("simple_output.txt") + + # Mostrar primeras líneas + lines = structured_code.split('\n') + print(f"\nPrimeras {min(30, len(lines))} líneas:") + for i, line in enumerate(lines[:30]): + print(f"{i+1:3d}: {line}") + + print(f"\n✓ Conversión completada! Total de líneas: {len(lines)}") + + except Exception as e: + print(f"Error: {e}") + import traceback + traceback.print_exc() + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/backend/script_groups/TwinCat/test_enhanced_converter.py b/backend/script_groups/TwinCat/test_enhanced_converter.py new file mode 100644 index 0000000..d9a1acf --- /dev/null +++ b/backend/script_groups/TwinCat/test_enhanced_converter.py @@ -0,0 +1,69 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Script de prueba para el convertidor LAD mejorado +""" + +from lad_to_pseudocode_converter_enhanced import EnhancedLadConverter + +def test_enhanced_converter(): + """Prueba el convertidor mejorado""" + print("=== Convertidor LAD Mejorado ===") + + try: + # Crear el convertidor + converter = EnhancedLadConverter() + + # Parsear el archivo + print("Parseando INPUT.EXP...") + converter.parse_file(".example/INPUT.EXP") + + print(f"Redes encontradas: {len(converter.networks)}") + + # Mostrar detalles de las primeras redes + for i, network in enumerate(converter.networks[:10]): + print(f"\n--- Red {network.id} ---") + print(f"Comentario: {network.comment}") + print(f"Contactos: {len(network.contacts)}") + print(f"Asignaciones: {len(network.assignments)}") + print(f"Function Blocks: {len(network.function_blocks)}") + + # Mostrar detalles de asignaciones + for j, assignment in enumerate(network.assignments[:3]): + print(f" Asignación {j+1}:") + if assignment['conditions']: + conditions = [f"{'NOT ' if c.negated else ''}{c.name}" for c in assignment['conditions']] + print(f" Condiciones: {' AND '.join(conditions)}") + if assignment['target_var']: + print(f" Variable destino: {assignment['target_var']}") + if assignment['function_name']: + print(f" Function Block: {assignment['function_name']}") + if assignment['operator']: + print(f" Operador: {assignment['operator']}") + if assignment['operands']: + print(f" Operandos: {assignment['operands']}") + + # Convertir a pseudocódigo + print("\n=== Generando pseudocódigo ===") + structured_code = converter.convert_to_structured() + + # Guardar archivo + output_file = "INPUT_enhanced_pseudocode.txt" + converter.save_to_file(output_file) + + # Mostrar las primeras líneas + print("\n=== Primeras líneas del resultado ===") + lines = structured_code.split('\n') + for i, line in enumerate(lines[:50]): + print(f"{i+1:3d}: {line}") + + return True + + except Exception as e: + print(f"Error: {e}") + import traceback + traceback.print_exc() + return False + +if __name__ == "__main__": + test_enhanced_converter() \ No newline at end of file diff --git a/backend/script_groups/TwinCat/test_simple.py b/backend/script_groups/TwinCat/test_simple.py new file mode 100644 index 0000000..79f9cb1 --- /dev/null +++ b/backend/script_groups/TwinCat/test_simple.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 + +from simple_lad_converter import SimpleLadConverter + +converter = SimpleLadConverter() +print("Iniciando conversión...") + +try: + converter.parse_file(".example/INPUT.EXP") + print(f"Redes encontradas: {len(converter.networks)}") + + structured_code = converter.save_to_file("output_simple.txt") + print("Conversión completada!") + + # Mostrar primeras líneas + lines = structured_code.split('\n') + for i, line in enumerate(lines[:20]): + print(f"{i+1:2d}: {line}") + +except Exception as e: + print(f"Error: {e}") + import traceback + traceback.print_exc() \ No newline at end of file diff --git a/data/log.txt b/data/log.txt index 94d7d20..94f1769 100644 --- a/data/log.txt +++ b/data/log.txt @@ -1,560 +1,568 @@ -[00:05:19] Iniciando ejecución de x5_md_to_excel.py en C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags... -[00:05:20] Usando directorio de trabajo: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags -[00:05:20] Usando archivo Excel predeterminado: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags.xlsx -[00:05:20] Seleccione el archivo Markdown con la adaptación IO: -[00:05:32] Iniciando proceso de actualización -[00:05:32] Archivo Excel de entrada: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags.xlsx -[00:05:32] Archivo Markdown de entrada: C:/Trabajo/SIDEL/13 - E5.007560 - Modifica O&U - SAE235/Reporte/IOTags/IO Adapted.md -[00:05:32] Archivo Excel de salida: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags_Updated.xlsx -[00:05:32] -------------------------------------------------------------------------------- -[00:05:32] Configuración de paths cargada desde: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\io_paths_config.json -[00:05:32] Configuración de paths cargada: -[00:05:32] - Inputs: tipo=Input, no_used_path=IO Not in Hardware\InputsMaster -[00:05:32] - Outputs: tipo=Output, no_used_path=IO Not in Hardware\OutputsMaster -[00:05:32] - OutputsFesto: tipo=Output, no_used_path=IO Not in Hardware\OutputsMaster -[00:05:32] - IO Not in Hardware\InputsMaster: tipo=Input, no_used_path=IO Not in Hardware\InputsMaster -[00:05:32] - IO Not in Hardware\OutputsMaster: tipo=Output, no_used_path=IO Not in Hardware\OutputsMaster -[00:05:32] Se encontraron 10 tablas en el archivo -[00:05:32] Procesando tabla 1 (línea 10) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 1 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 1 procesada exitosamente: 28 filas -[00:05:32] Procesando tabla 2 (línea 45) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 2 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 2 procesada exitosamente: 36 filas -[00:05:32] Procesando tabla 3 (línea 88) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 3 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 3 procesada exitosamente: 8 filas -[00:05:32] Procesando tabla 4 (línea 103) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 4 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 4 procesada exitosamente: 8 filas -[00:05:32] Procesando tabla 5 (línea 120) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 5 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 5 procesada exitosamente: 6 filas -[00:05:32] Procesando tabla 6 (línea 131) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 6 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 6 procesada exitosamente: 3 filas -[00:05:32] Procesando tabla 7 (línea 139) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 7 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 7 procesada exitosamente: 5 filas -[00:05:32] Procesando tabla 8 (línea 149) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 8 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 8 procesada exitosamente: 4 filas -[00:05:32] Procesando tabla 9 (línea 158) -[00:05:32] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Tabla 9 tiene las columnas requeridas. Procesando... -[00:05:32] Tabla 9 procesada exitosamente: 4 filas -[00:05:32] Procesando tabla 10 (línea 169) -[00:05:32] Encabezados detectados: ['IO', 'Problema Detectado', 'Observaciones'] -[00:05:32] Tabla 10 no tiene las columnas requeridas (IO/address y Master Tag/master/tag). Omitiendo... -[00:05:32] Combinando 9 tablas válidas... -[00:05:32] Tabla combinada final: 102 filas, 6 columnas -[00:05:32] Columnas finales: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] -[00:05:32] Columna IO: IO -[00:05:32] Columna Master Tag: Master Tag -[00:05:32] Tags mapeados en el archivo Markdown: 99 -[00:05:32] Archivo Excel cargado: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags.xlsx -[00:05:32] Hojas disponibles: ['PLC Tags', 'TagTable Properties'] -[00:05:32] Asignación memoria: AI_CIP_CIP_Total_Time | Viejo valor: %MW3116 | Nuevo valor: %MW3600 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: AI_CIP_SetPoint_Temeperature | Viejo valor: %MB3087 | Nuevo valor: %MW3602 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: AI_SYRUP_Cip_Phase | Viejo valor: %MB3090 | Nuevo valor: %MW3604 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: AI_SYRUP_Cip_RemaningTime | Viejo valor: %MB3089 | Nuevo valor: %MW3606 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: AI_SYRUP_Cip_TotalTime | Viejo valor: %MB3088 | Nuevo valor: %MW3608 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_Air_InletPress_OK | Viejo valor: %E7.1 | Nuevo valor: %E7.1 | Path: Inputs -[00:05:32] Actualizado: DI_AlarmReset | Viejo valor: %E0.2 | Nuevo valor: %E0.2 | Path: Inputs -[00:05:32] Asignación memoria: DI_Ammonia_High_Lev_Prod | Viejo valor: %M3003.7 | Nuevo valor: %M3610.0 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_AmmoniaHighLev_Water | Viejo valor: %M3003.1 | Nuevo valor: %M3610.1 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_AuxVoltage_On | Viejo valor: %E0.0 | Nuevo valor: %E0.5 | Path: Inputs -[00:05:32] Asignación memoria: DI_AVM362_Close | Viejo valor: %E112.3 | Nuevo valor: %M3610.2 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_AVM362_Open | Viejo valor: %E102.3 | Nuevo valor: %M3610.3 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_CIP_ChemicalProd | Viejo valor: %M3001.5 | Nuevo valor: %M3610.4 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_CIP_CleaningCompleted | Viejo valor: %E60.3 | Nuevo valor: %E6.3 | Path: Inputs -[00:05:32] Asignación memoria: DI_CIP_CleaningFault | Viejo valor: %M3002.5 | Nuevo valor: %M3610.5 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_CIP_FreeSodaTank | Viejo valor: %M3001.7 | Nuevo valor: %M3610.6 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_CIP_HotWaterSending | Viejo valor: %M3001.6 | Nuevo valor: %M3610.7 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_CIP_TankFilling | Viejo valor: %M3001.4 | Nuevo valor: %M3611.0 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_CO2_InletPress_OK | Viejo valor: %M3004.0 | Nuevo valor: %M3611.1 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_DeairVacuumOk | Viejo valor: %M3004.2 | Nuevo valor: %M3611.2 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Emergency_Pilz_On | Viejo valor: %M3605.1 | Nuevo valor: %M3611.3 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Emergency_Pressed | Viejo valor: %E4.3 | Nuevo valor: %M3611.4 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr_CIP_CleaningAlarm | Viejo valor: %M3002.7 | Nuevo valor: %M3611.5 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr1_CIP_DrainComplete | Viejo valor: %M3605.5 | Nuevo valor: %M3611.6 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr_CIP_FloodingEnd | Viejo valor: %M3002.0 | Nuevo valor: %M3611.7 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr1_CIP/RinseFiller | Viejo valor: %M3605.4 | Nuevo valor: %M3612.0 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr_CIP_RecoverReq | Viejo valor: %M3002.2 | Nuevo valor: %M3612.1 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr_CIP_RinseMode | Viejo valor: %M3002.1 | Nuevo valor: %M3612.2 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr_EndProdLastBottleFilled | Viejo valor: %M3000.2 | Nuevo valor: %M3612.3 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr_OpenAVM369 | Viejo valor: %M3000.3 | Nuevo valor: %M3612.4 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr1_PROD_Request | Viejo valor: %M3605.3 | Nuevo valor: %M3612.5 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_CIP_Drain | Viejo valor: %E60.2 | Nuevo valor: %E6.2 | Path: Inputs -[00:05:32] Actualizado: DI_CIP_CIP_Rinse | Viejo valor: %E60.1 | Nuevo valor: %E6.1 | Path: Inputs -[00:05:32] Actualizado: DI_CIP_CIP_Enable | Viejo valor: %E60.0 | Nuevo valor: %E6.0 | Path: Inputs -[00:05:32] Asignación memoria: DI_SYR_TANK_LEVEL | Viejo valor: %MW3206 | Nuevo valor: %MW3612 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_FSS301 | Viejo valor: %E7.3 | Nuevo valor: %M3614.6 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_HVM302_Sensor | Viejo valor: %M3000.7 | Nuevo valor: %M3614.7 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Log_Sidel | Viejo valor: %E3660.0 | Nuevo valor: %M3615.0 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_LSM302L | Viejo valor: %E1.0 | Nuevo valor: %E1.0 | Path: Inputs -[00:05:32] Actualizado: DI_LSN301L | Viejo valor: %E0.6 | Nuevo valor: %E0.6 | Path: Inputs -[00:05:32] Asignación memoria: DI_MaxTempAlarm | Viejo valor: %M3625.0 | Nuevo valor: %M3615.1 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Min_Deair2_Level | Viejo valor: %M3001.0 | Nuevo valor: %M3615.2 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Min_Syrup_Level | Viejo valor: %E0.7 | Nuevo valor: %M3615.3 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_PB_Machine_Start | Viejo valor: %E0.4 | Nuevo valor: %E0.4 | Path: Inputs -[00:05:32] Actualizado: DI_PB_Machine_Stop | Viejo valor: %E0.3 | Nuevo valor: %E0.3 | Path: Inputs -[00:05:32] Actualizado: DI_PPM303_Ovrld | Viejo valor: %E2.4 | Nuevo valor: %E2.4 | Path: Inputs -[00:05:32] Actualizado: DI_PPN301_Contactor | Viejo valor: %E11.0 | Nuevo valor: %E2.1 | Path: Inputs -[00:05:32] Actualizado: DI_PPN301_Ovrld | Viejo valor: %E2.0 | Nuevo valor: %E2.0 | Path: Inputs -[00:05:32] Asignación memoria: DI_PPN301_SoftStOvr | Viejo valor: %E2.1 | Nuevo valor: %M3615.4 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_PPN304_Contactor | Viejo valor: %M3003.2 | Nuevo valor: %M3615.5 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_PPM305_Ovrld | Viejo valor: %M3005.0 | Nuevo valor: %M3615.6 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_PPP302_Contactor | Viejo valor: %E2.3 | Nuevo valor: %E2.3 | Path: Inputs -[00:05:32] Actualizado: DI_PPP302_Ovrld | Viejo valor: %E2.2 | Nuevo valor: %E2.2 | Path: Inputs -[00:05:32] Asignación memoria: DI_Product_Analyzer_Prod_NO_OK | Viejo valor: %M3003.4 | Nuevo valor: %M3615.7 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_RMM301_Closed | Viejo valor: %E1.5 | Nuevo valor: %E1.5 | Path: Inputs -[00:05:32] Actualizado: DI_RMM303_Closed | Viejo valor: %E1.7 | Nuevo valor: %E1.7 | Path: Inputs -[00:05:32] Asignación memoria: DI_RMM304_Closed | Viejo valor: %M3004.5 | Nuevo valor: %M3616.0 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_RMP302_Closed | Viejo valor: %E1.6 | Nuevo valor: %E1.6 | Path: Inputs -[00:05:32] Asignación memoria: DI_SyrRoom_Cip_Mode | Viejo valor: %M3002.3 | Nuevo valor: %M3616.1 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_SyrRoom_Pump_Ready | Viejo valor: %M3606.5 | Nuevo valor: %M3616.2 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_SyrRoom_WatPumpReady | Viejo valor: %E68.1 | Nuevo valor: %M3616.3 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_UPSBatteryReady | Viejo valor: %E3.7 | Nuevo valor: %E3.7 | Path: Inputs -[00:05:32] Asignación memoria: DI_UV_Lamp_Ready | Viejo valor: %M3004.7 | Nuevo valor: %M3616.4 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Water_Pump2_Contactor | Viejo valor: %M3004.4 | Nuevo valor: %M3616.5 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Water_Pump2_Ovrld | Viejo valor: %M3001.1 | Nuevo valor: %M3616.6 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_WaterPipeCIP_Sensor | Viejo valor: %M3000.5 | Nuevo valor: %M3616.7 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DO_Aux24DC | Viejo valor: %M3500.1 | Nuevo valor: %M3800.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM312_Deair_Reflux | Viejo valor: %M3507.6 | Nuevo valor: %M3800.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM317_1 | Viejo valor: %A17.3 | Nuevo valor: %M3800.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM327 | Viejo valor: %M3510.4 | Nuevo valor: %M3800.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM328 | Viejo valor: %M3506.1 | Nuevo valor: %M3800.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM329 | Viejo valor: %M3510.5 | Nuevo valor: %M3800.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM330 | Viejo valor: %M3510.6 | Nuevo valor: %M3800.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM396 | Viejo valor: %A17.1 | Nuevo valor: %M3800.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN325 | Viejo valor: %A17.7 | Nuevo valor: %M3801.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN329 | Viejo valor: %A17.6 | Nuevo valor: %M3801.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN348 | Viejo valor: %A16.1 | Nuevo valor: %M3801.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN349 | Viejo valor: %A16.7 | Nuevo valor: %M3801.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN373 | Viejo valor: %A16.3 | Nuevo valor: %M3801.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN374 | Viejo valor: %A19.3 | Nuevo valor: %M3801.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN377 | Viejo valor: %M3510.3 | Nuevo valor: %M3801.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN378 | Viejo valor: %M3510.2 | Nuevo valor: %M3801.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN390 | Viejo valor: %M3505.5 | Nuevo valor: %M3802.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN347 | Viejo valor: %A20.1 | Nuevo valor: %M3802.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVP363 | Viejo valor: %A16.5 | Nuevo valor: %M3802.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVP391 | Viejo valor: %M3505.6 | Nuevo valor: %M3802.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVS331 | Viejo valor: %A18.0 | Nuevo valor: %M3802.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVS332 | Viejo valor: %A18.1 | Nuevo valor: %M3802.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVS333 | Viejo valor: %A18.2 | Nuevo valor: %M3802.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVS334 | Viejo valor: %A18.3 | Nuevo valor: %M3802.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVS335 | Viejo valor: %A18.4 | Nuevo valor: %M3803.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVS336 | Viejo valor: %A18.5 | Nuevo valor: %M3803.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVS337 | Viejo valor: %A18.6 | Nuevo valor: %M3803.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVS338 | Viejo valor: %A18.7 | Nuevo valor: %M3803.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_CleaningFault | Viejo valor: %M3501.7 | Nuevo valor: %M3803.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_SyrupRoom_Aux1 | Viejo valor: %M3602.2 | Nuevo valor: %M3803.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_CIP_DrainCompleted | Viejo valor: %A60.1 | Nuevo valor: %A2.1 | Path: Outputs -[00:05:32] Asignación memoria: DO_CIP_HotWaterReq | Viejo valor: %M3502.4 | Nuevo valor: %M3803.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_RecoverCompleted | Viejo valor: %M3502.1 | Nuevo valor: %M3803.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_SendSodaReq | Viejo valor: %M3502.2 | Nuevo valor: %M3804.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_SolutionReturn | Viejo valor: %M3502.0 | Nuevo valor: %M3804.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_WaterPipe_Ready | Viejo valor: %M3502.3 | Nuevo valor: %M3804.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CO2_Counter_Pulse | Viejo valor: %M3500.4 | Nuevo valor: %M3804.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CtrlCircuitRun | Viejo valor: %A5.1 | Nuevo valor: %M3804.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_SyRm_SyrupReques | Viejo valor: %A1.0 | Nuevo valor: %M3804.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV03_SyrupLvlCtrl | Viejo valor: %A20.2 | Nuevo valor: %M3804.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV04_SyrupFillUp | Viejo valor: %A20.3 | Nuevo valor: %M3804.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV66_FillerRinseWater | Viejo valor: %M3509.4 | Nuevo valor: %M3805.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV67_SyrupLineDrain | Viejo valor: %A19.2 | Nuevo valor: %M3805.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV68_FillerRinseWater | Viejo valor: %M3508.2 | Nuevo valor: %M3805.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV71_FillerPrPipeDrai | Viejo valor: %M3508.3 | Nuevo valor: %M3805.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV71_FiRinseSprayBall | Viejo valor: %M3508.4 | Nuevo valor: %M3805.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV72_FlrRinseTankDrai | Viejo valor: %M3508.5 | Nuevo valor: %M3805.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_FillerNextRecipe | Viejo valor: %MB3504 | Nuevo valor: %MW3805 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_BottleStop | Viejo valor: %M3503.3 | Nuevo valor: %M3807.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr1_CIP_CleaningEnd | Viejo valor: %M3660.1 | Nuevo valor: %M3807.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_CIP_CleaningFault | Viejo valor: %M3502.5 | Nuevo valor: %M3808.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr1_CIP_DrainRequest | Viejo valor: %M3660.0 | Nuevo valor: %M3808.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_CIP_ProdSending | Viejo valor: %M3502.6 | Nuevo valor: %M3808.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_CIP_RecoverReq | Viejo valor: %M3502.7 | Nuevo valor: %M3808.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr1_RinseMode | Viejo valor: %M3603.5 | Nuevo valor: %M3808.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_CIP_RinseSending | Viejo valor: %M3503.2 | Nuevo valor: %M3808.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_CIP_Running | Viejo valor: %M3503.0 | Nuevo valor: %M3808.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_CIP_TankFilling | Viejo valor: %M3503.1 | Nuevo valor: %M3808.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_FastRinseRequest | Viejo valor: %M3503.6 | Nuevo valor: %M3809.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr1_CIP/Rinse | Viejo valor: %M3511.5 | Nuevo valor: %M3809.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr1_PROD_Available | Viejo valor: %M3603.4 | Nuevo valor: %M3809.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr1_OpenBottleblock | Viejo valor: %M3603.6 | Nuevo valor: %M3809.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_PROD_Run_Out | Viejo valor: %M3503.4 | Nuevo valor: %M3809.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_ProductCompleted | Viejo valor: %M3503.5 | Nuevo valor: %M3809.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_WaterRinseReady | Viejo valor: %M3503.7 | Nuevo valor: %M3809.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Green_Lamp | Viejo valor: %M3500.5 | Nuevo valor: %M3809.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_Horn | Viejo valor: %A7.0 | Nuevo valor: %A3.0 | Path: Outputs -[00:05:32] Asignación memoria: DO_MES_CIP | Viejo valor: %M3500.7 | Nuevo valor: %M3810.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_MES_FAULT | Viejo valor: %M3501.2 | Nuevo valor: %M3810.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_MES_PRODUCTION | Viejo valor: %M3501.0 | Nuevo valor: %M3810.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_MES_Running | Viejo valor: %M3501.1 | Nuevo valor: %M3810.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_CIP_Mode_En | Viejo valor: %A60.0 | Nuevo valor: %A2.0 | Path: Outputs -[00:05:32] Asignación memoria: DO_MIXER _CIP_Temperature_Return | Viejo valor: %MW3514 | Nuevo valor: %MW3810 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CoolingON | Viejo valor: %M3511.0 | Nuevo valor: %M3812.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_MIXER _Rinse_mode | Viejo valor: %M3512.2 | Nuevo valor: %M3812.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_PB_Green_Lamp | Viejo valor: %A7.1 | Nuevo valor: %A3.1 | Path: Outputs -[00:05:32] Asignación memoria: DO_PCM306En | Viejo valor: %M3501.6 | Nuevo valor: %M3812.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_PPM303_Run | Viejo valor: %A7.6 | Nuevo valor: %A3.6 | Path: Outputs -[00:05:32] Asignación memoria: DO_PPN301_1053K1 | Viejo valor: %M3501.5 | Nuevo valor: %M3812.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_PPN301_Run | Viejo valor: %A7.4 | Nuevo valor: %A3.4 | Path: Outputs -[00:05:32] Asignación memoria: DO_PPN304_Run | Viejo valor: %M3501.4 | Nuevo valor: %M3813.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_PPP302_Run | Viejo valor: %A7.5 | Nuevo valor: %A3.5 | Path: Outputs -[00:05:32] Actualizado: DO_Red_Lamp | Viejo valor: %A7.2 | Nuevo valor: %A3.2 | Path: Outputs -[00:05:32] Asignación memoria: DO_RVN301_Level | Viejo valor: %A20.0 | Nuevo valor: %M3813.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_SyrRoom_SyrupRequest | Viejo valor: %A68.0 | Nuevo valor: %M3813.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Syrup_Counter_Pulse | Viejo valor: %M3500.0 | Nuevo valor: %M3813.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_SyrupRoomPump_Run | Viejo valor: %M3505.0 | Nuevo valor: %M3813.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_SyrupRoomWaterReq | Viejo valor: %A1.1 | Nuevo valor: %A1.1 | Path: Outputs -[00:05:32] Asignación memoria: DO_Water_Counter_Pulse | Viejo valor: %M3500.2 | Nuevo valor: %M3813.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_Yellow_Lamp | Viejo valor: %A7.3 | Nuevo valor: %A3.3 | Path: Outputs -[00:05:32] Asignación memoria: MaselliSpare | Viejo valor: %M3511.3 | Nuevo valor: %M3813.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: MaselliHold | Viejo valor: %M3511.2 | Nuevo valor: %M3813.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: P_AI_TTM306 | Viejo valor: %EW108 | Nuevo valor: %EW108 | Path: Inputs -[00:05:32] Actualizado: P_AI_LTM302 | Viejo valor: %EW100 | Nuevo valor: %EW100 | Path: Inputs -[00:05:32] Actualizado: P_AI_LTP303 | Viejo valor: %EW808 | Nuevo valor: %EW110 | Path: Inputs -[00:05:32] Actualizado: P_AI_PCM306 | Viejo valor: %EW106 | Nuevo valor: %EW106 | Path: Inputs -[00:05:32] Asignación memoria: P_AI_ProductCO2 | Viejo valor: %EW826 | Nuevo valor: %MW3617 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_PTF203 | Viejo valor: %EW810 | Nuevo valor: %MW3619 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_AI_PTM304 | Viejo valor: %EW102 | Nuevo valor: %EW102 | Path: Inputs -[00:05:32] Asignación memoria: P_AI_PTP338 | Viejo valor: %EW816 | Nuevo valor: %MW3621 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_AI_RVM301 | Viejo valor: %EW114 | Nuevo valor: %EW114 | Path: Inputs -[00:05:32] Actualizado: P_AI_RVN304 | Viejo valor: %EW104 | Nuevo valor: %EW104 | Path: Inputs -[00:05:32] Actualizado: P_AI_TTN321 | Viejo valor: %EW112 | Nuevo valor: %EW112 | Path: Inputs -[00:05:32] Asignación memoria: P_AO_CIPCausticCond | Viejo valor: %MW3532 | Nuevo valor: %MW3814 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_AO_CIPReturnTemperature | Viejo valor: %MW3534 | Nuevo valor: %MW3816 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_AO_CIPWaterCond | Viejo valor: %MW3530 | Nuevo valor: %MW3818 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: P_AO_PCM306 | Viejo valor: %AW122 | Nuevo valor: %AW106 | Path: Outputs -[00:05:32] Asignación memoria: P_AO_ProductRunOutAmount | Viejo valor: %MW3526 | Nuevo valor: %MW3820 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: P_AO_RMM301 | Viejo valor: %AW100 | Nuevo valor: %AW100 | Path: Outputs -[00:05:32] Actualizado: P_AO_RMM303 | Viejo valor: %AW104 | Nuevo valor: %AW104 | Path: Outputs -[00:05:32] Asignación memoria: P_AO_RMM304 | Viejo valor: %MW3536 | Nuevo valor: %MW3822 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: P_AO_RMP302 | Viejo valor: %AW102 | Nuevo valor: %AW102 | Path: Outputs -[00:05:32] Actualizado: P_AO_RVM301 | Viejo valor: %AW114 | Nuevo valor: %AW114 | Path: Outputs -[00:05:32] Asignación memoria: P_AO_RVM302 | Viejo valor: %MW3538 | Nuevo valor: %MW3824 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: P_AO_RVM319 | Viejo valor: %AW110 | Nuevo valor: %AW110 | Path: Outputs -[00:05:32] Asignación memoria: P_AO_RVN302 | Viejo valor: %MW3522 | Nuevo valor: %MW3826 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: P_AO_RVN304 | Viejo valor: %AW108 | Nuevo valor: %AW108 | Path: Outputs -[00:05:32] Actualizado: P_AO_RVP303 | Viejo valor: %AW806 | Nuevo valor: %AW112 | Path: Outputs -[00:05:32] Asignación memoria: P_AO_RVS318 | Viejo valor: %AW112 | Nuevo valor: %MW3828 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_AO_ToFillerEqPress | Viejo valor: %MW3524 | Nuevo valor: %MW3830 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_CTS301_Conductiv_State | Viejo valor: %MB3085 | Nuevo valor: %MW3623 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_CTS301_Conductivity | Viejo valor: %MD3180 | Nuevo valor: %MW3625 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_CTS301_Temperat_State | Viejo valor: %MB3084 | Nuevo valor: %MW3627 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_CTS301_Temperature | Viejo valor: %MD3184 | Nuevo valor: %MW3629 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_CTS302_Conductiv_State | Viejo valor: %MB3083 | Nuevo valor: %MW3631 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_CTS302_Conductivity | Viejo valor: %MD3188 | Nuevo valor: %MW3633 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_CTS302_Temperat_State | Viejo valor: %MB3082 | Nuevo valor: %MW3635 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_CTS302_Temperature | Viejo valor: %MD3196 | Nuevo valor: %MW3637 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTM303_Tot_Ctrl | Viejo valor: %AB3240 | Nuevo valor: AW 3240 | Path: Outputs -[00:05:32] Actualizado: P_FTM303_Density | Viejo valor: %ED3215 | Nuevo valor: %EW3215 | Path: Inputs -[00:05:32] Asignación memoria: P_FTM303_Density_State | Viejo valor: %EB3219 | Nuevo valor: %MW3639 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_FTM303_EPD | Viejo valor: %MB3305 | Nuevo valor: %MW3641 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTM303_Flow | Viejo valor: %ED3200 | Nuevo valor: %EW3200 | Path: Inputs -[00:05:32] Asignación memoria: P_FTM303_Flow_State | Viejo valor: %EB3204 | Nuevo valor: %MW3643 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_FTM303_Temperature_State | Viejo valor: %EB3229 | Nuevo valor: %MW3645 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTM303_Temperature | Viejo valor: %ED3225 | Nuevo valor: %EW3225 | Path: Inputs -[00:05:32] Actualizado: P_FTM303_Totalizer | Viejo valor: %ED3240 | Nuevo valor: %EW3240 | Path: Inputs -[00:05:32] Asignación memoria: P_FTM303_Totalizer_State | Viejo valor: %EB3244 | Nuevo valor: %MW3647 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTN301_Flow | Viejo valor: %ED3080 | Nuevo valor: %EW3080 | Path: Inputs -[00:05:32] Asignación memoria: P_FTN301_Flow_State | Viejo valor: %EB3084 | Nuevo valor: %MW3649 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTN301_Tot_Ctrl | Viejo valor: %AB3100 | Nuevo valor: AW 3100 | Path: Outputs -[00:05:32] Asignación memoria: P_FTN301_Totaliz_State | Viejo valor: %EB3104 | Nuevo valor: %MW3651 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTN301_Totalizer | Viejo valor: %ED3100 | Nuevo valor: %EW3100 | Path: Inputs -[00:05:32] Actualizado: P_FTP302_Brix | Viejo valor: %ED2050 | Nuevo valor: %EW2050 | Path: Inputs -[00:05:32] Asignación memoria: P_FTP302_Brix_State | Viejo valor: %EB2054 | Nuevo valor: %MW3653 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTP302_Tot_Ctrl | Viejo valor: %AB2070 | Nuevo valor: AW 2070 | Path: Outputs -[00:05:32] Actualizado: P_FTP302_Density | Viejo valor: %ED2045 | Nuevo valor: %EW2045 | Path: Inputs -[00:05:32] Asignación memoria: P_FTP302_Density_State | Viejo valor: %EB2049 | Nuevo valor: %MW3655 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTP302_Flow | Viejo valor: %ED2030 | Nuevo valor: %EW2030 | Path: Inputs -[00:05:32] Asignación memoria: P_FTP302_Flow_State | Viejo valor: %EB2034 | Nuevo valor: %MW3657 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTP302_Temp | Viejo valor: %ED2055 | Nuevo valor: %EW2055 | Path: Inputs -[00:05:32] Asignación memoria: P_FTP302_Temp_State | Viejo valor: %EB2059 | Nuevo valor: %MW3659 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_FTP302_Totaliz_State | Viejo valor: %EB2074 | Nuevo valor: %MW3661 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: P_FTP302_Totalizer | Viejo valor: %ED2070 | Nuevo valor: %EW2070 | Path: Inputs -[00:05:32] Asignación memoria: P_gMaselli_AlcoholVolume | Viejo valor: %MD3200 | Nuevo valor: %MW3663 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gMaselli_ProdPerStandard | Viejo valor: %MD3160 | Nuevo valor: %MW3665 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gMaselli_ProductBrix | Viejo valor: %MD3168 | Nuevo valor: %MW3667 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gMaselli_ProductCO2 | Viejo valor: %MD3156 | Nuevo valor: %MW3669 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gMaselli_ProductNumber | Viejo valor: %MB3050 | Nuevo valor: %MW3671 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gMaselli_ProductTemp | Viejo valor: %MD3164 | Nuevo valor: %MW3673 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gMaselli_ProfibusStatus | Viejo valor: %MB3051 | Nuevo valor: %MW3675 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gMaselli_RecipeSetNum | Viejo valor: %MB3569 | Nuevo valor: %MW3832 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gMaselli_RecipeSetNumStr | Viejo valor: %MB3570 | Nuevo valor: %MW3834 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_0 | Viejo valor: %MB3081 | Nuevo valor: %MW3677 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_1 | Viejo valor: %MB3080 | Nuevo valor: %MW3679 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_10 | Viejo valor: %MB3091 | Nuevo valor: %MW3681 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_11 | Viejo valor: %MB3092 | Nuevo valor: %MW3683 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_12 | Viejo valor: %MB3095 | Nuevo valor: %MW3685 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_13 | Viejo valor: %MB3094 | Nuevo valor: %MW3687 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_14 | Viejo valor: %MB3107 | Nuevo valor: %MW3689 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_15 | Viejo valor: %MB3108 | Nuevo valor: %MW3691 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_16 | Viejo valor: %MB3109 | Nuevo valor: %MW3693 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_17 | Viejo valor: %MB3111 | Nuevo valor: %MW3695 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_18 | Viejo valor: %MB3113 | Nuevo valor: %MW3697 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_19 | Viejo valor: %MB3112 | Nuevo valor: %MW3699 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_2 | Viejo valor: %MB3079 | Nuevo valor: %MW3701 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_20 | Viejo valor: %MB3110 | Nuevo valor: %MW3703 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_21 | Viejo valor: %MB3106 | Nuevo valor: %MW3705 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_22 | Viejo valor: %MB3105 | Nuevo valor: %MW3707 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_23 | Viejo valor: %MB3114 | Nuevo valor: %MW3709 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_24 | Viejo valor: %MB3103 | Nuevo valor: %MW3711 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_25 | Viejo valor: %MB3102 | Nuevo valor: %MW3713 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_26 | Viejo valor: %MB3070 | Nuevo valor: %MW3715 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_27 | Viejo valor: %MB3101 | Nuevo valor: %MW3717 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_28 | Viejo valor: %MB3100 | Nuevo valor: %MW3719 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_29 | Viejo valor: %MB3099 | Nuevo valor: %MW3721 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_3 | Viejo valor: %MB3078 | Nuevo valor: %MW3723 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_4 | Viejo valor: %MB3077 | Nuevo valor: %MW3725 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_5 | Viejo valor: %MB3076 | Nuevo valor: %MW3727 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_6 | Viejo valor: %MB3075 | Nuevo valor: %MW3729 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_7 | Viejo valor: %MB3074 | Nuevo valor: %MW3731 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_8 | Viejo valor: %MB3073 | Nuevo valor: %MW3733 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock01_9 | Viejo valor: %MB3072 | Nuevo valor: %MW3735 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_30 | Viejo valor: %MB3097 | Nuevo valor: %MW3737 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_31 | Viejo valor: %MB3096 | Nuevo valor: %MW3739 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_32 | Viejo valor: %MB3104 | Nuevo valor: %MW3741 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_33 | Viejo valor: %MB3098 | Nuevo valor: %MW3743 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_34 | Viejo valor: %MB3071 | Nuevo valor: %MW3745 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_35 | Viejo valor: %MB3086 | Nuevo valor: %MW3747 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_36 | Viejo valor: %MB3069 | Nuevo valor: %MW3749 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_37 | Viejo valor: %MB3058 | Nuevo valor: %MW3751 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_38 | Viejo valor: %MB3017 | Nuevo valor: %MW3753 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_39 | Viejo valor: %MB3018 | Nuevo valor: %MW3755 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_40 | Viejo valor: %MB3019 | Nuevo valor: %MW3757 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_41 | Viejo valor: %MB3020 | Nuevo valor: %MW3759 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_42 | Viejo valor: %MB3021 | Nuevo valor: %MW3761 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_43 | Viejo valor: %MB3022 | Nuevo valor: %MW3763 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_44 | Viejo valor: %MB3023 | Nuevo valor: %MW3765 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_45 | Viejo valor: %MB3024 | Nuevo valor: %MW3767 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_46 | Viejo valor: %MB3026 | Nuevo valor: %MW3769 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_47 | Viejo valor: %MB3035 | Nuevo valor: %MW3771 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_48 | Viejo valor: %MB3027 | Nuevo valor: %MW3773 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_49 | Viejo valor: %MB3028 | Nuevo valor: %MW3775 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_50 | Viejo valor: %MB3029 | Nuevo valor: %MW3777 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_51 | Viejo valor: %MB3030 | Nuevo valor: %MW3779 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_52 | Viejo valor: %MB3031 | Nuevo valor: %MW3781 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_53 | Viejo valor: %MB3015 | Nuevo valor: %MW3783 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_54 | Viejo valor: %MB3033 | Nuevo valor: %MW3785 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_55 | Viejo valor: %MB3034 | Nuevo valor: %MW3787 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_56 | Viejo valor: %MB3016 | Nuevo valor: %MW3789 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_57 | Viejo valor: %MB3025 | Nuevo valor: %MW3791 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_58 | Viejo valor: %MB3013 | Nuevo valor: %MW3793 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_59 | Viejo valor: %MB3006 | Nuevo valor: %MW3795 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_60 | Viejo valor: %MB3007 | Nuevo valor: %MW3797 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock02_61 | Viejo valor: %MB3008 | Nuevo valor: %MW3799 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_62 | Viejo valor: %MB3009 | Nuevo valor: %MW3801 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_63 | Viejo valor: %MB3010 | Nuevo valor: %MW3803 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_64 | Viejo valor: %MB3011 | Nuevo valor: %MW3805 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_65 | Viejo valor: %MB3012 | Nuevo valor: %MW3807 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_66 | Viejo valor: %MB3032 | Nuevo valor: %MW3809 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_67 | Viejo valor: %MB3036 | Nuevo valor: %MW3811 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_68 | Viejo valor: %MB3068 | Nuevo valor: %MW3813 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_69 | Viejo valor: %MB3038 | Nuevo valor: %MW3815 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_70 | Viejo valor: %MB3067 | Nuevo valor: %MW3817 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_71 | Viejo valor: %MB3066 | Nuevo valor: %MW3819 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_72 | Viejo valor: %MB3065 | Nuevo valor: %MW3821 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_73 | Viejo valor: %MB3064 | Nuevo valor: %MW3823 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_74 | Viejo valor: %MB3063 | Nuevo valor: %MW3825 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_75 | Viejo valor: %MB3062 | Nuevo valor: %MW3827 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_76 | Viejo valor: %MB3061 | Nuevo valor: %MW3829 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_77 | Viejo valor: %MB3060 | Nuevo valor: %MW3831 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_78 | Viejo valor: %MB3037 | Nuevo valor: %MW3833 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_79 | Viejo valor: %MB3059 | Nuevo valor: %MW3835 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_80 | Viejo valor: %MB3057 | Nuevo valor: %MW3837 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_81 | Viejo valor: %MB3056 | Nuevo valor: %MW3839 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_82 | Viejo valor: %MB3300 | Nuevo valor: %MW3841 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_83 | Viejo valor: %MB3054 | Nuevo valor: %MW3843 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_84 | Viejo valor: %MB3053 | Nuevo valor: %MW3845 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_INBlock03_85 | Viejo valor: %MB3052 | Nuevo valor: %MW3847 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_0 | Viejo valor: %MB3541 | Nuevo valor: %MW3836 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_1 | Viejo valor: %MB3542 | Nuevo valor: %MW3838 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_10 | Viejo valor: %MB3551 | Nuevo valor: %MW3840 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_11 | Viejo valor: %MB3552 | Nuevo valor: %MW3842 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_12 | Viejo valor: %MB3553 | Nuevo valor: %MW3844 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_13 | Viejo valor: %MB3554 | Nuevo valor: %MW3846 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_14 | Viejo valor: %MB3555 | Nuevo valor: %MW3848 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_15 | Viejo valor: %MB3556 | Nuevo valor: %MW3850 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_16 | Viejo valor: %MB3557 | Nuevo valor: %MW3852 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_17 | Viejo valor: %MB3558 | Nuevo valor: %MW3854 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_18 | Viejo valor: %MB3559 | Nuevo valor: %MW3856 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_19 | Viejo valor: %MB3560 | Nuevo valor: %MW3858 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_2 | Viejo valor: %MB3543 | Nuevo valor: %MW3860 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_20 | Viejo valor: %MB3561 | Nuevo valor: %MW3862 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_21 | Viejo valor: %MB3562 | Nuevo valor: %MW3864 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_22 | Viejo valor: %MB3563 | Nuevo valor: %MW3866 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_23 | Viejo valor: %MB3564 | Nuevo valor: %MW3868 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_24 | Viejo valor: %MB3565 | Nuevo valor: %MW3870 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_25 | Viejo valor: %MB3566 | Nuevo valor: %MW3872 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_26 | Viejo valor: %MB3567 | Nuevo valor: %MW3874 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_27 | Viejo valor: %MB3568 | Nuevo valor: %MW3876 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_3 | Viejo valor: %MB3544 | Nuevo valor: %MW3878 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_4 | Viejo valor: %MB3545 | Nuevo valor: %MW3880 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_5 | Viejo valor: %MB3546 | Nuevo valor: %MW3882 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_6 | Viejo valor: %MB3547 | Nuevo valor: %MW3884 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_7 | Viejo valor: %MB3548 | Nuevo valor: %MW3886 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_8 | Viejo valor: %MB3549 | Nuevo valor: %MW3888 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPAmPDS_OUTBlock01_9 | Viejo valor: %MB3550 | Nuevo valor: %MW3890 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: P_gPPM303_VFC_ActualValue | Viejo valor: %EW1642 | Nuevo valor: EW 1642 | Path: Inputs -[00:05:32] Actualizado: P_gPPM303_VFC_ControlWord | Viejo valor: %AW1640 | Nuevo valor: AW 1640 | Path: Outputs -[00:05:32] Actualizado: P_gPPM303_VFC_Refvalue | Viejo valor: %AW1642 | Nuevo valor: AW 1642 | Path: Outputs -[00:05:32] Actualizado: P_gPPM303_VFC_StatusWord | Viejo valor: %EW1640 | Nuevo valor: EW 1640 | Path: Inputs -[00:05:32] Asignación memoria: P_gPPM307_VFC_ActualVaule | Viejo valor: %MW3118 | Nuevo valor: %MW3849 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPPM307_VFC_ControlWord | Viejo valor: %MW3584 | Nuevo valor: %MW3892 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPPM307_VFC_Refvalue | Viejo valor: %MW3586 | Nuevo valor: %MW3894 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPPM307_VFC_StatusWord | Viejo valor: %MW3240 | Nuevo valor: %MW3851 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPPN301_VFC_ActualValue | Viejo valor: %MW3232 | Nuevo valor: %MW3853 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPPN301_VFC_ControlWord | Viejo valor: %MW3572 | Nuevo valor: %MW3896 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPPN301_VFC_Refvalue | Viejo valor: %MW3574 | Nuevo valor: %MW3898 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPPN301_VFC_StatusWord | Viejo valor: %MW3212 | Nuevo valor: %MW3855 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPPP302_VFC_ActualValue | Viejo valor: %MW3234 | Nuevo valor: %MW3857 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPPP302_VFC_ControlWord | Viejo valor: %MW3576 | Nuevo valor: %MW3900 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPPP302_VFC_Refvalue | Viejo valor: %MW3578 | Nuevo valor: %MW3902 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPPP302_VFC_StatusWord | Viejo valor: %MW3248 | Nuevo valor: %MW3859 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: PPN301_SoftStart_Averia | Viejo valor: %M3003.3 | Nuevo valor: %M3861.0 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: Tag_24 | Viejo valor: %MD3144 | Nuevo valor: %MW3861 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_UPSsupply | Viejo valor: %E3.6 | Nuevo valor: %E3.5 | Path: Inputs -[00:05:32] Actualizado: DI_PB_HornReset | Viejo valor: %E0.1 | Nuevo valor: %E0.1 | Path: Inputs -[00:05:32] Asignación memoria: DO_PB_HornReset | Viejo valor: %M3500.3 | Nuevo valor: %M3904.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DI_Flr1_PROD_ok | Viejo valor: %M3605.2 | Nuevo valor: %M3863.1 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr_RinseMode | Viejo valor: %M3000.4 | Nuevo valor: %M3863.2 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DO_FlrProdMode | Viejo valor: %M3516.4 | Nuevo valor: %M3904.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr1_Productionmode | Viejo valor: %M3603.3 | Nuevo valor: %M3904.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr1_CIPMode | Viejo valor: %M3607.5 | Nuevo valor: %M3904.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_ Flr_CIPRinseSending | Viejo valor: %M3516.5 | Nuevo valor: %M3904.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_RinseMode | Viejo valor: %M3516.6 | Nuevo valor: %M3904.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_SyRm_Fault | Viejo valor: %M3512.0 | Nuevo valor: %M3904.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_SyRm_ProdMode | Viejo valor: %M3512.1 | Nuevo valor: %M3904.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_SyRm_WaterRequest | Viejo valor: %A68.1 | Nuevo valor: %M3905.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_Fault | Viejo valor: %M3516.0 | Nuevo valor: %M3905.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_Empty | Viejo valor: %M3516.1 | Nuevo valor: %M3905.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_RdyChmcl | Viejo valor: %M3516.2 | Nuevo valor: %M3905.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_Flpflp | Viejo valor: %M3516.3 | Nuevo valor: %M3905.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DI_CIP_Fault | Viejo valor: %M3002.6 | Nuevo valor: %M3863.3 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_CIP_End | Viejo valor: %M3660.3 | Nuevo valor: %M3863.4 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_CIP_FlpflpEn | Viejo valor: %M3001.2 | Nuevo valor: %M3863.5 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_CIP_FirstRinsedone | Viejo valor: %M3000.1 | Nuevo valor: %M3863.6 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_SYR_COUNTER_LT | Viejo valor: %MW3210 | Nuevo valor: %MW3863 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_SyrRoom_SyrPump_Running | Viejo valor: %E5.0 | Nuevo valor: %E5.0 | Path: Inputs -[00:05:32] Asignación memoria: DI_SYRUP_Runout | Viejo valor: %M3003.5 | Nuevo valor: %M3865.7 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DO_Flr1_Fault | Viejo valor: %M3511.4 | Nuevo valor: %M3905.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr_ProdAvailable | Viejo valor: %MW3518 | Nuevo valor: %MW3905 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DI_Flr2_PROD_Request | Viejo valor: %M3607.4 | Nuevo valor: %M3866.0 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr2_CIP/RinseFiller | Viejo valor: %M3606.0 | Nuevo valor: %M3866.1 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DO_Flr2_CIP/Rinse | Viejo valor: %M3511.7 | Nuevo valor: %M3907.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Flr2_Fault | Viejo valor: %M3511.6 | Nuevo valor: %M3907.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPPM305_VFC_StatusWord | Viejo valor: %MW3242 | Nuevo valor: %MW3866 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPPM305_VFC_ActualValue | Viejo valor: %MW3244 | Nuevo valor: %MW3868 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_gPPM305_VFC_ControlWord | Viejo valor: %MW3588 | Nuevo valor: %MW3908 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_gPPM305_VFC_Refvalue | Viejo valor: %MW3590 | Nuevo valor: %MW3910 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM363 | Viejo valor: %M3505.4 | Nuevo valor: %M3912.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_RVM301 | Viejo valor: %A16.0 | Nuevo valor: %M3912.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_AVM369 | Viejo valor: %M3601.3 | Nuevo valor: %A18.2 | Path: Outputs -[00:05:32] Asignación memoria: DO_AVP317_1 | Viejo valor: %A19.1 | Nuevo valor: %M3912.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM353 | Viejo valor: %M3506.0 | Nuevo valor: %M3912.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Blu_Lamp | Viejo valor: %M3500.6 | Nuevo valor: %M3912.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_AO_RVN305 | Viejo valor: %MW3520 | Nuevo valor: %MW3912 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DI_PPN301_SoftStart_Ovrld | Viejo valor: %E10.0 | Nuevo valor: %M3870.2 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_PPM306_Contactor | Viejo valor: %E11.3 | Nuevo valor: %M3870.3 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Ammonia_CompressorReady | Viejo valor: %M3606.7 | Nuevo valor: %M3870.4 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr2_CIP_DrainComplete | Viejo valor: %M3606.1 | Nuevo valor: %M3870.5 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_PPM306_Ovrld | Viejo valor: %E10.3 | Nuevo valor: %M3870.6 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_Flr1_WaterRequest | Viejo valor: %M3605.7 | Nuevo valor: %M3870.7 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DO_Flr1_Spare0 | Viejo valor: %M3601.7 | Nuevo valor: %M3914.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_CIP_Spare | Viejo valor: %M3601.4 | Nuevo valor: %M3914.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_SyrupValve_Enable | Viejo valor: %A11.6 | Nuevo valor: %A0.0 | Path: Outputs -[00:05:32] Asignación memoria: DO_AVM382 | Viejo valor: %A16.2 | Nuevo valor: %M3914.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVP355 | Viejo valor: %M3505.3 | Nuevo valor: %M3915.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVN350 | Viejo valor: %M3540.0 | Nuevo valor: %M3915.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_AI_CIPHeaterTemperature | Viejo valor: %MW3250 | Nuevo valor: %MW3871 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_FTM305 | Viejo valor: %MW3252 | Nuevo valor: %MW3873 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_PTM308 | Viejo valor: %MW3254 | Nuevo valor: %MW3875 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_CTS302 | Viejo valor: %MW3256 | Nuevo valor: %MW3877 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_CTS301 | Viejo valor: %MW3258 | Nuevo valor: %MW3879 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_CIPReturnTemperature | Viejo valor: %MW3260 | Nuevo valor: %MW3881 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_FillerLevel | Viejo valor: %MW3262 | Nuevo valor: %MW3883 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_CTM304 | Viejo valor: %MW3264 | Nuevo valor: %MW3885 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_PTN313 | Viejo valor: %MW3266 | Nuevo valor: %MW3887 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_RVN305 | Viejo valor: %MW3268 | Nuevo valor: %MW3889 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: P_AI_ProductO2 | Viejo valor: %MW3270 | Nuevo valor: %MW3891 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DO_HMIPowerSupply | Viejo valor: %A0.0 | Nuevo valor: %A0.7 | Path: Outputs -[00:05:32] Asignación memoria: DO_PPM306_Run | Viejo valor: %A11.3 | Nuevo valor: %M3915.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DI_HVP301_Sensor | Viejo valor: %E7.2 | Nuevo valor: %E7.2 | Path: Inputs -[00:05:32] Asignación memoria: DI_AVM346_Close | Viejo valor: %E112.2 | Nuevo valor: %M3893.0 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DI_AVM346_Open | Viejo valor: %E102.2 | Nuevo valor: %M3893.1 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_UPSAlarm | Viejo valor: %E3.5 | Nuevo valor: %E3.6 | Path: Inputs -[00:05:32] Asignación memoria: DO_RVM301_Discharge | Viejo valor: %M3602.0 | Nuevo valor: %M3915.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_SyrupRoom_Aux2 | Viejo valor: %M3602.3 | Nuevo valor: %M3915.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Glycol_LineEnabled | Viejo valor: %M3604.0 | Nuevo valor: %M3915.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Glycol_ColdRequest | Viejo valor: %M3607.3 | Nuevo valor: %M3915.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_Glycol_LineCIP | Viejo valor: %M3607.2 | Nuevo valor: %M3915.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV1_SubCarb | Viejo valor: %M3607.1 | Nuevo valor: %M3916.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV2_SubCarb | Viejo valor: %M3607.0 | Nuevo valor: %M3916.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV3_SubCarb | Viejo valor: %M3606.4 | Nuevo valor: %M3916.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV4_SubCarb | Viejo valor: %M3606.3 | Nuevo valor: %M3916.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_BoosterPump_SubCarb | Viejo valor: %M3606.2 | Nuevo valor: %M3916.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_AVM311 | Viejo valor: %A100.0 | Nuevo valor: %A16.0 | Path: Outputs -[00:05:32] Asignación memoria: DO_200V26 | Viejo valor: %M3600.3 | Nuevo valor: %M3916.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV100_WaterInlet | Viejo valor: %M3601.6 | Nuevo valor: %M3916.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_200V28 | Viejo valor: %M3603.7 | Nuevo valor: %M3916.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_AVM313 | Viejo valor: %A100.1 | Nuevo valor: %A16.1 | Path: Outputs -[00:05:32] Actualizado: DO_AVN314 | Viejo valor: %A100.2 | Nuevo valor: %A16.2 | Path: Outputs -[00:05:32] Actualizado: DO_AVM315 | Viejo valor: %A100.3 | Nuevo valor: %A16.3 | Path: Outputs -[00:05:32] Actualizado: DO_AVP316 | Viejo valor: %A100.4 | Nuevo valor: %A16.4 | Path: Outputs -[00:05:32] Actualizado: DO_AVM317 | Viejo valor: %A100.5 | Nuevo valor: %A16.5 | Path: Outputs -[00:05:32] Actualizado: DO_AVN318 | Viejo valor: %A100.6 | Nuevo valor: %A16.6 | Path: Outputs -[00:05:32] Actualizado: DO_AVM321 | Viejo valor: %A100.7 | Nuevo valor: %A16.7 | Path: Outputs -[00:05:32] Actualizado: DO_AVM322 | Viejo valor: %A101.0 | Nuevo valor: %A17.0 | Path: Outputs -[00:05:32] Actualizado: DO_AVM323 | Viejo valor: %A101.1 | Nuevo valor: %A17.1 | Path: Outputs -[00:05:32] Actualizado: DO_AVM326 | Viejo valor: %A101.3 | Nuevo valor: %A17.3 | Path: Outputs -[00:05:32] Actualizado: DO_AVP324 | Viejo valor: %A101.2 | Nuevo valor: %A17.2 | Path: Outputs -[00:05:32] Actualizado: DO_AVN327 | Viejo valor: %A101.4 | Nuevo valor: %A17.4 | Path: Outputs -[00:05:32] Actualizado: DO_AVN328 | Viejo valor: %A101.5 | Nuevo valor: %A17.5 | Path: Outputs -[00:05:32] Actualizado: DO_AVP344 | Viejo valor: %A101.6 | Nuevo valor: %A17.6 | Path: Outputs -[00:05:32] Actualizado: DO_AVM345 | Viejo valor: %A101.7 | Nuevo valor: %A17.7 | Path: Outputs -[00:05:32] Actualizado: DO_AVM362 | Viejo valor: %A102.1 | Nuevo valor: %A18.1 | Path: Outputs -[00:05:32] Actualizado: DO_AVP361 | Viejo valor: %A102.6 | Nuevo valor: %A18.0 | Path: Outputs -[00:05:32] Actualizado: DO_RVN302 | Viejo valor: %A103.4 | Nuevo valor: %A19.0 | Path: Outputs -[00:05:32] Actualizado: DO_RVN302_1 | Viejo valor: %A103.5 | Nuevo valor: %A19.1 | Path: Outputs -[00:05:32] Asignación memoria: DO_AVM340 | Viejo valor: %M3600.2 | Nuevo valor: %M3917.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM339 | Viejo valor: %M3605.6 | Nuevo valor: %M3917.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM341 | Viejo valor: %A17.5 | Nuevo valor: %M3917.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM342 | Viejo valor: %M3600.4 | Nuevo valor: %M3917.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM346 | Viejo valor: %M3600.1 | Nuevo valor: %M3917.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_AVM380 | Viejo valor: %M3600.6 | Nuevo valor: %M3917.5 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: DO_AVM381 | Viejo valor: %A102.3 | Nuevo valor: %A18.3 | Path: Outputs -[00:05:32] Asignación memoria: DO_EV102_Syrup And CIP Inlet | Viejo valor: %M3601.2 | Nuevo valor: %M3917.6 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV103_WaterInterception | Viejo valor: %M3601.1 | Nuevo valor: %M3917.7 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_WaterBypass1 | Viejo valor: %M3601.0 | Nuevo valor: %M3918.0 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: DO_EV105_WaterBypass | Viejo valor: %M3600.7 | Nuevo valor: %M3918.1 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: CARLOS_TESTE | Viejo valor: %M2.2 | Nuevo valor: %M3893.2 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Actualizado: DI_PPM303_Contactor | Viejo valor: %E2.5 | Nuevo valor: %E2.5 | Path: Inputs -[00:05:32] Asignación memoria: DI_SyrRoom_Alarm_Reset | Viejo valor: %M3605.0 | Nuevo valor: %M3893.3 | Path: IO Not in Hardware\InputsMaster -[00:05:32] Asignación memoria: DO_Analayzer_Enable | Viejo valor: %M3602.1 | Nuevo valor: %M3918.2 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_PDS_Recipe_Number | Viejo valor: %AB15001 | Nuevo valor: %MW3918 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_PDS_Freeze_To_PDS | Viejo valor: %A15002.0 | Nuevo valor: %M3920.3 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Asignación memoria: P_PDS_Stop_to_PDS | Viejo valor: %A15002.1 | Nuevo valor: %M3920.4 | Path: IO Not in Hardware\OutputsMaster -[00:05:32] Actualizado: P_PDS_CO2 | Viejo valor: %ED15060 | Nuevo valor: EW 15060 | Path: Inputs -[00:05:32] Actualizado: P_PDS_Product_Brix | Viejo valor: %ED15084 | Nuevo valor: EW 15084 | Path: Inputs -[00:05:32] Actualizado: P_PDS_Temperature | Viejo valor: %ED15104 | Nuevo valor: EW 15104 | Path: Inputs -[00:05:32] Actualizado: P_PDS_Density | Viejo valor: %ED15112 | Nuevo valor: EW 15112 | Path: Inputs -[00:05:33] Archivo Excel guardado: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags_Updated.xlsx -[00:05:33] ============================== RESUMEN ============================== -[00:05:33] Total de tags procesados: 486 -[00:05:33] Tags actualizados desde el Markdown: 98 -[00:05:33] Tags relocalizados a Outputs: 22 -[00:05:33] Tags relocalizados a IO Not in Hardware\InputsMaster: 203 -[00:05:33] Tags relocalizados a IO Not in Hardware\OutputsMaster: 185 -[00:05:33] Tags con direcciones de memoria asignadas: 388 -[00:05:35] Ejecución de x5_md_to_excel.py finalizada (success). Duración: 0:00:15.140094. -[00:05:35] Log completo guardado en: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\IO_adaptation\log_x5_md_to_excel.txt +[14:04:11] Iniciando ejecución de x5_md_to_excel.py en C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags... +[14:04:12] Usando directorio de trabajo: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags +[14:04:12] Usando archivo Excel predeterminado: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags.xlsx +[14:04:12] Seleccione el archivo Markdown con la adaptación IO: +[14:04:16] Iniciando proceso de actualización +[14:04:16] Archivo Excel de entrada: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags.xlsx +[14:04:16] Archivo Markdown de entrada: C:/Trabajo/SIDEL/13 - E5.007560 - Modifica O&U - SAE235/Reporte/IOTags/IO Adapted.md +[14:04:16] Archivo Excel de salida: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags_Updated.xlsx +[14:04:16] -------------------------------------------------------------------------------- +[14:04:16] Configuración de paths cargada desde: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\io_paths_config.json +[14:04:16] Configuración de paths cargada: +[14:04:16] - Inputs: tipo=Input, no_used_path=IO Not in Hardware\InputsMaster +[14:04:16] - Outputs: tipo=Output, no_used_path=IO Not in Hardware\OutputsMaster +[14:04:16] - OutputsFesto: tipo=Output, no_used_path=IO Not in Hardware\OutputsMaster +[14:04:16] - IO Not in Hardware\InputsMaster: tipo=Input, no_used_path=IO Not in Hardware\InputsMaster +[14:04:16] - IO Not in Hardware\OutputsMaster: tipo=Output, no_used_path=IO Not in Hardware\OutputsMaster +[14:04:16] Se encontraron 10 tablas en el archivo +[14:04:16] Procesando tabla 1 (línea 10) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 1 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 1 procesada exitosamente: 28 filas +[14:04:16] Procesando tabla 2 (línea 45) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 2 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 2 procesada exitosamente: 36 filas +[14:04:16] Procesando tabla 3 (línea 88) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 3 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 3 procesada exitosamente: 8 filas +[14:04:16] Procesando tabla 4 (línea 103) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 4 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 4 procesada exitosamente: 8 filas +[14:04:16] Procesando tabla 5 (línea 120) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 5 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 5 procesada exitosamente: 6 filas +[14:04:16] Procesando tabla 6 (línea 131) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 6 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 6 procesada exitosamente: 3 filas +[14:04:16] Procesando tabla 7 (línea 139) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 7 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 7 procesada exitosamente: 5 filas +[14:04:16] Procesando tabla 8 (línea 149) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 8 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 8 procesada exitosamente: 4 filas +[14:04:16] Procesando tabla 9 (línea 158) +[14:04:16] Encabezados detectados: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Tabla 9 tiene las columnas requeridas. Procesando... +[14:04:16] Tabla 9 procesada exitosamente: 4 filas +[14:04:16] Procesando tabla 10 (línea 169) +[14:04:16] Encabezados detectados: ['IO', 'Problema Detectado', 'Observaciones'] +[14:04:16] Tabla 10 no tiene las columnas requeridas (IO/address y Master Tag/master/tag). Omitiendo... +[14:04:16] Combinando 9 tablas válidas... +[14:04:16] Tabla combinada final: 102 filas, 6 columnas +[14:04:16] Columnas finales: ['IO', 'Master Tag', 'PLC Description', 'Master Description', 'Certeza', 'Alternative'] +[14:04:16] Columna IO: IO +[14:04:16] Columna Master Tag: Master Tag +[14:04:16] Tags mapeados en el archivo Markdown: 99 +[14:04:16] Archivo Excel cargado: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags.xlsx +[14:04:16] Hojas disponibles: ['PLC Tags', 'TagTable Properties'] +[14:04:16] Configuración de memoria: input_mem_byte=3600, output_mem_byte=3900 +[14:04:16] Espacio disponible para inputs: 300 bytes +[14:04:16] Asignación memoria: AI_CIP_CIP_Total_Time | Tipo: Int | Viejo valor: %MW3116 | Nuevo valor: %MW3600 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: AI_CIP_SetPoint_Temeperature | Tipo: Byte | Viejo valor: %MB3087 | Nuevo valor: %MB3602 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: AI_SYRUP_Cip_Phase | Tipo: Byte | Viejo valor: %MB3090 | Nuevo valor: %MB3603 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: AI_SYRUP_Cip_RemaningTime | Tipo: Byte | Viejo valor: %MB3089 | Nuevo valor: %MB3604 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: AI_SYRUP_Cip_TotalTime | Tipo: Byte | Viejo valor: %MB3088 | Nuevo valor: %MB3605 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_Air_InletPress_OK | Tipo: Bool | Viejo valor: %E7.1 | Nuevo valor: %E7.1 | Path: Inputs +[14:04:16] Actualizado: DI_AlarmReset | Tipo: Bool | Viejo valor: %E0.2 | Nuevo valor: %E0.2 | Path: Inputs +[14:04:16] Asignación memoria: DI_Ammonia_High_Lev_Prod | Tipo: Bool | Viejo valor: %M3003.7 | Nuevo valor: %M3606.0 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_AmmoniaHighLev_Water | Tipo: Bool | Viejo valor: %M3003.1 | Nuevo valor: %M3606.1 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_AuxVoltage_On | Tipo: Bool | Viejo valor: %E0.0 | Nuevo valor: %E0.5 | Path: Inputs +[14:04:16] Asignación memoria: DI_AVM362_Close | Tipo: Bool | Viejo valor: %E112.3 | Nuevo valor: %M3606.2 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_AVM362_Open | Tipo: Bool | Viejo valor: %E102.3 | Nuevo valor: %M3606.3 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_CIP_ChemicalProd | Tipo: Bool | Viejo valor: %M3001.5 | Nuevo valor: %M3606.4 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_CIP_CleaningCompleted | Tipo: Bool | Viejo valor: %E60.3 | Nuevo valor: %E6.3 | Path: Inputs +[14:04:16] Asignación memoria: DI_CIP_CleaningFault | Tipo: Bool | Viejo valor: %M3002.5 | Nuevo valor: %M3606.5 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_CIP_FreeSodaTank | Tipo: Bool | Viejo valor: %M3001.7 | Nuevo valor: %M3606.6 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_CIP_HotWaterSending | Tipo: Bool | Viejo valor: %M3001.6 | Nuevo valor: %M3606.7 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_CIP_TankFilling | Tipo: Bool | Viejo valor: %M3001.4 | Nuevo valor: %M3607.0 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_CO2_InletPress_OK | Tipo: Bool | Viejo valor: %M3004.0 | Nuevo valor: %M3607.1 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_DeairVacuumOk | Tipo: Bool | Viejo valor: %M3004.2 | Nuevo valor: %M3607.2 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Emergency_Pilz_On | Tipo: Bool | Viejo valor: %M3605.1 | Nuevo valor: %M3607.3 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Emergency_Pressed | Tipo: Bool | Viejo valor: %E4.3 | Nuevo valor: %M3607.4 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr_CIP_CleaningAlarm | Tipo: Bool | Viejo valor: %M3002.7 | Nuevo valor: %M3607.5 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr1_CIP_DrainComplete | Tipo: Bool | Viejo valor: %M3605.5 | Nuevo valor: %M3607.6 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr_CIP_FloodingEnd | Tipo: Bool | Viejo valor: %M3002.0 | Nuevo valor: %M3607.7 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr1_CIP/RinseFiller | Tipo: Bool | Viejo valor: %M3605.4 | Nuevo valor: %M3608.0 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr_CIP_RecoverReq | Tipo: Bool | Viejo valor: %M3002.2 | Nuevo valor: %M3608.1 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr_CIP_RinseMode | Tipo: Bool | Viejo valor: %M3002.1 | Nuevo valor: %M3608.2 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr_EndProdLastBottleFilled | Tipo: Bool | Viejo valor: %M3000.2 | Nuevo valor: %M3608.3 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr_OpenAVM369 | Tipo: Bool | Viejo valor: %M3000.3 | Nuevo valor: %M3608.4 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr1_PROD_Request | Tipo: Bool | Viejo valor: %M3605.3 | Nuevo valor: %M3608.5 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_CIP_Drain | Tipo: Bool | Viejo valor: %E60.2 | Nuevo valor: %E6.2 | Path: Inputs +[14:04:16] Actualizado: DI_CIP_CIP_Rinse | Tipo: Bool | Viejo valor: %E60.1 | Nuevo valor: %E6.1 | Path: Inputs +[14:04:16] Actualizado: DI_CIP_CIP_Enable | Tipo: Bool | Viejo valor: %E60.0 | Nuevo valor: %E6.0 | Path: Inputs +[14:04:16] Asignación memoria: DI_SYR_TANK_LEVEL | Tipo: Word | Viejo valor: %MW3206 | Nuevo valor: %MW3608 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_FSS301 | Tipo: Bool | Viejo valor: %E7.3 | Nuevo valor: %M3610.6 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_HVM302_Sensor | Tipo: Bool | Viejo valor: %M3000.7 | Nuevo valor: %M3610.7 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Log_Sidel | Tipo: Bool | Viejo valor: %E3660.0 | Nuevo valor: %M3611.0 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_LSM302L | Tipo: Bool | Viejo valor: %E1.0 | Nuevo valor: %E1.0 | Path: Inputs +[14:04:16] Actualizado: DI_LSN301L | Tipo: Bool | Viejo valor: %E0.6 | Nuevo valor: %E0.6 | Path: Inputs +[14:04:16] Asignación memoria: DI_MaxTempAlarm | Tipo: Bool | Viejo valor: %M3625.0 | Nuevo valor: %M3611.1 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Min_Deair2_Level | Tipo: Bool | Viejo valor: %M3001.0 | Nuevo valor: %M3611.2 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Min_Syrup_Level | Tipo: Bool | Viejo valor: %E0.7 | Nuevo valor: %M3611.3 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_PB_Machine_Start | Tipo: Bool | Viejo valor: %E0.4 | Nuevo valor: %E0.4 | Path: Inputs +[14:04:16] Actualizado: DI_PB_Machine_Stop | Tipo: Bool | Viejo valor: %E0.3 | Nuevo valor: %E0.3 | Path: Inputs +[14:04:16] Actualizado: DI_PPM303_Ovrld | Tipo: Bool | Viejo valor: %E2.4 | Nuevo valor: %E2.4 | Path: Inputs +[14:04:16] Actualizado: DI_PPN301_Contactor | Tipo: Bool | Viejo valor: %E11.0 | Nuevo valor: %E2.1 | Path: Inputs +[14:04:16] Actualizado: DI_PPN301_Ovrld | Tipo: Bool | Viejo valor: %E2.0 | Nuevo valor: %E2.0 | Path: Inputs +[14:04:16] Asignación memoria: DI_PPN301_SoftStOvr | Tipo: Bool | Viejo valor: %E2.1 | Nuevo valor: %M3611.4 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_PPN304_Contactor | Tipo: Bool | Viejo valor: %M3003.2 | Nuevo valor: %M3611.5 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_PPM305_Ovrld | Tipo: Bool | Viejo valor: %M3005.0 | Nuevo valor: %M3611.6 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_PPP302_Contactor | Tipo: Bool | Viejo valor: %E2.3 | Nuevo valor: %E2.3 | Path: Inputs +[14:04:16] Actualizado: DI_PPP302_Ovrld | Tipo: Bool | Viejo valor: %E2.2 | Nuevo valor: %E2.2 | Path: Inputs +[14:04:16] Asignación memoria: DI_Product_Analyzer_Prod_NO_OK | Tipo: Bool | Viejo valor: %M3003.4 | Nuevo valor: %M3611.7 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_RMM301_Closed | Tipo: Bool | Viejo valor: %E1.5 | Nuevo valor: %E1.5 | Path: Inputs +[14:04:16] Actualizado: DI_RMM303_Closed | Tipo: Bool | Viejo valor: %E1.7 | Nuevo valor: %E1.7 | Path: Inputs +[14:04:16] Asignación memoria: DI_RMM304_Closed | Tipo: Bool | Viejo valor: %M3004.5 | Nuevo valor: %M3612.0 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_RMP302_Closed | Tipo: Bool | Viejo valor: %E1.6 | Nuevo valor: %E1.6 | Path: Inputs +[14:04:16] Asignación memoria: DI_SyrRoom_Cip_Mode | Tipo: Bool | Viejo valor: %M3002.3 | Nuevo valor: %M3612.1 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_SyrRoom_Pump_Ready | Tipo: Bool | Viejo valor: %M3606.5 | Nuevo valor: %M3612.2 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_SyrRoom_WatPumpReady | Tipo: Bool | Viejo valor: %E68.1 | Nuevo valor: %M3612.3 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_UPSBatteryReady | Tipo: Bool | Viejo valor: %E3.7 | Nuevo valor: %E3.7 | Path: Inputs +[14:04:16] Asignación memoria: DI_UV_Lamp_Ready | Tipo: Bool | Viejo valor: %M3004.7 | Nuevo valor: %M3612.4 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Water_Pump2_Contactor | Tipo: Bool | Viejo valor: %M3004.4 | Nuevo valor: %M3612.5 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Water_Pump2_Ovrld | Tipo: Bool | Viejo valor: %M3001.1 | Nuevo valor: %M3612.6 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_WaterPipeCIP_Sensor | Tipo: Bool | Viejo valor: %M3000.5 | Nuevo valor: %M3612.7 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DO_Aux24DC | Tipo: Bool | Viejo valor: %M3500.1 | Nuevo valor: %M3900.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM312_Deair_Reflux | Tipo: Bool | Viejo valor: %M3507.6 | Nuevo valor: %M3900.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM317_1 | Tipo: Bool | Viejo valor: %A17.3 | Nuevo valor: %M3900.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM327 | Tipo: Bool | Viejo valor: %M3510.4 | Nuevo valor: %M3900.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM328 | Tipo: Bool | Viejo valor: %M3506.1 | Nuevo valor: %M3900.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM329 | Tipo: Bool | Viejo valor: %M3510.5 | Nuevo valor: %M3900.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM330 | Tipo: Bool | Viejo valor: %M3510.6 | Nuevo valor: %M3900.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM396 | Tipo: Bool | Viejo valor: %A17.1 | Nuevo valor: %M3900.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN325 | Tipo: Bool | Viejo valor: %A17.7 | Nuevo valor: %M3901.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN329 | Tipo: Bool | Viejo valor: %A17.6 | Nuevo valor: %M3901.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN348 | Tipo: Bool | Viejo valor: %A16.1 | Nuevo valor: %M3901.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN349 | Tipo: Bool | Viejo valor: %A16.7 | Nuevo valor: %M3901.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN373 | Tipo: Bool | Viejo valor: %A16.3 | Nuevo valor: %M3901.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN374 | Tipo: Bool | Viejo valor: %A19.3 | Nuevo valor: %M3901.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN377 | Tipo: Bool | Viejo valor: %M3510.3 | Nuevo valor: %M3901.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN378 | Tipo: Bool | Viejo valor: %M3510.2 | Nuevo valor: %M3901.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN390 | Tipo: Bool | Viejo valor: %M3505.5 | Nuevo valor: %M3902.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN347 | Tipo: Bool | Viejo valor: %A20.1 | Nuevo valor: %M3902.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVP363 | Tipo: Bool | Viejo valor: %A16.5 | Nuevo valor: %M3902.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVP391 | Tipo: Bool | Viejo valor: %M3505.6 | Nuevo valor: %M3902.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVS331 | Tipo: Bool | Viejo valor: %A18.0 | Nuevo valor: %M3902.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVS332 | Tipo: Bool | Viejo valor: %A18.1 | Nuevo valor: %M3902.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVS333 | Tipo: Bool | Viejo valor: %A18.2 | Nuevo valor: %M3902.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVS334 | Tipo: Bool | Viejo valor: %A18.3 | Nuevo valor: %M3902.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVS335 | Tipo: Bool | Viejo valor: %A18.4 | Nuevo valor: %M3903.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVS336 | Tipo: Bool | Viejo valor: %A18.5 | Nuevo valor: %M3903.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVS337 | Tipo: Bool | Viejo valor: %A18.6 | Nuevo valor: %M3903.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVS338 | Tipo: Bool | Viejo valor: %A18.7 | Nuevo valor: %M3903.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_CleaningFault | Tipo: Bool | Viejo valor: %M3501.7 | Nuevo valor: %M3903.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_SyrupRoom_Aux1 | Tipo: Bool | Viejo valor: %M3602.2 | Nuevo valor: %M3903.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_CIP_DrainCompleted | Tipo: Bool | Viejo valor: %A60.1 | Nuevo valor: A2.1 | Path: Outputs +[14:04:16] Asignación memoria: DO_CIP_HotWaterReq | Tipo: Bool | Viejo valor: %M3502.4 | Nuevo valor: %M3903.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_RecoverCompleted | Tipo: Bool | Viejo valor: %M3502.1 | Nuevo valor: %M3903.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_SendSodaReq | Tipo: Bool | Viejo valor: %M3502.2 | Nuevo valor: %M3904.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_SolutionReturn | Tipo: Bool | Viejo valor: %M3502.0 | Nuevo valor: %M3904.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_WaterPipe_Ready | Tipo: Bool | Viejo valor: %M3502.3 | Nuevo valor: %M3904.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CO2_Counter_Pulse | Tipo: Bool | Viejo valor: %M3500.4 | Nuevo valor: %M3904.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CtrlCircuitRun | Tipo: Bool | Viejo valor: %A5.1 | Nuevo valor: %M3904.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_SyRm_SyrupReques | Tipo: Bool | Viejo valor: %A1.0 | Nuevo valor: %M3904.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV03_SyrupLvlCtrl | Tipo: Bool | Viejo valor: %A20.2 | Nuevo valor: %M3904.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV04_SyrupFillUp | Tipo: Bool | Viejo valor: %A20.3 | Nuevo valor: %M3904.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV66_FillerRinseWater | Tipo: Bool | Viejo valor: %M3509.4 | Nuevo valor: %M3905.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV67_SyrupLineDrain | Tipo: Bool | Viejo valor: %A19.2 | Nuevo valor: %M3905.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV68_FillerRinseWater | Tipo: Bool | Viejo valor: %M3508.2 | Nuevo valor: %M3905.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV71_FillerPrPipeDrai | Tipo: Bool | Viejo valor: %M3508.3 | Nuevo valor: %M3905.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV71_FiRinseSprayBall | Tipo: Bool | Viejo valor: %M3508.4 | Nuevo valor: %M3905.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV72_FlrRinseTankDrai | Tipo: Bool | Viejo valor: %M3508.5 | Nuevo valor: %M3905.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_FillerNextRecipe | Tipo: Byte | Viejo valor: %MB3504 | Nuevo valor: %MB3905 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_BottleStop | Tipo: Bool | Viejo valor: %M3503.3 | Nuevo valor: %M3906.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr1_CIP_CleaningEnd | Tipo: Bool | Viejo valor: %M3660.1 | Nuevo valor: %M3906.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_CIP_CleaningFault | Tipo: Bool | Viejo valor: %M3502.5 | Nuevo valor: %M3907.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr1_CIP_DrainRequest | Tipo: Bool | Viejo valor: %M3660.0 | Nuevo valor: %M3907.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_CIP_ProdSending | Tipo: Bool | Viejo valor: %M3502.6 | Nuevo valor: %M3907.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_CIP_RecoverReq | Tipo: Bool | Viejo valor: %M3502.7 | Nuevo valor: %M3907.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr1_RinseMode | Tipo: Bool | Viejo valor: %M3603.5 | Nuevo valor: %M3907.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_CIP_RinseSending | Tipo: Bool | Viejo valor: %M3503.2 | Nuevo valor: %M3907.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_CIP_Running | Tipo: Bool | Viejo valor: %M3503.0 | Nuevo valor: %M3907.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_CIP_TankFilling | Tipo: Bool | Viejo valor: %M3503.1 | Nuevo valor: %M3907.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_FastRinseRequest | Tipo: Bool | Viejo valor: %M3503.6 | Nuevo valor: %M3908.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr1_CIP/Rinse | Tipo: Bool | Viejo valor: %M3511.5 | Nuevo valor: %M3908.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr1_PROD_Available | Tipo: Bool | Viejo valor: %M3603.4 | Nuevo valor: %M3908.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr1_OpenBottleblock | Tipo: Bool | Viejo valor: %M3603.6 | Nuevo valor: %M3908.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_PROD_Run_Out | Tipo: Bool | Viejo valor: %M3503.4 | Nuevo valor: %M3908.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_ProductCompleted | Tipo: Bool | Viejo valor: %M3503.5 | Nuevo valor: %M3908.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_WaterRinseReady | Tipo: Bool | Viejo valor: %M3503.7 | Nuevo valor: %M3908.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Green_Lamp | Tipo: Bool | Viejo valor: %M3500.5 | Nuevo valor: %M3908.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_Horn | Tipo: Bool | Viejo valor: %A7.0 | Nuevo valor: A3.0 | Path: Outputs +[14:04:16] Asignación memoria: DO_MES_CIP | Tipo: Bool | Viejo valor: %M3500.7 | Nuevo valor: %M3909.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_MES_FAULT | Tipo: Bool | Viejo valor: %M3501.2 | Nuevo valor: %M3909.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_MES_PRODUCTION | Tipo: Bool | Viejo valor: %M3501.0 | Nuevo valor: %M3909.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_MES_Running | Tipo: Bool | Viejo valor: %M3501.1 | Nuevo valor: %M3909.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_CIP_Mode_En | Tipo: Bool | Viejo valor: %A60.0 | Nuevo valor: A2.0 | Path: Outputs +[14:04:16] Asignación memoria: DO_MIXER _CIP_Temperature_Return | Tipo: Word | Viejo valor: %MW3514 | Nuevo valor: %MW3909 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CoolingON | Tipo: Bool | Viejo valor: %M3511.0 | Nuevo valor: %M3911.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_MIXER _Rinse_mode | Tipo: Bool | Viejo valor: %M3512.2 | Nuevo valor: %M3911.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_PB_Green_Lamp | Tipo: Bool | Viejo valor: %A7.1 | Nuevo valor: A3.1 | Path: Outputs +[14:04:16] Asignación memoria: DO_PCM306En | Tipo: Bool | Viejo valor: %M3501.6 | Nuevo valor: %M3911.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_PPM303_Run | Tipo: Bool | Viejo valor: %A7.6 | Nuevo valor: A3.6 | Path: Outputs +[14:04:16] Asignación memoria: DO_PPN301_1053K1 | Tipo: Bool | Viejo valor: %M3501.5 | Nuevo valor: %M3911.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_PPN301_Run | Tipo: Bool | Viejo valor: %A7.4 | Nuevo valor: A3.4 | Path: Outputs +[14:04:16] Asignación memoria: DO_PPN304_Run | Tipo: Bool | Viejo valor: %M3501.4 | Nuevo valor: %M3912.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_PPP302_Run | Tipo: Bool | Viejo valor: %A7.5 | Nuevo valor: A3.5 | Path: Outputs +[14:04:16] Actualizado: DO_Red_Lamp | Tipo: Bool | Viejo valor: %A7.2 | Nuevo valor: A3.2 | Path: Outputs +[14:04:16] Asignación memoria: DO_RVN301_Level | Tipo: Bool | Viejo valor: %A20.0 | Nuevo valor: %M3912.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_SyrRoom_SyrupRequest | Tipo: Bool | Viejo valor: %A68.0 | Nuevo valor: %M3912.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Syrup_Counter_Pulse | Tipo: Bool | Viejo valor: %M3500.0 | Nuevo valor: %M3912.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_SyrupRoomPump_Run | Tipo: Bool | Viejo valor: %M3505.0 | Nuevo valor: %M3912.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_SyrupRoomWaterReq | Tipo: Bool | Viejo valor: %A1.1 | Nuevo valor: A1.1 | Path: Outputs +[14:04:16] Asignación memoria: DO_Water_Counter_Pulse | Tipo: Bool | Viejo valor: %M3500.2 | Nuevo valor: %M3912.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_Yellow_Lamp | Tipo: Bool | Viejo valor: %A7.3 | Nuevo valor: A3.3 | Path: Outputs +[14:04:16] Asignación memoria: MaselliSpare | Tipo: Bool | Viejo valor: %M3511.3 | Nuevo valor: %M3912.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: MaselliHold | Tipo: Bool | Viejo valor: %M3511.2 | Nuevo valor: %M3912.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: P_AI_TTM306 | Tipo: Word | Viejo valor: %EW108 | Nuevo valor: %EW108 | Path: Inputs +[14:04:16] Actualizado: P_AI_LTM302 | Tipo: Word | Viejo valor: %EW100 | Nuevo valor: %EW100 | Path: Inputs +[14:04:16] Actualizado: P_AI_LTP303 | Tipo: Word | Viejo valor: %EW808 | Nuevo valor: %EW110 | Path: Inputs +[14:04:16] Actualizado: P_AI_PCM306 | Tipo: Word | Viejo valor: %EW106 | Nuevo valor: %EW106 | Path: Inputs +[14:04:16] Asignación memoria: P_AI_ProductCO2 | Tipo: Word | Viejo valor: %EW826 | Nuevo valor: %MW3613 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_PTF203 | Tipo: Word | Viejo valor: %EW810 | Nuevo valor: %MW3615 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_AI_PTM304 | Tipo: Word | Viejo valor: %EW102 | Nuevo valor: %EW102 | Path: Inputs +[14:04:16] Asignación memoria: P_AI_PTP338 | Tipo: Word | Viejo valor: %EW816 | Nuevo valor: %MW3617 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_AI_RVM301 | Tipo: Word | Viejo valor: %EW114 | Nuevo valor: %EW114 | Path: Inputs +[14:04:16] Actualizado: P_AI_RVN304 | Tipo: Word | Viejo valor: %EW104 | Nuevo valor: %EW104 | Path: Inputs +[14:04:16] Actualizado: P_AI_TTN321 | Tipo: Word | Viejo valor: %EW112 | Nuevo valor: %EW112 | Path: Inputs +[14:04:16] Asignación memoria: P_AO_CIPCausticCond | Tipo: Word | Viejo valor: %MW3532 | Nuevo valor: %MW3913 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_AO_CIPReturnTemperature | Tipo: Word | Viejo valor: %MW3534 | Nuevo valor: %MW3915 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_AO_CIPWaterCond | Tipo: Word | Viejo valor: %MW3530 | Nuevo valor: %MW3917 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: P_AO_PCM306 | Tipo: Word | Viejo valor: %AW122 | Nuevo valor: %AW106 | Path: Outputs +[14:04:16] Asignación memoria: P_AO_ProductRunOutAmount | Tipo: Word | Viejo valor: %MW3526 | Nuevo valor: %MW3919 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: P_AO_RMM301 | Tipo: Word | Viejo valor: %AW100 | Nuevo valor: %AW100 | Path: Outputs +[14:04:16] Actualizado: P_AO_RMM303 | Tipo: Word | Viejo valor: %AW104 | Nuevo valor: %AW104 | Path: Outputs +[14:04:16] Asignación memoria: P_AO_RMM304 | Tipo: Word | Viejo valor: %MW3536 | Nuevo valor: %MW3921 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: P_AO_RMP302 | Tipo: Word | Viejo valor: %AW102 | Nuevo valor: %AW102 | Path: Outputs +[14:04:16] Actualizado: P_AO_RVM301 | Tipo: Word | Viejo valor: %AW114 | Nuevo valor: %AW114 | Path: Outputs +[14:04:16] Asignación memoria: P_AO_RVM302 | Tipo: Word | Viejo valor: %MW3538 | Nuevo valor: %MW3923 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: P_AO_RVM319 | Tipo: Word | Viejo valor: %AW110 | Nuevo valor: %AW110 | Path: Outputs +[14:04:16] Asignación memoria: P_AO_RVN302 | Tipo: Word | Viejo valor: %MW3522 | Nuevo valor: %MW3925 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: P_AO_RVN304 | Tipo: Word | Viejo valor: %AW108 | Nuevo valor: %AW108 | Path: Outputs +[14:04:16] Actualizado: P_AO_RVP303 | Tipo: Word | Viejo valor: %AW806 | Nuevo valor: %AW112 | Path: Outputs +[14:04:16] Asignación memoria: P_AO_RVS318 | Tipo: Word | Viejo valor: %AW112 | Nuevo valor: %MW3927 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_AO_ToFillerEqPress | Tipo: Word | Viejo valor: %MW3524 | Nuevo valor: %MW3929 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_CTS301_Conductiv_State | Tipo: Byte | Viejo valor: %MB3085 | Nuevo valor: %MB3619 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_CTS301_Conductivity | Tipo: Real | Viejo valor: %MD3180 | Nuevo valor: %MD3620 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_CTS301_Temperat_State | Tipo: Byte | Viejo valor: %MB3084 | Nuevo valor: %MB3624 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_CTS301_Temperature | Tipo: Real | Viejo valor: %MD3184 | Nuevo valor: %MD3625 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_CTS302_Conductiv_State | Tipo: Byte | Viejo valor: %MB3083 | Nuevo valor: %MB3629 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_CTS302_Conductivity | Tipo: Real | Viejo valor: %MD3188 | Nuevo valor: %MD3630 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_CTS302_Temperat_State | Tipo: Byte | Viejo valor: %MB3082 | Nuevo valor: %MB3634 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_CTS302_Temperature | Tipo: Real | Viejo valor: %MD3196 | Nuevo valor: %MD3635 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTM303_Tot_Ctrl | Tipo: Byte | Viejo valor: %AB3240 | Nuevo valor: %AB3240 | Path: Outputs +[14:04:16] Actualizado: P_FTM303_Density | Tipo: Real | Viejo valor: %ED3215 | Nuevo valor: %ED3215 | Path: Inputs +[14:04:16] Asignación memoria: P_FTM303_Density_State | Tipo: Byte | Viejo valor: %EB3219 | Nuevo valor: %MB3639 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_FTM303_EPD | Tipo: Byte | Viejo valor: %MB3305 | Nuevo valor: %MB3640 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTM303_Flow | Tipo: Real | Viejo valor: %ED3200 | Nuevo valor: %ED3200 | Path: Inputs +[14:04:16] Asignación memoria: P_FTM303_Flow_State | Tipo: Byte | Viejo valor: %EB3204 | Nuevo valor: %MB3641 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_FTM303_Temperature_State | Tipo: Byte | Viejo valor: %EB3229 | Nuevo valor: %MB3642 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTM303_Temperature | Tipo: Real | Viejo valor: %ED3225 | Nuevo valor: %ED3225 | Path: Inputs +[14:04:16] Actualizado: P_FTM303_Totalizer | Tipo: Real | Viejo valor: %ED3240 | Nuevo valor: %ED3240 | Path: Inputs +[14:04:16] Asignación memoria: P_FTM303_Totalizer_State | Tipo: Byte | Viejo valor: %EB3244 | Nuevo valor: %MB3643 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTN301_Flow | Tipo: Real | Viejo valor: %ED3080 | Nuevo valor: %ED3080 | Path: Inputs +[14:04:16] Asignación memoria: P_FTN301_Flow_State | Tipo: Byte | Viejo valor: %EB3084 | Nuevo valor: %MB3644 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTN301_Tot_Ctrl | Tipo: Byte | Viejo valor: %AB3100 | Nuevo valor: %AB3100 | Path: Outputs +[14:04:16] Asignación memoria: P_FTN301_Totaliz_State | Tipo: Byte | Viejo valor: %EB3104 | Nuevo valor: %MB3645 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTN301_Totalizer | Tipo: Real | Viejo valor: %ED3100 | Nuevo valor: %ED3100 | Path: Inputs +[14:04:16] Actualizado: P_FTP302_Brix | Tipo: Real | Viejo valor: %ED2050 | Nuevo valor: %ED2050 | Path: Inputs +[14:04:16] Asignación memoria: P_FTP302_Brix_State | Tipo: Byte | Viejo valor: %EB2054 | Nuevo valor: %MB3646 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTP302_Tot_Ctrl | Tipo: Byte | Viejo valor: %AB2070 | Nuevo valor: %AB2070 | Path: Outputs +[14:04:16] Actualizado: P_FTP302_Density | Tipo: Real | Viejo valor: %ED2045 | Nuevo valor: %ED2045 | Path: Inputs +[14:04:16] Asignación memoria: P_FTP302_Density_State | Tipo: Byte | Viejo valor: %EB2049 | Nuevo valor: %MB3647 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTP302_Flow | Tipo: Real | Viejo valor: %ED2030 | Nuevo valor: %ED2030 | Path: Inputs +[14:04:16] Asignación memoria: P_FTP302_Flow_State | Tipo: Byte | Viejo valor: %EB2034 | Nuevo valor: %MB3648 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTP302_Temp | Tipo: Real | Viejo valor: %ED2055 | Nuevo valor: %ED2055 | Path: Inputs +[14:04:16] Asignación memoria: P_FTP302_Temp_State | Tipo: Byte | Viejo valor: %EB2059 | Nuevo valor: %MB3649 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_FTP302_Totaliz_State | Tipo: Byte | Viejo valor: %EB2074 | Nuevo valor: %MB3650 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: P_FTP302_Totalizer | Tipo: Real | Viejo valor: %ED2070 | Nuevo valor: %ED2070 | Path: Inputs +[14:04:16] Asignación memoria: P_gMaselli_AlcoholVolume | Tipo: Real | Viejo valor: %MD3200 | Nuevo valor: %MD3651 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gMaselli_ProdPerStandard | Tipo: Real | Viejo valor: %MD3160 | Nuevo valor: %MD3655 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gMaselli_ProductBrix | Tipo: Real | Viejo valor: %MD3168 | Nuevo valor: %MD3659 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gMaselli_ProductCO2 | Tipo: Real | Viejo valor: %MD3156 | Nuevo valor: %MD3663 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gMaselli_ProductNumber | Tipo: Byte | Viejo valor: %MB3050 | Nuevo valor: %MB3667 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gMaselli_ProductTemp | Tipo: Real | Viejo valor: %MD3164 | Nuevo valor: %MD3668 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gMaselli_ProfibusStatus | Tipo: Byte | Viejo valor: %MB3051 | Nuevo valor: %MB3672 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gMaselli_RecipeSetNum | Tipo: Byte | Viejo valor: %MB3569 | Nuevo valor: %MB3931 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gMaselli_RecipeSetNumStr | Tipo: Byte | Viejo valor: %MB3570 | Nuevo valor: %MB3932 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_0 | Tipo: Byte | Viejo valor: %MB3081 | Nuevo valor: %MB3673 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_1 | Tipo: Byte | Viejo valor: %MB3080 | Nuevo valor: %MB3674 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_10 | Tipo: Byte | Viejo valor: %MB3091 | Nuevo valor: %MB3675 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_11 | Tipo: Byte | Viejo valor: %MB3092 | Nuevo valor: %MB3676 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_12 | Tipo: Byte | Viejo valor: %MB3095 | Nuevo valor: %MB3677 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_13 | Tipo: Byte | Viejo valor: %MB3094 | Nuevo valor: %MB3678 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_14 | Tipo: Byte | Viejo valor: %MB3107 | Nuevo valor: %MB3679 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_15 | Tipo: Byte | Viejo valor: %MB3108 | Nuevo valor: %MB3680 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_16 | Tipo: Byte | Viejo valor: %MB3109 | Nuevo valor: %MB3681 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_17 | Tipo: Byte | Viejo valor: %MB3111 | Nuevo valor: %MB3682 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_18 | Tipo: Byte | Viejo valor: %MB3113 | Nuevo valor: %MB3683 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_19 | Tipo: Byte | Viejo valor: %MB3112 | Nuevo valor: %MB3684 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_2 | Tipo: Byte | Viejo valor: %MB3079 | Nuevo valor: %MB3685 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_20 | Tipo: Byte | Viejo valor: %MB3110 | Nuevo valor: %MB3686 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_21 | Tipo: Byte | Viejo valor: %MB3106 | Nuevo valor: %MB3687 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_22 | Tipo: Byte | Viejo valor: %MB3105 | Nuevo valor: %MB3688 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_23 | Tipo: Byte | Viejo valor: %MB3114 | Nuevo valor: %MB3689 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_24 | Tipo: Byte | Viejo valor: %MB3103 | Nuevo valor: %MB3690 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_25 | Tipo: Byte | Viejo valor: %MB3102 | Nuevo valor: %MB3691 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_26 | Tipo: Byte | Viejo valor: %MB3070 | Nuevo valor: %MB3692 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_27 | Tipo: Byte | Viejo valor: %MB3101 | Nuevo valor: %MB3693 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_28 | Tipo: Byte | Viejo valor: %MB3100 | Nuevo valor: %MB3694 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_29 | Tipo: Byte | Viejo valor: %MB3099 | Nuevo valor: %MB3695 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_3 | Tipo: Byte | Viejo valor: %MB3078 | Nuevo valor: %MB3696 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_4 | Tipo: Byte | Viejo valor: %MB3077 | Nuevo valor: %MB3697 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_5 | Tipo: Byte | Viejo valor: %MB3076 | Nuevo valor: %MB3698 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_6 | Tipo: Byte | Viejo valor: %MB3075 | Nuevo valor: %MB3699 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_7 | Tipo: Byte | Viejo valor: %MB3074 | Nuevo valor: %MB3700 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_8 | Tipo: Byte | Viejo valor: %MB3073 | Nuevo valor: %MB3701 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock01_9 | Tipo: Byte | Viejo valor: %MB3072 | Nuevo valor: %MB3702 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_30 | Tipo: Byte | Viejo valor: %MB3097 | Nuevo valor: %MB3703 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_31 | Tipo: Byte | Viejo valor: %MB3096 | Nuevo valor: %MB3704 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_32 | Tipo: Byte | Viejo valor: %MB3104 | Nuevo valor: %MB3705 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_33 | Tipo: Byte | Viejo valor: %MB3098 | Nuevo valor: %MB3706 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_34 | Tipo: Byte | Viejo valor: %MB3071 | Nuevo valor: %MB3707 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_35 | Tipo: Byte | Viejo valor: %MB3086 | Nuevo valor: %MB3708 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_36 | Tipo: Byte | Viejo valor: %MB3069 | Nuevo valor: %MB3709 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_37 | Tipo: Byte | Viejo valor: %MB3058 | Nuevo valor: %MB3710 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_38 | Tipo: Byte | Viejo valor: %MB3017 | Nuevo valor: %MB3711 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_39 | Tipo: Byte | Viejo valor: %MB3018 | Nuevo valor: %MB3712 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_40 | Tipo: Byte | Viejo valor: %MB3019 | Nuevo valor: %MB3713 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_41 | Tipo: Byte | Viejo valor: %MB3020 | Nuevo valor: %MB3714 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_42 | Tipo: Byte | Viejo valor: %MB3021 | Nuevo valor: %MB3715 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_43 | Tipo: Byte | Viejo valor: %MB3022 | Nuevo valor: %MB3716 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_44 | Tipo: Byte | Viejo valor: %MB3023 | Nuevo valor: %MB3717 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_45 | Tipo: Byte | Viejo valor: %MB3024 | Nuevo valor: %MB3718 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_46 | Tipo: Byte | Viejo valor: %MB3026 | Nuevo valor: %MB3719 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_47 | Tipo: Byte | Viejo valor: %MB3035 | Nuevo valor: %MB3720 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_48 | Tipo: Byte | Viejo valor: %MB3027 | Nuevo valor: %MB3721 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_49 | Tipo: Byte | Viejo valor: %MB3028 | Nuevo valor: %MB3722 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_50 | Tipo: Byte | Viejo valor: %MB3029 | Nuevo valor: %MB3723 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_51 | Tipo: Byte | Viejo valor: %MB3030 | Nuevo valor: %MB3724 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_52 | Tipo: Byte | Viejo valor: %MB3031 | Nuevo valor: %MB3725 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_53 | Tipo: Byte | Viejo valor: %MB3015 | Nuevo valor: %MB3726 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_54 | Tipo: Byte | Viejo valor: %MB3033 | Nuevo valor: %MB3727 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_55 | Tipo: Byte | Viejo valor: %MB3034 | Nuevo valor: %MB3728 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_56 | Tipo: Byte | Viejo valor: %MB3016 | Nuevo valor: %MB3729 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_57 | Tipo: Byte | Viejo valor: %MB3025 | Nuevo valor: %MB3730 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_58 | Tipo: Byte | Viejo valor: %MB3013 | Nuevo valor: %MB3731 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_59 | Tipo: Byte | Viejo valor: %MB3006 | Nuevo valor: %MB3732 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_60 | Tipo: Byte | Viejo valor: %MB3007 | Nuevo valor: %MB3733 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock02_61 | Tipo: Byte | Viejo valor: %MB3008 | Nuevo valor: %MB3734 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_62 | Tipo: Byte | Viejo valor: %MB3009 | Nuevo valor: %MB3735 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_63 | Tipo: Byte | Viejo valor: %MB3010 | Nuevo valor: %MB3736 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_64 | Tipo: Byte | Viejo valor: %MB3011 | Nuevo valor: %MB3737 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_65 | Tipo: Byte | Viejo valor: %MB3012 | Nuevo valor: %MB3738 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_66 | Tipo: Byte | Viejo valor: %MB3032 | Nuevo valor: %MB3739 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_67 | Tipo: Byte | Viejo valor: %MB3036 | Nuevo valor: %MB3740 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_68 | Tipo: Byte | Viejo valor: %MB3068 | Nuevo valor: %MB3741 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_69 | Tipo: Byte | Viejo valor: %MB3038 | Nuevo valor: %MB3742 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_70 | Tipo: Byte | Viejo valor: %MB3067 | Nuevo valor: %MB3743 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_71 | Tipo: Byte | Viejo valor: %MB3066 | Nuevo valor: %MB3744 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_72 | Tipo: Byte | Viejo valor: %MB3065 | Nuevo valor: %MB3745 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_73 | Tipo: Byte | Viejo valor: %MB3064 | Nuevo valor: %MB3746 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_74 | Tipo: Byte | Viejo valor: %MB3063 | Nuevo valor: %MB3747 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_75 | Tipo: Byte | Viejo valor: %MB3062 | Nuevo valor: %MB3748 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_76 | Tipo: Byte | Viejo valor: %MB3061 | Nuevo valor: %MB3749 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_77 | Tipo: Byte | Viejo valor: %MB3060 | Nuevo valor: %MB3750 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_78 | Tipo: Byte | Viejo valor: %MB3037 | Nuevo valor: %MB3751 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_79 | Tipo: Byte | Viejo valor: %MB3059 | Nuevo valor: %MB3752 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_80 | Tipo: Byte | Viejo valor: %MB3057 | Nuevo valor: %MB3753 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_81 | Tipo: Byte | Viejo valor: %MB3056 | Nuevo valor: %MB3754 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_82 | Tipo: Byte | Viejo valor: %MB3300 | Nuevo valor: %MB3755 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_83 | Tipo: Byte | Viejo valor: %MB3054 | Nuevo valor: %MB3756 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_84 | Tipo: Byte | Viejo valor: %MB3053 | Nuevo valor: %MB3757 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_INBlock03_85 | Tipo: Byte | Viejo valor: %MB3052 | Nuevo valor: %MB3758 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_0 | Tipo: Byte | Viejo valor: %MB3541 | Nuevo valor: %MB3933 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_1 | Tipo: Byte | Viejo valor: %MB3542 | Nuevo valor: %MB3934 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_10 | Tipo: Byte | Viejo valor: %MB3551 | Nuevo valor: %MB3935 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_11 | Tipo: Byte | Viejo valor: %MB3552 | Nuevo valor: %MB3936 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_12 | Tipo: Byte | Viejo valor: %MB3553 | Nuevo valor: %MB3937 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_13 | Tipo: Byte | Viejo valor: %MB3554 | Nuevo valor: %MB3938 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_14 | Tipo: Byte | Viejo valor: %MB3555 | Nuevo valor: %MB3939 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_15 | Tipo: Byte | Viejo valor: %MB3556 | Nuevo valor: %MB3940 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_16 | Tipo: Byte | Viejo valor: %MB3557 | Nuevo valor: %MB3941 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_17 | Tipo: Byte | Viejo valor: %MB3558 | Nuevo valor: %MB3942 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_18 | Tipo: Byte | Viejo valor: %MB3559 | Nuevo valor: %MB3943 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_19 | Tipo: Byte | Viejo valor: %MB3560 | Nuevo valor: %MB3944 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_2 | Tipo: Byte | Viejo valor: %MB3543 | Nuevo valor: %MB3945 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_20 | Tipo: Byte | Viejo valor: %MB3561 | Nuevo valor: %MB3946 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_21 | Tipo: Byte | Viejo valor: %MB3562 | Nuevo valor: %MB3947 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_22 | Tipo: Byte | Viejo valor: %MB3563 | Nuevo valor: %MB3948 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_23 | Tipo: Byte | Viejo valor: %MB3564 | Nuevo valor: %MB3949 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_24 | Tipo: Byte | Viejo valor: %MB3565 | Nuevo valor: %MB3950 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_25 | Tipo: Byte | Viejo valor: %MB3566 | Nuevo valor: %MB3951 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_26 | Tipo: Byte | Viejo valor: %MB3567 | Nuevo valor: %MB3952 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_27 | Tipo: Byte | Viejo valor: %MB3568 | Nuevo valor: %MB3953 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_3 | Tipo: Byte | Viejo valor: %MB3544 | Nuevo valor: %MB3954 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_4 | Tipo: Byte | Viejo valor: %MB3545 | Nuevo valor: %MB3955 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_5 | Tipo: Byte | Viejo valor: %MB3546 | Nuevo valor: %MB3956 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_6 | Tipo: Byte | Viejo valor: %MB3547 | Nuevo valor: %MB3957 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_7 | Tipo: Byte | Viejo valor: %MB3548 | Nuevo valor: %MB3958 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_8 | Tipo: Byte | Viejo valor: %MB3549 | Nuevo valor: %MB3959 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPAmPDS_OUTBlock01_9 | Tipo: Byte | Viejo valor: %MB3550 | Nuevo valor: %MB3960 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: P_gPPM303_VFC_ActualValue | Tipo: Word | Viejo valor: %EW1642 | Nuevo valor: %EW1642 | Path: Inputs +[14:04:16] Actualizado: P_gPPM303_VFC_ControlWord | Tipo: Word | Viejo valor: %AW1640 | Nuevo valor: %AW1640 | Path: Outputs +[14:04:16] Actualizado: P_gPPM303_VFC_Refvalue | Tipo: Word | Viejo valor: %AW1642 | Nuevo valor: %AW1642 | Path: Outputs +[14:04:16] Actualizado: P_gPPM303_VFC_StatusWord | Tipo: Word | Viejo valor: %EW1640 | Nuevo valor: %EW1640 | Path: Inputs +[14:04:16] Asignación memoria: P_gPPM307_VFC_ActualVaule | Tipo: Int | Viejo valor: %MW3118 | Nuevo valor: %MW3759 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPPM307_VFC_ControlWord | Tipo: Word | Viejo valor: %MW3584 | Nuevo valor: %MW3961 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPPM307_VFC_Refvalue | Tipo: Word | Viejo valor: %MW3586 | Nuevo valor: %MW3963 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPPM307_VFC_StatusWord | Tipo: Word | Viejo valor: %MW3240 | Nuevo valor: %MW3761 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPPN301_VFC_ActualValue | Tipo: Word | Viejo valor: %MW3232 | Nuevo valor: %MW3763 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPPN301_VFC_ControlWord | Tipo: Word | Viejo valor: %MW3572 | Nuevo valor: %MW3965 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPPN301_VFC_Refvalue | Tipo: Word | Viejo valor: %MW3574 | Nuevo valor: %MW3967 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPPN301_VFC_StatusWord | Tipo: Word | Viejo valor: %MW3212 | Nuevo valor: %MW3765 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPPP302_VFC_ActualValue | Tipo: Word | Viejo valor: %MW3234 | Nuevo valor: %MW3767 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPPP302_VFC_ControlWord | Tipo: Word | Viejo valor: %MW3576 | Nuevo valor: %MW3969 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPPP302_VFC_Refvalue | Tipo: Word | Viejo valor: %MW3578 | Nuevo valor: %MW3971 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPPP302_VFC_StatusWord | Tipo: Word | Viejo valor: %MW3248 | Nuevo valor: %MW3769 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: PPN301_SoftStart_Averia | Tipo: Bool | Viejo valor: %M3003.3 | Nuevo valor: %M3771.0 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: Tag_24 | Tipo: Real | Viejo valor: %MD3144 | Nuevo valor: %MD3771 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_UPSsupply | Tipo: Bool | Viejo valor: %E3.6 | Nuevo valor: %E3.5 | Path: Inputs +[14:04:16] Actualizado: DI_PB_HornReset | Tipo: Bool | Viejo valor: %E0.1 | Nuevo valor: %E0.1 | Path: Inputs +[14:04:16] Asignación memoria: DO_PB_HornReset | Tipo: Bool | Viejo valor: %M3500.3 | Nuevo valor: %M3973.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DI_Flr1_PROD_ok | Tipo: Bool | Viejo valor: %M3605.2 | Nuevo valor: %M3775.1 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr_RinseMode | Tipo: Bool | Viejo valor: %M3000.4 | Nuevo valor: %M3775.2 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DO_FlrProdMode | Tipo: Bool | Viejo valor: %M3516.4 | Nuevo valor: %M3973.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr1_Productionmode | Tipo: Bool | Viejo valor: %M3603.3 | Nuevo valor: %M3973.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr1_CIPMode | Tipo: Bool | Viejo valor: %M3607.5 | Nuevo valor: %M3973.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_ Flr_CIPRinseSending | Tipo: Bool | Viejo valor: %M3516.5 | Nuevo valor: %M3973.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_RinseMode | Tipo: Bool | Viejo valor: %M3516.6 | Nuevo valor: %M3973.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_SyRm_Fault | Tipo: Bool | Viejo valor: %M3512.0 | Nuevo valor: %M3973.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_SyRm_ProdMode | Tipo: Bool | Viejo valor: %M3512.1 | Nuevo valor: %M3973.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_SyRm_WaterRequest | Tipo: Bool | Viejo valor: %A68.1 | Nuevo valor: %M3974.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_Fault | Tipo: Bool | Viejo valor: %M3516.0 | Nuevo valor: %M3974.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_Empty | Tipo: Bool | Viejo valor: %M3516.1 | Nuevo valor: %M3974.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_RdyChmcl | Tipo: Bool | Viejo valor: %M3516.2 | Nuevo valor: %M3974.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_Flpflp | Tipo: Bool | Viejo valor: %M3516.3 | Nuevo valor: %M3974.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DI_CIP_Fault | Tipo: Bool | Viejo valor: %M3002.6 | Nuevo valor: %M3775.3 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_CIP_End | Tipo: Bool | Viejo valor: %M3660.3 | Nuevo valor: %M3775.4 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_CIP_FlpflpEn | Tipo: Bool | Viejo valor: %M3001.2 | Nuevo valor: %M3775.5 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_CIP_FirstRinsedone | Tipo: Bool | Viejo valor: %M3000.1 | Nuevo valor: %M3775.6 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_SYR_COUNTER_LT | Tipo: Word | Viejo valor: %MW3210 | Nuevo valor: %MW3775 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_SyrRoom_SyrPump_Running | Tipo: Bool | Viejo valor: %E5.0 | Nuevo valor: %E5.0 | Path: Inputs +[14:04:16] Asignación memoria: DI_SYRUP_Runout | Tipo: Bool | Viejo valor: %M3003.5 | Nuevo valor: %M3777.7 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DO_Flr1_Fault | Tipo: Bool | Viejo valor: %M3511.4 | Nuevo valor: %M3974.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr_ProdAvailable | Tipo: Int | Viejo valor: %MW3518 | Nuevo valor: %MW3974 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DI_Flr2_PROD_Request | Tipo: Bool | Viejo valor: %M3607.4 | Nuevo valor: %M3778.0 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr2_CIP/RinseFiller | Tipo: Bool | Viejo valor: %M3606.0 | Nuevo valor: %M3778.1 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DO_Flr2_CIP/Rinse | Tipo: Bool | Viejo valor: %M3511.7 | Nuevo valor: %M3976.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Flr2_Fault | Tipo: Bool | Viejo valor: %M3511.6 | Nuevo valor: %M3976.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPPM305_VFC_StatusWord | Tipo: Word | Viejo valor: %MW3242 | Nuevo valor: %MW3778 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPPM305_VFC_ActualValue | Tipo: Word | Viejo valor: %MW3244 | Nuevo valor: %MW3780 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_gPPM305_VFC_ControlWord | Tipo: Word | Viejo valor: %MW3588 | Nuevo valor: %MW3977 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_gPPM305_VFC_Refvalue | Tipo: Word | Viejo valor: %MW3590 | Nuevo valor: %MW3979 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM363 | Tipo: Bool | Viejo valor: %M3505.4 | Nuevo valor: %M3981.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_RVM301 | Tipo: Bool | Viejo valor: %A16.0 | Nuevo valor: %M3981.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_AVM369 | Tipo: Bool | Viejo valor: %M3601.3 | Nuevo valor: A18.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVP317_1 | Tipo: Bool | Viejo valor: %A19.1 | Nuevo valor: %M3981.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM353 | Tipo: Bool | Viejo valor: %M3506.0 | Nuevo valor: %M3981.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Blu_Lamp | Tipo: Bool | Viejo valor: %M3500.6 | Nuevo valor: %M3981.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_AO_RVN305 | Tipo: Word | Viejo valor: %MW3520 | Nuevo valor: %MW3981 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DI_PPN301_SoftStart_Ovrld | Tipo: Bool | Viejo valor: %E10.0 | Nuevo valor: %M3782.2 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_PPM306_Contactor | Tipo: Bool | Viejo valor: %E11.3 | Nuevo valor: %M3782.3 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Ammonia_CompressorReady | Tipo: Bool | Viejo valor: %M3606.7 | Nuevo valor: %M3782.4 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr2_CIP_DrainComplete | Tipo: Bool | Viejo valor: %M3606.1 | Nuevo valor: %M3782.5 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_PPM306_Ovrld | Tipo: Bool | Viejo valor: %E10.3 | Nuevo valor: %M3782.6 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_Flr1_WaterRequest | Tipo: Bool | Viejo valor: %M3605.7 | Nuevo valor: %M3782.7 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DO_Flr1_Spare0 | Tipo: Bool | Viejo valor: %M3601.7 | Nuevo valor: %M3983.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_CIP_Spare | Tipo: Bool | Viejo valor: %M3601.4 | Nuevo valor: %M3983.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_SyrupValve_Enable | Tipo: Bool | Viejo valor: %A11.6 | Nuevo valor: A0.0 | Path: Outputs +[14:04:16] Asignación memoria: DO_AVM382 | Tipo: Bool | Viejo valor: %A16.2 | Nuevo valor: %M3983.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVP355 | Tipo: Bool | Viejo valor: %M3505.3 | Nuevo valor: %M3984.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVN350 | Tipo: Bool | Viejo valor: %M3540.0 | Nuevo valor: %M3984.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_AI_CIPHeaterTemperature | Tipo: Word | Viejo valor: %MW3250 | Nuevo valor: %MW3783 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_FTM305 | Tipo: Word | Viejo valor: %MW3252 | Nuevo valor: %MW3785 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_PTM308 | Tipo: Word | Viejo valor: %MW3254 | Nuevo valor: %MW3787 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_CTS302 | Tipo: Word | Viejo valor: %MW3256 | Nuevo valor: %MW3789 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_CTS301 | Tipo: Word | Viejo valor: %MW3258 | Nuevo valor: %MW3791 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_CIPReturnTemperature | Tipo: Word | Viejo valor: %MW3260 | Nuevo valor: %MW3793 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_FillerLevel | Tipo: Word | Viejo valor: %MW3262 | Nuevo valor: %MW3795 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_CTM304 | Tipo: Word | Viejo valor: %MW3264 | Nuevo valor: %MW3797 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_PTN313 | Tipo: Word | Viejo valor: %MW3266 | Nuevo valor: %MW3799 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_RVN305 | Tipo: Word | Viejo valor: %MW3268 | Nuevo valor: %MW3801 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: P_AI_ProductO2 | Tipo: Word | Viejo valor: %MW3270 | Nuevo valor: %MW3803 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DO_HMIPowerSupply | Tipo: Bool | Viejo valor: %A0.0 | Nuevo valor: A0.7 | Path: Outputs +[14:04:16] Asignación memoria: DO_PPM306_Run | Tipo: Bool | Viejo valor: %A11.3 | Nuevo valor: %M3984.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DI_HVP301_Sensor | Tipo: Bool | Viejo valor: %E7.2 | Nuevo valor: %E7.2 | Path: Inputs +[14:04:16] Asignación memoria: DI_AVM346_Close | Tipo: Bool | Viejo valor: %E112.2 | Nuevo valor: %M3805.0 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DI_AVM346_Open | Tipo: Bool | Viejo valor: %E102.2 | Nuevo valor: %M3805.1 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_UPSAlarm | Tipo: Bool | Viejo valor: %E3.5 | Nuevo valor: %E3.6 | Path: Inputs +[14:04:16] Asignación memoria: DO_RVM301_Discharge | Tipo: Bool | Viejo valor: %M3602.0 | Nuevo valor: %M3984.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_SyrupRoom_Aux2 | Tipo: Bool | Viejo valor: %M3602.3 | Nuevo valor: %M3984.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Glycol_LineEnabled | Tipo: Bool | Viejo valor: %M3604.0 | Nuevo valor: %M3984.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Glycol_ColdRequest | Tipo: Bool | Viejo valor: %M3607.3 | Nuevo valor: %M3984.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_Glycol_LineCIP | Tipo: Bool | Viejo valor: %M3607.2 | Nuevo valor: %M3984.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV1_SubCarb | Tipo: Bool | Viejo valor: %M3607.1 | Nuevo valor: %M3985.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV2_SubCarb | Tipo: Bool | Viejo valor: %M3607.0 | Nuevo valor: %M3985.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV3_SubCarb | Tipo: Bool | Viejo valor: %M3606.4 | Nuevo valor: %M3985.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV4_SubCarb | Tipo: Bool | Viejo valor: %M3606.3 | Nuevo valor: %M3985.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_BoosterPump_SubCarb | Tipo: Bool | Viejo valor: %M3606.2 | Nuevo valor: %M3985.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_AVM311 | Tipo: Bool | Viejo valor: %A100.0 | Nuevo valor: A16.0 | Path: OutputsFesto +[14:04:16] Asignación memoria: DO_200V26 | Tipo: Bool | Viejo valor: %M3600.3 | Nuevo valor: %M3985.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV100_WaterInlet | Tipo: Bool | Viejo valor: %M3601.6 | Nuevo valor: %M3985.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_200V28 | Tipo: Bool | Viejo valor: %M3603.7 | Nuevo valor: %M3985.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_AVM313 | Tipo: Bool | Viejo valor: %A100.1 | Nuevo valor: A16.1 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVN314 | Tipo: Bool | Viejo valor: %A100.2 | Nuevo valor: A16.2 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVM315 | Tipo: Bool | Viejo valor: %A100.3 | Nuevo valor: A16.3 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVP316 | Tipo: Bool | Viejo valor: %A100.4 | Nuevo valor: A16.4 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVM317 | Tipo: Bool | Viejo valor: %A100.5 | Nuevo valor: A16.5 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVN318 | Tipo: Bool | Viejo valor: %A100.6 | Nuevo valor: A16.6 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVM321 | Tipo: Bool | Viejo valor: %A100.7 | Nuevo valor: A16.7 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVM322 | Tipo: Bool | Viejo valor: %A101.0 | Nuevo valor: A17.0 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVM323 | Tipo: Bool | Viejo valor: %A101.1 | Nuevo valor: A17.1 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVM326 | Tipo: Bool | Viejo valor: %A101.3 | Nuevo valor: A17.3 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVP324 | Tipo: Bool | Viejo valor: %A101.2 | Nuevo valor: A17.2 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVN327 | Tipo: Bool | Viejo valor: %A101.4 | Nuevo valor: A17.4 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVN328 | Tipo: Bool | Viejo valor: %A101.5 | Nuevo valor: A17.5 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVP344 | Tipo: Bool | Viejo valor: %A101.6 | Nuevo valor: A17.6 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVM345 | Tipo: Bool | Viejo valor: %A101.7 | Nuevo valor: A17.7 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVM362 | Tipo: Bool | Viejo valor: %A102.1 | Nuevo valor: A18.1 | Path: OutputsFesto +[14:04:16] Actualizado: DO_AVP361 | Tipo: Bool | Viejo valor: %A102.6 | Nuevo valor: A18.0 | Path: OutputsFesto +[14:04:16] Actualizado: DO_RVN302 | Tipo: Bool | Viejo valor: %A103.4 | Nuevo valor: A19.0 | Path: OutputsFesto +[14:04:16] Actualizado: DO_RVN302_1 | Tipo: Bool | Viejo valor: %A103.5 | Nuevo valor: A19.1 | Path: OutputsFesto +[14:04:16] Asignación memoria: DO_AVM340 | Tipo: Bool | Viejo valor: %M3600.2 | Nuevo valor: %M3986.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM339 | Tipo: Bool | Viejo valor: %M3605.6 | Nuevo valor: %M3986.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM341 | Tipo: Bool | Viejo valor: %A17.5 | Nuevo valor: %M3986.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM342 | Tipo: Bool | Viejo valor: %M3600.4 | Nuevo valor: %M3986.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM346 | Tipo: Bool | Viejo valor: %M3600.1 | Nuevo valor: %M3986.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_AVM380 | Tipo: Bool | Viejo valor: %M3600.6 | Nuevo valor: %M3986.5 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: DO_AVM381 | Tipo: Bool | Viejo valor: %A102.3 | Nuevo valor: A18.3 | Path: OutputsFesto +[14:04:16] Asignación memoria: DO_EV102_Syrup And CIP Inlet | Tipo: Bool | Viejo valor: %M3601.2 | Nuevo valor: %M3986.6 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV103_WaterInterception | Tipo: Bool | Viejo valor: %M3601.1 | Nuevo valor: %M3986.7 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_WaterBypass1 | Tipo: Bool | Viejo valor: %M3601.0 | Nuevo valor: %M3987.0 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: DO_EV105_WaterBypass | Tipo: Bool | Viejo valor: %M3600.7 | Nuevo valor: %M3987.1 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: CARLOS_TESTE | Tipo: Bool | Viejo valor: %M2.2 | Nuevo valor: %M3805.2 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Actualizado: DI_PPM303_Contactor | Tipo: Bool | Viejo valor: %E2.5 | Nuevo valor: %E2.5 | Path: Inputs +[14:04:16] Asignación memoria: DI_SyrRoom_Alarm_Reset | Tipo: Bool | Viejo valor: %M3605.0 | Nuevo valor: %M3805.3 | Path: IO Not in Hardware\InputsMaster +[14:04:16] Asignación memoria: DO_Analayzer_Enable | Tipo: Bool | Viejo valor: %M3602.1 | Nuevo valor: %M3987.2 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_PDS_Recipe_Number | Tipo: Byte | Viejo valor: %AB15001 | Nuevo valor: %MB3987 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_PDS_Freeze_To_PDS | Tipo: Bool | Viejo valor: %A15002.0 | Nuevo valor: %M3988.3 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Asignación memoria: P_PDS_Stop_to_PDS | Tipo: Bool | Viejo valor: %A15002.1 | Nuevo valor: %M3988.4 | Path: IO Not in Hardware\OutputsMaster +[14:04:16] Actualizado: P_PDS_CO2 | Tipo: Real | Viejo valor: %ED15060 | Nuevo valor: %ED15060 | Path: Inputs +[14:04:16] Actualizado: P_PDS_Product_Brix | Tipo: Real | Viejo valor: %ED15084 | Nuevo valor: %ED15084 | Path: Inputs +[14:04:16] Actualizado: P_PDS_Temperature | Tipo: Real | Viejo valor: %ED15104 | Nuevo valor: %ED15104 | Path: Inputs +[14:04:16] Actualizado: P_PDS_Density | Tipo: Real | Viejo valor: %ED15112 | Nuevo valor: %ED15112 | Path: Inputs +[14:04:16] Archivo Excel guardado: C:\Trabajo\SIDEL\13 - E5.007560 - Modifica O&U - SAE235\Reporte\IOTags\PLCTags_Updated.xlsx +[14:04:16] ============================== RESUMEN ============================== +[14:04:16] Total de tags procesados: 486 +[14:04:16] Tags actualizados desde el Markdown: 98 +[14:04:16] Tags relocalizados a IO Not in Hardware\InputsMaster: 203 +[14:04:16] Tags relocalizados a IO Not in Hardware\OutputsMaster: 185 +[14:04:16] Tags con direcciones de memoria asignadas: 388 +[14:04:16] ========================= USO DE MEMORIA ========================= +[14:04:16] Memoria de entrada final: 3805 (inicio: 3600) +[14:04:16] Memoria de salida final: 3988 (inicio: 3900) +[14:04:16] Bytes usados para entradas: 205 +[14:04:16] Bytes usados para salidas: 88 +[14:04:16] Espacio restante entre memorias: 95 bytes +[14:04:16] ✅ Proceso completado exitosamente sin conflictos de memoria +[14:04:18] Ejecución de x5_md_to_excel.py finalizada (success). Duración: 0:00:06.440963. +[14:04:18] Log completo guardado en: D:\Proyectos\Scripts\ParamManagerScripts\backend\script_groups\IO_adaptation\log_x5_md_to_excel.txt