I have a group that is updating every 30 seconds and writing to a table. In that group I have tag BrokenBottle, that I have a digital alert set for. Each time there is a broken bottle event, this tag goes high for 5 seconds. I am expecting to see a line in the FSQL_Alert_Log for each Broken Bottle event. I am only getting about 10% of the events. Any idea why I am not getting all the events. Does the alert log get updated whenever this event occurs, or only if it occurs on that 30 second update interval?
The alarm only gets evaluated when the group executes. So, if the group runs every 30 seconds and the alarm only stays high for 5 seconds, there’s a good chance you’ll miss it.
So, the straight forward solution is to run the group faster. However, this is often not desirable for various reasons (you probably have it running at 30 seconds for a reason, like you don’t want to insert millions of records). A second option which might be better would be to move the alert (and any similar one from other groups) into a separate group, and mark them all as READ-ONLY. Read only items aren’t written to the database, but are evaluated for alerting. If all of the items are read only, and you turn off “store timestamp” and “auto create table”, the group shouldn’t try to create a table or write to the db at all, and will essentially just be an alert executor.
Hope this helps,
Thanks Colby. That does help. I added a new AlertOnly group and set the update rate to 1 second. I am wondering if it would be better to “execute this group when a change has occured” or better to just update every second.
Well, if all the items are read only and you’re not writing to the DB, there’s really very little difference, and the group takes essentially no time to run either way.