|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FB FLT P01 : Faults and warning P01 |
|
|
|
Network 1: Extern acknowledgeable faults //IF #FLT_MODULE AND "DI MAIN GLB".P00.FLT_CmpltMaACK_Imp THEN // #"2_FAULT_00_15" := 0; //END_IF; |
|
|
|
Network 2: 1_F01_X0-15 S120_X Axis gasketting plant #"1_FAULT_00_15".%X0 := "DI OUT P01".S120_X.DRV.MC_Power.Error; #"1_FAULT_00_15".%X1 := "DI OUT P01".S120_X.DRV.MC_Reset.Error; #"1_FAULT_00_15".%X2 := "DI OUT P01".S120_X.DRV.MC_Halt.Error; #"1_FAULT_00_15".%X3 := "DI OUT P01".S120_X.DRV.MC_Home.Error; #"1_FAULT_00_15".%X4 := "DI OUT P01".S120_X.DRV.MC_TorqueLimiting.Error; #"1_FAULT_00_15".%X5 := "DI OUT P01".S120_X.DRV.MC_MoveJog.Error; #"1_FAULT_00_15".%X6 := "DI OUT P01".S120_X.TO_FAULT_00_07.%X0; // #AXIS.StatusDrive.Error #"1_FAULT_00_15".%X7 := "DI OUT P01".S120_X.TO_FAULT_00_07.%X1; // #AXIS.StatusWord.%X1; #"1_FAULT_00_15".%X8 := "DI OUT P01".S120_X.TO_FAULT_00_07.%X2; // #AXIS.StatusDrive.CommunicationOK = 0 #"1_FAULT_00_15".%X9 := "DI OUT P01".S120_X.TO_FAULT_00_07.%X3; // #Acce_Dece_TON.Q #"1_FAULT_00_15".%X10 := "DI OUT P01".S120_X.TO_FAULT_00_07.%X4; // Epos SetVelo = 0.0 (stillstand) #"1_FAULT_00_15".%X11 := "DI OUT P01".S120_X.Com_FLT; #"1_FAULT_00_15".%X12 := "DI OUT P01".S120_X.DRV.Support.SW_EndLim_Min OR "DI OUT P01".S120_X.DRV.Support.ActPos < "DI OUT P01".S120_X.DRV.Support.SW_EndLim_MinPos; #"1_FAULT_00_15".%X13 := "DI OUT P01".S120_X.DRV.Support.SW_EndLim_Max OR "DI OUT P01".S120_X.DRV.Support.ActPos > "DI OUT P01".S120_X.DRV.Support.SW_EndLim_MaxPos; #"1_FAULT_00_15".%X14 := "DI OUT P01".S120_X.DRV.MC_MoveAbsolute.Error; #"1_FAULT_00_15".%X15 := "DI OUT P01".S120_X.DRV.MC_MoveRelative.Error; IF "DI OUT P01".S120_X.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-15 S120_Y Axis gasketting plant #"2_FAULT_00_15".%X0 := "DI OUT P01".S120_Y.DRV.MC_Power.Error; #"2_FAULT_00_15".%X1 := "DI OUT P01".S120_Y.DRV.MC_Reset.Error; #"2_FAULT_00_15".%X2 := "DI OUT P01".S120_Y.DRV.MC_Halt.Error; #"2_FAULT_00_15".%X3 := "DI OUT P01".S120_Y.DRV.MC_Home.Error; //#"2_FAULT_00_15".%X4 := "DI OUT P01".S120_Y.DRV.MC_TorqueLimiting.Error; #"2_FAULT_00_15".%X5 := "DI OUT P01".S120_Y.DRV.MC_MoveJog.Error; #"2_FAULT_00_15".%X6 := "DI OUT P01".S120_Y.TO_FAULT_00_07.%X0; // #AXIS.StatusDrive.Error #"2_FAULT_00_15".%X7 := "DI OUT P01".S120_Y.TO_FAULT_00_07.%X1; // #AXIS.StatusWord.%X1 #"2_FAULT_00_15".%X8 := "DI OUT P01".S120_Y.TO_FAULT_00_07.%X2; // #AXIS.StatusDrive.CommunicationOK = 0 #"2_FAULT_00_15".%X9 := "DI OUT P01".S120_Y.TO_FAULT_00_07.%X3; // #Acce_Dece_TON.Q #"2_FAULT_00_15".%X10 := "DI OUT P01".S120_Y.TO_FAULT_00_07.%X4; // Epos SetVelo = 0.0 (stillstand) #"2_FAULT_00_15".%X11 := "DI OUT P01".S120_Y.Com_FLT; #"2_FAULT_00_15".%X12 := "DI OUT P01".S120_Y.DRV.Support.SW_EndLim_Min OR "DI OUT P01".S120_Y.DRV.Support.ActPos < "DI OUT P01".S120_Y.DRV.Support.SW_EndLim_MinPos; #"2_FAULT_00_15".%X13 := "DI OUT P01".S120_Y.DRV.Support.SW_EndLim_Max OR "DI OUT P01".S120_Y.DRV.Support.ActPos > "DI OUT P01".S120_Y.DRV.Support.SW_EndLim_MaxPos; #"2_FAULT_00_15".%X14 := "DI OUT P01".S120_Y.DRV.MC_MoveAbsolute.Error; #"2_FAULT_00_15".%X15 := "DI OUT P01".S120_Y.DRV.MC_MoveRelative.Error; IF "DI OUT P01".S120_Y.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-15 S210_Z Axis gasketting plant #"3_FAULT_00_15".%X0 := "DI OUT P01".S210_Z.DRV.MC_Power.Error; #"3_FAULT_00_15".%X1 := "DI OUT P01".S210_Z.DRV.MC_Reset.Error; #"3_FAULT_00_15".%X2 := "DI OUT P01".S210_Z.DRV.MC_Halt.Error; #"3_FAULT_00_15".%X3 := "DI OUT P01".S210_Z.DRV.MC_Home.Error; //#"3_FAULT_00_15".%X4 := "DI OUT P01".S210_Z.DRV.MC_TorqueLimiting.Error; #"3_FAULT_00_15".%X5 := "DI OUT P01".S210_Z.DRV.MC_MoveJog.Error; #"3_FAULT_00_15".%X6 := "DI OUT P01".S210_Z.TO_FAULT_00_07.%X0; // #AXIS.StatusDrive.Error #"3_FAULT_00_15".%X7 := "DI OUT P01".S210_Z.TO_FAULT_00_07.%X1; // #AXIS.StatusWord.%X1 #"3_FAULT_00_15".%X8 := "DI OUT P01".S210_Z.TO_FAULT_00_07.%X2; // #AXIS.StatusDrive.CommunicationOK = 0 #"3_FAULT_00_15".%X9 := "DI OUT P01".S210_Z.TO_FAULT_00_07.%X3; // #Acce_Dece_TON.Q #"3_FAULT_00_15".%X10 := "DI OUT P01".S210_Z.TO_FAULT_00_07.%X4; // Epos SetVelo = 0.0 (stillstand) #"3_FAULT_00_15".%X11 := "DI OUT P01".S210_Z.Com_FLT; #"3_FAULT_00_15".%X12 := "DI OUT P01".S210_Z.DRV.Support.SW_EndLim_Min OR "DI OUT P01".S210_Z.DRV.Support.ActPos < "DI OUT P01".S210_Z.DRV.Support.SW_EndLim_MinPos; #"3_FAULT_00_15".%X13 := "DI OUT P01".S210_Z.DRV.Support.SW_EndLim_Max OR "DI OUT P01".S210_Z.DRV.Support.ActPos > "DI OUT P01".S210_Z.DRV.Support.SW_EndLim_MaxPos; #"3_FAULT_00_15".%X14 := "DI OUT P01".S210_Z.DRV.MC_MoveAbsolute.Error; #"3_FAULT_00_15".%X15 := "DI OUT P01".S210_Z.DRV.MC_MoveRelative.Error; IF "DI OUT P01".S210_Z.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-15 V90_A Servo drive metering component A #"4_FAULT_00_15".%X0 := "DI OUT P01".V90_A.DRV.MC_Power.Error; #"4_FAULT_00_15".%X1 := "DI OUT P01".V90_A.DRV.MC_Reset.Error; #"4_FAULT_00_15".%X2 := "DI OUT P01".V90_A.DRV.MC_Halt.Error; #"4_FAULT_00_15".%X3 := "DI OUT P01".V90_A.DRV.MC_Home.Error; //#"4_FAULT_00_15".%X4 := "DI OUT P01".V90_A.DRV.MC_TorqueLimiting.Error; #"4_FAULT_00_15".%X5 := "DI OUT P01".V90_A.DRV.MC_MoveJog.Error; #"4_FAULT_00_15".%X6 := "DI OUT P01".V90_A.TO_FAULT_00_07.%X0; // #AXIS.StatusDrive.Error #"4_FAULT_00_15".%X7 := "DI OUT P01".V90_A.TO_FAULT_00_07.%X1; // #AXIS.StatusWord.%X1 #"4_FAULT_00_15".%X8 := "DI OUT P01".V90_A.TO_FAULT_00_07.%X2; // #AXIS.StatusDrive.CommunicationOK = 0 #"4_FAULT_00_15".%X9 := "DI OUT P01".V90_A.TO_FAULT_00_07.%X3; // #Acce_Dece_TON.Q #"4_FAULT_00_15".%X10 := "DI OUT P01".V90_A.TO_FAULT_00_07.%X4; // Epos SetVelo = 0.0 (stillstand) #"4_FAULT_00_15".%X11 := "DI OUT P01".V90_A.Com_FLT; #"4_FAULT_00_15".%X12 := "DI OUT P01".V90_A.DRV.Support.SW_EndLim_Min OR "DI OUT P01".V90_A.DRV.Support.ActPos < "DI OUT P01".V90_A.DRV.Support.SW_EndLim_MinPos; #"4_FAULT_00_15".%X13 := "DI OUT P01".V90_A.DRV.Support.SW_EndLim_Max OR "DI OUT P01".V90_A.DRV.Support.ActPos > "DI OUT P01".V90_A.DRV.Support.SW_EndLim_MaxPos; #"4_FAULT_00_15".%X14 := "DI OUT P01".V90_A.DRV.MC_MoveAbsolute.Error; #"4_FAULT_00_15".%X15 := "DI OUT P01".V90_A.DRV.MC_MoveRelative.Error; IF "DI OUT P01".V90_A.DRV.Support.ErrorDetail_Num > 0 THEN #"1_WARN_00_15".%X4 := TRUE; ELSE #"1_WARN_00_15".%X4 := FALSE; END_IF; |
|
|
|
Network 6: 5_F01_X0-15 V90_B Servo drive metering component B #"5_FAULT_00_15".%X0 := "DI OUT P01".V90_B.DRV.MC_Power.Error; #"5_FAULT_00_15".%X1 := "DI OUT P01".V90_B.DRV.MC_Reset.Error; #"5_FAULT_00_15".%X2 := "DI OUT P01".V90_B.DRV.MC_Halt.Error; #"5_FAULT_00_15".%X3 := "DI OUT P01".V90_B.DRV.MC_Home.Error; //#"5_FAULT_00_15".%X4 := "DI OUT P01".V90_B.DRV.MC_TorqueLimiting.Error; #"5_FAULT_00_15".%X5 := "DI OUT P01".V90_B.DRV.MC_MoveJog.Error; #"5_FAULT_00_15".%X6 := "DI OUT P01".V90_B.TO_FAULT_00_07.%X0; // #AXIS.StatusDrive.Error #"5_FAULT_00_15".%X7 := "DI OUT P01".V90_B.TO_FAULT_00_07.%X1; // #AXIS.StatusWord.%X1 #"5_FAULT_00_15".%X8 := "DI OUT P01".V90_B.TO_FAULT_00_07.%X2; // #AXIS.StatusDrive.CommunicationOK = 0 #"5_FAULT_00_15".%X9 := "DI OUT P01".V90_B.TO_FAULT_00_07.%X3; // #Acce_Dece_TON.Q #"5_FAULT_00_15".%X10 := "DI OUT P01".V90_B.TO_FAULT_00_07.%X4; // Epos SetVelo = 0.0 (stillstand) #"5_FAULT_00_15".%X11 := "DI OUT P01".V90_B.Com_FLT; #"5_FAULT_00_15".%X12 := "DI OUT P01".V90_B.DRV.Support.SW_EndLim_Min OR "DI OUT P01".V90_B.DRV.Support.ActPos < "DI OUT P01".V90_B.DRV.Support.SW_EndLim_MinPos; #"5_FAULT_00_15".%X13 := "DI OUT P01".V90_B.DRV.Support.SW_EndLim_Max OR "DI OUT P01".V90_B.DRV.Support.ActPos > "DI OUT P01".V90_B.DRV.Support.SW_EndLim_MaxPos; #"5_FAULT_00_15".%X14 := "DI OUT P01".V90_B.DRV.MC_MoveAbsolute.Error; #"5_FAULT_00_15".%X15 := "DI OUT P01".V90_B.DRV.MC_MoveRelative.Error; IF "DI OUT P01".V90_B.DRV.Support.ErrorDetail_Num > 0 THEN #"1_WARN_00_15".%X5 := TRUE; ELSE #"1_WARN_00_15".%X5 := FALSE; END_IF; |
|
|
|
Network 7: 6_F01_X0 P24C_A Pressure regulator component A #"6_FAULT_00_15".%X0 := "DI OUT P01".P24C_A.Error; |
|
|
|
Network 8: 6_F01_X1 P24C_B Pressure regulator component B #"6_FAULT_00_15".%X1 := "DI OUT P01".P24C_B.Error; |
|
|
|
Network 9: 6_F01_X6 V28Y12 Drive cylinder down component A #"6_FAULT_00_15".%X6 := "DI OUT P01".V28Y12.Com_FLT; |
|
|
|
Network 10: 6_F01_X7 V28Y34 Drive cylinder down component B #"6_FAULT_00_15".%X7 := "DI OUT P01".V28Y34.Com_FLT; |
|
|
|
Network 11: 7_F01_X0-15 CartesianPortal_3D #"7_FAULT_00_15".%X0 := "DI OUT P01".CARTESIAN_3D.DRV.MC_Reset.Error; // MC Reset #"7_FAULT_00_15".%X1 := "DI OUT P01".CARTESIAN_3D.DRV.MC_GroupStop.Error; // MC GroupStop #"7_FAULT_00_15".%X2 := "DI OUT P01".CARTESIAN_3D.DRV.MC_GroupInterrupt.Error; // MC GroupInterrupt #"7_FAULT_00_15".%X3 := "DI OUT P01".CARTESIAN_3D.DRV.MC_GroupContinue.Error; // MC GroupContinue #"7_FAULT_00_15".%X4 := "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearAbsolute.Error; // MC MoveLinearAbsolute #"7_FAULT_00_15".%X5 := "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveLinearRelative.Error; // MC MoveLinearRelative #"7_FAULT_00_15".%X6 := "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularAbsolute.Error; // MC MoveCircularAbsolute #"7_FAULT_00_15".%X7 := "DI OUT P01".CARTESIAN_3D.DRV.MC_MoveCircularRelative.Error; // MC MoveCircularRelative #"7_FAULT_00_15".%X8 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X0; // ErrorWord.X0 SystemFault #"7_FAULT_00_15".%X9 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X1; // ErrorWord.X1 ConfigFault #"7_FAULT_00_15".%X10 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X2; // ErrorWord.X2 UserFault #"7_FAULT_00_15".%X11 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X3; // ErrorWord.X3 Command not accepted #"7_FAULT_00_15".%X12 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X4; // ErrorWord.X4 TransformationFault #"7_FAULT_00_15".%X13 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X5; // Acceleration or Deceleration time elapsed #"7_FAULT_00_15".%X14 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X6; // ErrorWord.X6 DynamicError #"7_FAULT_00_15".%X15 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X7; // StatusWord.X1 Error occured #"8_FAULT_00_15".%X0 := "DI OUT P01".CARTESIAN_3D.Com_FLT; // GroupTotalMessage Com_FLT #"8_FAULT_00_15".%X1 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X8; // GroupCommandError Drv_OnOff #"8_FAULT_00_15".%X2 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X9; // AXIS.StatusDrive.InOperation missing #"8_FAULT_00_15".%X3 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X10; // ErrorDetail_Reaction #"8_FAULT_00_15".%X4 := "DI OUT P01".CARTESIAN_3D.TO_FAULT_00_07.%X11; // WarningWord_Hex IF "DI OUT P01".CARTESIAN_3D.DRV.Support.ErrorDetail_Num > 0 THEN #"1_WARN_00_15".%X11 := TRUE; ELSE #"1_WARN_00_15".%X11 := FALSE; END_IF; |
|
|
|
Network 12: 1_WRN_P01_X0 Current_Programme_No = 0 #"1_WARN_00_15".%X0 := "DI MAIN P01".SET.SSM.S."1_FAULT_00_15".%X0; |
|
|
|
Network 13: 1_WRN_P01_X6 S120_X Axis gasketting plant Refpoint #"1_WARN_00_15".%X6 := NOT "DI OUT P01".S120_X.DRV.Support.HomeDone; |
|
|
|
Network 14: 1_WRN_P01_X7 S120_Y Axis gasketting plant Refpoint #"1_WARN_00_15".%X7 := NOT "DI OUT P01".S120_Y.DRV.Support.HomeDone; |
|
|
|
Network 15: 1_WRN_P01_X8 S210_Z Axis gasketting plant Refpoint #"1_WARN_00_15".%X8 := NOT "DI OUT P01".S210_Z.DRV.Support.HomeDone; |
|
|
|
Network 16: 1_WRN_P01_X9 V90_A Servo drive metering component A Refpoint #"1_WARN_00_15".%X9 := NOT "DI OUT P01".V90_A.DRV.Support.HomeDone; |
|
|
|
Network 17: 1_WRN_P01_X10 V90_B Servo drive metering component B Refpoint #"1_WARN_00_15".%X10 := NOT "DI OUT P01".V90_B.DRV.Support.HomeDone; |
|
|
|
Network 18: 1_WRN_P01_X12 Requested running time elapsed #"1_WARN_00_15".%X12 := "DI MAIN P01".MoDA.RunTimeCntr_seq1 > "DI MAIN P01".MoDA.RunTimeSetP_seq1; |
|
|
|
Network 19: Complete module fault message "ModulDa".P01.STS."1_ModuleFLT_00_31" := DW#16#FFFFFFFF AND (SHL_DWORD(IN := #"1_FAULT_00_15", N := 16) OR #"2_FAULT_00_15"); "ModulDa".P01.STS."2_ModuleFLT_00_31" := DW#16#FFFFFFFF AND (SHL_DWORD(IN := #"3_FAULT_00_15", N := 16) OR #"4_FAULT_00_15"); "ModulDa".P01.STS."3_ModuleFLT_00_31" := DW#16#FFFFFFFF AND (SHL_DWORD(IN := #"5_FAULT_00_15", N := 16) OR #"6_FAULT_00_15"); "ModulDa".P01.STS."4_ModuleFLT_00_31" := DW#16#FFFFFFFF AND (SHL_DWORD(IN := #"7_FAULT_00_15", N := 16) OR #"8_FAULT_00_15"); #FLT_MODULE := 0 <> ("ModulDa".P01.STS."1_ModuleFLT_00_31" OR "ModulDa".P01.STS."2_ModuleFLT_00_31" OR "ModulDa".P01.STS."3_ModuleFLT_00_31" OR "ModulDa".P01.STS."4_ModuleFLT_00_31"); |
|