This is an open-source TwinCAT 3 base framework providing a baseline for developing object-oriented TwinCAT 3 projects. It provides boilerplates of some well-known software design patterns, such as state pattern, and observer pattern. More patterns to come. It aims to provide more advanced types of data collection, for now only a list. Additionally, it has some utilities like an invocation tracker and action, which can be executed iteratively over an I_Enumerable, for example, fbList.ForEach(fbRunAllCyclicTask)
.
This project is under heavy development, so there will not be any releases any time soon. However, the project is built to be a library, so you can manually produce a library out of this project from the source code. For instructions on how to do this, check here.
To take full advantage of the framework - being an object-oriented framework itself - every new FB that you create should inherit from FB_Object or its children. Like how FB_State inherits from FB_Object and thus can be stored in FB_List without any extra implementation. At this point, you might be wondering "well that is a helluva lot of coupling", and we applaud such intuition. That is why we try our best to keep the framework as lite as possible, to minimize the coupling.
Being under heavy development, we advise you well to use proxy - or simply put, a wrapper - when using this library, instead of direct usage.
The unit tests for TcBase depends on the TcUnit library version 1.2.0.0.
Some elements of the TcBase were based on parts of the open-sourced project TcOpen.