Jump to content
OMRON Forums

EtherCAT: dcrefslave


andyf

Recommended Posts

I have successfully setup the EL6688 (slave 8) using etherlab (using upload and verifying settings via download). However, I cannot get the Delta Tau to use it as the dcrefslave, even though I set dcrefslave=8, dcrefband=10000, dcrefplus=2, dcrefminus=2. When queried dcrefslave reports back a value of 8. I am expecting the System Setup Master status info to show the dcrefslave=8 and the application time=internal time stamp from EL6688. However, it continues to show dcrefslave=0 and an application time of 2000-01-01 00:00:00.00000000

 

If I use Beckhoff's TwinCAT as a soft master, I am able to configure the master to do this without any problems.

 

Questions:

 

1) I have two acc24e3 in my rack, and PPMAC sets one to phaseServoDir=0. I believe this needs to be set to 3 correct? Does this have any impact on EhterCAT's ability to use an external device to sync the phase clock?

 

2) Is there a log somewhere that may shed some light into how the PPMAC EhterCAT is establishing the DC, and any errors encountered?

Link to comment
Share on other sites

  • Replies 6
  • Created
  • Last Reply

Top Posters In This Topic

You must have an Acc24E3[].phaseServoDir=0. An Acc24E3 cannot get its clock from the ethercat network, this is not physically possible as the CPU cannot generate interrupts to the Acc24E3. What happens is the ethercat alters the rate at which the Acc24E3 generates interrupts so that our phase and servo interrupts are synchronous to the ethercat reference slave. As a time difference is detected Acc24E[].PhaseServoClockCtrl is modified to stay synchronous to the ethercat reference slave. You should see it occasionally change in the watch window.

 

To if you are staying synchronous check the value of ecat[0].dcclockdiff. If it is not steadily growing or reducing distributed clocks is working. If the terminal reports ecat[0].dcrefslave=8 then it is using slave 8 as the reference clock.

 

We have not tested most of the EL6xxx special devices. We will have to order an EL6688 and test it with our controller to see what is required to for setting up the application time.

 

 

 

I have successfully setup the EL6688 (slave 8) using etherlab (using upload and verifying settings via download). However, I cannot get the Delta Tau to use it as the dcrefslave, even though I set dcrefslave=8, dcrefband=10000, dcrefplus=2, dcrefminus=2. When queried dcrefslave reports back a value of 8. I am expecting the System Setup Master status info to show the dcrefslave=8 and the application time=internal time stamp from EL6688. However, it continues to show dcrefslave=0 and an application time of 2000-01-01 00:00:00.00000000

 

If I use Beckhoff's TwinCAT as a soft master, I am able to configure the master to do this without any problems.

 

Questions:

 

1) I have two acc24e3 in my rack, and PPMAC sets one to phaseServoDir=0. I believe this needs to be set to 3 correct? Does this have any impact on EhterCAT's ability to use an external device to sync the phase clock?

 

2) Is there a log somewhere that may shed some light into how the PPMAC EhterCAT is establishing the DC, and any errors encountered?

Link to comment
Share on other sites

Are you setting the distributed clock from the setup program?

These settings are on the DC Tab page. In the system setup program when you select the EtherCAT device in the left side tree-view the right side will display Tab pages. One of the Tab page is DC. Typically you will need to set the values for AssignActivate and Sync0Cycle. The Sycn0Cycle value is the servo period you set it from system setup Global clock page. For example if the servoperiod is 0.500 msec then Sync0Cycle value is 500000. Press Accept to send the value.

 

Thanks,

Atul

Link to comment
Share on other sites

  • 4 weeks later...

Regarding your statement below...I have been able to set dcrefslave to invalid values (1234567) and it will report that number back in the terminal/window while DC is running. Thus, it is the master DC clock being used not the DC clock of the dcrefslave. It would be good to ensure dcrefslave is reset to 0 in this case.

 

If the terminal reports ecat[0].dcrefslave=8 then it is using slave 8 as the reference clock.

Link to comment
Share on other sites

Regarding your statement below...I have been able to set dcrefslave to invalid values (1234567) and it will report that number back in the terminal/window while DC is running. Thus, it is the master DC clock being used not the DC clock of the dcrefslave. It would be good to ensure dcrefslave is reset to 0 in this case.

 

If the terminal reports ecat[0].dcrefslave=8 then it is using slave 8 as the reference clock.

 

DC's will use either the user specified dcrefslave (if found and compatible) or the first compatible slave (if user dcrefslave not specified or not found or compatible). We will trap bogus slave numbers in the future to avoid confusion. Also dcrefslave only has an effect when you change ecat[].enable is transitioned from 0 to 1 changing it on the fly will do nothing

Link to comment
Share on other sites

At this time, determining if DC is working is not very intuitive. For example, if there are no slaves with DC support in the network, but I set ecat[0].distclocks=1 and ecat[0].dcrefslave=0, when I activate (ecat[0].enable 0->1) I can see ecat[0].dcclockdiff has a value and is held within the refband. Since there are no slaves DCs, is this just the difference between the master clock and itself each cycle?

 

At this time, what method do you suggest using to determine if DC is working with a reference slave or not?

 

 

Regarding your statement below...I have been able to set dcrefslave to invalid values (1234567) and it will report that number back in the terminal/window while DC is running. Thus, it is the master DC clock being used not the DC clock of the dcrefslave. It would be good to ensure dcrefslave is reset to 0 in this case.

 

If the terminal reports ecat[0].dcrefslave=8 then it is using slave 8 as the reference clock.

 

DC's will use either the user specified dcrefslave (if found and compatible) or the first compatible slave (if user dcrefslave not specified or not found or compatible). We will trap bogus slave numbers in the future to avoid confusion. Also dcrefslave only has an effect when you change ecat[].enable is transitioned from 0 to 1 changing it on the fly will do nothing

Link to comment
Share on other sites

Do you have a timeline for when you will be able to test and confirm how to operate the EL6688 with your master? Use of the EL6688 is essential to our application, and if PPMAC cannot support it then we need to look into using other masters.

 

Other essential devices for us are: EL1252 and EL2252

 

We have not tested most of the EL6xxx special devices. We will have to order an EL6688 and test it with our controller to see what is required to for setting up the application time.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...