|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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"); |
|