CDP Studio release 2.3 – CDP Framework release 4.11
The new release highlights are described in this article, for the full details of all the new features and fixes, see the release notes.
Kinematics design module
The new kinematics design module will significantly reduce the time and complexity when developing control systems with robotic arms, cranes, or links in a kinematic chain. The design module for forward and reverse kinematics uses the Denavit–Hartenberg notation.
The DHChain links (arms) are available as no-code modules, and the new kinematics visualizer simplifies the process by showing the design and simulation of the arm.
See the example project for a good introduction.
There are several UI/HMI improvements as we have added new features to several widgets. A very useful feature is to control any widget property from the control system with the new “dynamic routing” function. E.g. change the min/max in a meter or graph, button text or scaling.
Other enhancements include the control logic that can enable an overlay on a container (a UI section) to visually block a section, and overlay a semi-transparent grey colour to indicate that a sub-system is offline; the stacked widget now supports showing its pages in a slideshow; The slider widget now supports sending values when being moved and returns to the centre point.
See the release notes for a complete overview of the new features.
Working with projects on-site and remote maintenance
Installing systems on site, tuning, fault finding, incident analysis, general maintenance and support are important tasks. After in-depth interviews with our customers, we have added a number of features directly targeting these work processes over our last releases.
The latest release closes the feature list with the possibility to download a project from a site installation, work on the project offline and then redeploy the system, backup live (running) systems, a diff tool to see any changes from the actual installation and the offline backup and cherry-pick changes when deploying or fetching systems, run scripts on the remote controller from CDP Studio.
The database extractor tool allows you to extract and transfer a small part of data stored in the logger or database from a potentially very large database file. This is very convenient when connecting remotely for maintenance, incident analysis or working over low-bandwidth (satellite) networks.
Improving the life of the SW developers
In a large system, it is hard to remember all interdependencies between libraries and the “Build dependencies” feature builds the complete system in the right order saving a lot of trial and error and wasted time. Similarly, the “Build all projects” will build all your open projects in one operation.
Another convenience update is that built resources are now session based which means that you can work with different library versions in different sessions.
The no-code Block Diagram editor is now available in libraries, and you can create or modify reusable function blocks directly in the library. This really simplifies maintaining and updating your existing block libraries. Add prefixes to variables in code when adding Signals, Parameters or Alarms to better align names in code and the no-code editor.
Automatic testing framework
CDP Studio includes automatic testing scripts that you can use for your own developed function blocks and systems. The newest enhancements include the export functionality to automatically generate the test configuration sections of the test scripts and more complex value test expressions can be used in addition to simple node-based assertions.
The new language tools simplify the process of supporting multiple languages. The new tools extract all translatable texts in the user interfaces (UIs) and merge multi-language texts back into the system. CDP applications support switching between languages run-time.
Azure and MQTT updates
MQTT is updated to support the Azure direct method handling and message-based triggering support to ensure that no messages can be lost if the messages arrive faster than the MQTT client cyclic time.
A new cool example is the anti-sway crane project that cancels out the sway of the load when moved. This example is a very good demonstration of no-code and low-code programming. The only actual code is the physics formulas in the simulator. The Open-loop anti-sway block is available in the Equipment resource folder.