diff --git a/src/TcoDrivesBeckhoff/src/TcoDrivesBeckhoff.Wpf/TcoDriveSimple/TcoDriveSimpleServiceView.xaml b/src/TcoDrivesBeckhoff/src/TcoDrivesBeckhoff.Wpf/TcoDriveSimple/TcoDriveSimpleServiceView.xaml
index 1074b41f0..8991cc058 100644
--- a/src/TcoDrivesBeckhoff/src/TcoDrivesBeckhoff.Wpf/TcoDriveSimple/TcoDriveSimpleServiceView.xaml
+++ b/src/TcoDrivesBeckhoff/src/TcoDrivesBeckhoff.Wpf/TcoDriveSimple/TcoDriveSimpleServiceView.xaml
@@ -187,7 +187,27 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/TcoDrivesBeckhoff/src/XaeTcoDrivesBeckhoff/TcoDrivesBeckhoff/POUs/Prototypes/TcoDriveSimple/TcoDriveSimple.TcPOU b/src/TcoDrivesBeckhoff/src/XaeTcoDrivesBeckhoff/TcoDrivesBeckhoff/POUs/Prototypes/TcoDriveSimple/TcoDriveSimple.TcPOU
index 018002acb..d204d6eb8 100644
--- a/src/TcoDrivesBeckhoff/src/XaeTcoDrivesBeckhoff/TcoDrivesBeckhoff/POUs/Prototypes/TcoDriveSimple/TcoDriveSimple.TcPOU
+++ b/src/TcoDrivesBeckhoff/src/XaeTcoDrivesBeckhoff/TcoDrivesBeckhoff/POUs/Prototypes/TcoDriveSimple/TcoDriveSimple.TcPOU
@@ -444,11 +444,15 @@ PROPERTY Override : LREAL]]>
METHOD Restore : ITcoRestorable]]>
0.0 AND _override<=100.0) THEN
+ _override := 100;
+END_IF
RestoreTasks();
_resetTask.Restore();]]>
diff --git a/src/TcoTixonFeeding/README.md b/src/TcoTixonFeeding/README.md
index 0a96149ed..cf52372b8 100644
--- a/src/TcoTixonFeeding/README.md
+++ b/src/TcoTixonFeeding/README.md
@@ -71,8 +71,15 @@ The package consists of a PLC library providing control logic and its .NET twin
| ErrorTimeHopper | TIME | T#0S |
| OutOfBoxSensorDisabled | BOOL | FALSE |
| SeparatorHasWorkPosition | BOOL | FALSE |
+| BufferStuckedOnFillingSensor | TIME | T#30S |
---
+### NOTE!
+ This option BufferStuckedOnFillingSensor is introduced due screw stuck on Filling sensor. (Required new step feed to push this stucked component) See picture below (Thx AdamPitak)
+
+![](assets/stuckedscrew.png)
+
+
## Tixon Vibro
![](assets/TixonVibro_side_signals.png)
diff --git a/src/TcoTixonFeeding/assets/stuckedscrew.png b/src/TcoTixonFeeding/assets/stuckedscrew.png
new file mode 100644
index 000000000..27f8df437
Binary files /dev/null and b/src/TcoTixonFeeding/assets/stuckedscrew.png differ
diff --git a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/DUTs/TcoTixonGenericConfig.TcDUT b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/DUTs/TcoTixonGenericConfig.TcDUT
index d1ffd5743..f99216dbc 100644
--- a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/DUTs/TcoTixonGenericConfig.TcDUT
+++ b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/DUTs/TcoTixonGenericConfig.TcDUT
@@ -20,9 +20,11 @@ STRUCT
BufferIdleTime : TIME := T#5S;
{attribute addProperty Name "<#Buffer full blow time after#> - T_BUF_BLOW_FULL"}
BufferBlowFullTime : TIME := T#1S;
+
{attribute addProperty Name "<#Buffer blow active #>"}
BufferBlowActive : BOOL := TRUE;
+
{attribute addProperty Name "<#Time when component in separator #> - T_BUFSEP_ON"}
TimeToComponentInSeparator : TIME := T#300MS;
{attribute addProperty Name "<#Time when component is out of separator #> - T_FLY_OFF"}
diff --git a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/DUTs/TixonStep/TcoTixonStep_Config_v_1_x_x.TcDUT b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/DUTs/TixonStep/TcoTixonStep_Config_v_1_x_x.TcDUT
index 79ef07e97..ba7866597 100644
--- a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/DUTs/TixonStep/TcoTixonStep_Config_v_1_x_x.TcDUT
+++ b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/DUTs/TixonStep/TcoTixonStep_Config_v_1_x_x.TcDUT
@@ -24,6 +24,8 @@
{attribute addProperty Name "<#Separator has work position (usualy TRUE when pushing to up direction)#>"}
SeparatorHasWorkPosition : BOOL := FALSE;
+ {attribute addProperty Name "<#Buffer stucked on filing sensor#> - T_BUF_STUCK_FIL_SENSOR"}
+ BufferStuckedOnFillingSensor : TIME := T#20S;
END_STRUCT
END_TYPE
]]>
diff --git a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TiconPickStep/TcoTixonPickStep_v_1_x_x.TcPOU b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TiconPickStep/TcoTixonPickStep_v_1_x_x.TcPOU
index 0a9207449..c377bcbf2 100644
--- a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TiconPickStep/TcoTixonPickStep_v_1_x_x.TcPOU
+++ b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TiconPickStep/TcoTixonPickStep_v_1_x_x.TcPOU
@@ -107,6 +107,17 @@ UpdateControl();]]>
_bufferTask.AutoRestore:=false;]]>
+
+
+
+
+
+
+
+
+
@@ -194,6 +205,17 @@ _hopperTask.AutoRestore:=false;
]]>
+
+
+
+
+
+
+
+
+
@@ -231,6 +253,18 @@ _hopperTask.Restore();
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
_bufferTask.AutoRestore:=false;]]>
+
+
+
+
+
+
+
+
+
@@ -193,6 +204,17 @@ _hopperTask.AutoRestore:=false;
]]>
+
+
+
+
+
+
+
+
+
@@ -231,6 +253,18 @@ _hopperTask.Restore();
]]>
+
+
+
+
+
+
+
+
+
_bufferTask.AutoRestore:=false;]]>
+
+
+
+
+
+
+
+
+
@@ -180,6 +191,17 @@ _hopperTask.AutoRestore:=false;
]]>
+
+
+
+
+
+
+
+
+
@@ -215,6 +237,18 @@ _hopperTask.Restore();
]]>
+
+
+
+
+
+
+
+
+
').Append(_varInfo.Symbol).ToString());
- IF inoStatus.SeparatorHomePos THEN
+
+ THIS^.Messenger.OnCondition(_infoTimer.Q AND inoStatus.ComponentOutOfBox AND NOT inoConfig.OutOfBoxSensorDisabled ).Error(_sb.Clear().Append('<#Check component at the separator output. The component is probably stuck!.#>').Append(_varInfo.Symbol).ToString()).Pin();
+ IF _infoTimer.Q AND inoStatus.ComponentOutOfBox and NOT inoConfig.OutOfBoxSensorDisabled THEN
+ THIS^.ThrowWhen(_errorTimer.Q );
+ ELSIF inoStatus.SeparatorHomePos AND NOT inoStatus.ComponentOutOfBox THEN
_progress := _progress + 1;
_timer(In:=FALSE);
END_IF;
diff --git a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonStep/Tasks/Step/TcoTixonStepTask.TcPOU b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonStep/Tasks/Step/TcoTixonStepTask.TcPOU
index 18a28a132..b1d3a7a14 100644
--- a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonStep/Tasks/Step/TcoTixonStepTask.TcPOU
+++ b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonStep/Tasks/Step/TcoTixonStepTask.TcPOU
@@ -11,6 +11,7 @@ END_VAR
VAR
_timerIsFull : TON;
+ _timerIsStucked : TON;
END_VAR]]>
IF _progress = 1 THEN
Messenger.Debug('<#Waiting for buffer empty#>');
_timer(IN:=NOT inoStatus.FillingSensor,Pt:=inoConfig.BufferEmptyTime);
+ _timerIsStucked(in:=inoConfig.BufferStuckedOnFillingSensor<>T#0S AND inoControl.FeedingA AND inoStatus.FillingSensor AND NOT inoStatus.SeparatorPresent,Pt:=inoConfig.BufferStuckedOnFillingSensor);
IF _timer.Q AND inoControl.FeedingA THEN
_progress := _progress + 1;
_timer(In:=FALSE);
+ ELSIF _timerIsStucked.Q AND inoControl.FeedingA AND inoStatus.FillingSensor AND NOT inoStatus.SeparatorPresent THEN
+ _progress := _progress + 1;
+ _timer(In:=FALSE);
END_IF
END_IF;
IF _progress = 2 THEN
@@ -146,7 +151,8 @@ THIS^._errorMessage.Error(_sb.Clear().Append(description).Append(' To restore ac
'; END_IF;
CallTimers(FALSE);
-_timerIsFull(In:=FALSE);]]>
+_timerIsFull(In:=FALSE);
+_timerIsStucked(in:=FALSE);]]>
@@ -164,6 +170,7 @@ METHOD Restore : ITcoRestorable]]>
diff --git a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonStep/TcoTixonStep_v_1_x_x.TcPOU b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonStep/TcoTixonStep_v_1_x_x.TcPOU
index 02199402e..0ed94a1ac 100644
--- a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonStep/TcoTixonStep_v_1_x_x.TcPOU
+++ b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonStep/TcoTixonStep_v_1_x_x.TcPOU
@@ -113,6 +113,17 @@ UpdateControl();]]>
_bufferTask.AutoRestore:=false;]]>
+
+
+
+
+
+
+
+
+
@@ -200,6 +211,17 @@ _hopperTask.AutoRestore:=false;
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
IF _progress = 1 THEN
inoControl.SepareComponent:=FALSE;
_varInfo :=__VARINFO( inoStatus.SeparatorHomePos);
- THIS^.Messenger.OnCondition(_infoTimer.Q AND NOT inoStatus.SeparatorHomePos).Warning(_sb.Clear().Append('<#Waiting for #>').Append(_varInfo.Symbol).ToString());
- IF inoStatus.SeparatorHomePos THEN
+ THIS^.Messenger.OnCondition(_infoTimer.Q AND NOT inoStatus.SeparatorHomePos).Warning(_sb.Clear().Append('<#Waiting for #>').Append(_varInfo.Symbol).ToString());
+ THIS^.Messenger.OnCondition(_infoTimer.Q AND inoStatus.ComponentOutOfBox AND NOT inoConfig.OutOfBoxSensorDisabled ).Error(_sb.Clear().Append('<#Check component at the separator output. The component is probably stuck!.#>').Append(_varInfo.Symbol).ToString()).Pin();
+ IF _infoTimer.Q AND inoStatus.ComponentOutOfBox and NOT inoConfig.OutOfBoxSensorDisabled THEN
+ THIS^.ThrowWhen(_errorTimer.Q );
+ ELSIF inoStatus.SeparatorHomePos AND NOT inoStatus.ComponentOutOfBox THEN
_progress := _progress + 1;
_timer(In:=FALSE);
END_IF;
diff --git a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonVibro/TcoTixonVibro_v_1_x_x.TcPOU b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonVibro/TcoTixonVibro_v_1_x_x.TcPOU
index b062c5f05..8829ddb78 100644
--- a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonVibro/TcoTixonVibro_v_1_x_x.TcPOU
+++ b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/TcoTixonFeeding/POUs/Prototypes/TixonVibro/TcoTixonVibro_v_1_x_x.TcPOU
@@ -114,6 +114,17 @@ UpdateControl();]]>
_bufferTask.AutoRestore:=false;]]>
+
+
+
+
+
+
+
+
+
@@ -190,6 +201,17 @@ _hopperTask.AutoRestore:=false;
]]>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
END_IF
CASE _testedTixon OF
+
eTypeOfTixon.TixonStep:
+
_tixonStepFeeder(
inControllerInAuto:=GVL_iXlinker.ECAT_x.EK1200.IA1.Channel_1.Input ,
inNotEmptyFeeder:=GVL_iXlinker.ECAT_x.EK1200.IA1.Channel_2.Input ,
@@ -114,6 +116,7 @@ CASE _testedTixon OF
outHopper=>GVL_iXlinker.ECAT_x.EK1200.qA1.Channel_6.Output,
outStepperValve=>GVL_iXlinker.ECAT_x.EK1200.qA1.Channel_7.Output,
outShotComponent=>GVL_iXlinker.ECAT_x.EK1200.qA1.Channel_8.Output );
+
_tixonStepFeeder.Service();
diff --git a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/XaeTcoTixonFeeding.tsproj b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/XaeTcoTixonFeeding.tsproj
index bb6028c96..f9b697f7a 100644
--- a/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/XaeTcoTixonFeeding.tsproj
+++ b/src/TcoTixonFeeding/src/XaeTcoTixonFeeding/XaeTcoTixonFeeding.tsproj
@@ -200,7 +200,7 @@
-
+
TcoTixonFeedingTests Instance
{08500001-0000-0000-F000-000000000064}