Running multiple instances of PACSim on one PC


We are looking migrating an LCM4-based control system to EPIC.

We have a cluster of up to 5 modules. Each module has its own strategy running on its own LCM4. We would like to be able to build a stand-alone simulator for this cluster.

That means we need to run up to 5 instances of PACSim.

It seems that when you run PAC SIM, the program starts up and always uses 22001 as its input port, so we cannot run multiple instances of it on the same PC.

Is there a way we can configure the port so we can start up more than one instances of PACSim on the same PC?


The port number is not the problem. The problem is that the software checks if it already running.
If it is, it will not start another instance.

SoftPAC will run 64 charts, so you could run everything you need in one instance of SoftPAC.


I do not think that combining all the charts to run on a single SoftPAC would work. Our distributed system is somewhat modular, and some of the nodes are very similar to each other (that is, they have the same set of I/O, and run the same charts).

I will try to explain our problem in terms of the PAC bottling plant demo. Let’s suppose that you have two bottling plants side by side, and you also have a supply center that supplies empty bottles to these plants when that plant needs more bottles. So you build a control system for the supply center that monitors each plant, and when that plant needs bottles, your control system loads up a truck and sends it to the bottling plant. How would you design and simulate this system?

In my opinion, an architecture with a single controller that handles all the I/O for both of the plants and the supply center has several shortcomings:

  • The control for all of these it tightly coupled. If you controller goes down, you have to shut everything down.
  • This architecture does not scale well, either. If you build a new bottling plant, you have to clone a new set of charts for the new plant, and also configure the new I/O. When you clone the charts and variables, you would need to make sure all the names are unique. If you need to make a logic change to one of the bottling plant charts, you need to update the cloned charts for the other bottling plants.

An architecture where you have separate controllers for each plant and one for the supply center addresses the above shortcomings.

  • The control is decoupled
  • This solution also scales better. If you build a new bottling plant, you can use the same set of charts for your new bottling plant. The only differences in the charts would be some network configuration.

To simulate this a system (with two bottling plants and a supply center) now requires that you have three separate sets of charts running on three separate controllers.


Just to be clear, I am not suggesting you run this way, but rather I was suggesting an option for the original post… a way to simulate, test etc.