All you need to develop and run control systems
The CDP Framework is a complete framework containing libraries and functions – all you need to make reusable cross platform code. The framework ensures high performance execution of real-time and distributed systems. It includes API’s, industry protocols, state machine, signal and event handling, messaging, parameter setting, and a wide range of useful functions.
In essence, it forms the engine in your control system.
The control system engine
One system –
CDP Studio control systems may consist of one or more applications. Create separate applications dedicated to specific tasks that together form the complete control system. You can, for example, separate the user interface (UI) and functional logic in different applications. Applications can contain function blocks that run with different frequencies and priorities. Applications can run on the same controller or on separate controllers independent of operating systems and hardware types.
Seamless multi-controller systems
CDP Studio is object oriented and the data propagation (signalling) system uses name-based routing. These features give you the tools to create highly distributed control systems. Functions can easily be moved between applications by simple drag-and-drop. The system logic is separate from physical distribution, which permits you to group functionalities and define distribution in accordance with the hardware capacity and cost.
True real-time control
The CDP Framework supports high performant and true real-time control systems. The physical performance of the target hardware is the only limitation to the system performance. For multi-core CPUs you can specify which CPU core functions run on and with which priority. Critical run time function blocks can be set to millisecond execution intervals or faster. CDP is already in use in thousands of mission critical real-time control systems.
Third-Party and Open Source
features and functions
You can add new features and functions from third-party vendors to the framework. All you need to do is run the wizard that will guide you through the process. The features and functions you add will be available as standard components in the IDE. For example, you can add an open source vision system from OpenCV for analysing images from a camera.
All the essential control
system functions you need
The CDP Framework contains a comprehensive set of features that are used in control and automation. These pre-made features are available with simple drag-and-drop and configuration. This reduces development time and increases reliability.
The toolbox already supports the following industry protocols: OPC UA, MQTT, Modbus, CANopen, SNMP, NMEA, UDP, GPIO and I2C. We continue to add support for other protocols, and you can develop your own protocols and add them as standard reusable resources.
Control system logic is placed in function blocks, these have standard APIs and base functionality that includes signals (variables), messages, parameters, alarms, properties, and a state machine.
Framework API and web server
The Framework comes with an API that allows Python, Java or Javascipt programs to connect to running CDP applications. The API allows you to communicate with the control system function blocks to read or set any value in the system. In this way, external programs may form an integral part of a control system.
The Framework’s web server can similarly be used to connect HTML5 user interfaces, interpret them, and set any value in the control system.
The framework comes with a wide range of mathematical functions, such as add, multiply and divide, PIDRegulator, minimum and maximum limits, Kalman filter, signal delay, mask, mathematical expression evaluation, moving average, force operator, invert, scaling, cron (time) and signal generators. You can also create your own reusable library of math functions. You can set the math functions for both input and output signals. The input signal math functions are processed before the value reaches the user code, while the output signal math functions are processed before exposing the value for routing.
The Logger enables logging of signals and property changes in CDP-based control systems and to view the data in Analyse Mode. Simply add a CDP Logger sub-component, select what you want to log and logging starts as soon as you start your system.
Supported datastores (databases):
- CDP high speed compact datastore
- CSV files
Key features include:
- Seamlessly view of logged and real-time data in Analyze mode
- Download selected information from remote installations for off-line analyses and support
- Log value changed above a set threshold to only log interesting changes and to reduce stored information
- Build your own applications utilizing logged information or use CDP Graph Widgets to create your own GUIs
- Create a second database with low resolution data conserving all signal peaks for long term logging: KeepHistory
- Log data from non-CDP systems using a CDP IOServer
- Database included, custom datastores are also supported
- In-memory logging. The in-memory buffer is written to the datastore in the event of an incident
Integrate external services
The External Control IO server, a powerful function allowing integration to a wide range of external services and systems. Some examples include: send e-mail, logging to cloud, use of REST, check connectivity and run commands on failure, get weather forecast, log to text file, get JSON values, get UPS status, run background tasks, create RRD and send SMS.
- Run any command (executable) on CDP controller
- Invoke web requests (for example REST) on any remote HTTP(S) server
- Access (read or write) any file on CDP controller
- Access (get or put/append) files to/from FTP(S) server
- Access (get or put) files to/from TFTP serverSend e-mails via SMTP(S) mail server
- Access (get or put) files via SSH (using SCP or SFTP protocol)
Cross platform: Intel, ARM,
Linux and Windows
CDP Control systems can run on target systems running Linux or Window on ARM or Intel based controllers and industrial PCs.
CDP Studio comes with a comprehensive set of toolkits (build environments) that can cross compile and build your control system for the target device. Just select the target device type and operating system and CDP Studio will cross compile with the correct set of compilers and libraries for the target system. The toolkits are continuously maintained and updated.
The toolkits can be installed on centralized servers and in Dockers to ensure that all systems are built in a controlled environment and can be reproduced. Having pre-made and maintained toolkits significantly simplifies creating systems with high level programming.
CDP Studio supports a wide range of hardware. Read more on the Compatibility page.