[etherlab-users] Debugging inconsistent slave behaviour

Graeme Foot Graeme.Foot at touchcut.com
Sun Dec 1 22:17:17 CET 2019

Hi Jakub,

It's kind of hard to say without more info.  But here's a few things to check (from very simple onwards):

1) check that the drives are going to OP mode ("ethercat slaves" command).  If they are not in OP mode they won't be handling PDO frames.

2) do an "ethercat slaves -v" command and check that your app is using the correct vender ID and product code to connect to it.

3) do an "ethercat slaves -v" command and compare the two types of drives, in particular the "Flags: Enable notLRW" flag.  If one of them is true, then you need to split the read and write PDO's into two different domains for that drive.

4) from a fresh power up of your amps, and before you start your app, do the "ethercat cstruct" command on the two types of amps and compare them.  If they are not the same, make sure your code is accounting for the differences.

5) before starting your amp run the command "ethercat debug 1" to set the masters debug output level to 1.  Start the app.  Once started check the dmesg log and look for any configuration errors

Graeme Foot.

From: etherlab-users <etherlab-users-bounces at etherlab.org> On Behalf Of j.sikorski at utwente.nl
Sent: Saturday, 30 November 2019 5:52 AM
To: etherlab-users at etherlab.org
Cc: s.misra at utwente.nl; f.khan at utwente.nl
Subject: [etherlab-users] Debugging inconsistent slave behaviour

Dear Etherlab Users,

For a few years now I've been enthusiastically using Etherlab master along with Gavin Lambert's patchset (up to kernel 4.4) to drive a handful of Technosoft Motion iPOS4808 BX-CAT slaves in various robotics projects. My framework involves  <ecrt.h> wrapped in custom C++ code. I thought that by now I have a reliable plug-and-play software stack. Unfortunately, I was proven wrong when I tried to use my code with another drive from the same family (iPOS3602 VX-CAT).

I managed to narrow down the problem to an issue with <ecrt.h> PDO exchange. When I run the cyclic process, I keep on receiving empty datagrams from the 3602 slaves regardless of what I do. Running the same code on the same machine with iPOS4808 slaves connected through the same cable works just fine. I can also read all CoE fields in 3602 slaves via SDO ("sudo ethercat upload" in console) with no problem. The manufacturer (Technosoft) claims that their Ethercat functionality should be consistent across the entire iPOS ...-CAT family, but something is clearly not right.

Since I have never ran into similar issues, I miss the know-how that would allow me to dig deep enough to establish the source of the problem (even the simple fact whether it's a problem with the slaves or the master). Hence, I thought I may check here, whether a similar situation has happened to anyone before. If you had any tips on how I could investigate the problem further, I would be much obliged.

Thank you very much in advance for any help.

Yours sincerely,

Jakub Sikorski

Doctoral Candidate

Surgical Robotics Laboratory

University of Twente

7500 AE Enschede

The Netherlands
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20191201/2b91d975/attachment-0002.htm>

More information about the Etherlab-users mailing list