SoftPAC - multiple instances?


We have a rather complex application which uses 2 to 6 PAC controllers, lots of I/O attached to them and a proprietary HMI that talks to the strategies on the PAC boxes. I need to write a simulator for testing our HMI - basically Windows program that connects to the Strategies on the PAC controllers via IP sockets. When the HMI tells the PAC strategy to perform some process, the simulator program would supply the strategy with whatever it needs to “fake out” the HMI into thinking the process was run. Set I/O points, etc.

I have a good idea how to do this with actual PAC controller hardware – I’m thinking it would be nice to do this all without hardware, though. Running SoftPAC for example. Thing is, it looks like SoftPAC only allows once instance to run at a time. If I want this simulated system to all run on a single PC, can I use multiple instances of SoftPAC somehow?

If not…is it conceivable I could run 3 or 4 virtual machines on the PC, each of which is running SoftPAC and have them talk to each other? Has anyone done anything like this?

Thanks for the input!

Hello markmalin,

I’m not sure why, if you have the hardware, you’d want to fake out the hardware. I could see how you might want to physically disconnect the I/O (so your real stuff is not actually connected during testing). But then you could just run your REAL hardware/strategies w/out the real I/O. A few options for doing that (using IVALs, Simulation commands) are discussed in [U][B]this post[/B][/U].

Sounds like PAC Sim could work for most of what you describe, but you’re right, you can only run on PAC Sim or SoftPAC per PC. Trying to get more than one (w/VMs, etc.) sounds like more work than either borrowing another PC (PAC Sim is free!) or merging your strategies. Since SoftPAC can run up to 64 charts at once (vs. 32 on a PAC-S or 16 on a PAC-R) you could export charts from the “extra” strategies and import them into one big strategy.

But again, I’m not real clear on exactly why you want to test/simulate this on a PC if you have the actual hardware?


The deal is, we have this $2 Million semiconductor processing tool we sell which runs on Opto 22 PAC controllers. It uses up to 6 separate PAC Controller boxes which we’ve designed, each box with its own set of I/O modules and PAC brains. We have a central custom GUI written for Solaris which talks to ALL the PAC controllers via TCP/IP using sockets. The GUI controls the 5 or 6 PAC boxes, which control the $2 Million instrument. The systems are running everywhere from a minimum of 2 PAC controller boxes to 6.

The PAC controllers each run a different strategy. I need to write a simulator so that we can test the Solaris GUI, the PAC strategies, everything IN THE LAB without the hardware. If I need to debug an issue in the field, I need a way to completely isolate the tool from the strategies, from the Opto hardware, etc. So I need to be able to run the GUI and the Opto strategies ONLY in a “simulator” mode without hardware, and basically “fake out” the strategy to “inject” appropriate I/O values in this simulator mode so I can run the GUI. So you see, I can’t just go borrowing a PAC Controller from someone at a customer site. It seems like SoftPAC would be the only solution for this, however I can’t carry 6 laptops with me so that I can run 6 instances of SoftPAC running our 6 different strategies. And I can’t combine everything into one strategy, because then it’s really not the system we designed.

The only solution I can see is to have multiple Virtual Machines running on a single machine, each of which is running SoftPAC running one of our strategies. Can you help?


Hi Mark,

I get that you’d not what to test with the actual hardware connected to your expensive equipment. And it sounds like the actual hardware you’re using might be the SNAP-PAC-R series (where the controller and the I/O are in the same box, which makes it trickier to separate one from the other, you can’t just unplug the connection to the I/O).

However, although it’s conceivable to run 6 VMs each with its own version of SoftPAC on it, I’m not sure that’s the better idea than having 6 more SNAP-PAC-S1s (or -Rs or whatever controllers you’re using) for your lab. Like you said, that’s “not the system [you] designed.” My two main concerns:

  1. SoftPAC typically runs much faster than hardware-based PACs, so I'd be concerned about potential timing differences. How fast is your process/communication?
  2. Also, we don't "officially support" running SoftPAC on VMs (too many combinations to test thoroughly). But I know people are doing it.

If you’re convinced that’s the best plan for your situation, might be worth the effort to spin up one or two VMs and see how it goes. You could also check w/our support team to see if they’ve heard of one VM working better over another. I’ve had good experiences w/VMWare in the past but haven’t used it for exactly this purpose. I know some folks are using MACs run Windows virtually to use the PAC Project suite including SoftPAC – runs very fast but can sometimes be tricky working out the networking if/when you try to get one VM communicating with another.

I hope that helps!


I’m in the process of trying that now. I think that’s my only situation. The thing is, for our application it’s sometimes not so much “not wanting to have extra PAC controllers in the lab” as it is being on a customer site in a different country with your laptop and not being able to connect to their $2M machine because they are constantly in use.

Anyhow, i’ll see what I can come up with