Hi, I have been trying to implement the 61850-5 Goose protocol, and so far I have been partially successful, with a block that has held me up for weeks, so I thought Id ask here for advice.
Here is how its setup
And it does show data being updated (only the frequency actually changes) like so
The issue is I cannot get anything other than frequency to update. I have based the code on the UseETRConfiguration flag and setup all the lists then call PublishNewConfigurationFrame with 2 analog values, 2 digital values, and 2 phasor values. And the data is in the class if you debug, but does not display, and If i use OpenHistorian to subscribe to this device, nor display in Graph measurements. these values other than Frequency and a couple other static numbers don’t show up there either.
Any ideas what I’m missing? I’m really banging me head on this one.
That’s a nice bit of work if you were able to get GOOSE working (at least to some degree). So I can help answer your question, can you provide a little more background? For example, did you start from the existing 90-5 Sampled Values code, use a 61850 library that you bought or do this from scratch?
Your problem could be a number of things, but knowing “how” you got this far may help me to help you isolate the issue.
Also, if you build this from the Sampled Value code and would be willing to post the Goose code back as open source, I can certainly take a look too… In this mode, you could just do a pull-request that we could iterate on a bit.
Yes, I copied the 90-5 sampled values folder and created a separate base of code for goose. It is almost identical with mainly the changes in the parsing.
I have debugged this further and the issue could be in LoadDeviceMeasurements() in PhasorMeasurementWrapper.cs. Only a few items get populated in definedMeasurements dictionary. A bit more debugging shows that this is getting its configuration from the “Measurement” table in the database. I cannot find how to get data into the table though.
I sure can post the code back, I will tidy it up and send it on, so it could be a little while.
I have uploaded the code to
Hope its right, I am a bit of a Git newbie
Just to follow up on my own question. I have worked out what the problem is.
If you add a device that doesn’t go through the wizard, then after adding the device you have to manually add the phasors and measurements for that device. Once you do that, it all works!
Good deal! Do think you the code is now in a stable state?
Yes the code seems stable now. Have had it running for days now with openHistorian subscribing to the device so I can see it in Grafana.
One thing I’m still thinking about is how to define the relationship between structs in goose and measurements without hard coding anything. For example the image shown is a reflection of the xml configuration below, but alog3, alog4, alog5, alog6 are currently treated as separate measurements instead of assigning them as properties for a single measurement.