From ff6ea7a9884e802e3119fb510d2fa57770799f8c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 24 Jul 2023 13:46:01 +0200 Subject: [PATCH] [BUG]TcoCarousel doesnt continue if is not in position (#624) * Create draft PR for #618 * +_notInPositionMessage for aditional diag tool, if carousel not in default position there is option to rotate it anyway by ack notInPositionMessage --------- Co-authored-by: peterbarancek Co-authored-by: Peter Barancek --- .../Carousel/Tasks/TcoTurnTableTask.TcPOU | 30 ++++++++++++------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/TcoElements/src/XAE/XAE/TcoElements/Carousel/Tasks/TcoTurnTableTask.TcPOU b/src/TcoElements/src/XAE/XAE/TcoElements/Carousel/Tasks/TcoTurnTableTask.TcPOU index 5840e2ed4..bad768a34 100644 --- a/src/TcoElements/src/XAE/XAE/TcoElements/Carousel/Tasks/TcoTurnTableTask.TcPOU +++ b/src/TcoElements/src/XAE/XAE/TcoElements/Carousel/Tasks/TcoTurnTableTask.TcPOU @@ -26,6 +26,8 @@ VAR _varInfo : __SYSTEM.VAR_INFO; {attribute 'hide'} _sb : TcoCore.StringBuilder; + + _notInPositionMessage : TcoCore.TcoMessenger(THIS^); END_VAR ]]> @@ -59,23 +61,28 @@ END_VAR END_IF IF _progress=1 THEN - - Messenger.Info('<#Calulate next expected Id position#>'); - inoStatus.ExpectedNextPosition := GetIdentifierAtPosition( inoConfig.NumberOfPositions,inoStatus.Positions); - Messenger.OnCondition(inoStatus.CurrentPosition=0 AND inoInPosition).Error('<#Incorrectly coded current position. Check configuration of code bits! #>').Pin(); - IF inoStatus.CurrentPosition <> 0 AND inoInPosition THEN - _progress := 10; - END_IF; + _notInPositionMessage.OnCondition(NOT inoInPosition).Error('<#Rotatiting started , but table is not in default position! Acknowledge this alarm if you still want to turn! #>').Pin(); + _progress:=10; + END_IF; IF _progress=10 THEN - Messenger.Warning('<#Expecting table in position. #>'); - IF inoInPosition THEN + Messenger.Info('<#Calulate next expected Id position#>'); + IF inoStatus.CurrentPosition <> 0 THEN + inoStatus.ExpectedNextPosition := GetIdentifierAtPosition( inoConfig.NumberOfPositions,inoStatus.Positions); + END_IF; - _progress := _progress+10; - END_IF + Messenger.OnCondition(inoStatus.CurrentPosition=0 AND inoInPosition).Error('<#Incorrectly coded current position. Check configuration of code bits! #>').Pin(); + + IF inoStatus.CurrentPosition <> 0 AND inoInPosition THEN + _progress := 20; + ELSIF NOT _notInPositionMessage.Pinned THEN + _progress:=20; + _notInPositionMessage.UnPin(); + + END_IF; END_IF; IF _progress=20 THEN @@ -231,6 +238,7 @@ METHOD Restore : ITcoRestorable]]> _progress := 0; CallTimers(FALSE); Messenger.UnPin(); +_notInPositionMessage.UnPin(); ]]>