Externalizing Scripting/Code

I’m looking for a way to manage my script/code outside of Ignition’s IDE so I can manage it under version control … sound familiar? :slight_smile:

In it’s simplest form, I’m looking to call methods from outside libraries within script. I came across this post that seems to provide a good example of doing so.

So, my two questions …

  1. Are there any other options other than the one Kevin’s post outlines?

  2. What are the disadvantages of using the approach Kevin outlined on a much larger scale, (assuming disadvantages exist) … ?

Thanks!

Creating a new Ignition Module is the only way to add new scripting functions as far as I know. If any other way exists, it sure isn’t as nice.

The only drawback I can see on a large installation with many Ignition Servers would be getting new versions of your module on to each Ignition Gateway. This is only minor though, as modules aren’t typically very large and aren’t hard to install or update.

@michael.stofan Thanks for the feedback! I think I’ll be going forward with the module, was just curious as to any negative side-effects using this on a broader scale would have, (primarily those that affect performance).

As far as performance goes, there’s no drawback. In fact code you write in Java and expose as a scripting function via a module might even perform better than equivalent code written in Jython, but you’d have to do your own testing to confirm.

The big disadvantage I see is debugging might be a bit more difficult, especially if you’re not sure the bug exists in the bit of Jython code calling your modules script function or the implementation of that function in the module. Bugs in the module will require a module upgrade to fix - bugs in normal scripting can be fixed on the spot.

@Kevin.Herron Thanks, exactly the type of response I was looking for!