Best practices for off-line development

Hey Everyone,

Still kinda new to Ignition and here's what I'm trying to determine.

If I have an end user who has an Ignition system all set up and running, and we're adding a new PLC to their system with relevant PLC tags and HMI screens what's the best way to accomplish this?

I'm thinking I just set up an Ignition system in house and create a new project and do all my tags and screens there, and then when everything is tested off-site, I can then take that project to the end user's system and add it or import it there when we're ready to implement the new PLC?

Is that correct? Am I oversimplifying this? What steps am I missing? Is there a better way?

Thanks in advance!

Mostly. Some of what you need to do is not stored in projects, so there will be some other tasks during deployment. Some considerations:

  • Use a VM or containerized install of the same exact version that the client is currently using. If you develop offline with a newer version, you won't be able to import the project to the client's gateway. Avoid using a laptop install, unless your laptop is running the Ignition VM.

  • The device name you use for the PLC (or OPC connection) will not be part of the project. For just one, it is probably easiest to simply create by hand on the client gateway.

  • Gateway tags are global. Whatever tags you need to use, you will need to export from your dev system and import into the client's gateway. If your client is using named tag providers, you need to match.

  • Import the project to the client after all of the other gateway global operations.


Thank you!

That makes sense to me. I appreciate the things to consider that's exactly what I was looking for!

If I could impose and piggyback off this question. Most of my clients I direct remote connect to an existing gateway/SQL, so integration of a new project within the global gateway, I/O servers and Historian isn't an issue. I have a current project that I have to develop offline and merge later. I backed up the customer's existing gateway and restored it within my VM. I created the same SQL database on my local VM and temporary pointed the gateway connection to my local machine instead of the remote SQL box of the customer. My final question, is there a painless means to handle the OPC tags? I don't have the PLC's to physically hang on my development machine to mimic the customer. I'm primarily working within one PLC OPC connection and a new tag provider I created. Is there a way to temporarily 'fake' an OPC connection so that I can get rid of all the configuration errors in the tags? I liberally use UDT tags and templates, and indirect tagged popup windows. While I'm reasonably assured of my methodology, would be nice to see visualizations and passing of my tag strings, without red configuration errors on all my widgets.

Easiest way is to convert to memory tags with a script. When changing to memory, the OPC config isn't lost, so you can use that to know which tags you need to convert back in the script

1 Like

Nick's suggestion is often the best choice, with one exception for me: When the target is a Logix processor, I use my EtherNet/IP Driver's emulation ability to substitute for the real device. Since it honors IA's two-hour trial, it is often simpler and cheaper than trying to use Rockwell's emulators. See this topic:

You deserve enormous credit for this offering. RSlogix Emulate is a pain for me as it exists on a different VM environment. 10 minutes later I can now verify my tag structures with your module. Ignition should buy/include this as a standard offering. It already uncovered one typo in my UDT structure. Kudo's!

1 Like

That doesn't matter. I tested all of the time with ignition and emulate on different boxes.

Emulate definitely has its shortcomings, but being on different VMs is a non issue.

It's not an issue in that its unusable. It's an issue in regards to switching between VMs. All my VMs are on one box. Rockwell on one VM, Ignition on a separate VM. Again, not insurmountable, but using the tag emulator from pturmel was lighting quick to configure. If this was all new code that needed to be vetted, then I could see the value of loading it into RSemulate, although with safety PLCs that's an issue too, since last I knew Emulate doesn't support them. But this is a project using known code, just with a new Ignition front end instead of FTSE. So, the only value add I need is a working OPC Tag DB to make sure all the UDTs and template tag parsing is correct.

Let me point out that the module's utility as an emulator alternative is a happy accident. :grin:

The point of the module is high-performance communications--well beyond the native Logix driver's capabilities, and enable connections where no other solution exists.