robidev / iec61850_open_server

An open source implementation of an IEC61850 IED using lib61850
Apache License 2.0
87 stars 21 forks source link

Getting started with a modified SCL file #7

Closed NicolasUPV closed 1 year ago

NicolasUPV commented 1 year ago

Hello, I am a student at the University of the Basque Country and I have found this project very interesting, it is helping me a lot in my master's thesis.

"Getting started with a modified SCL file". I have problems trying to run the application after applying some modifications to the "open_substation.scd" file, I have added a new "IED5_SMV" which will have the same functions and location as the "IED3_SMV".

image

I have also added the section corresponding to communications.

image

and the "IED" section I have cloned it from the IED3_SMV modifying the name, the "iedName" and the "accessPoint5".

image

The modifications of the "open_substation.scd" file have been done manually, since I don't have a substation configuration software.

Following the steps mentioned in the Readme, to generate new configurations from a modified SCL file and execute them, I have not been successful, I have implemented a container with wireshar to capture the communications of the devices and the messages of the new "IED5_SMV" are not displayed.

Finally I would like to point out that the MAC addresses that are displayed in wireshar are not the same that are defined in the file "open_substation.scd" in the communications section, they differ a little, as if at the end they were added one more number...

image

thanks in advance for your help to move forward.

Sander3003 commented 1 year ago

Hi @NicolasUPV , If you looking for an open source SCL editor, you can try OpenSCD/ LF energy CoMPAS. https://www.youtube.com/playlist?list=PLKyFf1J9XkptzXdmaAZeV1WX8ONML3XwC It also allows you to check on config errors based on the XSD schema.

https://openscd.github.io https://demo.compas.energy

NicolasUPV commented 1 year ago

Thank you very much, I will check the information.

robidev commented 1 year ago

Hi Nicolas,

Good to see you're seeing the project as useful.

I see you added a second lnod/ied in the substation section to a sub equipment. I don't think that will work, As the simulator expects only one lnode / ied per conducting- and subequipment. I think you need a separate conducting equipment like so;

image

please then check when you regenerate the configuration that the following happens;

in the cfg folder, a IED5_SMV.cfg and IED5_SMV.ext should be generated. These files are used by open server, and should be generated based on the scd-file. in substation.yml there should also be a sectiongenerated from the SCL for IED5 like so;

image (1)

then, when you perform a 'docker-compose up', the IED5 should be started. you can check what containers have started with 'docker ps', and see the IED5 listed there. Additionally, in the IEC61850 client, you should be able to see the new ied in the tab, and read its datamodel, if you add to "static/mmi.remote.svg" the following:

image

If any of those steps do not provide the desired result you could try to just add the data manually, by copying everything from IED3 for the CFG, EXT and the substation.yml.

I would expect the IED5 you defined to only publish sampled values, no goose, looking at how you configured it.

Regarding the mac adresses, What you define in the SCL is not the source mac address of the device, but a multicast address that you publish to. This is how it is defined in the standard. So it should be seen as destination mac-address in the trace, not a source. If the destinaltion mac is not the expected multicast address, it might be theres a bug, but it should not affect the functioning all too much, as no filtering is performed on mac. That is mainly used in the substation for traffic filtering on switches, so you dont have this traffic going where you dont need it, consuming bandwith.

Hope this helps.

Best regards,

Robin

On Thu, May 25, 2023 at 11:20 AM NicolasUPV @.***> wrote:

Hello, I am a student at the University of the Basque Country and I have found this project very interesting, it is helping me a lot in my master's thesis.

"Getting started with a modified SCL file". I have problems trying to run the application after applying some modifications to the "open_substation.scd" file, I have added a new "IED5_SMV" which will have the same functions and location as the "IED3_SMV". [image: image] https://user-images.githubusercontent.com/134591275/240859840-a1ab3936-e3c9-4a1d-beda-a0aadbf54e4a.png I have also added the section corresponding to communications. [image: image] https://user-images.githubusercontent.com/134591275/240860231-6f244c12-8a4e-4937-a39c-5c80bc41629f.png and the "IED" section I have cloned it from the IED3_SMV modifying the name, the "iedName" and the "accessPoint5". [image: image] https://user-images.githubusercontent.com/134591275/240861818-1662615f-afb1-4c41-b446-db78ecc2c5f1.png The modifications of the "open_substation.scd" file have been done manually, since I don't have a substation configuration software.

Following the steps mentioned in the Readme, to generate new configurations from a modified SCL file and execute them, I have not been successful, I have implemented a container with wireshar to capture the communications of the devices and the messages of the new "IED5_SMV" are not displayed.

Finally I would like to point out that the MAC addresses that are displayed in wireshar are not the same that are defined in the file "open_substation.scd" in the communications section, they differ a little, as if at the end they were added one more number... [image: image] https://user-images.githubusercontent.com/134591275/240865884-38d4d0a1-69ab-403a-ba10-61f2a34be279.png thanks in advance for your help to move forward.

— Reply to this email directly, view it on GitHub https://github.com/robidev/iec61850_open_server/issues/7, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHYPR75IDKVR3JFQTI72XWLXH4P4FANCNFSM6AAAAAAYORTZAQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

NicolasUPV commented 1 year ago

Thank you very much for taking the time to solve my problem, it has been very helpful.

Additionally I would like to ask in which way it is possible to modify, the GOOSE retransmission intervals and the number of GOOSE retransmissions after an event, I have found this file "stack_config.h" and I have modified the values, but when running the program, no change is seen.

image

When capturing data with WireShark, GOOSE messages continue to be published every 5 sec.

robidev commented 1 year ago

Hmm, the way I would expect it to work, is that based on the config, and the screenshot you posted, a message is posted every 5 seconds. This will continue when no change happens. If a dataset element in a goose message changes, the fast retransmit scheme should kick in, sending 2 goose, 500ms after each other. After this, the slow retransmit of sening every 5 seconds should happen again.

However, it will only work if you ensure the container is rebuild with the recompiled server executable. So a sudo docker-compose -f substation.yml -f substation.simulator.yml build --no-cache should help to ensure you have build the server with the modified source. Alternatively, you could try to bould the server locally, and see if that modification will reflect the desired change. (it might help to do code changes local first, test and perhaps debug before rebuilding in docker, in my experience )

robidev commented 1 year ago

with no further comment, I assume this issue to be closed