Our plant is divided into rooms and in each room are cells made up of several pieces of equipment. I am working on a system to monitor each cell. We have setup SQLtags with alerts in several cells as a trial. We have also added several columns and a database trigger to the alert history table that records the current cell#, room#, and job# whenever we get an alert. We are using a machine ID code in the Display Path field to get this data from other tables.
I was able to create tables to show alarm history based on the added information but have not found a way to do this with active alarms.
Is there a way to make a Alarm Summary Table that will show just the alarms for the selected cell so that the operator can acknowledge them without seeing the alarms from the other cells?
The builtin alert summary table has various filtering properties that support wildcards. Perhaps you could filter by the tag path, for example
I forgot to mention one other important piece of information above. The machines can move between cells and even rooms depending on what product is running. We have a database that keeps track of what machines are assigned to what cell.
If everything was in a fixed location I could set up the tags in groups by rooms then cells then machines. The problem is that when machines are moved we do not want to have to keep rearranging the tags. We have several hundred machines.
Thats a pretty custom setup. Perhaps you can write a script that:
- runs system.alert.queryAlertStatus with no filters to get all alerts
- runs queries against your database tables that store what equipment is where
- filters the alerts based upon area by applying the information from the database.
You could then display this information in a standard table.
I created a standard table and have bound it to an expression that runs a script with the selected cell number as a parameter. In the script I am able to query our database and get back the machine ID’s in the cell. I have also converted this to CSV. I am also able to query the AlertStatus. I am able to display either set of data in the table depending on what I set the Return to so I know these queries are working.
I am not sure how to filter the Alerts dataset I get back based on the machine ID’s I get back.
Is there a way to run a query on the dataset that I get from the AlertStatus query?
("SELECT * FROM alerts WHERE displaypath IN (%s) " %csv)
No, you can’t run a query on the results of the alert status query. You’ll have to use scripting to loop through the rows in the alert status dataset, creating a new dataset with only the rows that match your criteria.