Added Pressless Mode for Repair Cycle
Fixed MultiAxtrace
This commit is contained in:
@@ -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*)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -30,6 +30,7 @@ VAR
|
||||
bSafetyOk : BOOL;
|
||||
bSafetyOkFP : BOOL;
|
||||
bNotLevel : BOOL;
|
||||
bNotLevelLimit : BOOL;
|
||||
bStopShaftAfterGear1 : BOOL;
|
||||
bStopShaftAfterGear2 : BOOL;
|
||||
bStopShaftAfterGear3 : BOOL;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -8,6 +8,7 @@ VAR
|
||||
gVCCommands : typVCCommands;
|
||||
gstrIPAddress : STRING[16];
|
||||
gbEnableNextStepBtn : BOOL;
|
||||
gbAirOk : BOOL;
|
||||
END_VAR
|
||||
(*Constants*)
|
||||
VAR CONSTANT
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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=""/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
@@ -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"/>
|
||||
|
||||
Reference in New Issue
Block a user