OB1 Main : Main Program Sweep

 

 

 

Netzwerk 1: Start measuring runtime (Start Cycle)

"HMI SYS".Support.LastCycle := RUNTIME("HMI SYS".Support.LastCycle_inout);

 

 

 

Netzwerk 2: Pulse generator

"HMI SYS".Support.Sav_Clock_Byte := "HMI SYS".Support.Sav_Clock_Byte XOR "Clock_Byte";

"M00 PLC Impulse" := "HMI SYS".Support.Sav_Clock_Byte AND "Clock_Byte";

"HMI SYS".Support.Sav_Clock_Byte := "Clock_Byte";

 

 

 

Netzwerk 3: CALL distributor

"DI MAIN GLB"();

-> "DI MAIN LIF"(); // Process01, main module function block

-> "DI MAIN FDR"(); // Process02, main module function block

-> "DI MAIN VMA"(); // Process03, main module function block

//-----

--> "DI OUT LIF"(); // Process01, execute output stage

--> "DI OUT FDR"(); // Process02, execute output stage

--> "DI OUT VMA"(); // Process03, execute output stage

 

 

 

Netzwerk 4: First cycle evaluation

U "M00 log 1"

L s5t#2s

SE "T01 1A1 STROB SA"

U "T01 1A1 STROB SA"

= "M00 OB1 FirstCycle"

 

 

 

Netzwerk 5: Flag logic =0

"M00 log 0" := FALSE;

"M00 log 1" := TRUE;

 

 

 

Netzwerk 6: End measuring runtime (End Cycle)

"HMI SYS".Support.LastCycle := RUNTIME("HMI SYS".Support.LastCycle_inout);

"HMI SYS".Support.LastCycle_real := LREAL_TO_REAL(IN := "HMI SYS".Support.LastCycle);

 

 

 

FB20 MAIN GLB : Global signals evaluation

 

 

 

Netzwerk 1: Fault acknowledgement

"M00 ACK Imp" := NOT "M00 ACK FP" AND "HMI KEY".SYS.GLB.F1_AckKey OR "M00 OB1 FrstCyclePuse";

"M00 ACK FP" := "HMI KEY".SYS.GLB.F1_AckKey;

 

 

 

Netzwerk 2: Call main station safety program

"M00 EStp ok" := "E00 Estop1 OK;

 

 

 

Netzwerk 3: GLB FLT faults monitoring

#FLT(FLT_MODULE := "M00 FLT ModuStp");

 

 

 

Netzwerk 4: Assigned failure complete machine

"M00 FltCmpltMaIS" := "M00 FLT ModuStp" OR "M01 FLT ModuStp" OR "M02 FLT ModuStp" OR "M03 FLT ModuStp";

 

 

 

Netzwerk 5: Set failure complet machine

IF "M00 FltCmpltMaIS" THEN

"M00 FltCmpltMaSR" := true;

END_IF;

IF "M00 FltCmpltMaSR" AND NOT "M00 Flt ACK" THEN

IF "M00 FltCmpltMaSR" AND "M00 ACK Imp" THEN

"M00 Flt ACK" := true;

END_IF;

ELSIF NOT "M00 FltCmpltMaIS" AND "M00 Flt ACK" THEN

"M00 FltCmpltMaSR" := "M00 Flt ACK" := FALSE;

END_IF;

 

 

 

Netzwerk 6: Query assembly module at home position

"M00 HomPos" :="M01 HomPos" AND "M02 HomPos" AND "M03 HomPos" AND "M04 HomPos";

IF "M00 HomPos" THEN

"M00 HomPosSR" := TRUE;

END_IF;

 

 

 

Netzwerk 7: Start operating mode AUTOMATIC

IF ("M00 HomPosSR" OR "M00 HomPos") AND "HMI KEY".SYS.GLB.F3_OM_AUTO_ON THEN

"M00 OM AUTO" := TRUE;

"M00 OM MANUAL" := "M00 OM HOME POS" := "M00 ManuCmpltMa run" := FALSE;

END_IF;

IF ("M00 HomPosSR" OR "M00 HomPos") AND "M00 OM AUTO" AND "HMI KEY".SYS.GLB.F5_Start THEN

"M00 AutoCmpltMa run" := TRUE;

END_IF;

 

 

 

Netzwerk 8: Start operating mode MANUAL

IF "HMI KEY".SYS.GLB.F4_OM_MANU_ON THEN

"M00 OM MANUAL" := TRUE;

"M00 OM AUTO" := "M00 AutoCmpltMa run" := "M00 OM HOME POS" := FALSE;

END_IF;

IF "HMI KEY".SYS.GLB.F5_Start AND "M00 OM MANUAL" THEN

"M00 ManuCmpltMa run" := TRUE;

END_IF;

"M00 ManuCmpltMa Imp" := NOT "M00 ManuCmpltMa run" AND "M00 ManuCmpltM FN";

"M00 ManuCmpltM FN" := "M00 ManuCmpltMa run";

 

 

 

Netzwerk 9: STOP all operating mode

#tmp_save := "M00 OM HOME POS" OR (("M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run") AND "HMI KEY".SYS.GLB.F8_Stop);

IF #tmp_save OR "M00 FltCmpltMaSR" THEN

"M00 AutoCmpltMa run" := FALSE;

END_IF;

IF #tmp_save OR "M00 ManuCmpltMa Imp" THEN

"M00 ManuCmpltMa run" := FALSE;

END_IF;

 

 

 

Netzwerk 10: Impuls Start complete machine

"M00 TrnsSysRun Imp" := NOT "M00 TrnsSysRun FP" AND ("M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" OR #SET.SET.S.steps);

"M00 TrnsSysRun FP" := "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" OR #SET.SET.S.steps;

 

 

 

Netzwerk 11: Show key colour on HMI

"HMI KEY".SYS.GLB.OM_ON_RUN := "M00 TrnsSysRun FP";

"HMI KEY".SYS.GLB.F11_Show_KeyColour_Start_Stop := "M00 AutoCmpltMa run" OR "M00 ManuCmpltMa run" OR #SET.SET.S.steps;

"HMI KEY".SYS.GLB.Show_Key_Start_Stop := "M00 OM AUTO" OR "M00 OM MANUAL" OR "M00 OM HOME POS";

 

 

 

Netzwerk 12: Enable running each module

"M00 Enabled" := "M00 OM HOME POS" AND NOT "M00 FltCmpltMaSR";

"M01 Enabled" := "M00 AutoCmpltMa run" OR (101 = "HMI SYS".TP1900Comfort.AreaPoint.Screen.Number AND "M00 ManuCmpltMa run");

"M02 Enabled" := "M00 AutoCmpltMa run" OR (102 = "HMI SYS".TP1900Comfort.AreaPoint.Screen.Number AND "M00 ManuCmpltMa run");

"M03 Enabled" := "M00 AutoCmpltMa run" OR (103 = "HMI SYS".TP1900Comfort.AreaPoint.Screen.Number AND "M00 ManuCmpltMa run");

 

 

 

Netzwerk 13: START home position complete machine

IF "HMI KEY".SYS.GLB.F7_OM_HOM_POS_ON AND NOT "M00 HomPos" THEN

"M00 OM HOME POS" := TRUE;

"M00 OM AUTO" := "M00 OM MANUAL" := FALSE;

END_IF;

IF "HMI KEY".SYS.GLB.F5_Start AND "M00 OM HOME POS" AND NOT "M00 FltCmpltMaSR" THEN

#SET.SET.S.steps := TRUE;

"M00 HomPosSR" := FALSE;

END_IF;

IF NOT "M00 OM HOME POS" OR "HMI KEY".SYS.GLB.F8_Stop THEN

#SET.SET.S.steps := FALSE;

END_IF;

"M00 Active" := #SET.SET.S.steps;

#SET.SET.S.steph := "M00 FltCmpltMaSR";

#SET(ACT_STEP => #SET.STEP_NO);

 

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

To go to next HMI image use the touch buttons; some of them are interactive.