Scripts in Project and Global scope

I’m comparing ver 7.9 to 8.0 when it comes to scripting in a project versus global context and there seems to be differences. In the “Project Library” section I’m curious to know if these are strictly for project based script referencing or do they have a global presence as well? Just trying to learn a little bit more about this so if I have lots of coding that needs to be done I want to make it portable and easier to troubleshoot. Thanks for the insight. Any examples might be helpful!

Ignition%20Prop%20Browser

The scripting architecture in v8 is substantially different. There is no longer an automatic “shared” scope. There is no longer a requirement for a “project” prefix for script modules. The shared scope concept has been replaced by two separate functions:

  • Project inheritance, where a “leaf” project inherits the script modules from its parent, and the parent’s parent, up the chain. Such script modules are not editable from the leaf. You must open the parent project and edit there, as needed.

  • A Global Scripting Project. One project, possibly but not necessarily a leaf project, is designated as the script scope for things (like tag events) that run scripts outside of project scope.

Upgrading from 7.9 to 8.0, or restoring a 7.9 backup into 8.0, triggers a bunch of compatibility conversions that mitigate the differences. Specifically, the 7.9 shared scripts are wrapped into a project, with each of its script modules tucked into a script package named “shared”. This project is designated as the Global Scripting Project. All other projects are set to inherit from that project, thus mimicing the environment of 7.9. You are free to then re-arrange as you see fit.

5 Likes