The basic idea behind our framework is simple: it is designed to take as much work off the developer of an individual machine as possible. This not only makes the developer’s work easier, but also saves time and money. Special purpose machines differ functionally in many ways, but for us developers there are basically two categories: the integrated hardware to be controlled and the sequence logic. Our framework abstracts these two aspects.
Each device, whether it is a simple digital sensor or a hard drive packed to the brim with functionality, provides its own commands. A long-term goal of cinnamon is to provide the widest possible range of hardware drivers, so that you have a ready-made set of components to choose from.
The second aspect is the sequence logic of a system. A sequence is a series of process steps, which in turn are subdivided into finer sequences until you reach the hardware level. And this is where we use the abstraction from hardware to commands: In cinnamon, a sequence is a chain of commands. Whether it is reading a sensor value, controlling an actuator, or just handling data, it is still commands that you start and wait until they are finished.
Stable but flexible
The cinnamon framework libraries take care of all other key aspects of the machine software in the background. It comes with pre-built operation mode handling, device monitoring and error management, data acquisition, and a mostly self- building HMI. The libraries are modular, so that you only have to integrate what you really need.
In contrast to other software standards in the automation industry, we deliberately avoid code generation and additional external design tools, as these create very strict dependencies between the generated software components, reduce the maintainability of the code, and make it difficult for teams to work on the same project due to non-mergeable project files.
Open source
We have chosen an open source approach so that everyone can see for themselves what they are getting. We want to share our knowledge and allow anyone to integrate the framework or individual components into existing environments.