I have question about black channel of powerlink which is used for openSafety?
What is it, how can we use him?
Need to be something special implemented in order to use him? Or is already implemented in powerlink stack, and needs to be used just some defined index in objdict.h?
Is maybe some documentation somewhere, because I could not find it?
Can somebody explain a little bit about black channel?
Thanks a lot!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Can you share the material which you are referring, so that we can take a look and help if we can.
openSafety uses producer consumer mode of exchange which can be over the normal multicast PDO exchange of Powerlink.
Okay, I understand. Just to clarify, both openPOWERLINK and openSafety use their own object dictionary (OD) , i.e. though you may come across same indices in both OD, their instances are independent from each other.
For mapping periodic application data exchanges in OPLK, as you may already be familiar, the TPDO and RPDO objects are used. OpenConfigurator can be used to perform/simplify this mapping.
Similarly for openSafety, it uses a similar concept of SPDO (Safety process data object) to link safety application data to be exchanged (the frame sequence differs from that of PLK). As far as I know, there is no tool right now which lets you map these objects without manual editing. But the basic steps will be that you map the safety objects in the openSafety application, exchange the data via an interface (e.g. PSI in the demo) with Powerlink where you place the safety data as part of the OPLK PDO. Then OPLK takes care of tx/rx of PDO data with other networked nodes.
On a related note for my understanding, if you are targeting to build a safety node, I assume that you are following the 2 chip or 3 chip architecture recommended by OpenSafety which is essential for SIL certifications. In this case the safety application and powerlink communication will run on different processors.
Hi,
thanks again.
It is very dificult.
I have no other possibility as get the data from powerlink over SPI, because this is an offical powerlink modul. So, where the data are stored on host application is clear, but how to use those data for openSAFETY? How to define at all incoming ant outcoming data on host application (is this some kind of array)?
Is there any other example of this implementation available which is easiest?
Thanks a lot for support.
Best Regards
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Okay. The data on your host application will be stored as array of structured buffers. Right now your application will be exchanging OPLK cyclic data with the external module over SPI i.e. read incoming (RPDO) and write outgoing (TPDO).
If your openSafety application also resides on the same host as OPLK, you can handle the data exchange with direct calls. I need to understand a bit more about your system to give suggestion. Could you please email me the details ? As an info, have you already checked out he openSafety demo ?
Hi Guys,
I have question about black channel of powerlink which is used for openSafety?
What is it, how can we use him?
Need to be something special implemented in order to use him? Or is already implemented in powerlink stack, and needs to be used just some defined index in objdict.h?
Is maybe some documentation somewhere, because I could not find it?
Can somebody explain a little bit about black channel?
Thanks a lot!
Hi,
Can you share the material which you are referring, so that we can take a look and help if we can.
openSafety uses producer consumer mode of exchange which can be over the normal multicast PDO exchange of Powerlink.
Best Regards,
aeicoriiotteam
Hi,
thanks for response.
I am using https://www.anybus.com/products/embedded-index/anybus-compactcom-modules/m40-details/anybus-compactcom-m40-module---powerlink as a powerlink modul.
Now i need to integrate the openSafety but i have no idea how to use the blackchannel and i dont know where to start with implementation. Can you somehow help me please?
Best Regards
Thanks
Hi,
Okay, I understand. Just to clarify, both openPOWERLINK and openSafety use their own object dictionary (OD) , i.e. though you may come across same indices in both OD, their instances are independent from each other.
For mapping periodic application data exchanges in OPLK, as you may already be familiar, the TPDO and RPDO objects are used. OpenConfigurator can be used to perform/simplify this mapping.
Similarly for openSafety, it uses a similar concept of SPDO (Safety process data object) to link safety application data to be exchanged (the frame sequence differs from that of PLK). As far as I know, there is no tool right now which lets you map these objects without manual editing. But the basic steps will be that you map the safety objects in the openSafety application, exchange the data via an interface (e.g. PSI in the demo) with Powerlink where you place the safety data as part of the OPLK PDO. Then OPLK takes care of tx/rx of PDO data with other networked nodes.
On a related note for my understanding, if you are targeting to build a safety node, I assume that you are following the 2 chip or 3 chip architecture recommended by OpenSafety which is essential for SIL certifications. In this case the safety application and powerlink communication will run on different processors.
Hope this helps.
Best Regards,
#aeicoriiotteam
Hi,
thanks again.
It is very dificult.
I have no other possibility as get the data from powerlink over SPI, because this is an offical powerlink modul. So, where the data are stored on host application is clear, but how to use those data for openSAFETY? How to define at all incoming ant outcoming data on host application (is this some kind of array)?
Is there any other example of this implementation available which is easiest?
Thanks a lot for support.
Best Regards
Hi,
Okay. The data on your host application will be stored as array of structured buffers. Right now your application will be exchanging OPLK cyclic data with the external module over SPI i.e. read incoming (RPDO) and write outgoing (TPDO).
If your openSafety application also resides on the same host as OPLK, you can handle the data exchange with direct calls. I need to understand a bit more about your system to give suggestion. Could you please email me the details ? As an info, have you already checked out he openSafety demo ?
Best Regards,
#aeicoriiotteam