|
Re: IEC 61850 Sampled Values [message #1807152 is a reply to message #1807080] |
Thu, 23 May 2019 19:01 |
|
Hi,
I'll try to answer your questions although you give as very little information
ad 1) in the layer you can access the FB and the CommFB has helper methods to access the in and outputs of your FB. Please refer to other top layers for reference on that. Serilaisation is need to define how the data of data types needing more then one byte is mapped to the byte stream to e sent on the network.
ad 2) no idea
ad 3) I'm not sure if I understand your question, but I think the answer from 1 applies here as well.
I hope this helps,
Alois
|
|
|
|
Re: IEC 61850 Sampled Values [message #1807172 is a reply to message #1807160] |
Fri, 24 May 2019 06:12 |
|
Hi Karthik,
you are welcome. Regarding your question 1: This strong depends on the protocol and the library you are using. If you use the IP layer from 4diac FORTE then you only have to provide the data content of the IP frame.
Alois
|
|
|
|
Re: IEC 61850 Sampled Values [message #1807303 is a reply to message #1807282] |
Mon, 27 May 2019 19:31 |
|
Hi Karthik,
First of all please let me warn you about changing 4diac FORTE code. This has not only license issues but this may also bring you maintenance problems. If we update the code you have to manually add our fixes and updates to your code. If possible separating your code by extending from our classes or using our classes as members of yours is always better.
Where and in which form to generate your data packet depends on several things. We have split the data serialization following the FBDKasn1 approach [1] from the network code because this gave us much more flexibility. We can now send and receive FBDKasn1 encoded data across different network protocols by just defining a different layer below it. For example we used it on MQTT, AMQP, TCP, UDP, CAN, Serial communication. Also we can insert more layers like encryption. The same holds with the lower layers we can put different on top e.g., sending other encodings across MQTT.
So in your case it can make sense to have two layers if you want to send the same data packet across different transport means. If this is always the same for you I would say it would be easier for you to have one layer where you take the data from the FB generate the correct packet and send it over the network.
Cheers,
Alois
[1] To be correct FBDKasn1 layer implements the Interoperability Provisions defined in the "IEC 61499 Compliance Profile for Feasibilty Demonstrations"
|
|
|
|
Re: IEC 61850 Sampled Values [message #1807368 is a reply to message #1807331] |
Tue, 28 May 2019 16:03 |
|
Hi,
sorry I have no idea how SV/GOOSE works.
If you need raw sockets then I would recommend to implement this in your own independent layer using the API from the operating system you are targeting. Especially when you are doing a first experiment.
Cheers,
Alois
|
|
|
|
|
Re: IEC 61850 Sampled Values [message #1808347 is a reply to message #1807609] |
Fri, 21 June 2019 19:21 |
Karthik Sharma Messages: 7 Registered: May 2019 |
Junior Member |
|
|
Dear Alois,
Yes, I had forgot to enable the CONVERT and IEC-61131 modules in forte. It works fine as of now. Thank you.
As of now, I have a data link layer setup between a laptop and raspberry Pi and this comms protocol is expected to communicate at a rate of 4000 packets/second. This is not possible to obtain in regular Linux kernel (Vanilla). In case of installing a Linux RT kernel patch, how to enable forte to run in real time? I use a RT patch on Ubuntu!
Thank you,
Karthik
[Updated on: Fri, 21 June 2019 19:21] Report message to a moderator
|
|
|
|
Re: IEC 61850 Sampled Values [message #1808545 is a reply to message #1808392] |
Wed, 26 June 2019 15:30 |
Karthik Sharma Messages: 7 Registered: May 2019 |
Junior Member |
|
|
Hi,
Thanks for the support link. It unfortunately does not work because I have data being generated from multiple sources. I have a multiple client and single server connected to a single switch situation and I have to check for the data packets and then reject 1/3rd of them as they have all the same destination address (sort of broadcast) and the data checking happens from one of the encoded data-bytes inside the data packet. So I need to run a check loop and this has created the delay. Unfortunately this is how my system is expected to work. and the following error is received.
ERROR: T#XXXXXXX: External event queue is full, external event dropped!
I am intending to implement multi-threaded process to handle the data packets using posix pthread until the dropping happens this would enable me to read less amount of data. How is TCP/UDP reception implemented if there are multiple data packets which are broadcast into a single switch at a very high fast rate?
Thanks,
Karthik
[Updated on: Wed, 26 June 2019 16:22] Report message to a moderator
|
|
|
Re: IEC 61850 Sampled Values [message #1808550 is a reply to message #1808545] |
Wed, 26 June 2019 17:08 |
|
Hi,
is it possible to have the three clients in three different resources? Then you would automatically have three different threads. But I'm from your description not perfectly sure of multithreading is solving your problem. Would it be possible that you share your application with us. Either here in the forum or privately to me (e.g., private channel to azoitl mattermost.eclipse.org, or alois.zoitl@gmx.at)?
Alois
|
|
|
Re: IEC 61850 Sampled Values [message #1808622 is a reply to message #1808550] |
Thu, 27 June 2019 21:36 |
|
Hi,
I gave your issues a second thougt and got two further ideas . First of all I would run 4diac FORTE with the perf tools. This would give us hints where the execution time is spent. This would give us hints where to focus the optimization efforts.
Another thing that I know is that we are currently are utilizing mutexes for protecting data connections. This costs quite some performance (roughly 40%) depending on your application (which I still have to get) you can disable this mutex and get more performance out of 4diac FORTE.
Currently we can not remove this mutex in general. We are considering different approaches for getting rid of it. But we haven't found anything yet.
[Updated on: Fri, 28 June 2019 06:08] Report message to a moderator
|
|
|
Re: IEC 61850 Sampled Values [message #1808714 is a reply to message #1808622] |
Sat, 29 June 2019 18:58 |
|
As I was doing an experiment today I noted a few more generic things that should be considered when working on high performance applications in 4diac FORTE:
- Set your CMake build to RELEASE build type
- Ensure that you build at least with the -O2 compile option, even better is O3. Check compile output for that. You can set that option in the CXX and CFlags options of CMake
- Disable all test options in your CMake config
- Disable all logging output and remove any hard coded printfs or similar. Console output is very costly!
|
|
|
Powered by
FUDForum. Page generated in 0.05994 seconds