Duplicate projects pointing to different PLCs

I have a project where there are multiple areas in a warehouse each with their own PC and PLC. I have an Ignition project that would run on each PC. I am trying to find the best way of deploying this since the project is exactly the same for each area except each client would need to connect to a different PLC. I can create different devices on the gateway and then each project would be the same except the tags would each point to a different device. This method would be cumbersome when a change is required. I would have to make the change to each project or go through the “copy project - export tags - modify device in path - import tags” process all over again for each change. Is there a way to dynamically change the tag path? I could have an into screen where the user would select the area (or maybe this could be passed as a parameter somehow) which would define the tag paths. This way it would only be one “project” on the server.

Any ideas would be appreciated. Thanks.

You can use indirect tag binding for this. If you create an identical SQLTags folder structure for each PLC, place each of these structures in a folder that identifies the area, then use indirect bindings for everything on the screen. In the screenshots I attached, I used a dynamic string property on the root container of the window to determine which areas tags I want to use. All I have to do is change that property from ‘Area1’ to ‘Area2’ or ‘Area3’, and the LED display component will switch tags.

If you have multiple windows in your project, bind the dynamic property on the root container to a Client tag, and do the same for each window. With proper use of indirect bindings in windows, expanding a system can often be as simple as just adding new tags.

Does this make sense?

Good luck,


Thanks for the pst. I am familiar with that concept. Actually within each area are multiple machines that I have in folders and I am using indirect binding for those. That technique should work pretty well. The only drawbacks are: 1) The user will have to select the area every time the client is launched, and 2) When changes are made which involve adding tags the tag will need added to the folder for each area.

It seems that somehow manipulating the device portion of the OPC Item Path is the best approach but I don’t see a way to do that.

Is there any way to pass parameters as part of the project launch? For example if I could pass the “area” as part of the link to the project that would be perfect. Perhaps something could be done in the client startup script to look at where the client is being launched from (IP address) and determine the “area” from that. If it is not one of the pre-defined clients then the “area” would have to be selected manually.


Yeah, you could probably use IP address/host name/user id to try to determine which client to use. The only way to pass a parameter into a project that I can think of is to use system.util.retarget. I think you would basically have to make an “empty” project for each area that would immediately retarget to the main project, passing in the area name to use. You would then have a distinct web link to load the project for each area. I’m not sure if that’s appealing to you or not, but it’s all I can think of.


I think the retarget idea for the client launch is terrific. I will play around with that.

Yeah, I was going to suggest retargetting too, but Dan beat me to it.

have 3 projects:

1: The actual project, hidden from the launch page.
2: The project for area 1. On startup it retargets to Project #1 with a param for area 1.
3: The project for area 2. On startup it retargets to Project #1 with a param for area 2.