the choices of NIC for 6 DOF robot with linuxcnc
- chuchengbing
- Offline
- Senior Member
- Posts: 45
- Thank you received: 0
Recently,my teachers and I intended to control a 6 DOF robot for stone carving with linuxcnc and the real robot can move simplely,etc writing the word of LinuxCNC. But it is not very stable in all running times. I have some questions about the system and linuxcnc:
1.Now,we just chose a PC as the controller,the system is Debian 7.9 and kernel system is 3.4.9-rtai-686-pse, linuxcnc is axes-joint13 for robot and the kinematics module is genserkins.
when I run the ec_master and it begin to scan the bus,there are always some questions, just as following(the linuxcnc is not running at this time):
[ 25.299137] EtherCAT ERROR 0-5: Failed to read mapped PDO entry.
[ 25.299138] EtherCAT ERROR 0-5: Failed to read mapped PDO entries for PDO 0x1600.
[ 25.363120] EtherCAT ERROR 0-5: Reception of CoE upload response failed: No response.
[ 25.363122] EtherCAT ERROR 0-5: Failed to read mapped PDO entry.
[ 25.363124] EtherCAT ERROR 0-5: Failed to read mapped PDO entries for PDO 0x1A00.
[ 25.363126] EtherCAT 0: Bus scanning completed in 9168 ms.
[ 25.363128] EtherCAT 0: Using slave 0 as DC reference clock.
[ 28.402384] EtherCAT WARNING 0: 36 datagrams TIMED OUT!
[ 28.402385] EtherCAT WARNING 0: 36 datagrams UNMATCHED!
[ 28.434447] EtherCAT ERROR 0-0: Reception of CoE SDO description response failed: No response.
[ 28.494439] EtherCAT ERROR 0-1: Reception of CoE SDO description response failed: No response.
[ 28.546589] EtherCAT ERROR 0-2: Reception of CoE SDO entry request failed: No response.
[ 28.590422] EtherCAT ERROR 0-3: Reception of CoE dictionary response failed: No response.
[ 28.642573] EtherCAT ERROR 0-4: Reception of CoE SDO entry request failed: No response.
[ 28.734382] EtherCAT ERROR 0-5: Reception of CoE SDO description response failed: No response.
[ 427.372489] EtherCAT: Requesting master 0...
[ 427.372493] EtherCAT: Successfully requested master 0.
[ 427.374225] EtherCAT 0: Domain0: Logical address 0x00000000, 162 byte, expected working counter 18.
[ 427.374228] EtherCAT 0: Datagram domain0-0-main: Logical offset 0x00000000, 162 byte, type LRW.
[ 427.374240] EtherCAT 0: Master thread exited.
[ 427.374243] EtherCAT 0: Starting EtherCAT-OP thread.
[ 427.374267] EtherCAT WARNING 0: 24 datagrams TIMED OUT!
[ 427.374269] EtherCAT WARNING 0: 25 datagrams UNMATCHED!
2.When I exit the linuxcnc,there are some PLL errors occuring,like bellow:
[ 1518.040795] EtherCAT 0: Releasing master...
[ 1518.040797] EtherCAT 0: Released.
[ 1518.040853] EtherCAT WARNING 0-1: Changed to SAFEOP + ERROR in the meantime.
[ 1518.043620] EtherCAT ERROR 0-2: AL status message 0x0032: "PLL error".
[ 1518.043735] EtherCAT 0-2: Acknowledged state SAFEOP.
[ 1518.055581] EtherCAT ERROR 0-3: AL status message 0x0032: "PLL error".
[ 1518.055752] EtherCAT 0-3: Acknowledged state SAFEOP.
[ 1518.059595] EtherCAT ERROR 0-4: AL status message 0x0032: "PLL error".
[ 1518.067537] EtherCAT 0-4: Acknowledged state SAFEOP.
[ 1518.071643] EtherCAT ERROR 0-5: AL status message 0x0032: "PLL error".
[ 1518.071862] EtherCAT 0-5: Acknowledged state SAFEOP.
[ 1518.083578] EtherCAT 0: Slave states on main device: PREOP, SAFEOP + ERROR.
[ 1518.087628] EtherCAT ERROR 0-0: AL status message 0x0032: "PLL error".
[ 1518.087998] EtherCAT 0-0: Acknowledged state SAFEOP.
[ 1518.111605] EtherCAT 0: Slave states on main device: PREOP.
3.I have the real robot moving in a simple way,just as writing a word of linuxcnc,but I found that when I run linuxcnc in simulation mode with the same kinematics moduleļ¼genserkins, and the same parmameter of ini file. DH parameters.the tool displayed in the AXIS interface is not continuous and the trajectory does not meet the trajectory descripted by the Gcode.
4.The NIC I am using is r8169,is there any relationships with the above questions? Can anyone tell me what type of NIC is best choices for our system?
thank you very much!!!!!!!
Please Log in or Create an account to join the conversation.
- chuchengbing
- Offline
- Senior Member
- Posts: 45
- Thank you received: 0
Please Log in or Create an account to join the conversation.
Also, EtherCAT is not an official part of linuxCNC, so you might have to ask your questions on the Ethercat forums
www.etherlab.org/de/ethercat/index.php
Please Log in or Create an account to join the conversation.
Hard to guess what is wrong without looking at your ethercat configuration xml.Hello everyone:
Recently,my teachers and I intended to control a 6 DOF robot for stone carving with linuxcnc and the real robot can move simplely,etc writing the word of LinuxCNC. But it is not very stable in all running times. I have some questions about the system and linuxcnc:
1.Now,we just chose a PC as the controller,the system is Debian 7.9 and kernel system is 3.4.9-rtai-686-pse, linuxcnc is axes-joint13 for robot and the kinematics module is genserkins.
when I run the ec_master and it begin to scan the bus,there are always some questions, just as following(the linuxcnc is not running at this time):
[ 25.299137] EtherCAT ERROR 0-5: Failed to read mapped PDO entry.
[ 25.299138] EtherCAT ERROR 0-5: Failed to read mapped PDO entries for PDO 0x1600.
[ 25.363120] EtherCAT ERROR 0-5: Reception of CoE upload response failed: No response.
[ 25.363122] EtherCAT ERROR 0-5: Failed to read mapped PDO entry.
[ 25.363124] EtherCAT ERROR 0-5: Failed to read mapped PDO entries for PDO 0x1A00.
My guess:
CoE slaves have to be configured.
This can either happen
- with RAW SDOs commands as in github.com/sittner/linuxcnc-ethercat/blo...cat-conf.xml#L23-L33
- or with a shell script as in github.com/sirop/EtherCAT_HAL/blob/master/setPDO.sh before starting your component
In rare cases "Slave Information Interface" (SII) EEPROM can be invalid: www.etherlab.org/en/ethercat/faq.php
Try to search for your errors on the etherrlab lists:
www.google.de/search?q=Failed+to+read+ma...e:lists.etherlab.org
4.The NIC I am using is r8169,is there any relationships with the above questions? Can anyone tell me what type of NIC is best choices for our system?
Yes, this simple NIC is actually a much better choice than e1000e.
Please Log in or Create an account to join the conversation.
- chuchengbing
- Offline
- Senior Member
- Posts: 45
- Thank you received: 0
sirop,you mean the r8169 is a suitable choice for our system? Is there any more better one?
Thank you
Please Log in or Create an account to join the conversation.
Thank andypugh and sirop:
sirop,you mean the r8169 is a suitable choice for our system? Is there any more better one?
Thank you
I would say that r8169 is a better choice than e1000e, but maybe RTL8139 is even better?
lists.etherlab.org/pipermail/etherlab-users/2016/002961.htmlThe Intel chipset is designed for high throughput with as little CPU
interaction as possible. It has things like interrupt throttling,
buffers and the works - poison for any real time application.
Although we have not experienced these issues and are successfully using
this driver, we try to use the most dumb (!) network cards available:
RTL8139 chipset is a good example. Paradoxically, they work best: when
they receive a packet of data, it is available immediately; when a
packet is sent to the card, it is transmitted immediately - no
buffering, no throttling.
Please Log in or Create an account to join the conversation.
- chuchengbing
- Offline
- Senior Member
- Posts: 45
- Thank you received: 0
This is my EtherCAT configuration file.
Please Log in or Create an account to join the conversation.
This is my EtherCAT configuration file.
So what are the SDOs you configure your CoE slaves with?
Please Log in or Create an account to join the conversation.
please start with a simple configuration and only with one slave.
If this is running, you can take all slaves and more registers.
Maybe try a config like this:
<masters>
<master idx="0" appTimePeriod="2000000" refClockSyncCycles="1">
<slave idx="0" type="generic" vid="99998888" pid="00020001" configPdos="true">
<syncManager idx="0" dir="out"> </syncManager>
<syncManager idx="1" dir="in"></syncManager>
<syncManager idx="2" dir="out">
<pdo idx="1600">
<pdoEntry idx="6040" subIdx="00" bitLen="16" halPin="drivecontrol" halType="bit"/>
<pdoEntry idx="607A" subIdx="00" bitLen="32" halPin="targetpos" halType="s32"/>
</pdo>
</syncManager>
<syncManager idx="3" dir="in">
<pdo idx="1a00">
<pdoEntry idx="6041" subIdx="00" bitLen="16" halPin="drivestatus" halType="bit"/>
<pdoEntry idx="6064" subIdx="00" bitLen="32" halPin="Actual_Pos" halType="s32"/>
</pdo>
</syncManager>
</slave>
</master>
</masters>
And try first without distributed clocks, disabe line <dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
Please tell us a litte bit about your hardware, manufacturer, type ....
If you start the PC, what say "ehercat slaves" ?
regards Frank
Please Log in or Create an account to join the conversation.
- chuchengbing
- Offline
- Senior Member
- Posts: 45
- Thank you received: 0
All the things I need can be got through the pdos. Is it necessary to configure the sdos? What is the reasons for the PLL error? Does it have the relationship with the sdo just as you said?
Please Log in or Create an account to join the conversation.