Added Pressless Mode for Repair Cycle

Fixed MultiAxtrace
This commit is contained in:
Michael Rest
2013-04-24 16:50:32 +02:00
parent ed00e9ce40
commit c93c295152
21 changed files with 253 additions and 137 deletions

View File

@@ -23,6 +23,7 @@ TYPE
bToolIsMounted : BOOL; (*Werkzeug ist Vormontiert*)
bToolIsErrorous : BOOL; (*Werkzeug hat Fehler*)
bToolStop : BOOL; (*Werkzeug wird gestopt*)
bToolPressless : BOOL; (*Werkzeug drucklos machen*)
END_STRUCT;
typ_enStepTool1 :
( (*Werkzeug 1 Schritte*)

View File

@@ -16,6 +16,6 @@ VAR RETAIN
gudPartCountShift : UDINT; (*Schichtz<74>hler*)
gudPartCountOverall : UDINT; (*Gesamtz<74>hler*)
gPressParamTools : ARRAY[0..5] OF typ_PressParam; (*Werkzeug abh<62>ngige Positionen*)
grPressSpeedEmpty : REAL := 2000.0; (*Presse Leergeschwindigkeit [0.1mm/s]*)
grPressSpeedEmpty : REAL := 2000.0; (*Presse Leergeschwindigkeit [0.1mm/s] Max 200mm/s limited to 100*)
gudGreaseCycle : UDINT; (*Takte nach denen Geschmiert werden soll*)
END_VAR

View File

@@ -70,14 +70,14 @@ PROGRAM _CYCLIC
//Power Up Axises
lPS.Command.bPower := gMachine.bMachineON;
lAxisShaftMaster.bPower := gMachine.bMachineON;
lAxisShaft1.bPower := gMachine.bMachineON AND lPS.DriveStatus.bControllerStatus AND bSafetyOk AND
lAxisShaft1.bPower := gMachine.bMachineON AND lPS.DriveStatus.bControllerStatus AND bSafetyOk AND gbAirOk AND (gMachine.enMode <> enMACH_NOOP) AND
NOT (((gMachine.enMode = enMACH_AUTOMATIC) OR (gMachine.enMode = enMACH_MANUAL)) AND (enStepPress = enPressStep_WAIT_START)) AND
NOT ((gMachine.enMode = enMACH_HOMEPOS) AND (enStepPressHoming = enPressStepHoming_WAIT_START));
lAxisShaft2.bPower := lAxisShaft1.bPower;
lAxisShaft3.bPower := lAxisShaft1.bPower;
lAxisShaft4.bPower := lAxisShaft1.bPower;
lAxisSlay1.bPower := gMachine.bMachineON AND lAxisSlay1.DriveStatus.bControllerReady AND bSafetyOk AND
lAxisSlay1.bPower := gMachine.bMachineON AND lAxisSlay1.DriveStatus.bControllerReady AND bSafetyOk AND (gMachine.enMode <> enMACH_NOOP) AND
NOT (((gMachine.enMode = enMACH_AUTOMATIC) OR (gMachine.enMode = enMACH_MANUAL)) AND (enStepPress = enPressStep_WAIT_START)) AND
NOT ((gMachine.enMode = enMACH_HOMEPOS) AND (enStepPressHoming = enPressStepHoming_WAIT_START));
@@ -167,6 +167,7 @@ PROGRAM _CYCLIC
rPosDiffShaft3_4 := ABS (lAxisShaft3.rActPosition - lAxisShaft3.rActPosition);
rPosDiffShaft2_4 := ABS (lAxisShaft2.rActPosition - lAxisShaft4.rActPosition);
bNotLevel := (rPosDiffShaft1_2 > 10) OR (rPosDiffShaft1_3 > 10) OR (rPosDiffShaft3_4 > 10) OR (rPosDiffShaft2_4 > 10);
bNotLevelLimit := (rPosDiffShaft1_2 > 50) OR (rPosDiffShaft1_3 > 50) OR (rPosDiffShaft3_4 > 50) OR (rPosDiffShaft2_4 > 50);
bToolIsHomed := ((gusCurrentTool = 0) AND (gusSelectedTool = 0)) OR
(gTool1Interface.bToolIsHome AND (gusCurrentTool = 1) AND (gusSelectedTool = 1) AND (genStepTool1 = enTool1Step_WAIT_START_MOUNT)) OR
@@ -470,12 +471,14 @@ PROGRAM _CYCLIC
enStepPressHoming := enPressStepHoming_WAIT_AX_SINGLE;
bDevelEnalbeGear := FALSE;
bStop := FALSE;
gTool1Interface.bToolPressless := FALSE;
gTool2Interface.bToolPressless := FALSE;
END_IF
//Wait for Axises Single
//---------------------------
enPressStepHoming_WAIT_AX_SINGLE:
IF bAllAxisesSingle AND bAllAxisesControllerRdy AND
IF bAllAxisesSingle AND bAllAxisesControllerRdy AND gbAirOk AND
NOT bStopShaftAfterGear1 AND
NOT bStopShaftAfterGear2 AND
NOT bStopShaftAfterGear3 AND
@@ -487,7 +490,7 @@ PROGRAM _CYCLIC
//Wait for all Axes Homed
//---------------------------
enPressStepHoming_REF_PRESS:
IF NOT bHome AND
IF NOT bHome AND gbAirOk AND
NOT bHomeMaster AND lAxisShaftMaster.DriveStatus.bHomingOk AND
(enStepHomeShaft1 = enHomeIdle) AND lAxisShaft1.DriveStatus.bHomingOk AND
(enStepHomeShaft2 = enHomeIdle) AND lAxisShaft2.DriveStatus.bHomingOk AND
@@ -499,32 +502,47 @@ PROGRAM _CYCLIC
//Level Axises
//---------------------------
enPressStepHoming_LEVEL_PRESS:
rAveragePos := floor ((lAxisShaft1.rActPosition +
lAxisShaft2.rActPosition +
lAxisShaft3.rActPosition +
lAxisShaft4.rActPosition) * 0.25 - 20.0);
lAxisShaftMaster.Para.rPosition := rAveragePos;
lAxisShaft1.Para.rPosition := rAveragePos;
lAxisShaft2.Para.rPosition := rAveragePos;
lAxisShaft3.Para.rPosition := rAveragePos;
lAxisShaft4.Para.rPosition := rAveragePos;
IF lAxisShaftMaster.Status.bStandstill AND NOT lAxisShaftMaster.bHome THEN
lAxisShaftMaster.Para.rVelocity := 250;
lAxisShaft1.Para.rVelocity := 250;
lAxisShaft2.Para.rVelocity := 250;
lAxisShaft3.Para.rVelocity := 250;
lAxisShaft4.Para.rVelocity := 250;
lAxisShaftMaster.Move.bAbsolute := 1;
lAxisShaft1.Move.bAbsolute := 1;
lAxisShaft2.Move.bAbsolute := 1;
lAxisShaft3.Move.bAbsolute := 1;
lAxisShaft4.Move.bAbsolute := 1;
enStepPressHoming := enPressStepHoming_LEVEL_WAIT;
IF bNotLevelLimit THEN
gMachineAlarms.Alarm[111] := TRUE;
ELSE
rAveragePos := floor ((lAxisShaft1.rActPosition +
lAxisShaft2.rActPosition +
lAxisShaft3.rActPosition +
lAxisShaft4.rActPosition) * 0.25 - 10.0);
lAxisShaftMaster.Para.rPosition := rAveragePos;
lAxisShaft1.Para.rPosition := rAveragePos;
lAxisShaft2.Para.rPosition := rAveragePos;
lAxisShaft3.Para.rPosition := rAveragePos;
lAxisShaft4.Para.rPosition := rAveragePos;
IF lAxisShaftMaster.Status.bStandstill AND NOT lAxisShaftMaster.bHome THEN
lAxisShaftMaster.Para.rVelocity := 250;
lAxisShaft1.Para.rVelocity := 250;
lAxisShaft2.Para.rVelocity := 250;
lAxisShaft3.Para.rVelocity := 250;
lAxisShaft4.Para.rVelocity := 250;
lAxisShaftMaster.Move.bAbsolute := 1;
lAxisShaft1.Move.bAbsolute := 1;
lAxisShaft2.Move.bAbsolute := 1;
lAxisShaft3.Move.bAbsolute := 1;
lAxisShaft4.Move.bAbsolute := 1;
enStepPressHoming := enPressStepHoming_LEVEL_WAIT;
END_IF
END_IF
//Level Axises
//---------------------------
enPressStepHoming_LEVEL_WAIT:
IF (lAxisShaft1.rActPosition <> rAveragePos) THEN
lAxisShaft1.Move.bAbsolute := 1;
END_IF
IF (lAxisShaft2.rActPosition <> rAveragePos) THEN
lAxisShaft2.Move.bAbsolute := 1;
END_IF
IF (lAxisShaft3.rActPosition <> rAveragePos) THEN
lAxisShaft3.Move.bAbsolute := 1;
END_IF
IF (lAxisShaft4.rActPosition <> rAveragePos) THEN
lAxisShaft4.Move.bAbsolute := 1;
END_IF
IF (lAxisShaftMaster.rActPosition = rAveragePos) AND NOT lAxisShaftMaster.Move.bAbsolute AND
(lAxisShaft1.rActPosition = rAveragePos) AND NOT lAxisShaft1.Move.bAbsolute AND
(lAxisShaft2.rActPosition = rAveragePos) AND NOT lAxisShaft2.Move.bAbsolute AND
@@ -680,6 +698,7 @@ PROGRAM _CYCLIC
//------------------------------------
IF NOT bRepairCycle THEN
//Normal Cylce
gTool1Interface.bToolPressless := FALSE;
IF (bSafetyOkFP OR (bTransitionCondition AND bEnableNextStep)) AND gbInTool1PartAvailable AND NOT gTool1Interface.bToolIsHome THEN
//Tool is not Homed
gMachineAlarms.Alarm[125] := TRUE;
@@ -723,6 +742,10 @@ PROGRAM _CYCLIC
IF (bSafetyOkFP OR (bTransitionCondition AND bEnableNextStep)) AND NOT gTool1Interface.bToolIsMounted AND NOT gbInTool1PartAvailable AND (genStepTool1 = enTool1Step_WAIT_START_MOUNT) THEN
genStepTool1 := enTool1Step_START_MOUNT;
END_IF
// IF gbInTool1PartAvailable AND gTool1Interface.bToolIsMounted AND (genStepTool1 = enTool1Step_WAIT_START_HOME) THEN
IF gTool1Interface.bToolIsMounted AND (genStepTool1 = enTool1Step_WAIT_START_HOME) THEN
gTool1Interface.bToolPressless := TRUE;
END_IF
IF (bSafetyOkFP OR (bTransitionCondition AND bEnableNextStep)) AND gbInTool1PartAvailable AND gTool1Interface.bToolIsMounted AND (genStepTool1 = enTool1Step_WAIT_START_HOME) THEN
gMachineAlarms.Alarm[119] := FALSE;
gMachineAlarms.Alarm[121] := FALSE;
@@ -740,6 +763,7 @@ PROGRAM _CYCLIC
//------------------------------------
IF NOT bRepairCycle THEN
//Normal Cylce
gTool2Interface.bToolPressless := FALSE;
IF (bSafetyOkFP OR (bTransitionCondition AND bEnableNextStep)) AND gbInTool1PartAvailable AND NOT gTool2Interface.bToolIsHome THEN
//Tool is not Homed
gMachineAlarms.Alarm[125] := TRUE;
@@ -787,6 +811,10 @@ PROGRAM _CYCLIC
IF (bSafetyOkFP OR (bTransitionCondition AND bEnableNextStep)) AND NOT gTool2Interface.bToolIsMounted AND NOT gbInTool1PartAvailable AND NOT gbInTool1PartAvailable2 AND (genStepTool2 = enTool2Step_WAIT_START_MOUNT) THEN
genStepTool2 := enTool2Step_START_MOUNT;
END_IF
// IF (gbInTool1PartAvailable OR gbInTool1PartAvailable2) AND gTool2Interface.bToolIsMounted AND (genStepTool2 = enTool2Step_WAIT_START_HOME) THEN
IF gTool2Interface.bToolIsMounted AND (genStepTool2 = enTool2Step_WAIT_START_HOME) THEN
gTool2Interface.bToolPressless := TRUE;
END_IF
IF (bSafetyOkFP OR (bTransitionCondition AND bEnableNextStep)) AND (gbInTool1PartAvailable OR gbInTool1PartAvailable2) AND gTool2Interface.bToolIsMounted AND (genStepTool2 = enTool2Step_WAIT_START_HOME) THEN
gMachineAlarms.Alarm[119] := FALSE;
gMachineAlarms.Alarm[123] := FALSE;
@@ -827,32 +855,48 @@ PROGRAM _CYCLIC
//Level Axises
//---------------------------
enPressStep_LEVEL_PRESS:
rAveragePos := floor ((lAxisShaft1.rActPosition +
lAxisShaft2.rActPosition +
lAxisShaft3.rActPosition +
lAxisShaft4.rActPosition) * 0.25 - 20.0);
lAxisShaftMaster.Para.rPosition := rAveragePos;
lAxisShaft1.Para.rPosition := rAveragePos;
lAxisShaft2.Para.rPosition := rAveragePos;
lAxisShaft3.Para.rPosition := rAveragePos;
lAxisShaft4.Para.rPosition := rAveragePos;
IF lAxisShaftMaster.Status.bStandstill AND NOT lAxisShaftMaster.bHome THEN
lAxisShaftMaster.Para.rVelocity := 250;
lAxisShaft1.Para.rVelocity := 250;
lAxisShaft2.Para.rVelocity := 250;
lAxisShaft3.Para.rVelocity := 250;
lAxisShaft4.Para.rVelocity := 250;
lAxisShaftMaster.Move.bAbsolute := 1;
lAxisShaft1.Move.bAbsolute := 1;
lAxisShaft2.Move.bAbsolute := 1;
lAxisShaft3.Move.bAbsolute := 1;
lAxisShaft4.Move.bAbsolute := 1;
enStepPress := enPressStep_LEVEL_WAIT;
IF bNotLevelLimit THEN
gMachineAlarms.Alarm[111] := TRUE;
ELSE
rAveragePos := floor ((lAxisShaft1.rActPosition +
lAxisShaft2.rActPosition +
lAxisShaft3.rActPosition +
lAxisShaft4.rActPosition) * 0.25 - 10.0);
lAxisShaftMaster.Para.rPosition := rAveragePos;
lAxisShaft1.Para.rPosition := rAveragePos;
lAxisShaft2.Para.rPosition := rAveragePos;
lAxisShaft3.Para.rPosition := rAveragePos;
lAxisShaft4.Para.rPosition := rAveragePos;
IF lAxisShaftMaster.Status.bStandstill AND NOT lAxisShaftMaster.bHome THEN
lAxisShaftMaster.Para.rVelocity := 250;
lAxisShaft1.Para.rVelocity := 250;
lAxisShaft2.Para.rVelocity := 250;
lAxisShaft3.Para.rVelocity := 250;
lAxisShaft4.Para.rVelocity := 250;
lAxisShaftMaster.Move.bAbsolute := 1;
lAxisShaft1.Move.bAbsolute := 1;
lAxisShaft2.Move.bAbsolute := 1;
lAxisShaft3.Move.bAbsolute := 1;
lAxisShaft4.Move.bAbsolute := 1;
enStepPress := enPressStep_LEVEL_WAIT;
END_IF
END_IF
//Level Axises
//---------------------------
enPressStep_LEVEL_WAIT:
IF (lAxisShaft1.rActPosition <> rAveragePos) THEN
lAxisShaft1.Move.bAbsolute := 1;
END_IF
IF (lAxisShaft2.rActPosition <> rAveragePos) THEN
lAxisShaft2.Move.bAbsolute := 1;
END_IF
IF (lAxisShaft3.rActPosition <> rAveragePos) THEN
lAxisShaft3.Move.bAbsolute := 1;
END_IF
IF (lAxisShaft4.rActPosition <> rAveragePos) THEN
lAxisShaft4.Move.bAbsolute := 1;
END_IF
IF (lAxisShaftMaster.rActPosition = rAveragePos) AND NOT lAxisShaftMaster.Move.bAbsolute AND
(lAxisShaft1.rActPosition = rAveragePos) AND NOT lAxisShaft1.Move.bAbsolute AND
(lAxisShaft2.rActPosition = rAveragePos) AND NOT lAxisShaft2.Move.bAbsolute AND
@@ -933,6 +977,7 @@ PROGRAM _CYCLIC
bTransitionCondition := bToolslay1IsDown AND bSafetyOk;
IF bTransitionCondition AND bEnableNextStep THEN
enStepPress := enPressStep_PRESS_MOUNTPOS;
gMAxTrace.bStartSave := TRUE;
END_IF
//Press down to Mountpos
@@ -962,6 +1007,8 @@ PROGRAM _CYCLIC
IF bTransitionCondition AND bEnableNextStep THEN
enStepPress := enPressStep_TOOL_MOUNT;
lAxisShaftMaster.Move.bAbsolute := 0;
gTool1Interface.bToolPressless := FALSE;
gTool2Interface.bToolPressless := FALSE;
END_IF
//Mount Tool
@@ -1124,18 +1171,24 @@ PROGRAM _CYCLIC
gbOuValveToolslay1Up := bToolslay1Up;
IF bSafetyOkFP THEN
FOR usi:=100 TO 126 DO
FOR usi:=115 TO 126 DO
gMachineAlarms.Alarm[usi] := FALSE;
END_FOR
END_IF
//Unsync Error
gMachineAlarms.Alarm[110] := bStop;
//Limit Unsync Error
IF EDGEPOS (gbInResetKey) AND (genAccessLevel >= enACCESSLEVEL_2) THEN
gMachineAlarms.Alarm[111] := FALSE;
END_IF
gStatusVCControls.usBtnErrorReset := 1;
TOF_ResetAxisErrors.IN := bSafetyOk;
TOF_ResetAxisErrors.IN := EDGEPOS (bSafetyOk);
TOF_ResetAxisErrors.PT := t#3s;
TOF_ResetAxisErrors ();
IF EDGEPOS (gVCCommands.bErrorReset) OR (TOF_ResetAxisErrors.Q AND bBlink0_1) OR EDGEPOS (gbInResetKey) THEN
IF EDGEPOS (gVCCommands.bErrorReset) OR (TOF_ResetAxisErrors.Q AND bBlink0_1 AND TOF_ResetAxisErrors.Q) OR EDGEPOS (gbInResetKey) THEN
lPS.Error.bAcknowledge := (lPS.Error.uiID > 0);
lAxisShaftMaster.Error.bAcknowledge := (lAxisShaftMaster.Error.uiID > 0);
lAxisShaft1.Error.bAcknowledge := (lAxisShaft1.Error.uiID > 0);

View File

@@ -30,6 +30,7 @@ VAR
bSafetyOk : BOOL;
bSafetyOkFP : BOOL;
bNotLevel : BOOL;
bNotLevelLimit : BOOL;
bStopShaftAfterGear1 : BOOL;
bStopShaftAfterGear2 : BOOL;
bStopShaftAfterGear3 : BOOL;

View File

@@ -16,29 +16,48 @@ PROGRAM _INIT
//Prepare Trace (later from Dataobject)
strcpy (ADR (gMAxTrace.Trace_Config.DatObj.Device), ADR ('logfiles'));
strcpy (ADR (gMAxTrace.Trace_Config.DatObj.Name), ADR ('ParTrace'));
gMAxTrace.Trace_Config.DatObj.Type := mcFILE + mcADD_DATE_TIME;
gMAxTrace.Trace_Config.DatObj.Type := mcDATOBJ; // mcFILE + mcADD_DATE_TIME;
gMAxTrace.Trace_Config.DatObj.Format := 0;
//Setup Trace
gMAxTrace.Trace_Config.ParTrace.Parameter[0].Axis := ADR (gvAxShaftMaster);
gMAxTrace.Trace_Config.ParTrace.Parameter[0].ParID := ACP10PAR_PCTRL_V_SET;
gMAxTrace.Trace_Config.ParTrace.Parameter[0].ParID := ACP10PAR_PCTRL_S_ACT;
gMAxTrace.Trace_Config.ParTrace.Parameter[1].Axis := ADR (gAxShaft1);
gMAxTrace.Trace_Config.ParTrace.Parameter[1].ParID := ACP10PAR_PCTRL_V_SET;
gMAxTrace.Trace_Config.ParTrace.Parameter[1].ParID := ACP10PAR_PCTRL_S_ACT;
gMAxTrace.Trace_Config.ParTrace.Parameter[2].Axis := ADR (gAxShaft2);
gMAxTrace.Trace_Config.ParTrace.Parameter[2].ParID := ACP10PAR_PCTRL_S_ACT;
gMAxTrace.Trace_Config.ParTrace.Parameter[3].Axis := ADR (gAxShaft3);
gMAxTrace.Trace_Config.ParTrace.Parameter[3].ParID := ACP10PAR_PCTRL_S_ACT ; //ACP10PAR_PCTRL_S_ACT
gMAxTrace.Trace_Config.ParTrace.Parameter[3].ParID := ACP10PAR_PCTRL_S_ACT;
gMAxTrace.Trace_Config.ParTrace.Parameter[4].Axis := ADR (gAxShaft4);
gMAxTrace.Trace_Config.ParTrace.Parameter[4].ParID := ACP10PAR_PCTRL_S_ACT ; //ACP10PAR_PCTRL_S_ACT
gMAxTrace.Trace_Config.ParTrace.Trigger.Axis := ADR (gvAxShaftMaster);
gMAxTrace.Trace_Config.ParTrace.Trigger.ParID := ACP10PAR_PCTRL_V_SET;
gMAxTrace.Trace_Config.ParTrace.Parameter[4].ParID := ACP10PAR_PCTRL_S_ACT;
gMAxTrace.Trace_Config.ParTrace.Parameter[5].Axis := ADR (gvAxShaftMaster);
gMAxTrace.Trace_Config.ParTrace.Parameter[5].ParID := ACP10PAR_PCTRL_LAG_ERROR;
gMAxTrace.Trace_Config.ParTrace.Parameter[6].Axis := ADR (gAxShaft1);
gMAxTrace.Trace_Config.ParTrace.Parameter[6].ParID := ACP10PAR_PCTRL_LAG_ERROR;
gMAxTrace.Trace_Config.ParTrace.Parameter[7].Axis := ADR (gAxShaft2);
gMAxTrace.Trace_Config.ParTrace.Parameter[7].ParID := ACP10PAR_PCTRL_LAG_ERROR;
gMAxTrace.Trace_Config.ParTrace.Parameter[8].Axis := ADR (gAxShaft3);
gMAxTrace.Trace_Config.ParTrace.Parameter[8].ParID := ACP10PAR_PCTRL_LAG_ERROR;
gMAxTrace.Trace_Config.ParTrace.Parameter[9].Axis := ADR (gAxShaft4);
gMAxTrace.Trace_Config.ParTrace.Parameter[9].ParID := ACP10PAR_PCTRL_LAG_ERROR;
gMAxTrace.Trace_Config.ParTrace.Parameter[10].Axis := ADR (gAxShaft1);
gMAxTrace.Trace_Config.ParTrace.Parameter[10].ParID := ACP10PAR_TORQUE_ACT;
gMAxTrace.Trace_Config.ParTrace.Parameter[11].Axis := ADR (gAxShaft2);
gMAxTrace.Trace_Config.ParTrace.Parameter[11].ParID := ACP10PAR_TORQUE_ACT;
gMAxTrace.Trace_Config.ParTrace.Parameter[12].Axis := ADR (gAxShaft3);
gMAxTrace.Trace_Config.ParTrace.Parameter[12].ParID := ACP10PAR_TORQUE_ACT;
gMAxTrace.Trace_Config.ParTrace.Parameter[13].Axis := ADR (gAxShaft4);
gMAxTrace.Trace_Config.ParTrace.Parameter[13].ParID := ACP10PAR_TORQUE_ACT;
gMAxTrace.Trace_Config.ParTrace.Trigger.Axis := ADR (gAxShaft1);
gMAxTrace.Trace_Config.ParTrace.Trigger.ParID := ACP10PAR_PCTRL_V_ACT;
gMAxTrace.Trace_Config.ParTrace.Trigger.Event:= mcOUT_WINDOW;
gMAxTrace.Trace_Config.ParTrace.Trigger.Threshold := 1;
gMAxTrace.Trace_Config.ParTrace.Trigger.Window := 1;
gMAxTrace.Trace_Config.ParTrace.Type := mcMULTI_AXIS_TRACE;
gMAxTrace.Trace_Config.ParTrace.TracingTime := 60;
gMAxTrace.Trace_Config.ParTrace.SamplingTime := 0.08;
gMAxTrace.Trace_Config.ParTrace.TracingTime := 10;
gMAxTrace.Trace_Config.ParTrace.SamplingTime := 0.01;
gMAxTrace.Trace_Config.ParTrace.Delay := 0.0;
gMAxTrace.Trace_Config.ParTrace.NetTriggerDelay := 0;
FUB_AsArLogWrite.ident := arlogBASE_USER_LOG_IDENT;

View File

@@ -16,17 +16,17 @@ PROGRAM _CYCLIC
//Store if Cylinder Fw Sensor was reached
IF gbOuTool1Cyl1Fw AND gbInTool1Cyl1Fw THEN
TON_FwReachedCylinder1.IN := TRUE;
ELSIF NOT gbOuTool1Cyl1Fw THEN
ELSIF NOT gbOuTool1Cyl1Fw AND NOT lToolInterface.bToolPressless THEN
TON_FwReachedCylinder1.IN := FALSE;
END_IF
IF gbOuTool1Cyl2Fw AND gbInTool1Cyl2Fw THEN
TON_FwReachedCylinder2.IN := TRUE;
ELSIF NOT gbOuTool1Cyl2Fw THEN
ELSIF NOT gbOuTool1Cyl2Fw AND NOT lToolInterface.bToolPressless THEN
TON_FwReachedCylinder2.IN := FALSE;
END_IF
IF gbOuTool1Cyl3Fw AND gbInTool1Cyl3Fw THEN
TON_FwReachedCylinder3.IN := TRUE;
ELSIF NOT gbOuTool1Cyl3Fw THEN
ELSIF NOT gbOuTool1Cyl3Fw AND NOT lToolInterface.bToolPressless THEN
TON_FwReachedCylinder3.IN := FALSE;
END_IF
@@ -180,12 +180,12 @@ PROGRAM _CYCLIC
//Set Outputs
IF bToolIsActive THEN
gbOuTool1Cyl1Fw := bSafetyOk AND bCylinder1Fw AND NOT bCylinder1Pressless;
gbOuTool1Cyl1Bw := bSafetyOk AND NOT bCylinder1Fw AND NOT bCylinder1Pressless;
gbOuTool1Cyl2Fw := bSafetyOk AND bCylinder2Fw;
gbOuTool1Cyl2Bw := bSafetyOk AND NOT bCylinder2Fw;
gbOuTool1Cyl3Fw := bSafetyOk AND bCylinder3Fw;
gbOuTool1Cyl3Bw := bSafetyOk AND NOT bCylinder3Fw;
gbOuTool1Cyl1Fw := bSafetyOk AND bCylinder1Fw AND NOT bCylinder1Pressless AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl1Bw := bSafetyOk AND NOT bCylinder1Fw AND NOT bCylinder1Pressless AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl2Fw := bSafetyOk AND bCylinder2Fw AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl2Bw := bSafetyOk AND NOT bCylinder2Fw AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl3Fw := bSafetyOk AND bCylinder3Fw AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl3Bw := bSafetyOk AND NOT bCylinder3Fw AND NOT lToolInterface.bToolPressless;
END_IF
//Generate Alarms
Cylinder1Check (bInOutputCylinderBw := gbOuTool1Cyl1Bw,
@@ -193,8 +193,8 @@ PROGRAM _CYCLIC
bInSensorCylinderBw := gbInTool1Cyl1Bw,
tInCylinderFw := UDINT_TO_TIME (udDelayCylinder1 + 2500),
bInSensorCylinderFw := TON_FwReachedCylinder1.Q);
lToolalarms.Alarm[0] := Cylinder1Check.bOuErrorCylinderBw;
lToolalarms.Alarm[1] := Cylinder1Check.bOuErrorCylinderFw;
lToolalarms.Alarm[0] := Cylinder1Check.bOuErrorCylinderBw AND NOT lToolInterface.bToolPressless;
lToolalarms.Alarm[1] := Cylinder1Check.bOuErrorCylinderFw AND NOT lToolInterface.bToolPressless;
lToolalarms.Alarm[2] := Cylinder1Check.bOuErrorBothSensorsHigh;
Cylinder2Check (bInOutputCylinderBw := gbOuTool1Cyl2Bw,
@@ -202,8 +202,8 @@ PROGRAM _CYCLIC
bInSensorCylinderBw := gbInTool1Cyl2Bw,
tInCylinderFw := UDINT_TO_TIME (udDelayCylinder2 + 2500),
bInSensorCylinderFw := TON_FwReachedCylinder2.Q);
lToolalarms.Alarm[3] := Cylinder2Check.bOuErrorCylinderBw;
lToolalarms.Alarm[4] := Cylinder2Check.bOuErrorCylinderFw;
lToolalarms.Alarm[3] := Cylinder2Check.bOuErrorCylinderBw AND NOT lToolInterface.bToolPressless;
lToolalarms.Alarm[4] := Cylinder2Check.bOuErrorCylinderFw AND NOT lToolInterface.bToolPressless;
lToolalarms.Alarm[5] := Cylinder2Check.bOuErrorBothSensorsHigh;
Cylinder3Check (bInOutputCylinderBw := gbOuTool1Cyl3Bw,
@@ -211,8 +211,8 @@ PROGRAM _CYCLIC
bInSensorCylinderBw := gbInTool1Cyl3Bw,
tInCylinderFw := UDINT_TO_TIME (udDelayCylinder3 + 2500),
bInSensorCylinderFw := TON_FwReachedCylinder3.Q);
lToolalarms.Alarm[6] := Cylinder3Check.bOuErrorCylinderBw;
lToolalarms.Alarm[7] := Cylinder3Check.bOuErrorCylinderFw;
lToolalarms.Alarm[6] := Cylinder3Check.bOuErrorCylinderBw AND NOT lToolInterface.bToolPressless;
lToolalarms.Alarm[7] := Cylinder3Check.bOuErrorCylinderFw AND NOT lToolInterface.bToolPressless;
lToolalarms.Alarm[8] := Cylinder3Check.bOuErrorBothSensorsHigh;

View File

@@ -17,17 +17,17 @@ PROGRAM _CYCLIC
//Store if Cylinder Fw Sensor was reached
IF gbOuTool1Cyl1Fw AND gbInTool1Cyl1Fw THEN
TON_FwReachedCylinder1.IN := TRUE;
ELSIF NOT gbOuTool1Cyl1Fw THEN
ELSIF NOT gbOuTool1Cyl1Fw AND NOT lToolInterface.bToolPressless THEN
TON_FwReachedCylinder1.IN := FALSE;
END_IF
IF gbOuTool1Cyl2Fw AND gbInTool1Cyl2Fw THEN
TON_FwReachedCylinder2.IN := TRUE;
ELSIF NOT gbOuTool1Cyl2Fw THEN
ELSIF NOT gbOuTool1Cyl2Fw AND NOT lToolInterface.bToolPressless THEN
TON_FwReachedCylinder2.IN := FALSE;
END_IF
IF gbOuTool1Cyl3Fw AND gbInTool1Cyl3Fw THEN
TON_FwReachedCylinder3.IN := TRUE;
ELSIF NOT gbOuTool1Cyl3Fw THEN
ELSIF NOT gbOuTool1Cyl3Fw AND NOT lToolInterface.bToolPressless THEN
TON_FwReachedCylinder3.IN := FALSE;
END_IF
@@ -166,10 +166,10 @@ PROGRAM _CYCLIC
//Set Outputs
IF bToolIsActive THEN
gbOuTool1Cyl1Fw := bSafetyOk AND bCylinder1Fw;
gbOuTool1Cyl1Bw := bSafetyOk AND NOT bCylinder1Fw;
gbOuTool1Cyl2Fw := bSafetyOk AND bCylinder2Fw;
gbOuTool1Cyl2Bw := bSafetyOk AND NOT bCylinder2Fw;
gbOuTool1Cyl1Fw := bSafetyOk AND bCylinder1Fw AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl1Bw := bSafetyOk AND NOT bCylinder1Fw AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl2Fw := bSafetyOk AND bCylinder2Fw AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl2Bw := bSafetyOk AND NOT bCylinder2Fw AND NOT lToolInterface.bToolPressless;
gbOuTool1Cyl3Fw := bSafetyOk AND FALSE; //bCylinder3Fw;
gbOuTool1Cyl3Bw := bSafetyOk AND FALSE; // NOT bCylinder3Fw;
END_IF
@@ -179,8 +179,8 @@ PROGRAM _CYCLIC
bInSensorCylinderBw := gbInTool1Cyl1Bw,
tInCylinderFw := UDINT_TO_TIME (udDelayCylinder1 + 2500),
bInSensorCylinderFw := TON_FwReachedCylinder1.Q);
lToolalarms.Alarm[20] := Cylinder1Check.bOuErrorCylinderBw;
lToolalarms.Alarm[21] := Cylinder1Check.bOuErrorCylinderFw;
lToolalarms.Alarm[20] := Cylinder1Check.bOuErrorCylinderBw AND NOT lToolInterface.bToolPressless ;
lToolalarms.Alarm[21] := Cylinder1Check.bOuErrorCylinderFw AND NOT lToolInterface.bToolPressless ;
lToolalarms.Alarm[22] := Cylinder1Check.bOuErrorBothSensorsHigh;
Cylinder2Check (bInOutputCylinderBw := gbOuTool1Cyl2Bw,
@@ -188,8 +188,8 @@ PROGRAM _CYCLIC
bInSensorCylinderBw := gbInTool1Cyl2Bw,
tInCylinderFw := UDINT_TO_TIME (udDelayCylinder2 + 2500),
bInSensorCylinderFw := TON_FwReachedCylinder2.Q);
lToolalarms.Alarm[23] := Cylinder2Check.bOuErrorCylinderBw;
lToolalarms.Alarm[24] := Cylinder2Check.bOuErrorCylinderFw;
lToolalarms.Alarm[23] := Cylinder2Check.bOuErrorCylinderBw AND NOT lToolInterface.bToolPressless ;
lToolalarms.Alarm[24] := Cylinder2Check.bOuErrorCylinderFw AND NOT lToolInterface.bToolPressless ;
lToolalarms.Alarm[25] := Cylinder2Check.bOuErrorBothSensorsHigh;
lToolalarms.Alarm[26] := FALSE;

View File

@@ -48,10 +48,10 @@ PROGRAM _CYCLIC
IF PressParamActToolLast.rPosHome <> lPressParamActTool.rPosHome THEN
FUB_AsArLogWrite.errornr := 50100;
FUB_AsArLogWrite.logLevel := arlogLEVEL_WARNING;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Pos Grundstellung veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Pos GST Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosHome), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -59,10 +59,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosHomeMin <> lPressParamActTool.rPosHomeMin THEN
FUB_AsArLogWrite.errornr := 50101;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Pos Grundstellung Min veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Pos GST Min Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosHomeMin), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -70,10 +70,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosHomeMax <> lPressParamActTool.rPosHomeMax THEN
FUB_AsArLogWrite.errornr := 50102;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Pos Grundstellung Max veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Pos GST Max Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosHomeMax), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -81,10 +81,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPremount <> lPressParamActTool.rPosPremount THEN
FUB_AsArLogWrite.errornr := 50103;
FUB_AsArLogWrite.logLevel := arlogLEVEL_WARNING;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Vormontagepos veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Vormontagepos Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPremount), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -92,10 +92,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPremountMin <> lPressParamActTool.rPosPremountMin THEN
FUB_AsArLogWrite.errornr := 50104;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Vormontagepos Min veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Vormontagepos Min Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPremountMin), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -103,10 +103,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPremountMax <> lPressParamActTool.rPosPremountMax THEN
FUB_AsArLogWrite.errornr := 50105;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Vormontagepos Max veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Vormontagepos Max Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPremountMax), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -114,10 +114,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPress <> lPressParamActTool.rPosPress THEN
FUB_AsArLogWrite.errornr := 50106;
FUB_AsArLogWrite.logLevel := arlogLEVEL_WARNING;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Presspositon veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Presspositon Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPress), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -125,10 +125,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPressMin <> lPressParamActTool.rPosPressMin THEN
FUB_AsArLogWrite.errornr := 50107;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Presspositon Min veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Presspositon Min Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPressMin), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -136,10 +136,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPressMax <> lPressParamActTool.rPosPressMax THEN
FUB_AsArLogWrite.errornr := 50108;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Presspositon Max veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Presspositon Max Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPressMax), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -147,10 +147,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPressToolslay <> lPressParamActTool.rPosPressToolslay THEN
FUB_AsArLogWrite.errornr := 50109;
FUB_AsArLogWrite.logLevel := arlogLEVEL_WARNING;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Presspositon Werkzeugschlitten veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Presspositon Hor Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPressToolslay), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -158,10 +158,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPressToolslayMin <> lPressParamActTool.rPosPressToolslayMin THEN
FUB_AsArLogWrite.errornr := 50110;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Presspositon Werkzeugschlitten Min veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Presspositon Hor Min Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPressToolslayMin), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -169,10 +169,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rPosPressToolslayMax <> lPressParamActTool.rPosPressToolslayMax THEN
FUB_AsArLogWrite.errornr := 50111;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Presspositon Werkzeugschlitten Max veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Presspositon Hor Max Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rPosPressToolslayMax), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -180,10 +180,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rSpeedPress <> lPressParamActTool.rSpeedPress THEN
FUB_AsArLogWrite.errornr := 50112;
FUB_AsArLogWrite.logLevel := arlogLEVEL_WARNING;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Pressgeschwindigkeit veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' v-Press Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rSpeedPress), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -191,10 +191,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.rSpeedPressMax <> lPressParamActTool.rSpeedPressMax THEN
FUB_AsArLogWrite.errornr := 50113;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Pressgeschwindigkeit Max veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' v-Press Max Neu: '));
itoa (REAL_TO_DINT (lPressParamActTool.rSpeedPressMax), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -202,10 +202,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.udPresstime <> lPressParamActTool.udPresstime THEN
FUB_AsArLogWrite.errornr := 50114;
FUB_AsArLogWrite.logLevel := arlogLEVEL_WARNING;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Presszeit veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Presszeit Neu: '));
itoa (UDINT_TO_DINT (lPressParamActTool.udPresstime), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;
@@ -213,10 +213,10 @@ PROGRAM _CYCLIC
ELSIF PressParamActToolLast.udIDIOBlock <> lPressParamActTool.udIDIOBlock THEN
FUB_AsArLogWrite.errornr := 50115;
FUB_AsArLogWrite.logLevel := arlogLEVEL_FATAL;
strcpy (ADR (strLogMsg), ADR ('Werkzeug '));
strcpy (ADR (strLogMsg), ADR ('Wzg '));
itoa (USINT_TO_DINT (gusSelectedTool), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (' Seriennummer veraendert Neu: '));
strcat (ADR (strLogMsg), ADR (' Seriennummer Neu: '));
itoa (UDINT_TO_DINT (lPressParamActTool.udIDIOBlock), ADR (strTemp));
strcat (ADR (strLogMsg), ADR (strTemp));
FUB_AsArLogWrite.enable := TRUE;

View File

@@ -8,6 +8,7 @@ VAR
gVCCommands : typVCCommands;
gstrIPAddress : STRING[16];
gbEnableNextStepBtn : BOOL;
gbAirOk : BOOL;
END_VAR
(*Constants*)
VAR CONSTANT

View File

@@ -97,6 +97,8 @@ IF EDGEPOS (gMachineCommands.bSwitchOn) THEN
END_IF
IF EDGEPOS (gMachineCommands.bSwitchOff) THEN
gMachine.bMachineON := FALSE;
gMachine.enMode := enMACH_HOMEPOS;
gMachine.bRequestHoming := TRUE;
END_IF
//Reset Machine Modes
@@ -115,6 +117,9 @@ IF (gMachine.enMode = enMACH_HOMEPOS) OR (gMachine.enMode = enMACH_MANUAL) OR (g
gMachineAlarms.Alarm[61] := TRUE;
gMachine.enMode := enMACH_NOOP;
END_IF
IF gMachineAlarms.Alarm[111] THEN
gMachine.enMode := enMACH_NOOP;
END_IF
END_IF
//Only Automatic modes
IF (gMachine.enMode = enMACH_MANUAL) OR (gMachine.enMode = enMACH_AUTOMATIC) THEN
@@ -178,10 +183,14 @@ gMachineAlarms.Alarm[0] := NOT gbInDCVoltageOk;
//Reset Fuse 24V DC
gbOuReset24VError := gbInResetKey AND NOT gbInDCVoltageOk;
//Air
TON_AirOk.IN := NOT gbInAirOK AND gUE410_MU_MQD.bX1 AND gUE410_MU_MQD.bX2;
TON_AirOk.IN := gbInAirOK AND gUE410_MU_MQD.bX1 AND gUE410_MU_MQD.bX2;
TON_AirOk.PT := t#5s;
TON_AirOk ();
gMachineAlarms.Alarm[1] := TON_AirOk.Q;
gbAirOk := TON_AirOk.Q;
TON_AirNOk.IN := NOT gbInAirOK AND gUE410_MU_MQD.bX1 AND gUE410_MU_MQD.bX2;
TON_AirNOk.PT := t#5s;
TON_AirNOk ();
gMachineAlarms.Alarm[1] := TON_AirNOk.Q;
//Holding Brake
TON_HoldingBrakeOpen.IN := gbOuOpenPressBrake AND gbInBrakeValveClose AND gbInAirOK;
TON_HoldingBrakeOpen.PT := t#7s;

View File

@@ -22,6 +22,7 @@ END_VAR
VAR
FUB_AsArLogWrite : AsArLogWrite;
TON_AirOk : TON;
TON_AirNOk : TON;
TON_ValveblockError : TON;
TON_HoldingBrakeOpen : TON;
TON_HoldingBrakeClose : TON;

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<AlarmSystem xmlns="http://br-automation.co.at/AS/VC/Project">
<Property Name="HistoryLength" Value="1000"/>
<Property Name="SnippetBufferSize" Value="150"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<AlarmGroup xmlns="http://br-automation.co.at/AS/VC/Project" Name="MachineAlarm">
<Property Name="AcknowledgeImage" Value="None"/>
<Property Name="ActiveBackColor" Value="45"/>
@@ -488,6 +488,30 @@
<Property Name="RecordTrigger" Value="True"/>
<Property Name="TriggerGroupAlarm" Value="False"/>
</Alarm>
<Alarm Index="110">
<Property Name="Acknowledge" Value="Possible"/>
<Property Name="AcknowledgeActive" Value="Enabled"/>
<Property Name="Bypass" Value="Enabled"/>
<Property Name="Description" Value=""/>
<Property Name="Latched" Value="False"/>
<Property Name="RecordAcknowledge" Value="True"/>
<Property Name="RecordBypass" Value="All"/>
<Property Name="RecordReset" Value="All"/>
<Property Name="RecordTrigger" Value="True"/>
<Property Name="TriggerGroupAlarm" Value="False"/>
</Alarm>
<Alarm Index="111">
<Property Name="Acknowledge" Value="Possible"/>
<Property Name="AcknowledgeActive" Value="Enabled"/>
<Property Name="Bypass" Value="Enabled"/>
<Property Name="Description" Value=""/>
<Property Name="Latched" Value="False"/>
<Property Name="RecordAcknowledge" Value="True"/>
<Property Name="RecordBypass" Value="All"/>
<Property Name="RecordReset" Value="All"/>
<Property Name="RecordTrigger" Value="True"/>
<Property Name="TriggerGroupAlarm" Value="False"/>
</Alarm>
<Alarm Index="Group">
<Property Name="Acknowledge" Value="Possible"/>
<Property Name="AcknowledgeActive" Value="Enabled"/>
@@ -623,6 +647,8 @@
<Text ID="680" Value="Grease Low Level"/>
<Text ID="690" Value="Maintenance Block is In Use"/>
<Text ID="691" Value="Maintenance Block is not Homed"/>
<Text ID="748" Value="Press Stopped due to Unsync"/>
<Text ID="765" Value="AxDifferences to high"/>
<Text ID="20" Value=""/>
</TextLayer>
<TextLayer LanguageId="de-DE">
@@ -665,6 +691,8 @@
<Text ID="680" Value="Zentralschmierung Fettmangel"/>
<Text ID="690" Value="Wartungsstütze ist eingesetzt (Sensor auf Werkzeug ist betättigt)"/>
<Text ID="691" Value="Wartungsstütze ist nicht in Aufbewahrungsposition"/>
<Text ID="748" Value="Presse gestoppt (nicht alle Achsen Synchron oder Posdiff zu groß)"/>
<Text ID="765" Value="Achsdifferenz ist über Maximum Grundstellung nicht möglich"/>
<Text ID="20" Value=""/>
</TextLayer>
<IndexMap>
@@ -707,6 +735,8 @@
<Index ID="680" Value="8"/>
<Index ID="690" Value="61"/>
<Index ID="691" Value="60"/>
<Index ID="748" Value="110"/>
<Index ID="765" Value="111"/>
<Index ID="20" Value="Group"/>
</IndexMap>
</TextGroup>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<ComponentVersions xmlns="http://br-automation.co.at/AS/VC/Project">
<ComponentVersion>
<Property Name="ClassId" Value="0x00000500"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<Languages xmlns="http://br-automation.co.at/AS/VC/Project">
<Property Name="Default" Value="de-DE"/>
<Property Name="FallBackLanguage" Value="de-DE"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<Project xmlns="http://br-automation.co.at/AS/VC/Project">
<Property Name="EnableEvents" Value="False"/>
<Property Name="SharedTargetResourceRoot" Value=""/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<Project xmlns="http://br-automation.co.at/AS/VC/Project">
<Property Name="Backlight" Value="False"/>
<Property Name="BacklightIgnoreFirst" Value="False"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<Page xmlns="http://br-automation.co.at/AS/VC/Project" Name="tmpl10_MainPage">
<Property Name="Description" Value="Template main page - basic machine interface"/>
<Property Name="Height" Value="480"/>
@@ -806,7 +806,7 @@
<Property Name="OutlineHatched" Value="False"/>
<Property Name="StatusDatapoint" Value="Source[global].Variable[DataSource.Machine.gStatusVCControls.usLayersMainpage[3]]"/>
<Property Name="Top" Value="0"/>
<Property Name="VisibilityMode" Value="Hidden"/>
<Property Name="VisibilityMode" Value="Normal"/>
<Property Name="Width" Value="800"/>
<Property Name="Z-Order" Value="3"/>
<TextGroup>
@@ -1089,7 +1089,7 @@
<Property Name="Description" Value=""/>
<Property Name="Height" Value="44"/>
<Property Name="KeyMatrixOffset" Value="None"/>
<Property Name="Left" Value="388"/>
<Property Name="Left" Value="384"/>
<Property Name="PressedBitmapSource" Value="Source[embedded].Property[BitmapSource]"/>
<Property Name="PressedTextSource" Value="Source[embedded].Property[TextSource]"/>
<Property Name="StatusDatapoint" Value="Source[global].Variable[DataSource.Axises.PressCtrl.StatusVCControls.usJogNegShaftMaster]"/>
@@ -1099,7 +1099,7 @@
<Property Name="TextSource" Value="None"/>
<Property Name="Top" Value="216"/>
<Property Name="VirtualKey" Value="Source[local].VirtualKey[ManJogNegShaftMaster]"/>
<Property Name="Width" Value="120"/>
<Property Name="Width" Value="124"/>
</Control>
<Control ClassId="0x00001002" Name="btnActivateGear">
<Property Name="AlignmentHorizontal" Value="Right"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<Page xmlns="http://br-automation.co.at/AS/VC/Project" Name="tmpl11_Setup">
<Property Name="BackColor" Value="253"/>
<Property Name="Description" Value="Setup Axises"/>
@@ -800,7 +800,7 @@
<Property Name="InputUpDown" Value="Slow"/>
<Property Name="Left" Value="240"/>
<Property Name="MaxDatapoint" Value="None"/>
<Property Name="MaxValue" Value="0.2"/>
<Property Name="MaxValue" Value="0.1"/>
<Property Name="MinDatapoint" Value="None"/>
<Property Name="MinValue" Value="0.001"/>
<Property Name="SimulationValue" Value="0"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<Page xmlns="http://br-automation.co.at/AS/VC/Project" Name="tmpl30_AlarmPage">
<Property Name="Description" Value="Template alarm page - current alarms"/>
<Property Name="Height" Value="480"/>
@@ -72,6 +72,7 @@
<Property Name="BypassState_Position" Value="None"/>
<Property Name="ColumnCount" Value="3"/>
<Property Name="ControlID" Value="0"/>
<Property Name="Cursor_Border" Value="Source[local].Border[Button_Global_Area_pressed]"/>
<Property Name="Cursor_LeftBitmap" Value="None"/>
<Property Name="Cursor_LeftTextGroup" Value="None"/>
<Property Name="Cursor_RightBitmap" Value="None"/>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?AutomationStudio Version="3.0.90.24 SP06"?>
<?AutomationStudio Version="3.0.90.25 SP07"?>
<Palette xmlns="http://br-automation.co.at/AS/VC/Project">
<PaletteColor Index="0" Value="#000000"/>
<PaletteColor Index="1" Value="#0000AA"/>