Simulation

For testing and validation purposes, PMP provides the concept of simulated controllers. By using processing blocks, the motion platform also enables the simulation of plants. This allows for software verification without the need for physical controllers or plants.

Controller

Simulated controllers simulate the behavior of a physical controller. A simulated controller is created from an XML controller description.

After creation, interfacing with a simulated controller is identical to interfacing with a physical controller. Equivalent to physical controllers, simulated controllers keep running when the user’s system instance is destroyed. To destroy a simulated controller explicitly, use the destroy or dispose functionality.

Note

Simulated sub-controllers are automatically destroyed when their parent controller is destroyed.

To create a simulated controller the user must provide settings to configure the simulated controller as well as settings to configure the simulator framework as described in the following sections.

Multiple versions (Windows OS only)

PMP supports installing multiple versions of the motion platform when using the Windows OS. The location of each installation is stored in the Windows registry based on its release version. When creating a simulated top-controller, the version of the client library is communicated to the simulator service. The simulator service uses this version to determine the location of the corresponding installation from the Windows registry.

Creating simulated top-controller on Windows sequence

Creating simulated top-controller on Windows sequence

See also

Create a simulator

A guide to create a simulated system via PMP API.

Create a simulator

A guide to create a simulated system via PMP tooling.

System description

System description XML.

Controller description

Controller description XML.

Top-controller bus creation

On hardware top-controllers, it is possible for some buses to be physically absent from a controller. In this case, it is possible to mark a bus as optional in the top-controller model. If an optional bus is not physically present on the controller during startup, that bus will not be created.

On the simulator, which buses are created depends on the method by which the top-controller is created.

Sub-controller bus assignment

Similarly to hardware sub-controllers simulated sub-controllers are connected to a specific bus. Depending on how the sub-controller is created the sub-controller is either connected to a user-specified bus or to a bus determined by the top-controller.

There are 3 methods to create a simulated sub-controller:

Bus selection strategy

When the user does not specify a bus for a created sub-controller, the controller determines the bus to connect the sub-controller to as follows:

  1. First all single sub-controller buses (i.e. buses that only support a single sub-controller) are considered, ordered by their default name. As soon as an empty single sub-controller bus is encountered that bus is selected to create the sub-controller on.

  2. Once all single sub-controller buses have a connected sub-controller, multi sub-controller buses (i.e. buses that support multiple sub-controllers) are used, ordered by their default name, until their maximum capacity is reached.