Find invalid tags?

(I’d expect that this is a dupe of something, but I haven’t found it yet)

I’m developing both the PLC program and HMI at the same time. As the code is changing hourly there is a chance that a tag I’ve imported into the HMI no longer exists(1). I noticed one such tag by accident this morning when I opened my Ignition project.

So the question is: Is it possible to generate a report of all invalid tags in a project?

(Note that I am not looking for tags constructed on the fly, only those that have been dragged into the project from the device tag browser, and are now reporting as “Error_Configuration”)

(Note also I’m testing 8.1.9 at the moment)


(1) This is happening because I’m refactoring names in the PLC to better comply with the company “standard”. Yeah I should probably wait for the code to settle down before working on the HMI side, but where would the fun be in that? Actually the act of looking more closely at the names when dragging from the PLC has made me pay attention to the naming standard and pick up a bunch of wrong names that I had overlooked.

system.tag.browse(path:'[default]' , 'filter'={'quality':'Bad'}, "recursive":True)
should give you a list i think
https://docs.inductiveautomation.com/display/DOC81/system.tag.browse

I know that I can script something, but I’m looking for a simple “push the button and get the results” directly from the designer UI

That doesn’t exist, but it’s something we’re in the early stages of designing/thinking about.

Well to add to your thinking. I’ve got tags spread across 130+ hierarchial folders. So technically I need to open all 130 of them right now to see if there is an issue.

I created something like this in a Vision Window where you could select the type of bad tags to find. Often you’ll want to ignore disabled tags, or only find error configuration tags, or a selection of qualities. I can also export my results to a csv or to clipboard in case I need in Excel.

I’m sure you guys will be all over it, but just thought I’d chime in with my use cases.