Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

example Sequencer logic as you know the missing conditions to move on to the next step? #36

Closed
runtimevic opened this issue May 4, 2021 · 8 comments
Assignees
Labels
question Further information is requested

Comments

@runtimevic
Copy link

Hello:
In the example of the Sequencer logic as it is known what are the missing conditions to advance to the next step?
Thanks you, Víctor.

@runtimevic runtimevic added the question Further information is requested label May 4, 2021
@PTKu
Copy link
Member

PTKu commented May 4, 2021

Not sure which example exactly, in which folder? Messaging could not be implemented by the component in the example you are looking at.

@runtimevic
Copy link
Author

runtimevic commented May 4, 2021

Not sure which example exactly, in which folder? Messaging could not be implemented by the component in the example you are looking at.

https://www.youtube.com/watch?v=yCUv2LW-6zo

example logic sequencer

@PTKu
Copy link
Member

PTKu commented May 4, 2021

Ahhaa... there are some debug messages, but not full diagnostics implemented in the components, that is something we need to implement. So for instance, if you go to a pneumatic cylinder you can add timer to time operation time-out and add

IF timer.Q THEN Messenger.Error('I did not reach the extremity sensor'); END_IF;

In order to detect physical input (sensor, as you may have seen in other inxton videos), we need to conclude decisions in discussion #15.

@runtimevic
Copy link
Author

Ahhaa... there are some debug messages, but not full diagnostics implemented in the components, that is something we need to implement. So for instance, if you go to a pneumatic cylinder you can add timer to time operation time-out and add

IF timer.Q THEN Messenger.Error('I did not reach the extremity sensor'); END_IF;

In order to detect physical input (sensor, as you may have seen in other inxton videos), we need to conclude decisions in discussion #15.

I think the most successful thing is that the component itself has its own error diagnosis.

@RGrabichler
Copy link
Collaborator

Im very interested in this things and i love this approach to broaden the knowledge about automation,
because all i do is selftaught, and it is a hell of a mountain to climb.
Everytime i read something like that, i'm getting aware, how much i don't know and cannot even grasp the problems.

Nevertheless i try to contribute:
I've mage my own cylinder fb with diagnosis and i will describe it.
image.png
The In- and Outputs %Q*/%I* are declared in the dut, the linking to hardware in
image.png
just for reference to https://github.com/TcOpenGroup/TcOpen/discussions/15.

I have various so called features, which are small fbs. They implement simple task and later can be assembled as components for example as Cylinder or Motor.

My FB Cyl is derived from abstract class Actuator. WIth an Interface IactionProviding i have Methods for fault- handling and the possibility to set pEventid, pSeverity etc.
image.png

Now when instantiating the cylinder, i have the possibility to add timeOuts to WorkPos and/or HomePos.
If the time is set and a timeout occurs, via TCEventHandling System there gets an Event created.

image.png

This is the Diagnose Method
image.png

If this is interesting or useful, i'd appreciate any feedback.

@PTKu
Copy link
Member

PTKu commented May 8, 2021

Thanks for sharing @RGrabichler! I like your design, it looks very neat. Would you consider the implementation of event logger into TcOpen messaging?

Have a brief look at the following links, we can discuss it in more detail next week.

conceptual

object

messenger,

Please ignore that it looks like C# documentation we will polish it in the feature, for now just look at member documentation.

code

Thanks

@RGrabichler
Copy link
Collaborator

I'd love to contribute to such a project.
As mentioned before, i have hardly any experience, working in a bigger project with other people,
so i'd need a lot of guidance early on.

@PTKu
Copy link
Member

PTKu commented May 10, 2021

@RGrabichler I'ts OK... I think we are all going to learn along the way. There is a little tradition in industrial automation to use GH. We will need to prepare some instructions for the people to get started. I hope we can come with some video this or the next week.

PTKu added a commit that referenced this issue May 12, 2021
* some more comments to corleone context/identity example

* sequencer example moved to 'Sequencer' folder

* Object tree viewer moved to TcoCore.Wpf library
Examples visulized with object tree viewer

* Object tree viewer moved to TcoCore.Wpf library
Examples visulized with object tree viewer

* (examples) sequencers have separate instances of components

* (examples) sequencers have not shared instances of components

* Links to code examples research

* merged with remote

* test publish in trx format

* #17 TcoSequencer.Step method protected, OnSequencerError() Sequencer.Reset() => Sequencer.Restore()

* TcoTask API docu, eTaskState refactoring, all tests passed, some comments in the test needs to be checked to fullfill the refatored values of the etskState.

* TcoTask._taskState=> Readonly

* TcoTask Enabled property added

* #12
Each object has its own messeger; post method for each main category, activ/inactive flag; unit tests

* TcoMessenger performance tests

* packages update 1.9.6-nightly.260

* Time sync research

* fix after update to 1.9.4-nightly.260, implementation of missing GetKids member in manually created IVortexObject wrapper (DynamicTreeView)

* fixed binding exception on 'TcoContextView'

* RTC

* TcoRTC + tests, Messenger tests timestamp modification

* TcoRtc + tests

* small cleanup in messenger test instance

* Output text logs to xml

* TcoRtc - Clock PRG removed, Update method implementation moved to TcoRtc FB

* rtc refactoring - start @TomKovac continues

* task example started, not finished yet

* TcoRtc diff in _messenger.Mime.Timestamp issue

* Messanger performence tests commented out due to Rtc issues~

* Rtc my fucking last attempt to solve this fucking issue

* minor clup

* before modyfying T801-T812 tests

* Messenger tests-added cyclicall call of the rtcupdate

* test publishing

* messaging feature and compatibility aligment

* task example

* solving compatibility issues VortexCore

* before sync

* #12 cont. messaging

* before restorer added

* restorer added + rtc issues

* get ready for nuget publish on TcOpenGroup config

* generated meta file removed from tracking

* removes generate and meta, fixed an issue with TcoCoreExamples slnf (missing project)

* add missing files to nuget TcoCore

* #23 net5.0 platform added, test projects kept on net48

* build script improvements
git version bump 0.4.0

* Changeable restorer removed

* package updates v1.10.0+

* TcoTaskExample added, also into the documentation

* prevent nre on missing context in messenger

* #36 method EqualsTo added to TcoObject

* removed super^ in TcoObject (some refactoring problem in tc3?)

* minor refac

* Fixed wording in documentation

Fixed wording in documentation of TcoObject.EqualsTo()

* Update TcoObjectTest.TcPOU

* remote nuget publishing at this point to prevent build and publish on each change in the PR Inxon/dev -> TcOpenGroup/dev

* #38 In addition to A.EqualsTo(B), B.EqualsTo(A) test case added.

* ignore .vscode folder

* #28 sStepforward, stepbackward restore call after reaching done state

* readme prior to PR to TcOpenGroup

* + repo structure description start

* #39 Invoke returns new ITcoTaskStatus interface + refactoring

* #41 add implementation and tests for messaging MinLevel, Suspend, Resume.

* additions to TcoContex, Messaging, TcoObject API documentation,

* Minor additions to TcoObject, TcoTask API documentation

* TcoSequencer, unexpected OnStateChange method call after changing from step mode to cyclic mode issue solved

* removed webinar submodule

* remove webinar reference from the solution file

* station example

* Display in the render tree in the order they occur and do not render ignored ones.

* Hiding implementation TcoCore.TcoSequencer #32 and TcoCore.TcoState #33

* TcoCequencer min max step id number

* TcoCore.TcoSequencer RequestStep is already able to jump to very first step of the sequence so as to stepId 0

* Min / max StepId changed to constants, RequestStep change _currentStep.Status to Done #55

* Cleanup tree, and display selected item from tree in renderable content control

* Remove unnecessary code

* asp

* Implemention of UI dispatcher for calls arising from different threads.
Implementation of ICommand (CanExecute()) in TcoCore.TcoTask

* - fixing documentation comment

* synch with dev

* docu sequencer

* TcoSequencer  Invalid mode tests

* asp

* WIP

* asp

* #53 Use enum instead of boolean for sequencer constructor.

* An attempt to removed LineIds

* Removed line ids

* Leftover lineids

* Changed the summary for the enum

* asp

* WIP

* Make the startup sequence more user friendly

* Added sequencer view

* wip

* simple sequence wip

* TcoContext OnEntry OnExit tests added

* Solved isssue when on calling Restore() method inside OnStateChange() causes pagefault #29

* Initial implementation of ITcoServiceable in TcoComponent. Allows to tell tasks of the component that in service mode active and tasks can be invoked remotely (HMI/SCADA)

* Color examples 101 and Connecting sequences 201

* 301 - Invoking tasks to run sequences.

* #66 Implementation of public member TcoSequencer.CurrentStep

* #66 api documentation comments

* asp

* Update README.md

* Update README.md

* Task execution 302

* TcoCore.TcoComponent ServiceMode implementation added + unit tests #65

* Hiding _restoringSequence ~variable

* wip

* CurrentStep in not REFERENCE TO StepDetails
#24

* Added code from webinar
replaced textblocks with markdown

* Adds auto-renderable TcoObjectDiagnosticsView TcoObjectDiagnosticsViewModel will render on 'PresentationType' = 'Diagnostics'
https://github.com/Inxton/TcOpen/issues/70

* Adds auto-renderable TcoContextDiagnosticsView TcoContextDiagnosticsViewModel will render on 'PresentationType' = 'Diagnostics'
https://github.com/Inxton/TcOpen/issues/70

* diagnostics view usage

* ++Adds auto-renderable TcoContextDiagnosticsView TcoContextDiagnosticsViewModel will render on 'PresentationType' = 'Diagnostics'
https://github.com/Inxton/TcOpen/issues/70

* Get diagnostics from context

* Autoupdate messages hotfix

* remove MD

* Update README.md

* Update README.md

* Update README.md

* TcoTaskView, TcoObjectView -> TcoObjectControlView

* package update inxton 1.10.0-nightly.436

* added package material design package

* removed mahapp dependencies added noticies for new added depencencies

* Update README.md

* removed ivc script - replaced with modified behaviour of IVC CLI

* minor to TaskView

* + library tempate + script

* Added RelayCommand
Task can be aborted from GUI

* Swallow an exception in the VisibleTaskStateConverter

* library template + script

* Update scaffoldnewlibrary.ps1

fixed a stupid logic mistake I made

* Tests runners move to TcoCore + refactoring
Arrange in .net - execute on plc task - assert in .net

* library tempate script fix (not break but continue you silly boy)

* basic scaffolding of TcoElements... digital sensor

* Scaffolding TcoDrivesBeckhoff
+ build scripts updates

* DI monitoring propreties attributes

* Refactor fbCylinder to Cylinder

* #40 Add cylinder info messages.

* remove beckhof drive testing (missing hw)

* solving merge issues - drive does not build in pipeline

* version bump

* #40 redesigned cylinder view
fixed typo cyclinder  :)

* fixed an issue with duplicate assembly info and missing namespace imports for assembly attributes

* #39 Simple digital signal UI

* running rabbit

* running rabbit killed while running

* ()()()()() - next time ammend ()()()()()

* + DigitalActuator + DigitalSensor components + tests

* various build fixied

* rebuild the complete solution

* Use material colors

* Fixed regarding material design dependency.

* Naming refactoring: TcoDi and TcoDo instead of TcoDigitalSignal and TcoDigitalActuator

* - build and test fixies

* Update README.md

* Update README.md

* Update README.md

* Components use outside TcOpenFramework/minor fixies to Cylinder component (#54)

* Fixed returns from taks method  (ITcoTask to ITcoTaskStatus)

* Non framework context block for compnents use outside TcOpen framework.
Fixed fbPiston in test examples.

* fixed layout of piston component

* Additions to Non framework use of components

* Workaround an issue when at startup the connector may deadlock if batched operations are started prior to R/W loop operations are propertly initiated. Reported to Inxton core team as FOXTROTH #564

* fixed some typos

* Added tasks to TcoDi/TcoDo for serviceablity,
Update/refactor WPF UI components

* line IDs removal from some blocks

* exising line ids removed from everywhere I could find it

Co-authored-by: PTKu <me@me.me>

* Stringbuilder using fleunt interface (#51)

* #37 Implementation of StringBuilder

* Unit tests for stringbuilder

Co-authored-by: Jozef Chmelar ml <jozef.chmelar.ml@mts.sk>
Co-authored-by: Peter <61538034+PTKu@users.noreply.github.com>

* Update README.md

Removed build badge Azure will be replaced by gh actions

* Test to setup Github Actions (#63)

* Create main.yml

* Update main.yml

* Update main.yml

Just a dummy edit, because I can't trigger the actions manually

* Update main.yml

* Use community version of msbuild

Co-authored-by: Jozef Chmelar <jozef.chmelar.ml@mts.sk>

* Copy files in separate step. (#64)

* Copy files in separate step.

* Consolidate strings
Display executing command by defualt

Co-authored-by: Jozef Chmelar <jozef.chmelar.ml@mts.sk>

Co-authored-by: PTKu <p@nowhere.com>
Co-authored-by: Tomas Kovac <tomas.kovac@mts.sk>
Co-authored-by: Jozef Chmelar <jozef.chmelar.ml@mts.sk>
Co-authored-by: MTS\peto.kurhajec <me@me.me>
Co-authored-by: TomKovac <61820360+TomKovac@users.noreply.github.com>
Co-authored-by: Jokinko <jozefchmelar@users.noreply.github.com>
Co-authored-by: Gerhard Barteling <33071638+Barteling@users.noreply.github.com>
PTKu pushed a commit that referenced this issue May 13, 2021
@PTKu PTKu closed this as completed Mar 29, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants