Volumes have been written about the proper use of tools within a software application and how to create projects for maximum efficiency in terms of development and execution. Senior programmers and leaders of development teams strive to write and deploy robust solutions that are simple, efficient, easy to debug, and easy to adapt in the future.
Inductive Automation’s Ignition is multi-faceted software that continues to revolutionize industrial applications. The package includes a powerful scripting tool which, when combined with the software’s other capabilities, provides efficient and optimized solutions that can solve most SCADA and business integration challenges.
Scripts can be called within Ignition’s Vision and Perspective environments as well as part of alarm pipelines, reports, and more. These capabilities can be attached to Vision components and windows, Perspective components, and with tags, client events, and session events. Furthermore, the library functionality extends the functionality of Ignition by reaching outside the native application and into business systems. For example, querying a database to retrieve data from a higher-level system or placing a series of data back into a business system based on a scripted event are great uses of the scripting library functionality.
The scripting tool itself provides extensive capability within the native library. It also uses and promotes the use of scripting packages which are folders that hold multiple related scripts. These libraries and packages are important components of optimized and validated routines within an automation project. The friendly user interface can be tailored to the developer’s desires and allows access to all or a selected portion of the back-end components. It provides access to both the system and project’s own custom libraries within the code, hints for writing scripts via an autocomplete option, powerful search and replace functionality, and flexible scheduling of execution. The resulting scripts and script packages can be used repeatedly throughout different areas within a project and can be used as inherited resources in other projects.
At ECS we have found that this allows us to maintain our quality control within applications, as we can easily see where scripting has been deployed and debugged using standard Ignition tools. The libraries also make it easier to test functions and audit code to ensure compliant with our standards. They also make applications easier to review and promote code reuse. Such capabilities help a project lead divide the work required for a given application among those best suited to deliver that portion.
As with any software tool, you must be careful not to overuse its power. Developers should always use the simplest tool available to reach the end goal. If a simpler tool within Ignition can be used for lower-level functionality, then use the simple tool. Conversely, if something complex needs to be executed within a package such as Java or Python, then it is always best to use that application and perhaps call that complex function with an Ignition function. For applications in between these two extremes, libraries and library packages function as an optimized middleware for industrial systems.
Randy Otto is CEO of ECS Solutions, a certified member of the Control System Integrators Association (CSIA). For more information about ECS Solutions, visit its profile on the CSIA Industrial Automation Exchange.