Control loop customizationΒΆ

PMP motion controllers and PMP EtherCAT SubDevices support real-time execution of custom code via Processing blocks. A processing block is a block of code that consumes data from its inputs, processes this data based on the provided configuration, and produces the result on its output signals. This functionality can be used to run control loops, compensation algorithms, coordinate transforms, custom state handling, etc. Multiple processing blocks can be coupled together to create complex, cascaded control structures.

Custom code can be uploaded in binary format to one or more motion controllers using the PMP Template mechanism. Based on a single uploaded binary multiple template instantiations, i.e. Processing blocks, can be created.

Processing block binary files can be created using the toolchains provided in the PMP installer. Code can be generated via Simulink code generation, or custom C/C++ code can be used. Besides these toolchains, PMP also provides a variety of pre-built Processing blocks for commonly used functionality, such as standard control networks, signal routing/conversion and waveform generators. The source Simulink models of these blocks are provided, such that they can be adapted and custom variants can be made if desired.