Hello,
I would like to test the following architecture involving openHistorian and openPDC:
- Two C37.118 streams (one containing PMUs at 50 fps, the other containing PMUs at 100 fps) are pushed to ports 4712 and 4713 on my openHistorian server. openHistorian listens on these ports, archives the data, and exposes it to Grafana.
- I would then like a subset of these measurements (for example f, df, V+, and/or P) to be sent to or retrieved by two additional servers running openPDC:
- one openPDC server handling 50 fps data,
- the other openPDC server handling 100 fps data.On each of these two openPDC servers, a local CustomActionAdapter module runs calculations based on these measurements and produces additional result measurements. These calculation results must then be sent back to the openHistorian server for archiving and visualization in Grafana.
I am currently blocked on the part where openHistorian should send data to the two PDC servers via two distinct C37.118 output streams:
- In openPDC, there is a clear configuration path via Outputs > Concentrator Output Streams.
- However, in openHistorian, I cannot find an equivalent screen or function to define C37.118 output streams.
Additionally, I would prefer not to use STTP for these two flows, because, as far as I know, STTP streams do not allow filtering of PMUs/measurements at the output side – they tend to send the full set of data managed by openHistorian/openPDC, whereas in this use case I need to send only selected PMUs/measurements (e.g., the calculated results measurements).
Could you please advise whether it is possible to configure openHistorian to establish two C37.118 output streams towards my two openPDC servers, and, if so, how to do this (screens, configuration steps, or components involved)?
Additional context / PS:
Initially, I considered connecting my two openPDC servers directly to the same C37.118 sources as openHistorian. However, in StreamSplitter I cannot configure two “proxy connections” with the same listening port to then route these flows to both openPDC servers in addition to openHistorian. When I tried to configure this, I encountered the following error:
ERROR: Connection attempt failed due to exception: Only one usage of each socket address (protocol/network address/port) is normally permitted in "transportProtocol=Tcp".
Given this constraint, I am looking for a solution where openHistorian acts as the single C37.118 ingestion point, then forwards (in a filtered way) the required measurements to the two openPDC servers, which in turn run CustomActionAdapter calculations and send results back to openHistorian.
Any guidance, best-practice recommendations, or configuration examples you can provide would be greatly appreciated.
Best regards,
openHistorian version : 2.8.284
openPDC version : 2.9.210
StreamSplitter version (used to send PMU data from a secure zone to the openHistorian server as two separate streams (50 and 100 fps), over C37.118 TCP) : 1.1.10