Prepared Tools to handlw Fw Sensor via SR and with parametric times
This commit is contained in:
@@ -13,11 +13,38 @@ PROGRAM _CYCLIC
|
||||
udSteptime := udSteptime + 100;
|
||||
END_IF
|
||||
|
||||
//Store if Cylinder Fw Sensor was reached
|
||||
IF gbOuTool1Cyl1Fw AND gbInTool1Cyl1Fw THEN
|
||||
TON_FwReachedCylinder1.IN := TRUE;
|
||||
ELSIF NOT gbOuTool1Cyl1Fw THEN
|
||||
TON_FwReachedCylinder1.IN := FALSE;
|
||||
END_IF
|
||||
IF gbOuTool1Cyl2Fw AND gbInTool1Cyl2Fw THEN
|
||||
TON_FwReachedCylinder2.IN := TRUE;
|
||||
ELSIF NOT gbOuTool1Cyl2Fw THEN
|
||||
TON_FwReachedCylinder2.IN := FALSE;
|
||||
END_IF
|
||||
IF gbOuTool1Cyl3Fw AND gbInTool1Cyl3Fw THEN
|
||||
TON_FwReachedCylinder3.IN := TRUE;
|
||||
ELSIF NOT gbOuTool1Cyl3Fw THEN
|
||||
TON_FwReachedCylinder3.IN := FALSE;
|
||||
END_IF
|
||||
|
||||
//Delay Cylinder Fw Reaches
|
||||
TON_FwReachedCylinder1.PT := UDINT_TO_TIME (udDelayCylinder1 * 100);
|
||||
TON_FwReachedCylinder1 ();
|
||||
TON_FwReachedCylinder2.PT := UDINT_TO_TIME (udDelayCylinder2 * 100);
|
||||
TON_FwReachedCylinder2 ();
|
||||
TON_FwReachedCylinder3.PT := UDINT_TO_TIME (udDelayCylinder3 * 100);
|
||||
TON_FwReachedCylinder3 ();
|
||||
|
||||
|
||||
|
||||
MoveConditions.bEnableCylinder1Fw := gbInTool1Cyl3Bw;
|
||||
MoveConditions.bEnableCylinder1Bw := TRUE;
|
||||
MoveConditions.bEnableCylinder2Fw := gbInTool1Cyl1Fw AND gbInTool1Cyl3Fw;
|
||||
MoveConditions.bEnableCylinder2Fw := TON_FwReachedCylinder1.Q AND TON_FwReachedCylinder3.Q;
|
||||
MoveConditions.bEnableCylinder2Bw := TRUE;
|
||||
MoveConditions.bEnableCylinder3Fw := gbInTool1Cyl1Fw;
|
||||
MoveConditions.bEnableCylinder3Fw := TON_FwReachedCylinder1.Q;
|
||||
MoveConditions.bEnableCylinder3Bw := TRUE;
|
||||
|
||||
StatusVCControls.usCylinder1Fw := SHL (BOOL_TO_USINT (NOT MoveConditions.bEnableCylinder1Fw), VC_LOCK_BITPOS) +
|
||||
@@ -35,7 +62,7 @@ PROGRAM _CYCLIC
|
||||
|
||||
//Toolstates
|
||||
lToolInterface.bToolIsHome := gbInTool1Cyl1Bw AND gbInTool1Cyl2Bw AND gbInTool1Cyl3Bw;
|
||||
lToolInterface.bToolIsMounted := gbInTool1Cyl1Fw AND gbInTool1Cyl2Fw AND gbInTool1Cyl3Fw;
|
||||
lToolInterface.bToolIsMounted := TON_FwReachedCylinder1.Q AND TON_FwReachedCylinder1.Q AND TON_FwReachedCylinder3.Q;
|
||||
//Jog Mode
|
||||
//==========================================================================================
|
||||
IF (gMachine.enMode = enMACH_JOG) AND bToolIsActive THEN
|
||||
@@ -102,7 +129,7 @@ PROGRAM _CYCLIC
|
||||
//---------------------------
|
||||
enTool1Step_CYL1_FW:
|
||||
bCylinder1Fw := TRUE;
|
||||
IF gbInTool1Cyl1Fw AND (udSteptime > 200) THEN
|
||||
IF TON_FwReachedCylinder1.Q THEN
|
||||
genStepTool1 := enTool1Step_CYL3_FW;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
@@ -111,7 +138,7 @@ PROGRAM _CYCLIC
|
||||
//---------------------------
|
||||
enTool1Step_CYL3_FW:
|
||||
bCylinder3Fw := TRUE;
|
||||
IF gbInTool1Cyl3Fw AND (udSteptime > 200) THEN
|
||||
IF TON_FwReachedCylinder3.Q THEN
|
||||
genStepTool1 := enTool1Step_CYL2_FW;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
@@ -120,7 +147,7 @@ PROGRAM _CYCLIC
|
||||
//---------------------------
|
||||
enTool1Step_CYL2_FW:
|
||||
bCylinder2Fw := TRUE;
|
||||
IF gbInTool1Cyl2Fw AND (udSteptime > 500) THEN
|
||||
IF TON_FwReachedCylinder2.Q THEN
|
||||
genStepTool1 := enTool1Step_WAIT_START_HOME;
|
||||
udSteptime := 0;
|
||||
END_IF
|
||||
@@ -157,7 +184,7 @@ PROGRAM _CYCLIC
|
||||
Cylinder1Check (bInOutputCylinderBw := gbOuTool1Cyl1Bw,
|
||||
bInOutputCylinderFw := gbOuTool1Cyl1Fw,
|
||||
bInSensorCylinderBw := gbInTool1Cyl1Bw,
|
||||
bInSensorCylinderFw := gbInTool1Cyl1Fw);
|
||||
bInSensorCylinderFw := TON_FwReachedCylinder1.Q);
|
||||
lToolalarms.Alarm[0] := Cylinder1Check.bOuErrorCylinderBw;
|
||||
lToolalarms.Alarm[1] := Cylinder1Check.bOuErrorCylinderFw;
|
||||
lToolalarms.Alarm[2] := Cylinder1Check.bOuErrorBothSensorsHigh;
|
||||
@@ -165,7 +192,7 @@ PROGRAM _CYCLIC
|
||||
Cylinder2Check (bInOutputCylinderBw := gbOuTool1Cyl2Bw,
|
||||
bInOutputCylinderFw := gbOuTool1Cyl2Fw,
|
||||
bInSensorCylinderBw := gbInTool1Cyl2Bw,
|
||||
bInSensorCylinderFw := gbInTool1Cyl2Fw);
|
||||
bInSensorCylinderFw := TON_FwReachedCylinder2.Q);
|
||||
lToolalarms.Alarm[3] := Cylinder2Check.bOuErrorCylinderBw;
|
||||
lToolalarms.Alarm[4] := Cylinder2Check.bOuErrorCylinderFw;
|
||||
lToolalarms.Alarm[5] := Cylinder2Check.bOuErrorBothSensorsHigh;
|
||||
@@ -173,7 +200,7 @@ PROGRAM _CYCLIC
|
||||
Cylinder3Check (bInOutputCylinderBw := gbOuTool1Cyl3Bw,
|
||||
bInOutputCylinderFw := gbOuTool1Cyl3Fw,
|
||||
bInSensorCylinderBw := gbInTool1Cyl3Bw,
|
||||
bInSensorCylinderFw := gbInTool1Cyl3Fw);
|
||||
bInSensorCylinderFw := TON_FwReachedCylinder3.Q);
|
||||
lToolalarms.Alarm[6] := Cylinder3Check.bOuErrorCylinderBw;
|
||||
lToolalarms.Alarm[7] := Cylinder3Check.bOuErrorCylinderFw;
|
||||
lToolalarms.Alarm[8] := Cylinder3Check.bOuErrorBothSensorsHigh;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
VAR
|
||||
bToolIsActive : BOOL; (*Werkzeug ist aktiv*)
|
||||
bSafetyOk : BOOL;
|
||||
bCylinder1Fw : BOOL;
|
||||
bCylinder2Fw : BOOL;
|
||||
bCylinder3Fw : BOOL;
|
||||
bCylinder1Fw : BOOL; (*Befehl Zylinder ausfahren*)
|
||||
bCylinder2Fw : BOOL; (*Befehl Zylinder ausfahren*)
|
||||
bCylinder3Fw : BOOL; (*Befehl Zylinder ausfahren*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
usTOOLID : USINT := 1; (*Werkzeugnummer*)
|
||||
@@ -11,6 +11,13 @@ END_VAR
|
||||
VAR
|
||||
usi : USINT;
|
||||
udSteptime : UDINT; (*0.1s*)
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
udDelayCylinder1 : UDINT; (*0.1s*)
|
||||
udDelayCylinder2 : UDINT; (*0.1s*)
|
||||
udDelayCylinder3 : UDINT; (*0.1s*)
|
||||
END_VAR
|
||||
VAR
|
||||
StatusVCControls : typStatusToolVCControls;
|
||||
ManualCommands : typManualCommnands; (*Kommandos Betriebsart Hand*)
|
||||
MoveConditions : typMoveConditions;
|
||||
@@ -19,4 +26,7 @@ VAR
|
||||
Cylinder1Check : FUB_CylinderCheck;
|
||||
Cylinder2Check : FUB_CylinderCheck;
|
||||
Cylinder3Check : FUB_CylinderCheck;
|
||||
TON_FwReachedCylinder1 : TON; (*Sensor Ausgefahren war bet<65>tigt*)
|
||||
TON_FwReachedCylinder2 : TON; (*Sensor Ausgefahren war bet<65>tigt*)
|
||||
TON_FwReachedCylinder3 : TON; (*Sensor Ausgefahren war bet<65>tigt*)
|
||||
END_VAR
|
||||
|
||||
@@ -13,9 +13,37 @@ PROGRAM _CYCLIC
|
||||
udSteptime := udSteptime + 100;
|
||||
END_IF
|
||||
|
||||
|
||||
//Store if Cylinder Fw Sensor was reached
|
||||
IF gbOuTool1Cyl1Fw AND gbInTool1Cyl1Fw THEN
|
||||
TON_FwReachedCylinder1.IN := TRUE;
|
||||
ELSIF NOT gbOuTool1Cyl1Fw THEN
|
||||
TON_FwReachedCylinder1.IN := FALSE;
|
||||
END_IF
|
||||
IF gbOuTool1Cyl2Fw AND gbInTool1Cyl2Fw THEN
|
||||
TON_FwReachedCylinder2.IN := TRUE;
|
||||
ELSIF NOT gbOuTool1Cyl2Fw THEN
|
||||
TON_FwReachedCylinder2.IN := FALSE;
|
||||
END_IF
|
||||
IF gbOuTool1Cyl3Fw AND gbInTool1Cyl3Fw THEN
|
||||
TON_FwReachedCylinder3.IN := TRUE;
|
||||
ELSIF NOT gbOuTool1Cyl3Fw THEN
|
||||
TON_FwReachedCylinder3.IN := FALSE;
|
||||
END_IF
|
||||
|
||||
//Delay Cylinder Fw Reaches
|
||||
TON_FwReachedCylinder1.PT := UDINT_TO_TIME (udDelayCylinder1 * 100);
|
||||
TON_FwReachedCylinder1 ();
|
||||
TON_FwReachedCylinder2.PT := UDINT_TO_TIME (udDelayCylinder2 * 100);
|
||||
TON_FwReachedCylinder2 ();
|
||||
TON_FwReachedCylinder3.PT := UDINT_TO_TIME (udDelayCylinder3 * 100);
|
||||
TON_FwReachedCylinder3 ();
|
||||
|
||||
|
||||
|
||||
MoveConditions.bEnableCylinder1Fw := TRUE; //gbInTool2Cyl3Bw;
|
||||
MoveConditions.bEnableCylinder1Bw := TRUE;
|
||||
MoveConditions.bEnableCylinder2Fw := TRUE; //gbInTool2Cyl1Fw AND gbInTool1Cyl3Fw;
|
||||
MoveConditions.bEnableCylinder2Fw := TON_FwReachedCylinder2.Q;
|
||||
MoveConditions.bEnableCylinder2Bw := TRUE;
|
||||
MoveConditions.bEnableCylinder3Fw := TRUE; //gbInTool2Cyl1Fw;
|
||||
MoveConditions.bEnableCylinder3Bw := TRUE;
|
||||
@@ -35,7 +63,7 @@ PROGRAM _CYCLIC
|
||||
|
||||
|
||||
lToolInterface.bToolIsHome := gbInTool1Cyl1Bw AND gbInTool1Cyl2Bw;
|
||||
lToolInterface.bToolIsMounted := gbInTool1Cyl1Fw AND gbInTool1Cyl2Fw;
|
||||
lToolInterface.bToolIsMounted := TON_FwReachedCylinder1.Q AND TON_FwReachedCylinder2.Q;
|
||||
|
||||
//Jog Mode
|
||||
//==========================================================================================
|
||||
@@ -103,7 +131,7 @@ PROGRAM _CYCLIC
|
||||
//---------------------------
|
||||
enTool2Step_CYL1_FW:
|
||||
bCylinder1Fw := TRUE;
|
||||
IF gbInTool1Cyl1Fw AND (udSteptime > 200) THEN
|
||||
IF TON_FwReachedCylinder1.Q THEN
|
||||
udSteptime := 0;
|
||||
genStepTool2 := enTool2Step_CYL2_FW;
|
||||
END_IF
|
||||
@@ -112,7 +140,7 @@ PROGRAM _CYCLIC
|
||||
//---------------------------
|
||||
enTool2Step_CYL2_FW:
|
||||
bCylinder2Fw := TRUE;
|
||||
IF gbInTool1Cyl2Fw AND (udSteptime > 500) THEN
|
||||
IF TON_FwReachedCylinder2.Q THEN
|
||||
udSteptime := 0;
|
||||
genStepTool2 := enTool2Step_WAIT_START_HOME;
|
||||
END_IF
|
||||
@@ -149,7 +177,7 @@ PROGRAM _CYCLIC
|
||||
Cylinder1Check (bInOutputCylinderBw := gbOuTool1Cyl1Bw,
|
||||
bInOutputCylinderFw := gbOuTool1Cyl1Fw,
|
||||
bInSensorCylinderBw := gbInTool1Cyl1Bw,
|
||||
bInSensorCylinderFw := gbInTool1Cyl1Fw);
|
||||
bInSensorCylinderFw := TON_FwReachedCylinder1.Q);
|
||||
lToolalarms.Alarm[20] := Cylinder1Check.bOuErrorCylinderBw;
|
||||
lToolalarms.Alarm[21] := Cylinder1Check.bOuErrorCylinderFw;
|
||||
lToolalarms.Alarm[22] := Cylinder1Check.bOuErrorBothSensorsHigh;
|
||||
@@ -157,7 +185,7 @@ PROGRAM _CYCLIC
|
||||
Cylinder2Check (bInOutputCylinderBw := gbOuTool1Cyl2Bw,
|
||||
bInOutputCylinderFw := gbOuTool1Cyl2Fw,
|
||||
bInSensorCylinderBw := gbInTool1Cyl2Bw,
|
||||
bInSensorCylinderFw := gbInTool1Cyl2Fw);
|
||||
bInSensorCylinderFw := TON_FwReachedCylinder2.Q);
|
||||
lToolalarms.Alarm[23] := Cylinder2Check.bOuErrorCylinderBw;
|
||||
lToolalarms.Alarm[24] := Cylinder2Check.bOuErrorCylinderFw;
|
||||
lToolalarms.Alarm[25] := Cylinder2Check.bOuErrorBothSensorsHigh;
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
VAR
|
||||
bToolIsActive : BOOL; (*Werkzeug ist aktiv*)
|
||||
bSafetyOk : BOOL;
|
||||
bCylinder1Fw : BOOL;
|
||||
bCylinder2Fw : BOOL;
|
||||
bCylinder3Fw : BOOL;
|
||||
bCylinder1Fw : BOOL; (*Befehl Zylinder ausfahren*)
|
||||
bCylinder2Fw : BOOL; (*Befehl Zylinder ausfahren*)
|
||||
bCylinder3Fw : BOOL; (*Befehl Zylinder ausfahren*)
|
||||
END_VAR
|
||||
VAR CONSTANT
|
||||
usTOOLID : USINT := 2; (*Werkzeugnummer*)
|
||||
@@ -11,6 +11,13 @@ END_VAR
|
||||
VAR
|
||||
usi : USINT;
|
||||
udSteptime : UDINT; (*0.1s*)
|
||||
END_VAR
|
||||
VAR RETAIN
|
||||
udDelayCylinder1 : UDINT; (*0.1s*)
|
||||
udDelayCylinder2 : UDINT; (*0.1s*)
|
||||
udDelayCylinder3 : UDINT; (*0.1s*)
|
||||
END_VAR
|
||||
VAR
|
||||
StatusVCControls : typStatusToolVCControls;
|
||||
ManualCommands : typManualCommnands; (*Kommandos Betriebsart Hand*)
|
||||
MoveConditions : typMoveConditions;
|
||||
@@ -19,4 +26,7 @@ VAR
|
||||
Cylinder1Check : FUB_CylinderCheck;
|
||||
Cylinder2Check : FUB_CylinderCheck;
|
||||
Cylinder3Check : FUB_CylinderCheck;
|
||||
TON_FwReachedCylinder1 : TON; (*Sensor Ausgefahren war bet<65>tigt*)
|
||||
TON_FwReachedCylinder2 : TON; (*Sensor Ausgefahren war bet<65>tigt*)
|
||||
TON_FwReachedCylinder3 : TON; (*Sensor Ausgefahren war bet<65>tigt*)
|
||||
END_VAR
|
||||
|
||||
Reference in New Issue
Block a user