Home

 

Erfahrung

 

Referenzen

 

Sondermaschinen

 

MSR-Maschinen

 

SPS-Programmierung

 

Visualisierung HMI

 

Elektro CAD

 

Leistungsprofil

 

Personalia

 

SW-Development

 

Dokumentation

 

 

 

Impressum & DSGVO

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FB37 FLT P01 : Faults and warning P01

 

 

 

Netzwerk 1: Extern acknowledgeable faults (if necessary)

// IF #FLT_MODULE AND "DI MAIN GLB".M00.FLT_CmpltMaACK_Imp THEN

//  #"2_FAULT_00_15" := 0;

// END_IF;

 

 

 

Netzwerk 2: 1_F01_X0-15 V90M MC_PositioningAxis Master

#"1_FAULT_00_15".%X0 := "DI OUT P01".V90M.TO_FAULT_00_15.%X5; // DRV.MC_Power.Error

#"1_FAULT_00_15".%X1 := "DI OUT P01".V90M.TO_FAULT_00_15.%X6; // DRV.MC_Reset.Error

#"1_FAULT_00_15".%X2 := "DI OUT P01".V90M.TO_FAULT_00_15.%X7; // DRV.MC_Halt.Error

#"1_FAULT_00_15".%X3 := "DI OUT P01".V90M.TO_FAULT_00_15.%X8; // DRV.MC_Home.Error;

#"1_FAULT_00_15".%X5 := "DI OUT P01".V90M.TO_FAULT_00_15.%X10; // DRV.MC_MoveJog.Error

#"1_FAULT_00_15".%X6 := "DI OUT P01".V90M.TO_FAULT_00_15.%X0; // #AXIS.StatusDrive.Error

#"1_FAULT_00_15".%X7 := "DI OUT P01".V90M.TO_FAULT_00_15.%X1; // #AXIS.StatusWord.%X1

#"1_FAULT_00_15".%X8 := "DI OUT P01".V90M.TO_FAULT_00_15.%X2; // #AXIS.StatusDrive.CommunicationOK = 0

#"1_FAULT_00_15".%X9 := "DI OUT P01".V90M.TO_FAULT_00_15.%X3; // #Acce_Dece_TON.Q

#"1_FAULT_00_15".%X10 := "DI OUT P01".V90M.TO_FAULT_00_15.%X4; // Epos SetVelo = 0.0 (still stand)

#"1_FAULT_00_15".%X11 := "DI OUT P01".V90M.Com_FLT;

#"1_FAULT_00_15".%X14 := "DI OUT P01".V90M.TO_FAULT_00_15.%X11; // DRV.MC_MoveAbsolute.Error

#"1_FAULT_00_15".%X15 := "DI OUT P01".V90M.TO_FAULT_00_15.%X12; // DRV.MC_MoveRelative.Error

IF "DI OUT P01".V90M.DRV.Support.ErrorDetail_Num > 0 THEN

    #"1_WARN_00_15".%X1 := TRUE;

ELSE

    #"1_WARN_00_15".%X1 := FALSE;

END_IF;

 

 

 

Netzwerk 3: 2_F01_X0-15 V90S MC_SynchronousAxis Slave

#"2_FAULT_00_15".%X0 := "DI OUT P01".V90S.TO_FAULT_00_15.%X5; //"DI OUT P01".V90S.DRV.MC_Power.Error

#"2_FAULT_00_15".%X1 := "DI OUT P01".V90S.TO_FAULT_00_15.%X6; //"DI OUT P01".V90S.DRV.MC_Reset.Error

#"2_FAULT_00_15".%X2 := "DI OUT P01".V90S.TO_FAULT_00_15.%X7; //"DI OUT P01".V90S.DRV.MC_Halt.Error

#"2_FAULT_00_15".%X3 := "DI OUT P01".V90S.TO_FAULT_00_15.%X8; //"DI OUT P01".V90S.DRV.MC_GearIn.Error

#"2_FAULT_00_15".%X4 := "DI OUT P01".V90S.TO_FAULT_00_15.%X9; //"DI OUT P01".V90S.DRV.MC_MoveJog.Error

#"2_FAULT_00_15".%X5 := "DI OUT P01".V90S.TO_FAULT_00_15.%X10; //"DI OUT P01".V90S.DRV.MC_Home.Error;

#"2_FAULT_00_15".%X6 := "DI OUT P01".V90S.TO_FAULT_00_15.%X0; // #SLAVE.StatusDrive.Error

#"2_FAULT_00_15".%X7 := "DI OUT P01".V90S.TO_FAULT_00_15.%X1; // #SLAVE.StatusWord.%X1

#"2_FAULT_00_15".%X8 := "DI OUT P01".V90S.TO_FAULT_00_15.%X2; // #SLAVE.StatusDrive.CommunicationOK = 0

#"2_FAULT_00_15".%X9 := "DI OUT P01".V90S.TO_FAULT_00_15.%X3; // #Acce_Dece_TON.Q

#"2_FAULT_00_15".%X10 := "DI OUT P01".V90S.TO_FAULT_00_15.%X4; // not used EPOS whilst Velocity = 0.0

#"2_FAULT_00_15".%X11 := "DI OUT P01".V90S.Com_FLT;

IF "DI OUT P01".V90S.DRV.Support.ErrorDetail_Num > 0 THEN

    #"1_WARN_00_15".%X2 := TRUE;

ELSE

    #"1_WARN_00_15".%X2 := FALSE;

END_IF;

 

 

 

Netzwerk 4: 3_F01_X0-15 CAM_DISC

#"3_FAULT_00_15".%X0 := "DI OUT P01".CAM_DISC.TO_FAULT_00_15.%X0; // MC_InterpolateCam.Error

#"3_FAULT_00_15".%X1 := "DI OUT P01".CAM_DISC.TO_FAULT_00_15.%X1; // MC_MeasuringInput.Error

#"3_FAULT_00_15".%X2 := "DI OUT P01".CAM_DISC.TO_FAULT_00_15.%X2; // MC_CamIn.Error

#"3_FAULT_00_15".%X3 := "DI OUT P01".CAM_DISC.TO_FAULT_00_15.%X3; // MC_OutputCam.Error

#"3_FAULT_00_15".%X11 := "DI OUT P01".CAM_DISC.Com_FLT;

IF "DI OUT P01".CAM_DISC.CAM.Support.TO_MeasuringInput_ErrorDetail > 0 THEN

    #"1_WARN_00_15".%X3 := TRUE;

ELSE

    #"1_WARN_00_15".%X3 := FALSE;

END_IF;

IF "DI OUT P01".CAM_DISC.CAM.Support.TO_CamIn_ErrorDetail > 0 THEN

    #"1_WARN_00_15".%X4 := TRUE;

ELSE

    #"1_WARN_00_15".%X4 := FALSE;

END_IF;

IF "DI OUT P01".CAM_DISC.CAM.Support.TO_OutputCam_ErrorDetail > 0 THEN

    #"1_WARN_00_15".%X5 := TRUE;

ELSE

    #"1_WARN_00_15".%X5 := FALSE;

END_IF;

 

 

 

Netzwerk 5: 4_F01_X0-15 V90SM MC_PositioningAxis Salve + Master

#"4_FAULT_00_15".%X0 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X5; // DRV.MC_Power.Error

#"4_FAULT_00_15".%X1 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X6; // DRV.MC_Reset.Error

#"4_FAULT_00_15".%X2 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X7; // DRV.MC_Halt.Error

#"4_FAULT_00_15".%X3 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X8; // DRV.MC_Home.Error

#"4_FAULT_00_15".%X5 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X10; // DRV.MC_MoveJog.Error

#"4_FAULT_00_15".%X6 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X0; // #AXIS.StatusDrive.Error

#"4_FAULT_00_15".%X7 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X1; // #AXIS.StatusWord.%X1

#"4_FAULT_00_15".%X8 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X2; // #AXIS.StatusDrive.CommunicationOK = 0

#"4_FAULT_00_15".%X9 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X3; // #Acce_Dece_TON.Q

#"4_FAULT_00_15".%X10 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X4; // Epos SetVelo = 0.0 (stillstand)

#"4_FAULT_00_15".%X11 := "DI OUT P01".V90SM.Com_FLT;

#"4_FAULT_00_15".%X14 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X11; // DRV.MC_MoveAbsolute.Error

#"4_FAULT_00_15".%X15 := "DI OUT P01".V90SM.TO_FAULT_00_15.%X12; // DRV.MC_MoveRelative.Error

IF "DI OUT P01".V90SM.DRV.Support.ErrorDetail_Num > 0 THEN

    #"1_WARN_00_15".%X6 := TRUE;

ELSE

    #"1_WARN_00_15".%X6 := FALSE;

END_IF;

 

 

 

Netzwerk 6: 5_F01_X10 V90 MC_SpeedAxis OutputCam

#"5_FAULT_00_15".%X0 := "DI OUT P01".V90.TO_FAULT_00_15.%X5; // DRV.MC_Power.Error

#"5_FAULT_00_15".%X1 := "DI OUT P01".V90.TO_FAULT_00_15.%X6; // DRV.MC_Reset.Error

#"5_FAULT_00_15".%X2 := "DI OUT P01".V90.TO_FAULT_00_15.%X7; // DRV.MC_Halt.Error

#"5_FAULT_00_15".%X3 := "DI OUT P01".V90.TO_FAULT_00_15.%X8; // DRV.MC_MoveVelocity.Error

#"5_FAULT_00_15".%X4 := "DI OUT P01".V90.TO_FAULT_00_15.%X9; // DRV.MC_TorqueLimiting.Error

#"5_FAULT_00_15".%X5 := "DI OUT P01".V90.TO_FAULT_00_15.%X10; // DRV.MC_MoveJog.Error

#"5_FAULT_00_15".%X6 := "DI OUT P01".V90.TO_FAULT_00_15.%X0; // #AXIS.StatusDrive.Error

#"5_FAULT_00_15".%X7 := "DI OUT P01".V90.TO_FAULT_00_15.%X1; // #AXIS.StatusWord.%X1

#"5_FAULT_00_15".%X8 := "DI OUT P01".V90.TO_FAULT_00_15.%X2; // #AXIS.StatusDrive.CommunicationOK = 0

#"5_FAULT_00_15".%X9 := "DI OUT P01".V90.TO_FAULT_00_15.%X3; // #Acce_Dece_TON.Q

#"5_FAULT_00_15".%X10 := "DI OUT P01".V90.TO_FAULT_00_15.%X4; // Velocity = 0.0 (still stand)

#"5_FAULT_00_15".%X11 := "DI OUT P01".V90.Com_FLT;

IF "DI OUT P01".V90.DRV.Support.ErrorDetail_Num > 0 THEN

    #"1_WARN_00_15".%X7 := TRUE;

ELSE

    #"1_WARN_00_15".%X7 := FALSE;

END_IF;

 

 

 

Netzwerk 7: 1_W01_X4 V90M MC_PositioningAxis Master

#"1_WARN_00_15".%X4 := NOT "DI OUT P01".V90M.DRV.Support.HomeDone;

 

 

 

Netzwerk 8: 1_W01_X5 V90S MC_SynchronousAxis Slave

#"1_WARN_00_15".%X5 := NOT "DI OUT P01".V90S.DRV.Support.HomeDone;

 

 

 

Netzwerk 9: 1_W01_X8 V90M MC_PositioningAxis Master HomeDone missing

#"1_WARN_00_15".%X8 := NOT "DI OUT P01".V90M.DRV.Support.HomeDone;

 

 

 

Netzwerk 10: 1_W01_X9 V90SM MC_PositioningAxis Salve + Master HomeDone missing

#"1_WARN_00_15".%X9 := NOT "DI OUT P01".V90SM.DRV.Support.HomeDone;

 

 

 

Netzwerk 11: 1_W01_X10 V90S MC_SynchronousAxis Slave HomeDone missing

#"1_WARN_00_15".%X10 := NOT "DI OUT P01".V90S.DRV.Support.HomeDone;

 

 

 

Netzwerk 12: Record module fault message

"ModuleData".P01.STS."1_ModuleFLT_00_31" := dw#16#ffffffff AND (SHL_DWORD(IN := #"1_FAULT_00_15", N := 16) OR #"2_FAULT_00_15");

"ModuleData".P01.STS."2_ModuleFLT_00_31" := dw#16#ffffffff AND (SHL_DWORD(IN := #"3_FAULT_00_15", N := 16) OR #"4_FAULT_00_15");

"ModuleData".P01.STS."3_ModuleFLT_00_31" := dw#16#ffffffff AND (SHL_DWORD(IN := #"5_FAULT_00_15", N := 16) OR #"6_FAULT_00_15");

#FLT_MODULE := 0 <> ("ModuleData".P01.STS."1_ModuleFLT_00_31" OR "ModuleData".P01.STS."2_ModuleFLT_00_31" OR "ModuleData".P01.STS."3_ModuleFLT_00_31");