Realizer Virtual Machine
RVM helps you to separate the application software from the systems software in an industrial control system. Just like an operating system, it helps you keeping your focus onto the application and away from the PC-hardware details.
RV-Code generated by Realizer
The target module with the name RVM is essentially a code generator for the dedicated RVM virtual machine. This virtual machine is available for Actum Solutions.
At run-time, all you need is:
- Basic system software (h/w initialization, I/O drivers, etc.)
- Realizer Virtual Machine (RV-machine) loaded into code memory
- RV-Code (the application) loaded into (data-) memory
A run-time environement with several demo-applications is available from this web site.
RVM overview
The RVM runs in the following environment:
![]() |
Sample code
In essence, the RV-code is loaded into the data memory space. After that the following sample code is enough to let it run:
int rvmThread(void)
{
u32 rTick = 0;
u32 rPrevTick = 0;
int progSize =
swapLong(vmHeader->progSize);
initHardware();
realizerVMInit(
progCodeHandle,
varHandle,
inputHandle,
outputHandle,
progSize);
while(1)
{
getInputs(inputHandle);
rTick = rtcRead();
realizerVMRun(
progCodeHandle, // RVM-code
varHandle, // application data
inputHandle, // available inputs
outputHandle, // necessary outputs
rTick - rPrevTick, // elapsed time
progSize);
rPrevTick = rTick;
refreshOutputs(outputHandle);
}
}
This is an example of the code delivered with the RVM Target Module. It represents the code needed to implement the part designated as RVM Control panel in the diagram above.






