Community

Running RTOS on a Virtual Machine?

Is there a way to run INtime/RSI on a virtual machine?
I realize that this is kind of a funny request, but I’m trying to do some software testing that relies on INtime/RSI without really stressing it. It just needs it to exist and more-or-less behave nicely (if I don’t ask too much of it—like starting the EtherCAT network).

Have you guys ever tried something like this? I realize the inherent quirkiness of it, but some hypervisors allow direct pass-through of hardware (e.g. CPUs and NICs) to the VM.

Unfortunately INtime for Windows does not support being installed alongside or within a virtual machine. It requires some minimum amount of virtualization capabilities which are not available when either a virtual machine is installed (or running. I tried this a while ago), or when installed within a virtual machine.

However, INtime does have a hypervisor product. Though we have decided not to pursue it for the current releases of INtime, we may look more into it in future versions.

That said if you are just looking to do software testing, have you looked into mocking frameworks? If you simply need to “start” the network, or respond to simple state changes that may be sufficient.
If what you’re trying to do is more complex then I think using the whole motion controller is probably the way to go (this is how we do our testing at RSI, though we split up our tests between those that requires hardware and those that don’t)

I just place my RMP in a separate project from my main program. I can then make another test project with empty methods to mock the RMP methods.
Now you only need to change the reference to point to the test project on your dev machine, and to the real RMP project for your deployment.

Well, I’m testing my installer, but would like to be able to quickly revert to a “clean” start. The installer itself does some real-ish RMP/INtime operations. It seems like creating a sufficiently interchangeable mockup would take more time than it would save me.

I see.
My solution would not be any help to you .