Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
EtherCAT: dcrefslave
#1
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?
Reply
#2
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.



(10-29-2012, 09:50 AM)andyf Wrote: 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?
Reply
#3
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
Reply
#4
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.

(10-30-2012, 09:50 AM)hbausley Wrote: If the terminal reports ecat[0].dcrefslave=8 then it is using slave 8 as the reference clock.
Reply
#5
(11-26-2012, 02:07 PM)andyf Wrote: 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.

(10-30-2012, 09:50 AM)hbausley Wrote: 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
Reply
#6
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?


(11-27-2012, 11:24 AM)hbausley Wrote:
(11-26-2012, 02:07 PM)andyf Wrote: 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.

(10-30-2012, 09:50 AM)hbausley Wrote: 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
Reply
#7
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

(10-30-2012, 09:50 AM)hbausley Wrote: 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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)