03-12-2017 10:59 AM - edited 03-12-2017 11:00 AM
Ok, since I'm having such a hard time getting this working and I need something for a student coming from a few thousand miles away to test, I am creating a backup. What I need is two VIs, one a publisher, and another a subscriber that can be operated on different PCs. I know there are the examples, but when using those to create my own, I get different errors and am not sure if it is with the SCL file or if I just don't understand what I'm doing. Basically, all I need are the two VIs to communicate 2 boolean values, 1 float value, 1 integer, 1 unsigned integer and a timestamp, but I have been unsuccessful so far. Any assistance would be appreciated. I need to make this my own so that after this student tests his stuff on this simple GOOSE protocol setup, I can expound upon it and make it larger to include more values but considering my time crunch, anything would help.
thanks,
andrew
03-12-2017 03:11 PM
Ok, sorry for rambling on but I am trying to give as much information as I can so anyone who has any knowledge of the IEC 61850 protocol can help.
When I open the examples, Publisher.vi and Subrscriber.vi (unkown dataset), which were included with the IEC driver, and just run them, they work. However, when I try adding or just changing the type of data the publisher is sending, i get an error, so I'm guessing there is something I'm not doing, any ideas?
Also, it appears that there isn't a way to create a publisher using GOOSE commands, but I just create a MMS server and then subscribe to it using the GOOSE protocol, does this sound right?
Also, at the start of the examples there is that blue box that does something with the SCL, but I'm not sure what it's doing nor where to find that instance.
Any help would be great, thank you.
Andrew
PS- I may continue to post questions, but feel free to answer any of them if you have the answer, I am just trying to understand this protocol so I can create the simple labview program I need for now, then can build on it later.
03-13-2017 11:23 AM
Hello andrew32
What is the type of data you had? And what is the data you need?
Feel free to attach screenshots.
Regards
03-13-2017 11:32 AM
So I using the IEC61850 GOOSE project from the examples given and have opened the Publisher.vi with the Subscriber (Unknown Dataset).vi. I am literally just trying to change ANY of the data points in the publisher so I can have 2 boolean, 1 float, 1 integer, 1 unsigned integer and 1 timestamp overall. Right now the publisher starts with a boolean, a unsigned integer and a time, but even if I change one of those, i get the error. So I am assuming I have to do something in the SCL file, but am not sure what.
Thanks,
Andrew
03-14-2017 04:24 AM
Hi,
1. when I try adding or just changing the type of data the publisher is sending, i get an error, so I'm guessing there is something I'm not doing, any ideas?
You cannot just make changes in VI code. ICD file defines all perporties of all data, like name, type, structure, etc. So you need to change the ICD file firstly.
2. it appears that there isn't a way to create a publisher using GOOSE commands, but I just create a MMS server and then subscribe to it using the GOOSE protocol, does this sound right?
GOOSE and MMS are different types. Only the MMS client can communicate with MMS server.
3. at the start of the examples there is that blue box that does something with the SCL, but I'm not sure what it's doing nor where to find that instance
Which "blue box" do you refer to? Do you mean _CreatePublisher.vi or _CreateClientFromSCL.vi? If so, you can double click this VI and find its next layers VIs. The function of this VI is loading ICD file and making some basic configurations for Publisher or Subscriber.
4. Right now the publisher starts with a boolean, a unsigned integer and a time, but even if I change one of those, i get the error. So I am assuming I have to do something in the SCL file, but am not sure what.
Same as the question1, if you want to do some changes for data, modifying ICD file is the first step.
You can use the IEC61850 SCL Utility.vi to browse your ICD file, like follows. Let's say S1->Server->CFG->LLN0->Mod, you can control stVal, q, t and ctlModel in VI. So if you want to do some changes for nodes, you should change the ICD file firstly.
Thanks!
03-14-2017 10:33 AM
Thanks Three Lions,
That is really informative. One more question so I can create my own publisher and subscriber VIs with the correct values. How do I create a icd file from scratch? That is, is there a way I can make one my own without all of the extra components that come with the example icd? Or do I just need to modify it? Also, once I've created it, do I just create from SCL the icd file and then add the matching components?
Andrew
03-14-2017 05:07 PM
Ok, so I've been looking at IEC61850_GOOSE_example.icd all day and my question is how do I edit it to be a simple publisher that sends a few different data types, i.e. boolean, integer, float, time, etc. I was using the SCL_Utility.vi to look into it, but I can't edit anything while running it on the example icd except to add short addresses and i'm not sure what those are used for. Therefore, I assume I need to manually edit the icd, but have no clue what I can and cannot touch within the icd. Is there a tutorial or example that I can use to create an icd that i can then build my front panel with? I am just not finding a lot of helpful things online, so any help or a push in the right direction would be great.
Also, the RTAC one I previously attached is reattached to this post because I am assuming since this is what the RTAC is publishing, I should be able to just make a subscriber in labVIEW to read the data from it. Is this a fair assumption? My end goal is to create a SCADA like the DNP3 one I created to communicate with the RTAC, but want to get a better understanding of IEC 61850 GOOSE first and be able to create my own publisher and subscriber in labVIEW so that I can eventually just make a more advanced subscriber to read from the RTAC.
Thanks
Andrew
03-14-2017 05:07 PM - edited 03-14-2017 05:08 PM
Accidentally reposted
03-15-2017 05:56 AM
Hi,
1. I assume I need to manually edit the icd
You are right. You need to edit the ICD file manually. Any file edition tool is available, like Notepad++.
The main role of the SCL Utility.vi is browsing the structure of the ICD file. If the user know the structure, they can make a correct configuration in VI.
2. Is there a tutorial or example that I can use to create an icd that i can then build my front panel with?
No. The rule of creating the ICD is defined in the IEC 61850 standard protocol and NI don't have related tutorial. You need to find the details in the IEC 61850 standard protocol.
However, as you know, there are example VIs and an example ICD file and you can make a comparison between them to know their correlation. Let's say the Publisher.vi as an instance.
In the Publisher.vi, you can see the point address, "E1L1/PTRC1$ST$Tr$*". Give you a brief explanation about it.
1. E1--IED (intelligent electronic devices)
2. L1--LD (logical device)
3. PTRC1--LN (logical node)
4. ST--DataSet
5. Tr--DO(data object)
Then run the IEC61850 SCL Utility.vi. Load the IEC61850_GOOSE_example.icd and find the E1->P1->Server->L1->PTRC1. Double-click PRTC1 and popup a new dialog. Then find the Tr like the below screenshot. You can find the index 1, 5 and 6 in Tr is phsA, q and t.
In the Publisher.vi, you can find the index1 corresponds to Phase A, index5 corresponds to Quality and index6 corresponds to Timestamp in the While loop. This is the correlation between VI and ICD file.
For the IEC61850_GOOSE_example.icd, Tr is a part of the PTRC and be defined at P479. And the type of Tr is ACT. The ACT is defined at P877. So the ACT is the actual defination of this type. You can find the contents of ACT are same as the above screenshot.
As a result, you need to defined custom nodes and their hierarchical structure in ICD file firstly, then make the correct path and index in VI to read/write them.
If you want to design your own ICD file, I think it is necessary to know the IEC 61850 standard protocol.
Thanks!
03-15-2017 06:08 AM
3. Also, the RTAC one I previously attached is reattached to this post because I am assuming since this is what the RTAC is publishing, I should be able to just make a subscriber in labVIEW to read the data from it. Is this a fair assumption?
Yes. if the RTAC_9Mar2017.icd is provided by RTAC, you should follow it. And you can make a subscriber in labVIEW to read the data from it
When run Publisher.vi and Subscriber.vi on PC, the publisher and the subscriber are both virtual, or we can say they are based on software. However, if the ICD file comes from a true HW, generally, the ICD file links to the specific nodes on that HW. So you cannot modify them optionally.
So you should browse the ICD file by the IEC61850 SCL Utility.vi to know the structure and change the Subscriber.vi according the structure. Of course, if you read/write MMS messages, you should refer to example VIs of MMS client.
Thanks!