FB32 SEQ1 P01 : Spring block testing (slave 1)

 

 

 

Netzwerk 1: Pre-Setting

 

"M01 RdyToStart" :=

"M01 HomPos" AND "DI MAIN P05".SEQ1.Shift_Register.%X3;

 

 

 

Netzwerk 2: Execute SEQ1

 

#SSM1(STEP_PLS := "HMI KEY".P01.GLB.F17_StepPls,

STEP_MNS := "HMI KEY".P01.GLB.F18_StepMns,

GOTO_STEP := "HMI KEY".P01.GLB.F19_GoToStep,

GOTO_STEP_NO := "HMI KEY".P01.GLB.GoToStep,

MAX_STEP := 4);

 

 

 

Netzwerk 3: Step jump distributor

 

CASE #SSM1.S.stepact OF

0: // Waiting for SEQ1 to start

"M01 SEQ1 Active" := FALSE;

#Index := 0;

IF NOT "DI MAIN P05".SEQ1.Shift_Register.%X3 THEN

"M01 Enbl toRTT" := TRUE;

RETURN;

END_IF;

#SSM1.S.stepd := #SSM1.S.steps AND "M01 RdyToStart" AND "M01 Enbl frmRTT";

1: // HSC wait for stabled start value

"M01 SEQ1 Active" := TRUE;

IF #SSM1.S.stepfc THEN

"M01 Enbl frmRTT" := FALSE;

#Index := #Index + 1;

#SSM1.S.c1.set := 8;

RETURN;

ELSE

"M01 HSC OnOff" := TRUE;

#SSM1.S.c1.start := "DI OUT P01".HSC_TRVL_IO.UserStatusFlags.StatusDQ1;

IF #SSM1.S.c1.done THEN

#SSM1.S.stepd := TRUE;

END_IF;

END_IF;

2: // Z01 spring-block slide downward WP

"DI OUT P01".Z01.VLV.CmdExe_HP := FALSE;

"DI OUT P01".Z01.VLV.CmdExe_WP := "HMI KEY".P01.Z01.F12_Enable_WP;

#SSM1.S.c1.start := "DI OUT P01".Z01.FB_WP;

#SSM1.S.c1.set := 8;

#SSM1.S.stepd := #SSM1.S.c1.done;

3: // Spring-block travel measuring

#SSM1.S.c1.start := TRUE;

#SSM1.S.c1.set := 8;

"DI OUT P01".MANUAL.SpringBLK_LS.Measurement[#Index] := "DI OUT P01".HSC_TRVL_IO.OUT.MeasuredValue;

IF "DI OUT P01".MANUAL.SpringBLK_LS.Compensation < ABS("DI OUT P01".HSC_TRVL_IO.OUT.MeasuredValue - "DatOfMod".P01.STS.MeanVal_LS_BLK) THEN

"DI MAIN P05".SSM1.Shift_Register_BadParts.%X3 := TRUE;

END_IF;

#SSM1.S.stepd := #SSM1.S.c1.done;

4: // Z01 move spring-block slide upward HP

"DI OUT P01".Z01.VLV.CmdExe_WP := FALSE;

"DI OUT P01".Z01.VLV.CmdExe_HP := "HMI KEY".P01.Z01.F11_Enable_HP;

IF "DI OUT P01".Z01.FB_HP AND #Index < 4 THEN

#SSM1.S.stepnew := 1;

#SSM1.S.stepd := TRUE;

ELSIF "DI OUT P01".Z01.FB_HP THEN

"DatOfMod".P01.STS.MeanVal_LS_BLK :=

("DI OUT P01".MANUAL.SpringBLK_LS.Measurement[1]

+ "DI OUT P01".MANUAL.SpringBLK_LS.Measurement[2]

+ "DI OUT P01".MANUAL.SpringBLK_LS.Measurement[3]

+ "DI OUT P01".MANUAL.SpringBLK_LS.Measurement[4]) / 4.0;

#FLT."3_FAULT_00_15".%X0 := "DI MAIN P05".SEQ1.Shift_Register_BadParts.%X3;

"M01 SSM1 Done" := "M01 Enbl toRTT" := TRUE;

END_IF;

END_CASE;

 

 

Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO