nine in the bed, and the little one said …

I don’t know if this is worth posting to RISKS:

I used to manage wind farm SCADA systems. The supplier is a market leader in the wind industry. The components used to feed data to the central SCADA are industry standard, accurate, reliable units. The complete cost of the SCADA system and associated metering probably runs into the hundreds of thousands of dollars. This isn’t el cheapo stuff, and is put together by knowledgeable engineers and technicians.

So I was a little surprised to see that the generation report for a wind farm was showing a total of -8.3 GWh, when a similar wind farm nearby had generated 1.8 GWh for the same period. What!? Crossed wires on the meter? Inconceivable!

No wires were harmed in the making of this error. For metering power delivered, power plants use interval meters, which behave extremely similarly to your household electrical meter. They’re a little more accurate, have a few more features (like these ones have ethernet ports for remote reading) but they’re basically the same: any energy that goes through the wires gets added up on a counter. Take two readings a known time apart, subtract the later from the earlier, and you’ve got the total energy delivered.

The wind farm’s SCADA polls this meter every ten minutes, and stores the result in its database. When you want a generation report, the server goes through the data, subtracts the last reading from the first, and presents that as the generation. Simple; what could go wrong?

The bods at Major Wind Turbine Company were baffled. I was confused, and a little annoyed as I had lender and a board of directors breathing down my neck for revenue numbers. So I dug into the raw ten-minute data, and found this:

kWh Delivered
Wind Farm A Wind Farm B
T=0 9523886 9999237
T+10 min 9525238 575
Difference 1352 -9998662

It doesn’t take a genius to realise that the meter at Wind Farm B rolled over at 9,999,999 kWh, and so should really have read 10,000,575 kWh. The poor little SCADA didn’t know to check for rollover, and happily subtracted the later number from the earlier.

I should add that there was no risk to public safety or system operation caused by this error. Just a few lost hairs from me.

(Actually, many years ago, I had access to the source of an extremely early wind farm SCADA server. It was written by a series of summer students, with variable names and comments in their native language. It was pretty hard to follow. One little nugget I did pry out of the code was that they used a simple arithmetic mean for averaging wind direction. That meant that it took the mean of 358° and 2° to be 180°; not so smart …)

One thought on “nine in the bed, and the little one said …”

  1. Interesting…but not so surprising with custom software. Good thing the SCADA package wasn’t responsible for paying your bills ;).

Leave a Reply

Your email address will not be published. Required fields are marked *