Generate C Code from a PLECS Model
The PLECS Coder generates generic ANSI-C code from a PLECS Blockset or PLECS Standalone model. The code can be compiled to execute on the simulation host or a separate target, such as an embedded control platform or a real-time digital simulator. The model to be translated into code may be a physical system or control logic.
A typical application is hardware-in-the-loop (HIL) simulation, where real control hardware is connected to a virtual plant model simulated on a real-time simulator. This approach allows easy verification and validation of the control hardware and software without an expensive power stage.
Alternatively, the generated code can be compiled and executed on the host to reduce the simulation time of complex models.
Support of Simulink Coder
If you generate code for a Simulink model the PLECS Coder works hand in hand with the Simulink Coder® (formerly Real-Time Workshop). When the build process is started, PLECS automatically generates code for the circuit block and inserts it in the appropriate locations. In this mode, PLECS can generate code for two different targets: the Rapid Simulation target (or RSim target) and the Real-Time target. By default, PLECS automatically selects the correct target depending on the target settings of Simulink Coder.
Code Ready for Deployment
The PLECS Coder can produce code for a specific hardware target. Target support packages permit customizing the code generated for virtually any CPU/MCU-based platform. A simple association between signals in a PLECS model and the physical input and output pins on a target is made directly in the schematic via I/O blocks.
- RT Box Target
The RT Box Target support package for PLECS directly targets the PLECS RT Box. The PLECS RT Box component library contains blocks for configuring general analog and digital inputs and outputs to and from the unit. Specialized blocks are included for capturing PWM signals from an external source and generating quadrature encoder signals directed to a controller. Below is an example of an offline PLECS model schematic of a three-phase solar inverter system where real-time capable code for the plant, incoming PWM signals, and outgoing current and voltage measurement signals can be generated using the PLECS Coder. The External Mode allows the user to connect an offline PLECS model with a real-time model running on the RT Box in order to tune parameter values on the target and display captured online data in a PLECS Scope.
- TI C2000 Target
The PLECS Texas Instruments (TI) C2000 Target Support Package supports code generation and External Mode operation for the TI 2806x, TI 2833x, TI 2837x, and TI 28004x microprocessor (MCU) families. The TI C2000 Target component library includes blocks to model and program the MCU peripherals for sensing and actuation. Embedded control logic can be implemented using standard PLECS library components. There are two primary methods to deploy generated embedded code onto a TI C2000 MCU. You can directly program the target device from the PLECS application, or generate embedded C code for the specified target into a template Coder Composer Studio (CCS) project. Once the generated code is deployed on the target device, you can connect via the External Mode to inspect real-time signals and adjust controller set points and parameters on the fly.
- Imperix Target (third party)
The PLECS Target Support Package developed by Imperix can be used to directly interface with their controller prototyping platforms, including the B-Box RCP unit and the B-Board PRO. Watch an introductory video or to learn more information and download the TSP, visit Imperix's website:https://imperix.com/software/acg-sdk/plecs/
PLECS Coder License
PLECS licenses are typically tied to a combination of your personal login name and the 12-character hexadecimal MAC address of the local area network (LAN) ethernet card in your computer.
You can obtain this information from within PLECS application (both PLECS Standalone & PLECS Blockset) as follows:
- Select "PLECS License Manager" from the menu "Help" in the schematic editor.
- Click "Get HostID...."
- Click "Copy to clipboard" to copy the text to your system clipboard so that you can conveniently paste it (e.g. into an email or a web form.)