-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libethercat for sercos drive #15
Comments
Hi Marc, First of all, unfortunately I did never have a Rexroth IndraDrive so i can only guess whats happening here. I did ask google a little bit and think this is a motor amplifier talking/configured via SoE (Sercos/ServoDrive). In my opinion SoE is very bad documented by the ETG/Beckhoff but the implemention from libethercat is tested with Beckhoff AX5000 amplifiers so this should work. At DLR we own the full old Sercos spec because we used Sercos-I/II (fiber, not the Ethernet based Sercos-III) in our lightweigth robots (LWR-III). i assume it is slave idx 4 (starting from 0) in your log file. The problem i see here is following: When configuring the system to use DCs every slaves clock should be set to 0 (First step switching from PEROP->SAFEOP here). After that every slave supporting DC is programmed with it's cycletimes, mode and starttime. The starttime is assumed to be one second in the future (here). In your log you can see that between setting clocks to zero and configuring slave 4 clock there's only a delay of less than 0.2 seconds. But the problem with that slave is printed here:
The slaves time (for whatever reason) is already at 3.48 seconds (see other slaves, all at 0.15 seconds). In this case the start time is smaller than current time and the DC will never start. This results in the timing error you got. The jitter does not have any influence to this. I think you have to figure out why the dc time is already that big, maybe play around with the start time. Maybe it's also neccessary to send more FPWR/BWR datagrams synchronizing the clock here. Do you know what EtherCAT slaves ASIC/chip is inside the Rexroth? What dc mode are you using? Reference Clock in Slave, or EtherCAT masters clock? Edit: Sorry, i just read the issue title right now. Yes we are talking about a SoE drive ;-) |
Hi Robert, I used MasterAsRefClock with Sync01 cycletime0=1ms and shift=500us Slave 0: EK1100 |
If all drives are connected to the bus, I also found some reported wiring errors. I checked the wiring and sure enough, In and Out were reversed on the drives (normally the In is the top connector, but on the drives it is reversed). Very interesting that the wiring works with TwinCAT. DC_CONFIG : slave 4: entry port is not the first port, check wiring order! Here the log with wrong wiring
Fixing the wiring solves the
|
According to Bosch Rexroth docs that means
As you already mentioned the sercos cycletime is set to 1000us (S-0-0002, hopefully also in S-0-0001) and i can see in your log that dc-sync0 and dc-sync-1 is also 1000us. Can you tell me which Sercos IDs you are writing in state transition PREOP->SAFEOP? I can only see in the log that there are some mapped bytes for ATs and MDTs (S-0-0016 and S-0-0024). There should be an EtherCAT slave information XML (ESI) file from Bosch Rexroth. In most cases TwinCAT needs that. Is it possible to provide that file? |
I do not write them in the PreOp phase because writing gives me the following error:
But the configuration as is should work. Reading in PreOp gives me the following values:
BoschRexroth_IndraDrive_ECAT_SoE_01V26.txt According to this, which is for another drive, the S-0-0021 gives me the wrong parameters, but when I read the parameters the list is empty.
Interpreting the parameter based on this |
Feat/hw rework
Hi Robert,
I am trying to control a Rexroth IndraDrive. But get a C0108 on the drive when switching to SafeOp. The cycle time is 1ms which is correctly configured in S-0-0002 to 1000us.
Any idea? Is the jitter too high?
The EL7211-0010 works fine without the IndraDrives.
log_ecat.log
Best
Marc
The text was updated successfully, but these errors were encountered: