Skip to main content
PI System
PI AF
Notifications
Event Frames

How to Schedule PI AF Event Frame Notifications at Specific Times (e.g., Daily 10 AM Snapshots)

Learn how to configure scheduled notifications in PI AF to automatically capture and send snapshots from critical tags at specific times, such as daily at 10:00 AM. This post provides troubleshooting tips and practical configuration guidance.

Roshan Soni

5 min read

Scheduling Event Frame-Based Notifications in PI AF: Triggering Events at Specific Times

Monitoring critical PI tags and receiving timely alerts is a common requirement in industrial operations, especially for teams managing thousands of tags but focusing on a small subset of high-importance variables. A frequent use case is sending daily email summaries of snapshot values from critical tags at a set time—such as 10:00 AM. While event frames and notifications in PI AF are powerful tools for such scenarios, configuring them to trigger purely by time (rather than a tag’s value change) can be unintuitive, particularly in legacy versions like AF 2016 R2.

Based on user questions and common experience, let's walk through key steps, tips, and troubleshooting strategies for implementing time-based event frame notifications in PI AF.

The Use Case in Brief

  • Goal: Email the current values of ~10 high-priority PI tags each day at 10 AM.
  • Environment: PI AF 2016 R2, with existing notifications working for other triggers.
  • Problem: The time-based event frame is not being created—thus, no notification is sent.

Step-by-Step Guide

1. Understanding How PI AF Analyses Trigger Event Frames

Event Frames are typically used for capturing start and end of events based on tag value conditions (e.g., alarms, threshold breaches). Triggering an Event Frame solely based on a time (e.g., "it’s 10:00 AM") is less direct—especially in earlier AF versions.

2. Common Approach: Using a Time-Based Expression

A typical analysis expression for a daily event might look like:

Hour('*') = 10

This is intended to evaluate to True at 10 AM. In practice, Evaluations are run on analysis scheduling events (like source tag updates), so if there is no change in a referenced signal right at 10:00, this condition might not get evaluated or may never transition from False to True.

3. Recommended Solution: Use a Time-Triggering Tag

To ensure the analysis is evaluated at exactly the desired time:

  • Create a timer or heartbeat PI tag: For instance, an interface-generated digital tag that updates every hour or every minute.
  • Reference this tag as an input to the analysis: This ensures the analysis is recalculated every time the tag updates.

Example Analysis:

If (Hour('YourTimerTag') = 10 And Minute('YourTimerTag') = 0, 1, NoOutput())

This analysis will only output 1 at 10:00 AM each day.

  • Use the output to trigger the creation of the event frame.
  • Attach a notification to this event frame, configured to send an email with the snapshot values of your critical tags.

4. Troubleshooting Checklist

If the event frame is not being created:

  • Check if your analysis is evaluated at the desired time: Preview results, check evaluation frequency, and confirm trigger conditions.
  • Ensure referenced tags actually change value at 10:00 AM.
  • Use the Analysis Preview or Backfill to test your event frame logic.
  • Consult Message Logs: Look in Analysis Service and Notifications logs for errors.
  • Confirm Notification Template is Linked and Enabled
  • Test with a Simpler Trigger: Try using a tag that updates regularly and see if your event frame gets created at all with a basic condition.

5. AF 2016 R2 Considerations

Older versions lack some of the more refined timer triggers in modern AF. If possible, consider upgrading for improved scheduling capabilities.

6. Example Scenario

Suppose you have a digital tag Heartbeat that updates every minute. Your analysis could be:

If (Hour('Heartbeat') = 10 And Minute('Heartbeat') = 0, 1, NoOutput())

Configure the output to trigger an Event Frame, associate your 10 critical tags as referenced attributes, and set your notification to include their snapshot values.

Conclusion

Time-based notifications are very useful but may require a workaround using a timer tag to guarantee timely, predictable evaluations of your analysis logic. Use Analysis Preview/Backfill and AF diagnostic tools to troubleshoot. With a correctly configured timer reference, PI AF notifications can reliably deliver snapshot data from your most critical tags each day.

Have you implemented time-based notifications or encountered similar issues? Share your experience or tips in the comments!

Tags

#PI Tags
#AF Analysis
#Troubleshooting
#PI AF
#Event Frames
#Notifications
#Time-based triggers

About Roshan Soni

Expert in PI System implementation, industrial automation, and data management. Passionate about helping organizations maximize the value of their process data through innovative solutions and best practices.

Sign in to comment

Join the conversation by signing in to your account.

Comments (0)

No comments yet

Be the first to share your thoughts on this article.

Related Articles

Enhancing PI ProcessBook Trends with Banding and Zones: User Needs, Workarounds, and the Road Ahead

A look at the user demand for trend banding/zoning in OSIsoft PI ProcessBook, current VBA workarounds, UI challenges, and how future PI Vision releases aim to address these visualization needs.

Roshan Soni

Migrating PIAdvCalcFilVal Uptime Calculations from PI DataLink to PI OLEDB

Learn how to translate PI DataLink's PIAdvCalcFilVal advanced calculations—like counting uptime based on conditions—into efficient PI OLEDB SQL queries. Explore three practical approaches using PIAVG, PIINTERP, and PICOunt tables, and get tips for validation and accuracy.

Roshan Soni

Understanding PI Web API WebID Encoding: Can You Generate WebIDs Client-Side?

Curious about how PI Web API generates WebIDs and whether you can encode them client-side using GUIDs or paths? This article explores the encoding mechanisms, current documentation, and best practices for handling WebIDs in your applications.

Roshan Soni