I have another (maybe dummy) question. TSN is built on the Ethernet standard that uses a profile of IEEE-1588 hardware synchronization. Therefore, i wonder if it's possible to use an external 1588 Grandmaster (e.g. Hirschmann MAR 1040 switch). Ideally, this external signal will be considered as the grandmaster for all TSN device.
Maybe something like that:
Solved! Go to Solution.
As long as the IEEE-1588 Time Reference is installed on the CompactRIO target, you can set up a topology like this. The CompactRIO will serve as a bridge between the two networks and can propagate the IEEE 1588 time to the 802.1AS network. It's worth noting that IEEE 1588 and 802.1AS are not compatible standards. If you had a target that only had the 802.1AS time reference installed, you could not synchronize it with an IEEE 1588 network.
Glad to hear it's possible, I installed NI-TimeSync Time Reference for IEEE 1588-2008 18.0.0 on the target. For the moment the grandmaster still the cRIO 9040. I configured the priority 1 and 2 of the switch to 0 (to force it to be the master), but how can i configure the CRIO ?
I thought i will have a configuration panel in MAX that allows me to choose the priority of the clock... but i can't find anything...
Thanks for your help
Well i found how to modify these parameters, using the Monitor and configure Time Reference.vi (deploy it on the CRIO).
The priority of clock are set to 246 and 247 so they should be slave and no master if i have a 1588 clock configured with the priority 0 no? I'm still searching...
I managed to enable the IEEE 1588-2008 (at first you have to disable the source IEEE 802.AS on the port eth0).
Now the TSN is activated in eth1 and IEEE 1588 in eth0.
The problem is both are Master. I thought IEEE 1588 on the eth0 should and TSN on eth1 should be slave of my Grandmaster clock (generated by the Hirschmann). It seems both are independant...
Any idea ?
Last spam of the day....
After configuring the swith properly, the IEEE 1588 is now slave and the grandmaster is the Hirschmann switch, but... and that's the problem, the IEEE 802.1 AS still master (event if the priority is higher i.e. 246 )... how is made the link between the two reference ?
I think your system is working properly. You should see the Hirschmann as GM on the 1588 network and the cRIO as slave on 1588. Then you should see cRIO as master on the .1AS and cDAQ as slave on .1AS.
Internally the cRIO is acting kind of like a boundary clock. It is taking the time from the Hirschmann and using it to drive the internal clocks. It is then acting as master on the .1AS network but the time is ultimately synchronized to Hirschmann. Hirschmann is the grand master, cRIO is slave on one network and master (not grand master) on the second network, cDAQ is slave on the second network.
This is one of the more advanced features so it is a little complicated (and not very clearly exposed/explained in the API) but it sounds like it is working properly.
Thanks for your answer. It seems to works. With a scope i compare signals generated from a TICRO module (this module generate a clock synchronized with the 1588) and with the signals i generated with the modules on the cRIO (FPGA and DAQmx) and the cDAQ (DAQmx)... everything looks fine.
I have 10 ns between the signals generated by the cRIO (FPGA and DAQmx) and 30 ns with the signal generated by the cDAQ.
The only thing that looks strange for me is when i read clock informations (8021AS Status.vi). This vi return me the IEEE 802.1AS-2011_2 is the master (as you wrote), but the ID of the Grandmaster is not the ID of the 1588 clock but the ID of his clock.
If I use a 1588 software timed synchronization, will this disturb the TSN network, like the sampling clock?
Having 1588 and 802.1AS enabled at the same time on a target shouldn't disturb either network. What configuration did you have in mind? Protocols are used on a per-port basis (for example, 802.1AS can be used on port 0 and port 1, either port, or neither port.) Which port would have what protocol enabled, and would the port be mastering or slaving?