I am trying to consolidate multiple Power Sensor Ltd MicroPMU gadgets into a single output stream. I am starting with a single MicroPMU in the stream but I can’t get all of the PMU readings into the device consuming the stream. The MicroPMU is set to send 60 phasor measurements per second. I have the input stream of the MicroPMU saving to an OpenPDC historian, which is a local database, and I am seeing 60 records per second saved in the TimeSeriesMeasurement table.
The output stream is a straight UDP stream from the OpenPDC server to the consuming device. When it is set at 60 frames per second, a single minute snapshot shows 3600 individual records but only ~2100 of those records contain valid data. When the output stream is set for 30 frames per second, the one minute snapshot has 1800 records, but they all contain valid data.
Any suggestions/explanations would be greatly appreciated.
Perhaps the device is reporting duplicate timestamps at the higher resolution? Have you tried a debug stream capture with PMU Connection Tester - this basically saves data to a CSV file for analysis. Just stream the data for a couple of seconds and check the timestamps.
Thanks for the tip. That has helped glean some additional info. When the output stream is set to 30 frames per second, the PMU Connection Tester grabs the stream and reads a consistent 29.99 Frames/sec. When I look at the debug capture, the timestamps are in a consistent pattern, 10.000, 10.033, 10.066, 10.100, 10.133, …
When the output stream is set to 60 fps, the PMU Connection Tester shows a value of 34.xx Frames/sec. And the timestamp has a repeating pattern per second but individual records are not evenly space through the second.
I have another input stream coming into OpenPDC so I created another output stream with the exact same settings except sending data from a different device. When connected, PMU Connection Tester shows a 50 Frame/sec data rate. So it looks like the input stream makes a difference, obviously. When I look at the stream statistics, there are some significant differences between the two input streams. The one that stands out are the latency values, the “good” stream is in the 100ms range and the “bad” stream is in the 3000ms to 4000ms range.
Does it look like a high latency is preventing me from a full 60 fps output stream?
A high latency could very well be preventing the openPDC from producing all 60 frames in a second even if it is receiving 60 frames per second from the MicroPMU. If the lag time of your output stream is set to 3 seconds (the default), then it will certainly be dropping any data with a latency of at least 3000 ms. You can adjust the lag time of the output stream to make it wait longer before publishing frames to account for the higher latency input data.