Jump to content
OMRON Forums

Ethercat slave can't go into Safeop or OP state


Corentin

Recommended Posts

Hello all,

 

I have issues setting up an Ethercat servodrive (Schneider Electric ILA2E572TC1A0).

It cannot go into state SAFEOP or OP.

When I activate Master[0] tasks the slave stay in PREOP and return an error (see attachment).

 

Another problem is that PMAC don't support direct connection to the drive (even with a crossover cable). I need an ethernet switch between the two.

 

How can I solve those two problems?

 

Here is my configuration :

-Rack UMAC

-PowerPMAC 465 (PowerPC APM86xxx)

-Firmware 2.5.0.4

-Accessories Acc-24E2A, Acc-84E and Acc-65E

-IDE 3.1.4.0

 

I put screenshots of the ethercat configuration in attachment.

 

Thanks in advance.

General1.png.12452bc97b56c0e9c0746389370fa87c.png

DC1.thumb.png.26cf3f1b369507542e22c6227e51a41b.png

Startup1.thumb.png.6994b367eb20eef5cb9f7847e86b0775.png

error1.png.a467fb2698c62a0e693b2ee83e051e81.png

Capture.png.327798c793116d6605912fffb1801275.png

Link to comment
Share on other sites

  • Replies 23
  • Created
  • Last Reply

Top Posters In This Topic

Another problem is that PMAC don't support direct connection to the drive (even with a crossover cable). I need an ethernet switch between the two.

What do you mean? Does "ecat slaves" not get a response unless you are going through a switch? If it is something else, what is the symptom you see?

 

Sometimes the PMAC needs to be booted after the slave is power on and connected by ethernet cable to the master already. That is only when the phy chips don't get along. It's possible that PMAC can communicate with the hardware on the switch without a reboot.

 

When I activate Master[0] tasks the slave stay in PREOP and return an error (see attachment).

Does the drive show an error? Drives will refuse to go into OP if something is wrong.

 

Also, try to "upload logs" like in the attachment and see if the error or error history logs mention anything.

uploadlog.png.488a95a0f1e36eba8656c17349bc6cfd.png

Link to comment
Share on other sites

What do you mean? Does "ecat slaves" not get a response unless you are going through a switch?

Exactly, "ecat slaves" does not get a response unless I use a switch.

 

Sometimes the PMAC needs to be booted after the slave is power on and connected by ethernet cable to the master already. That is only when the phy chips don't get along. It's possible that PMAC can communicate with the hardware on the switch without a reboot.

I tried to power on and connect the slave before booting the PMAC, I still have the same problem.

 

Does the drive show an error? Drives will refuse to go into OP if something is wrong.

No the drive does not show any error. The only error I get is in the PMAC IDE in the "slave status" in the "system setup" window. (see in the attachment).

 

Also, try to "upload logs" like in the attachment and see if the error or error history logs mention anything.

I upload the logs and the error and error history logs mention nothing.

error1.png.1316cb91916eefa4f78acbe8eb70f81e.png

Link to comment
Share on other sites

I see that you specifically mentioned that the "error and error history" logs don't show anything. Can you check through the other logs? I unfortunately can't remember for EtherLab (the EtherCAT implementation on your CPU), but on Acontis, there is a file named "ecmaster0.0.log" and another named "error0.0.log"--typically, I would expect EtherCAT errors to go into one of those two files, rather than the "standard" pp_error.log or pp_error_hist.log.
Link to comment
Share on other sites

I see that you specifically mentioned that the "error and error history" logs don't show anything. Can you check through the other logs? I unfortunately can't remember for EtherLab (the EtherCAT implementation on your CPU), but on Acontis, there is a file named "ecmaster0.0.log" and another named "error0.0.log"--typically, I would expect EtherCAT errors to go into one of those two files, rather than the "standard" pp_error.log or pp_error_hist.log.

 

I can't find any error logs about the EtherCAT. The only log wich contains information about Ethercat is "/var/log/dmesg" (see in attachment).

Do you have any idea where those type of logs are?

Capture_log.thumb.PNG.43f935bcb116daf87a57d4c49cb5ef63.PNG

Link to comment
Share on other sites

The issue with requiring a switch may be caused by an issue between the phy chip on the PMAC and on the Schnieder Electric drive. Do you ultimately intend on having more EtherCAT slaves, or will that be the only one? Putting a different device between them (such as a switch, but alternately another drive or an I/O module if you intend to use them) may fix it.

 

As you noted, for EtherLab there are no log files aside from dmesg.

 

-If the drive does not show any errors, if you ignore the error showing up in PMAC, are you able to do anything such as command motion or reading parameters from the drive?

 

-Have you configured EtherCAT before in general on a PMAC? I just want to verify that you know the full procedure/have some sort of reference that you are following.

 

-Can you confirm the value of ECAT[0].Error? That may provide more information.

Link to comment
Share on other sites

The issue with requiring a switch may be caused by an issue between the phy chip on the PMAC and on the Schnieder Electric drive. Do you ultimately intend on having more EtherCAT slaves, or will that be the only one? Putting a different device between them (such as a switch, but alternately another drive or an I/O module if you intend to use them) may fix it.

We ultimately intend to use another servodrive (the same as the first) and maybe an I/O module. I've tried with 2 servodrives connected and I've got the same problem. Soon we will receive an EtherCAT slave development kit and I will try it.

 

-If the drive does not show any errors, if you ignore the error showing up in PMAC, are you able to do anything such as command motion or reading parameters from the drive?

I can't command motion (probably because the drive needs to be in OP state for that) but I can read and write parameters from the drive with "ecatsdo()". But only when Master[0] tasks are deactivated, otherwise I get "Failed to execute SDO upload: Input/output error".

 

-Have you configured EtherCAT before in general on a PMAC? I just want to verify that you know the full procedure/have some sort of reference that you are following.

No this is the first time I try to configure EtherCAT on a PMAC. I followed the Power PMAC IDE user manual.

 

-Can you confirm the value of ECAT[0].Error? That may provide more information.

ECAT[0].Error is equal to 0 even when I get an error in "Slave Status" in the system setup window (see attachment).

error1.png.062b01c297af167c47779f96025108e9.png

Link to comment
Share on other sites

Then it looks like the drive is reporting an error. It could be to do with setup or it could just be a problem with the drive.

 

Taking a look at the version of the IDE manual that would be in your IDE. On the DC tab, did you set Sync 0 Shift? If not could you try setting it to half of the Sync 0 Cycle?

Link to comment
Share on other sites

Then it looks like the drive is reporting an error. It could be to do with setup or it could just be a problem with the drive.

I tried to use the drive connected to my PC with TwinCAT as master. I managed to make the drive go to OP state.

I've got 2 drives (exactly the same, both are brand new) and both of them can't reach OP state with the Power PMAC. Is it possible that the error comes from the drive despite those facts?

 

Taking a look at the version of the IDE manual that would be in your IDE. On the DC tab, did you set Sync 0 Shift? If not could you try setting it to half of the Sync 0 Cycle?

I've already set the Sync 0 Shift to half of the Sync 0 Cycle (see first attachment). Actually I tried multiple values of Sync 0 Shift and I still got the problem.

 

Additionally, I believe you posted the dmesg from when the slave wasn't being detected. Can you also share the contents of dmesg when you get that error?

The content of dmesg seems to stay unchanged when I get the error (I start an ssh connection and check the file when the error is on the IDE screen). Is it possible that the error is written in another file?

(see second attachment)

dc.thumb.PNG.65d1cbe4d0ddc4daf972e19cd59f551a.PNG

Capture_dmesg.thumb.PNG.0bf9f21e5c4b81a10353f38a8aefb2c1.PNG

Link to comment
Share on other sites

Another information, the drive seems to support only those modes of operation : Jog, Profile Position, Profile Velocity, Homing and Cyclic Synchronous Position (see in attachment). I tried only Cyclic Synchronous Position. Here is the link of the user manual of the drive : https://download.schneider-electric.com/files?p_enDocType=User+guide&p_File_Name=ILA2E_EtherCAT_Manual_V202_EN.pdf&p_Doc_Ref=0198441113634-EN

Capture_op_modes.thumb.PNG.d37ba3aa54edcbbfaf59260075cfbeed.PNG

Link to comment
Share on other sites

Cyclic Synchronous Position mode is the correct one--while there are some users who have configured drives in Profile modes, the Cyclic Synchronous modes (Position/Velocity/Torque) are the only 3 officially supported.

 

Can you try issuing "ecat reset", followed by "system dmesg" in the terminal? I know I'm somewhat emphasizing dmesg, but I'm just not sure why it doesn't seem to be displaying any error explanation. Since the response will likely be long, it may be easier to copy/paste the full response into the forums directly as text or to save the contents of the terminal window as a text file and attach it to your post.

Link to comment
Share on other sites

The result of "ecat reset" followed by "system dmesg" when Master[0] is deactivated, is in the attachment "dmesg.txt".

The result of "ecat reset" followed by "system dmesg" when Master[0] is activated (and the error is shown in the startup window), is in the attachment "dmesg_error.txt".

They seems to contain a lot more informations than the "/var/log/dmesg" file.

dmesg.txt

dmesg_error.txt

Link to comment
Share on other sites

Well, that log does seem to tell us the error:

 

EtherCAT WARNING 0-0: PDOs configured for SM2, but slave does not provide the sync manager information!

EtherCAT WARNING 0-0: PDOs configured for SM3, but slave does not provide the sync manager information!

EtherCAT ERROR 0-0: Failed to determine PDO sync manager for FMMU!

 

Basically, you are properly configuring the PDOs for the Sync Manager (so PMAC is ready to transfer the data to/from the slave), but the slave does not seem to have the sync manager information programmed into its EEPROM. The EtherLab FAQ located at https://www.etherlab.org/en/ethercat/faq.php goes over it in a bit more info. Since that link does seem to be down right now for some reason, a cached version is available here.

 

The "fix" at this point most likely involves reaching out to the slave manufacturer. You may be able to reprogram the EEPROM yourself using the XML file and TwinCAT, as the XML file should also have the same information, but vendors often do not realize that the slave needs it too as per the EtherCAT spec.

Link to comment
Share on other sites

In the past few days I tried multiple things:

-I manage to reprogram the EEPROM myself. It wasn't enough to solve the problem.

-My company get (temporarily) a used servodrive ABB microflex e190. I managed to make this one work.

-So I tried to connect the first one (schneider) with the microflex and it can go to OP mode (only when the microflex is on the network too). (see last attachment)

That's a relief and thank you very much for your help.

 

But now I got another problem : it seems the PDOs mapping power PMAC can't update the schneider's actual position (see first and second attachments). But when I use "ecatsdo(1,1,$6064,0,0,0)" I got a position that seems correct (see first attachment).

1406792270_abbschneider1.PNG.31852e7714b0a3e4ddcc22764c353fc9.PNG

pdoerr.PNG.0c85def79620b7648ab727e2b42925b9.PNG

pos.PNG.375fe67099f32bf95461c241299c5d71.PNG

Link to comment
Share on other sites

Stupid question, but EtherCAT was enabled when you attempted to read ECAT[0].IO[7].Data, correct? No information gets transferred automatically (ie, information would ONLY get transferred by ecatsdo commands, not by firmware) if EtherCAT isn't. I see you posted a screenshot showing them in OP, so I assume this was taken at the same time/everything was enabled, but still...

 

Assuming that was the case, then most likely the mappings didn't really get loaded into PMAC, or possibly that conflicting mappings may also be loaded. To guarantee that no other mappings exist and that the correct ones are loaded, try this:

 

//Factory Reset -- Issue these into the Terminal

1. $$$***

2. SAVE

3. $$$

 

//Configure EtherCAT - Make sure you have a Project open before performing these steps

4. Configure EtherCAT through System Setup. Make sure all necessary mappings show up in either "Background Tasks" or "Foreground Tasks" (one of the two should have all of the inputs/outputs, one should be empty)

5. Right click on the master and export all of the EtherCAT variables.

6. Verify the existence of "ecatactivate0.cfg" in the Configuration folder (this should ideally have a few ecatsdo commands pre-populated into it) and that a file was created in Global Includes that lists all of the PDOs you have mapped.

7. Build and Download the project

8. Right click the "ecatactivate0.cfg" file and select Check to Download

9. Right click the Configuration folder and Download Selected Config files.

10. SAVE

11. $$$

12. Enable EtherCAT (ECAT[0].Enable=1)

 

 

 

If your ecatactivate0.cfg file is empty, you can leave it alone for the purposes of this test, but ideally it will have a series of ecatsdo commands setting parameters listed in the "Startup" tab to their correct values--typically 6060 is the main one required (to put drives into mode 8/cyclic synchronous position mode), though some slaves need other parameters, such as:

 

60C2, Subindex 1 and 2 - Interpolation Time Period

6072, Subindex 0 - Max Torque

607F, Subindex 0 - Max Profile Velocity

 

Mind you, the vast majority of drives just need 6060, but these are some of the "next most common" parameters I've seen in case the drive is throwing errors related to communication or refuses to output torque/command motion (because it is Torque/Velocity limited to 0).

Link to comment
Share on other sites

Stupid question, but EtherCAT was enabled when you attempted to read ECAT[0].IO[7].Data, correct? No information gets transferred automatically (ie, information would ONLY get transferred by ecatsdo commands, not by firmware) if EtherCAT isn't. I see you posted a screenshot showing them in OP, so I assume this was taken at the same time/everything was enabled, but still...

Don't worry, it is my fault, I didn't specify that. Yes EtherCAT was enabled.

 

I did what you describe and I delete some useless pdo that were proposed by the xml file (see in attachment, I surrounded them in red).

And now the drive works perfectly! Thank you very much!

 

Now I can't use the ABB drive for the final system, i will need something else to "stabilize" the network. Do you think an IO device or an EtherCAT switch will be good?

input.thumb.PNG.5e532dadab60069f088aa7a0513e9320.PNG

output.thumb.PNG.cd01a3e08d3b12421ba6b7061eef9a8c.PNG

Link to comment
Share on other sites

I expect either one should work--if you don't have a reason to use the I/O device, though, I would go with the switch, particularly if it specifically mentions being able to autonegotiate baud rate (most often, it'd be listed as either 10/100 or 10/100/1000). I suspect that this is the reason for the issue (usually there's no issue, but every once in a while the networking phy chip on a slave device doesn't want to negotiate with the one on a PMAC), so a switch specifically designed to handle whatever speeds individual devices want is probably the safest bet.

 

That said, if you actually do have use for the I/O, that would most likely work as well and would be two birds with one stone.

Link to comment
Share on other sites

I used an EtherCAT junction slave (the GX-JC03 from Omron). It works perfectly with my Schneider drive! (On the network there is first the junction slave then the drive).

 

On monday I will try to connect the second Schneider drive in daisy chain and I will post the results here.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...