From b79223472bae9b66cfcf0b5f33809d76e895f1b2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 05:54:44 +0000 Subject: [PATCH] [NEW-FEATURE] Tixon - TcoTixonStepSeparatorTask: ComponentOutOfBox sensor (#732) * Create draft PR for #730 * ***TcoTixonFeeding**** *stuck component at output +time to check component stuck go SeparatorTask go into error state + tasks as public members (HoppetTask,SeparatorTask....) ***TcoDrives*** +Torque control tab in service view * power off in restore method (if inEnable is true then not required to power off) * overide value was always changed to 100, if value is defined by user then value is not changed. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: peterbarancek <62284244+peterbarancek@users.noreply.github.com> --- .../TcoDriveSimpleServiceView.xaml | 22 ++++++++- .../TcoDriveSimple/TcoDriveSimple.TcPOU | 8 +++- src/TcoTixonFeeding/README.md | 7 +++ src/TcoTixonFeeding/assets/stuckedscrew.png | Bin 0 -> 2099404 bytes .../DUTs/TcoTixonGenericConfig.TcDUT | 2 + .../TcoTixonStep_Config_v_1_x_x.TcDUT | 2 + .../TcoTixonPickStep_v_1_x_x.TcPOU | 45 ++++++++++++++++++ .../TcoTixonPickVibro_v_1_x_x.TcPOU | 34 +++++++++++++ .../TcoTixonPickVibroBasic_v_1_x_x.TcPOU | 34 +++++++++++++ .../Separe/TcoTixonStepSeparatorTask.TcPOU | 7 ++- .../Tasks/Step/TcoTixonStepTask.TcPOU | 9 +++- .../TixonStep/TcoTixonStep_v_1_x_x.TcPOU | 45 ++++++++++++++++++ .../Separe/TcoTixonVibroSeparatorTask.TcPOU | 7 ++- .../TixonVibro/TcoTixonVibro_v_1_x_x.TcPOU | 34 +++++++++++++ .../Tests/TcoContext/WpfContext.TcPOU | 3 ++ .../XaeTcoTixonFeeding.tsproj | 2 +- 16 files changed, 253 insertions(+), 8 deletions(-) create mode 100644 src/TcoTixonFeeding/assets/stuckedscrew.png 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 0000000000000000000000000000000000000000..27f8df4373db4190817eb8ec65ec1f92d960fea5 GIT binary patch literal 2099404 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