Post by Admin on Aug 22, 2022 1:40:42 GMT
The ControlSphere Parameter and Persistence Service Library (CPP) provides an optimized means to store and retrieve variable values to and from well-formatted, human-readable data files. This library provides numerous advantages over the Retain/Persist, Recipes, and Parameters features built-into the CODESYS IDE, particularly in object-based design. Once a Function Block implements the CPP Library, the parameter, persistent, and recipe data for each instance are automatically managed – there are no lists to be created or maintained. The files(s) created by the CPP Library may be edited in a spreadsheet editor and/or moved to other systems to duplicate the persistent, parameter, or recipe values on those systems. This library includes a demo project.
See the videos below for more information on the purpose and application of the CPP library.
Features, advantages, and differentiators of the CPP Library include:
The library and demo project can be downloaded from: This Link.
The demo version of the library will work with up to 6 Function Block instances.
Runtime Licenses can be purchased on the CODESYS store, and the source code can be purchased from sales (at) ControlSphere (dot) pro.
These videos describe the CSS (since renamed CPP) library in more detail. While they are a little out of date, they still provide valuable information for the purpose and application of the CPP library:
The projects shown in the last video are public domain and available HERE.
See the videos below for more information on the purpose and application of the CPP library.
Features, advantages, and differentiators of the CPP Library include:
- The CPP Library stores data that will survive a power-cycle, reset, new download, or equipment change; or can be used in a production run. The CPP Library is often used for Parameters, Persistent variables, and Recipes.
- CPP-managed variables are automatically registered when a Function Block is instantiated. There are no persistence or recipe lists to create or maintain. Just add an instance of a Function Block and its CPP variables are automatically managed in one or more CSV files in the runtime file system. If more instances of Function Blocks are added to the design, their variables are automatically managed by the CPP Library. No further user effort is required.
- The CPP Library will create the initial CSV file containing the default values for all the CPP variables, in all the instances of Function Blocks that implement the CPP Library. This saves the user from the laborious and error-prone task of hand-typing this file.
- Since the CPP stores its variable values in well-organized human-readable ASCII files rather than binary files, the CPP files can be easily modified if persistence, parameter, or recipe variables values are added or removed from Function Blocks, or instances of Function Blocks are added or removed. Being able to modify the files allows the CPP persistence values to be moved to systems which are not identical to the originating system. Of course, at any time the user can have the CPP write a new CSV file which will include all the variables or instances, as described in the previous bullet. The CPP Library provides the maximum possible flexibility so your data is easily reused and is never lost.
- Parameters are set for all configurable objects from a consolidated source file which is easily managed in any spreadsheet software. There is no need to manually traverse the device tree searching for and opening each instance individually to set its parameters. Plus the parameters can be set either offline or online. In addition, the CPP Library does not have hierarchy restrictions like the built-in parameter tool – it works with nested Function Blocks to any size and shape of hierarchy.
- Product variations can be accommodated by placing different sets of parameter values in different parameter files. The proper file can be selected on startup based on the identification of the product. This same feature can be used to save and restore different recipes in a file format that is much more convenient than the built-in recipe tool.
- Parameter values are stored in a human readable and editable file, not buried and inaccessible in the project file. These files may be stored in the project device tree if desired so its variable values are automatically downloaded to the target on login. Or, the files can also be copied directly to the target so the CODESYS IDE is not required in a mass production environment.
- The CPP Library does not require copying values to and from a global variable list on each process cycle. So it is much more CPU efficient than the built-in persistence feature.
- The CPP can initiate a file read or write from the same Task where the file action is executed (the variables will then all be atomic), or the initiation can be in a different task from the execution (the file I/O will not pause the Task).
- Variables can all be managed in the same CSV file, or sets of variables can be partitioned to be managed in different CSV files (useful to differentiate between one-time system configuration variables, operating mode variables set by the operator via a visualization, and persistent process variables).
- The CPP can save all the variables in a Group for all the instances of Function Blocks, or it can save the variable values for one instance at a time. This is useful for saving the tuning parameters on an instance by instance basis.
The library and demo project can be downloaded from: This Link.
The demo version of the library will work with up to 6 Function Block instances.
Runtime Licenses can be purchased on the CODESYS store, and the source code can be purchased from sales (at) ControlSphere (dot) pro.
These videos describe the CSS (since renamed CPP) library in more detail. While they are a little out of date, they still provide valuable information for the purpose and application of the CPP library:
The projects shown in the last video are public domain and available HERE.