|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FB37 FLT P01 : Fault and warning |
|
|
|
Network 1: External acknowledgeable faults if needed IF #FLT_MODULE AND "DI MAIN GLB".M00.FLT_EntirePlant_ACK_Imp THEN ; // NOP 0 END_IF; |
|
|
|
Network 2: 1_F01_X0 S120M Master Sheet Metal Infeed #"1_FAULT_00_15".%X0 := "DI OUT P01".S120M.TO_FAULT_00_15.%X0; // #Common_FLT #"1_FAULT_00_15".%X1 := "DI OUT P01".S120M.TO_FAULT_00_15.%X1; // AXIS.StatusWord.%X1 #"1_FAULT_00_15".%X2 := "DI OUT P01".S120M.TO_FAULT_00_15.%X2; // AXIS.StatusDrive.CommunicationOK error #"1_FAULT_00_15".%X3 := "DI OUT P01".S120M.TO_FAULT_00_15.%X3; // Acce_Dece_TON.Q #"1_FAULT_00_15".%X4 := "DI OUT P01".S120M.TO_FAULT_00_15.%X4; // AXIS.StatusDrive.Error #"1_FAULT_00_15".%X5 := "DI OUT P01".S120M.TO_FAULT_00_15.%X5; // MC_Power #"1_FAULT_00_15".%X6 := "DI OUT P01".S120M.TO_FAULT_00_15.%X6; // MC_Reset #"1_FAULT_00_15".%X7 := "DI OUT P01".S120M.TO_FAULT_00_15.%X7; // MC_Halt #"1_FAULT_00_15".%X8 := "DI OUT P01".S120M.TO_FAULT_00_15.%X8; // MC_Home #"1_FAULT_00_15".%X9 := "DI OUT P01".S120M.TO_FAULT_00_15.%X9; // MC_TorqueLimiting #"1_FAULT_00_15".%X10 := "DI OUT P01".S120M.TO_FAULT_00_15.%X10; // MC_MoveJog #"1_FAULT_00_15".%X11 := "DI OUT P01".S120M.TO_FAULT_00_15.%X11; // MC_MoveAbsolute #"1_FAULT_00_15".%X12 := "DI OUT P01".S120M.TO_FAULT_00_15.%X12; // MC_MoveRelative #"1_FAULT_00_15".%X13 := "DI OUT P01".S120M.TO_FAULT_00_15.%X13; // Drv_OnOff AND SetVelo = 0 IF "DI OUT P01".S120M.DRV.Support.ErrorDetail_Num > 0 THEN #"1_WARN_00_15".%X1 := TRUE; ELSE #"1_WARN_00_15".%X1 := FALSE; END_IF; |
|
|
|
Network 3: 2_F01_X0 S120S1 Slave Punch-Cutter #"2_FAULT_00_15".%X0 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X0; // #Common_FLT #"2_FAULT_00_15".%X1 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X1; // AXIS.StatusWord.%X1 #"2_FAULT_00_15".%X2 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X2; // AXIS.StatusDrive.CommunicationOK error #"2_FAULT_00_15".%X3 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X3; // Acce_Dece_TON.Q #"2_FAULT_00_15".%X4 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X4; // AXIS.StatusDrive.Error #"2_FAULT_00_15".%X5 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X5; // MC_Power #"2_FAULT_00_15".%X6 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X6; // MC_Reset #"2_FAULT_00_15".%X7 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X7; // MC_Halt #"2_FAULT_00_15".%X8 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X8; // MC_Home #"2_FAULT_00_15".%X10 := "DI OUT P01".S120S1.TO_FAULT_00_15.%X10; // MC_MoveJog IF "DI OUT P01".S120S1.DRV.Support.ErrorDetail_Num > 0 THEN #"1_WARN_00_15".%X2 := TRUE; ELSE #"1_WARN_00_15".%X2 := FALSE; END_IF; |
|
|
|
Network 4: 3_F01_X0 S120S2 Slave Upper Stamping-Die #"3_FAULT_00_15".%X0 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X0; // #Common_FLT #"3_FAULT_00_15".%X1 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X1; // AXIS.StatusWord.%X1 #"3_FAULT_00_15".%X2 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X2; // AXIS.StatusDrive.CommunicationOK error #"3_FAULT_00_15".%X3 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X3; // Acce_Dece_TON.Q #"3_FAULT_00_15".%X4 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X4; // AXIS.StatusDrive.Error #"3_FAULT_00_15".%X5 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X5; // MC_Power #"3_FAULT_00_15".%X6 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X6; // MC_Reset #"3_FAULT_00_15".%X7 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X7; // MC_Halt #"3_FAULT_00_15".%X8 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X8; // MC_Home #"3_FAULT_00_15".%X10 := "DI OUT P01".S120S2.TO_FAULT_00_15.%X10; // MC_MoveJog IF "DI OUT P01".S120S2.DRV.Support.ErrorDetail_Num > 0 THEN #"1_WARN_00_15".%X3 := TRUE; ELSE #"1_WARN_00_15".%X3 := FALSE; END_IF; |
|
|
|
Network 5: 4_F01_X0 CAM_DISC_S1 Control #"4_FAULT_00_15".%X0 := "DI OUT P01".CAM_DISC_S1.TO_FAULT_00_15.%X0; // Common_FLT #"4_FAULT_00_15".%X1 := "DI OUT P01".CAM_DISC_S1.TO_FAULT_00_15.%X1; // CAM.MC_InterpolateCam #"4_FAULT_00_15".%X2 := "DI OUT P01".CAM_DISC_S1.TO_FAULT_00_15.%X2; // CAM.MC_MeasuringInput #"4_FAULT_00_15".%X3 := "DI OUT P01".CAM_DISC_S1.TO_FAULT_00_15.%X3; // CAM.MC_CamIn #"4_FAULT_00_15".%X4 := "DI OUT P01".CAM_DISC_S1.TO_FAULT_00_15.%X4; // CAM.MC_OutputCam #"4_FAULT_00_15".%X5 := "DI OUT P01".CAM_DISC_S1.TO_FAULT_00_15.%X5; // ErrorDetail_Num > 0 IF #"4_FAULT_00_15".%X5 THEN #"1_WARN_00_15".%X4 := TRUE; ELSE #"1_WARN_00_15".%X4 := FALSE; END_IF; |
|
|
|
Network 6: 5_F01_X0 CAM_DISC_S2 Control #"5_FAULT_00_15".%X0 := "DI OUT P01".CAM_DISC_S2.TO_FAULT_00_15.%X0; // Common_FLT #"5_FAULT_00_15".%X1 := "DI OUT P01".CAM_DISC_S2.TO_FAULT_00_15.%X1; // CAM.MC_InterpolateCam #"5_FAULT_00_15".%X2 := "DI OUT P01".CAM_DISC_S2.TO_FAULT_00_15.%X2; // CAM.MC_MeasuringInput #"5_FAULT_00_15".%X3 := "DI OUT P01".CAM_DISC_S2.TO_FAULT_00_15.%X3; // CAM.MC_CamIn #"5_FAULT_00_15".%X4 := "DI OUT P01".CAM_DISC_S2.TO_FAULT_00_15.%X4; // CAM.MC_OutputCam #"5_FAULT_00_15".%X5 := "DI OUT P01".CAM_DISC_S2.TO_FAULT_00_15.%X5; // ErrorDetail_Num > 0 IF #"5_FAULT_00_15".%X5 THEN #"1_WARN_00_15".%X5 := TRUE; ELSE #"1_WARN_00_15".%X5 := FALSE; END_IF; |
|
|
|
Network 7: 6_F01_X0 V100 Sheet Metal Cutter #"6_FAULT_00_15".%X0 := "DI OUT P01".V100.Common_FLT; |
|
|
|
Network 8: Pending faults analysis "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"); |
|