Whether you’re a seasoned professional or new to industrial automation, everyone makes development mistakes now and then. But some mistakes are more common than others. Understanding how to avoid these integration issues will not only improve your current projects, but equip you with the tools and techniques necessary to streamline development and reduce rework in the future.
3. About Inductive Automation
About Inductive Automation
• Founded in 2003
• Leader in HMI, SCADA, MES & IIoT software
• Used by 56% of Fortune 100 companies
• Over 2,700 integrators have joined our
Integrator Program
• Based in California, with international
distributors around the world
Learn more at: inductiveautomation.com/about
4. Ignition: The Industrial
Application Platform
• Unlimited licensing model
• Cross-platform compatibility
• Based on IT-standard technologies
• Scalable server-client architecture
• Web-managed
• Launch on desktop or mobile
• Modular configurability
• Rapid development and deployment
One Universal Platform for HMI, SCADA, MES & IIoT:
One Universal Platform for HMI/SCADA, MES & IIoT:
• Unlimited licensing model
• Cross-platform compatibility
• Based on IT-standard technologies
• Scalable server-client architecture
• Web-based & web-managed
• Web-deployed designer & clients
• Modular configurability
• Rapid development & deployment
Ignition: Industrial Application Platform
7. On our last webinar, we covered:
● Data collection & logging
● HMI design
● Scripting
Previous webinar:
https://inductiveautomation.com/resources/webinar/
common-project-mistakes-and-how-to-avoid-them
Last Time on ‘Common Project Mistakes’
8. Ignition is so easy to use that sometimes developers
try to “brute force” their way to finding a solution.
Ignition is designed to:
● Build assets
● Repeatedly use and/or modify them
Recognize Common Mistakes
11. Visualization
Solution: Parameterization & Indirect Tag Binding
Parameters can be added to views and leveraged inside of
bindings on the view to make the view dynamic.
Benefits:
● Reduce amount of project resources that need to be
managed.
● Reduce initial development time.
● Reduce time, effort & cost of future changes.
12. Visualization
Solution: Implementing View Parameters & Indirect Tag
Bindings
Adding view parameters to a view and utilizing them inside bindings and
scripts on the view is a simple way to create dynamic, reusable visualization.
14. Visualization
Mistake: Poorly Planned Transforms
When working with a transform, always
start with the end result in mind.
In this example, we jump into binding the
dropdown options to a named query.
This approach will not give you usable
options.
The example dropdown shows us a list of
states when we wanted a list of site
names.
How do we get the options we want?
15. Visualization
Solution: Plan the Transform
Define Instance Structure First.
• Start with a standard component.
• Get to know the component structure.
• Copy instance to your favorite text editor.
In the dropdown example, we can see that a standard
dropdown has an array of options. Each option has a value
and label.
{
"value": "",
"label": ""
}
16. Visualization
Solution: Build Transform Based On Plan Here is a basic example for a script transform that will
return a list of options from results such as a named
query.
Step 1: Define empty list of options.
Step 2: Loop over records returned by query.
Step 3: Build the instance. Use the copied structure from
the standard component.
Step 4: Add the new instance to the list.
Step 5: Return the options.
17. Visualization
Mistake: Missing Property Changes in Transforms
Text value is bound to state property.
Both state and mode are used in the
transform.
Changes on state property will update
the text value.
Changes on mode property are
ignored.
We need to monitor property changes
on both state and mode.
18. Visualization
Solution: Use Expression Structure
Text value is bound to an expression
structure using both state and mode.
Changes on state or mode
property updates the text value.
19. Visualization
Mistake: Overlaid Components for Styling
Tedious Approach:
• Create one custom component for each state.
• Toggle visibility based on state
• Overlay the components in a coordinate container.
❌ Not Reusable:
Each component is custom configured.
The colors and other styling are not reusable elsewhere.
❌ Not Maintainable:
New states require new components.
❌ Not Mobile-Responsive:
The colors and other styling are not reusable elsewhere.
20. Visualization
Solution: Use Style Classes
Best Practice Approach:
Create a style class for each status.
✓ Reusable:
These classes can now be used anywhere in
the project.
✓ Maintainable:
Style changes are now made in only one place
and apply everywhere in the project.
✓ Mobile-Responsive:
Flex containers may be used when components
are not overlaid.
21. Visualization
Solution: Map Style Class Using a Transform
Reusable and Maintainable Solution:
• Create only one component.
• Define style classes
• Bind the style to a property.
• Use a transform to map each state to a style.
Updates to style class will apply to all
components using the class.
Formatting changes will only need to be made
on the one component. No need to copy-paste
changes.
22. Visualization
Mistake: Overwriting Themes
Themes
• Provide initial styling
• Overwritten by styles
• CSS-based
• Inheritable
Customizing
• Advanced feature
• CSS knowledge required
• Study the README
Do Not Overwrite Built-In Themes
Changes made to the built-in theme files
will be replaced on Gateway start-up
23. Visualization
Solution: Inherit from Base Themes
Start With Built-In Themes:
• The base theme is the light theme
• All themes extend from the base theme
• Other themes are derived from the base theme
• Use any derivative theme as an example
• Adapt a built-in theme or create a custom theme
24. Visualization
Solution: Adapt a Built-In Theme
• Add your own CSS file in a custom directory
• Import Custom File In Entry File
• Place custom import after other imports
• Use double quotes around file names
• Add semicolon at the end of each line
Backup your themes files!
@import "./light/index.css";
@import "./custom/overrides.css";
25. Visualization
Solution: Custom Themes
• Start with built-in theme as an example
• Create your own entry file in themes directory
• Build your CSS
• Select your theme in the Session Properties
• Backup your files
26. Visualization
Shortcut: ALT + left click
Instead of double-clicking to deep select and drill down
to nested containers or components, using ALT + left
click allows you to immediately select through to the
“deepest” component or container that the mouse cursor
is hovering over.
Keyboard Shortcuts:
https://docs.inductiveautomation.com/display/DOC81/Ke
yboard+Shortcuts
Select Through:
https://docs.inductiveautomation.com/display/DOC81/W
orking+with+Perspective+Components#WorkingwithPer
spectiveComponents-DeepSelection
27. Recap
Visualization Mistakes:
● Rebuilding assets
● Poorly planned transforms
● Missing property changes
● Overlaid components for styling
● Overwriting themes
Solutions:
➔ Dynamic visualization
➔ Plan with end result in mind
➔ Expression structures
➔ Map transforms to style class
➔ Custom themes
28. Alarms
Alarms are instrumental in preventing
downtime but a poor alarm setup
greatly diminishes how useful they are.
Alarms should never be ignored.
31. Alarms
Mistake: Not setting the display path for alarms
Not setting the display path to a meaningful value will instead
simply display the path of the tag that the alarm is configured on.
33. Recap
Alarm Mistakes:
● Not Prioritizing Alarms
● Not Setting the Display Path for
Alarms
Solutions:
➔ Prioritize Alarms
➔ Set the Alarm’s Display Path
34. Security
Mistake:
• No security
• Everyone in admin role
• Everyone shares admin login
Solution:
• Implement security measures
• Separate users by roles
Ignition was designed with security in mind.
Set security on both Gateway and Projects.
37. Security
Mistake:
No security on project
components.
Solution:
Establish security based on
roles.
• Assign user roles.
• Restrict access based on roles.
40. Security
Mistake: Not utilizing centralized user
source for Enterprise solutions.
Solution:
Establish an active directory/SSO (IdP)
Add an extra layer of protection with 2-
factor authentication.
Ignition Security Hardening Guide: https://inductiveautomation.com/resources/article/ignition-
security-hardening-guide
41. Security
Mistake: No Gateway Backups
Single Gateway Solution:
● Gateway Auto Backup
Enterprise Solution:
● Collect Backup Agent Task
42. Recap
Security Mistakes:
● No security
● Uniform security clearance
● Security only on visualization
● Unencrypted HTTP
● No centralized user source
● No backups
Solutions:
➔ Implement security measures
➔ Assign user-based security
➔ Add security on Tags
➔ Use SSL
➔ Active directory/SSO
➔ Automated backups
43. Conclusion
We all make mistakes no matter how
much experience we have.
Fortunately, Ignition gives you the
tools to not only fix those mistakes, but
turn them into strengths.
Ignition provides many ways to make
your projects more organized, efficient,
stylish, and secure.
44.
45.
46. International Distributors
Australia iControls Pty Ltd. www.icontrols.com.au
Brazil FG Automação Industrial www.fgltda.com.br
Central America NV Tecnologías S.A. www.nvtecnologias.com
France AXONE-iO www.axone-io.com
Italy EFA Automazione S.p.A www.efa.it
Norway Autic System AS www.autic.no
South Africa Element8 https://element8.co.za/
Switzerland MPI Technologies https://mpi.ch/
Contact International Distribution Manager Annie Wise at: awise@inductiveautomation.com