Background


NERC requires event detail reporting beginning in 2024 to identify forced outages across wind and solar plants that impact the grid. Currently, the GADS threshold for an event start is 20 MW. NERC defines an event end as 95% of the maximum plant total installed capacity that was unavailable at any point during the forced outage has been returned to service, and less than 20 MW of plant capacity is in a forced outage. Bazefield simplifies an event end by only requiring that less than 20 MW of plant capacity is unavailable due to a forced outage. 


Bazefield also greatly eases the Event Detail Reporting process by tracking plantwide events using domain points and alarms on the Power Plant Controller. The alarms drive allocations that store the event type, contributing operating condition, cause code - system, and cause code - description. 


The Bazefield Services API and a script model drive allocations on the PPC level, by using the turbine/inverter allocation data to identify the capacity a site has in the specified Forced outage categories. The script interacts with turbine and PPC data, as well as triggers data management jobs to confirm the event allocations are reflective of the most recent turbine data.

 

This article provides additional details on the script model used for event reporting. More details on the GADS Event Report itself, including where the data for each field is sourced, are in the article GADS Event Export Report.


TABLE OF CONTENTS


Script Model

Bazefield Portal Location

The main Script Model can be found in Administration > Configuration > Script Models, with the name PowerPlantController GADS Script. 


An instance of the script is also in place on each Asset Model on which there is a PPC that tracks site events. These can be found in Administration > Configuration > Asset Models, in the Scripts tab. Each script instance calls the main script at the scheduling detailed below. 


Required Domain Points

While the script reads turbine/inverter allocation data, it only writes to points on the PPC level, which are defined below:

  • MaxCapacityForced: MW Capacity in forced categories across the site
  • Event-GADSForcedDerate.Start: Boolean indicating if an event is in progress (1=yes, 0=no). Used to drive alarms and allocations.
  • Event-GADSForcedDerate.End: Boolean indicating if an event is not in progress (1=yes, 0=no). Used to drive alarms and allocations.


Script Steps

  1. Identify Turbine/Inverter level allocations in the period that have a Forced category

  2. Calculate the capacity forced at the site over the interval (# of assets * rated power), specifically at any timestamps where a turbine/inverter allocation category changed, and also determine if the GADS Event Threshold was met
  3. Delete from the PPC level points Event-GADSForcedDerate.Start, Event-GADSForcedDerate.End, and MaxCapacityForced to remove potentially stale data
  4. Write the new data to the PPC level points Event-GADSForcedDerate.Start, Event-GADSForcedDerate.End, and MaxCapacityForced based on the calculations from Step 2.
  5. Trigger a realarm/reallocate job on the PPC level for the interval to generate alarms and allocations based on the new data
    • Note: If an existing data management job has the status 'Created' or 'Queued', the script will not queue another


Script Scheduling

The script runs every 3 hours, and by default is configured to review the past 25 hours, to capture any changes to data and ensure the script stays fairly up to date. At midnight, the script will go back 31 days, to account for any generation asset allocation changes in that range.


The script can be run ad hoc if needed for any turbine/inverter allocation changes. To do so, please create a support ticket.