Frequency fluctuates from 0 to 50 Hz) after transmitting a stream to another PDC

Hello !
I’ve got a strange behavior on my ‘development’ environnement :

  • PDC_A on SERVER_A receive PMU_A and PMU_B data from a PDC_SOURCE.
    – PMU_A is natively at 50Hz/10fps on PDC_SOURCE and PMU_B is natively 50Hz/50fps ; but PDC_SOURCE send them to PDC_A in a single stream at 50Hz/50fps ; upscalling automatically the PMU_A data.
    Everything is OK on PDC_A :
    Blue for PMU_A and green for PMU_B

  • I have made a Concentrator Output Stream declared with ‘Nominal Frequency = 50 Hz’ and ‘Frames Per Second’ = 50, that include this two PMU_A and PMU_B data to send them to PDC_B on SERVER_B. To made this I configured the output stream like this on SERVER_A :

  • On this SERVER_A, I’m using StreamSplitter to push the data to the destination SERVER_B (instead of making SERVER_B pulling them ; because SERVER_A is on a more secure network area than SERVER_B so no incoming connections are allowed), on a specific port 4750 :

  • On SERVER_B, I use PMU Connection Tester to check if the stream is OK and this is what I’ve got for Frequency :
    – PMU_A


When selecting PMU_A, after a few seconds the PMU selector on the left switch automatically to the first one of the list (PMU_B which is OK).

Why does the frequency of PMU_A continuously oscillate between 0 and 50 on PDC_B (as it is OK on PDC_A) ; and the PMU_B frequency is OK both on PDC_A and PDC_B ?
Note that I’ve configured the PMU_A and PMU_B in OpenPDC on SERVER_B and the result is the same :
PMU_A (blue) is not OK as PMU_B (green on the top of the graph) is OK.

If you have some times to help …



I do not believe upscaling is happening as you expect. When you set the output frame rate to 50Hz, every four samples of the 10Hz input data will be missing. Generally speaking, the openPDC will not “invent” new measurements from a phasor data source, i.e., down-sampling options exist, but currently, up-sampling options do not.

If you want to reuse the last frequency value until a new value is received, I would suggest using a DynamicCalculator setting the CalculationInterval to 0.02 seconds (for 50Hz), UseLatestValues set to true, TimestampSource set to RealTime, VariableList set like x=PMU_A:FREQ and ExpressionText set to x. You should create a new frequency output for the calculation result then manually use this new frequency as the input for output stream, replacing the default 10Hz signal.

Haven’t tested this exact scenario, but I suspect it would work. Additionally, you would need to repeat this manual process for each incoming measurement that needed up-sampling, such as phasor angles and magnitudes, any analogs, digital, status flags, etc.

Certainly the “best” option would be to modify the concentrator code to handle up-sampling options in a similar manner to how it currently handles down-sampling options. We can take a note to add such a feature in the future.