This is very similar to the question:
"For a professional document, should I use Notepad or MS Word / <insert favourite word-processing software here>?"
The answer is
not Notepad.. Similarly, the answer to the OP is
not FactoryTrash™.
I used to be a proponent for Citect back 6 years ago before I had heard of Ignition, but since my first introduction to Ignition, even Citect was like using Wordpad. I would
never recommend FactoryTrash™ however for anything, unless of course you're a glutton for pain and punishment. I feel years of my life shedding away just talking about it...
There are
so many advantages to using Ignition, i'll list some of them:
Just a quick note: Ignition has 2 graphic modules for developing SCADA apps - Vision and Perspective. Vision is mature, 15+ years old, developed in Java Swing. Perspective is the new kid, HTML5/CSS3, developed with React (and other stuff).
- Cost. Priced per server only not per server, client, and tags. However there are options to reduce the cost further for smaller applications.
- LIVE DEVELOPMENT ENVIRONMENT. This is hands down one of the greatest things about Ignition. Tags are live, gui is live including button actions/scripts/etc, even screen navigation (in Vision module). when you put it into run mode (similar to FactoryTrash™'s run mode but seamless and actually useable). Tags are always live however in the designer, and you can see live values in the tag browser and also in the pages that you're working on. All dynamic content is live, meaning parameter substitutions (think global object parameters), component bindings, everything.
- Tag UDTs. Create templates for tags and instantiate them to make creating the same device tags super easy, and you know exactly what device type a device is without having to screw around comparing the tag list with your PLC AOIs.
- Browse PLC tags directly within the Designer. You can browse PLC tags directly within the designer. You can drag these tags into the tag browser to create a tag for them (similar to creating tags in FactoryTrash™, only not ****). You can also create tag UDTs by dragging and dropping a collection of PLC tags into the tag browser directly.
- A central location for all* Ignition server config and status of everything (limited list): users and security, backup schedules, server config, database connections, plc connections, email, auditing, alarm notification, modules, licensing, tag providers, diagnostic loggers, etc.
Compare this to FactoryTrash™ where configuration is literally everywhere, with about 30 independent applications installed. I still haven't worked out exactly how to determine if an hmi/A&E/data server is actually running or not...
- Access to server config/status and client installer from web server webpage. The stuff from the above point is all accessible from the web server. As well as that, so is the access to the Designer and the Client installers. No need to worry about copying around installation files to this client and that clients, it's all available from the web server.
- Database connectivity is at the heart of Ignition and SQL queries are native functionality. You can literally bind component properties to a SQL query result (not a great idea albeit, especially if it's polled regularly - luckily there are options for all that).
- Component property bindings. You can literally bind a dynamic expression/tag/query/etc. to almost every property of a component.
- Property config is all in the property editor panel, not a stupid modal popup like in you guessed it, FactoryTrash™.
- Graphic templates. Similar to FactoryTrash™'s Global Objects, templates offer a way to template your graphics such as for device symbols, analogue displays, etc. Unlike FactoryTrash™ however, template parameters can be used for anything you want. A template parameter is not only limited to being a <expletive> tag substitution, it can be a: json object (Perspective), dataset, or a simple datatype (int/float/string/bool/etc.) that can be used however you wish: within an indirect tag binding, within an expression, in a sql query, as part of the text of a label, anything.
- Docked windows. Ability to dock a window/page to the edge of the client (N/S/E/W) e.g. for headers/navigation/alarm panel/etc. You can do this in FactoryTrash™ but it's SUPER finicky and breaks if you look at it wrong...
- Control of content layout when resizing. Ultimate control in Perspective due to HTML5, but even in Vision you can use anchoring to force a component e.g. a table, to maintain e.g. 5px from the top, right, and bottom edges of the window so that it resizes nicely to different resolutions. You have 0 control from FactoryTrash™ and are stuck with relative scaling.
- Perspective - All the benefits of HTML5 and CSS: CSS is god for styling standardisation, as you can literally define every detail within a CSS selector from font size and font-anything, colour, background colour, borders, drop shadows, cursor icon, animations, etc. etc. etc.
- Vector-based graphics. Infinitely scalable graphics, unlike FactoryTrash™'s raster/pixel-based environment. SVG (Scalable Vector Graphics) files can be directly imported, and styling can be applied to any object within them, for example an SVG of a pump, you can style/colour any part of it and not have to export PNGs of every single colour/style that you might need (e.g. red/green/grey versions).
- Have I sold it yet??? PS. I have no affiliation with IA (makers of Ignition)
- Python scripting. Python beats the **** out of VBA in all aspects, but efficiency is its main advantage. It's a very easy to read language and has some awesome smarts to reduce your lines of code.
- In-built SMS/email/voice solution directly into the product. No need for dodgy 3rd party solutions like Win911. Alarm escalation procedures are highly configurable.
- All tag configuration is done in the one place, the tag editor. From the many different tag properties, to enabling and configuring history and alarms, it's all done from the one editor. Alarms and history are attached to the tag itself. Compare this to FactoryTrash™ where tags, alarms, and tag history are all infuriatingly independent.
- You can literally copy a list of tags into json format, edit in notepad++(npp), copy from npp, and paste back into Ignition to overwrite tag configuration. No need to go through some stupid tag export tool like in FactoryTrash™ where it doesn't even know which project that you have open.... Although, there is also a tag export function that exports the tags you have selected, or alternatively all of them.
- Event handlers. There are event handlers on most components like touch events, keyboard key press events, startup events, etc., but there are also event handlers on tags as well with the most prominent being the tag change event. You can write python code to do something whenever a tag's value (quality and/or timestamp) change, which is super useful.
- Tags can be of many different data types: simple types (int/float/string/etc.), dataset, json object, etc. datasets and json objects are super useful for storing structured data.
I could be here all night...
Please, don't choose FactoryTrash™. It's horrible.
Again, I came from Citect, Cimplicity, ClearSCADA, and FactoryTrash™. I would never go back willingly.
*when I say all, I mean 99%. There is one other configuration file stored in a directory that houses the java configuration with the most important being the max memory Ignition can use. That's about it though that the average and even intermediate user would be interested in.