The control system engine
All the essential control system function you’ll need
The framework contains libraries with a wide range of essential features and functions required to build and run control systems. It comes with a complete run-time framework with 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.
System and applications
One system - many applications
A control system made with CDP Studio may consist of one or more applications. You can create separate applications dedicated to specific tasks that together form the complete control system. E.g. separate the user interface (UI) and functional logic in different applications. Applications can contain components that run with different frequencies and priorities. Applications can run on the same controller or on separate controllers.
All standard control system components included
All components that are part of the framework can contain objects such as signals, messages, parameters, alarms, properties, and a state machine. You create your own component by selecting which objects to add by right-clicking in your component source file (in the Code Mode). The framework generates all code required to include the object in your component for you.
Mathematical functions on input and output signals
The framework comes with a wide range of operators, 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. You can also create your own reusable library of operators. You can set the operators for both input and output signals. The input signal operators are processed before the value reaches the user code, while the output signal operators are processed before exposing the value for routing.View the operator video
The framework supports a wide range of standard industry protocols
The framework already supports the following protocols: MQTT, Modbus, CANopen, SNMP, NMEA, UDP, GPIO and I2C. We continue to add support for other protocols, and you can develop your own protocols if you have specific requirements and add them as standard reusable resources.
Add readymade 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. E.g. you can add a vision system from OpenCV for analyzing images from a camera.
Log any signal, view in Analyse mode or build dedicated applications
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 subcomponent, select what you want to log and logging starts as soon as you start your system.
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
External Control IO server
The External Control IO server, a powerful function allowing integration to a wide range of external services and systems. Some example of user are 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 server
- Send e-mails via SMTP(S) mail server
- Access (get or put) files via SSH (using SCP or SFTP protocol)