Industrial Communications

cancel
Showing results for 
Search instead for 
Did you mean: 

Overall programming structure of 3rd party slave - Maxon EPOS4 EtherCAT

Hello.

I'm struggling to run the motor driver - Maxon EPOS4 EtherCAT using cRIO 904x.

I had worked with CANopen to run EPOS4 previously and trying to replace it with EtherCAT.

 

I followed this instruction to add my 3rd party slave device and it was able to communicate with SDO but I'm stuck going to the next step.

 

First of all, I'm not sure about the overall programming procedure to communicate with this motor driver. My thought caught from the documentations and the experience with CANopen would be like this:

 

1) Scan engine -> switch to configuration mode

2) Setup the slave device with SDO communication

3) Scan engine -> switch to active mode -> EtherCAT slave automatically enters operational mode

4) [Timed loop] PDO communication

 

This would be drawn in the block diagram like this [attachment: ethercat structure.png] :

ethercat structure.png

 

The problems at this stage are follow:

 

1) The scan engine cannot enter to the active mode as the EtherCAT slave refuse switching to the safe operational mode. When I had used CANopen, the driver had flawlessly switched to the operational state but I'm not sure is there something I missed with EtherCAT. When I'm trying to switch it to the safe operational mode in the "Online device state" panel of the project, it returns the error like this

safe operational error.png

 

2) I'm not sure it is normal that I cannot read the EtherCAT:Paremeters in the "Online Slave Device State" panel. It may related with .xml file but I have not enough knowledge on this and not sure whether I have to review .xml file thoroughly or not. (.xml file is attached as .zip file)

ethercat6.png

 

3) I drag and dropped the nodes from the project's Ethercat slave device to the block diagram for the PDO communication. Is this the correct method for communicating PDO?

pdo.png

 

 

Below are the software version information in MAX.

max software.pngmax software2.png

 

Thanks in advance for your precious time helping my stuck project.

0 Kudos
Message 1 of 7
(3,696 Views)

Some of the problems are solved but there still remain issues.


Solved:

- I had to configure the Modular Device Profile (MDP) for the slave device. After configuring MDP of the slave device, the Labview project was able to automatically detect slave's module.

ethercat module.png

 


Remaining Issue:

- The slave device still cannot enter to the safe operational state with the following error:

 

"Error -2147138467 occurred at an unidentified location

Possible reason(s):

NI-Industrial Communications for EtherCAT: (Hex 0x8005445D) An SDO request sent by the master has been aborted by the slave device due to incorrect initial commands or incorrect PDO selection. Check the configuration of the slave device on the device's property page and ensure that the configuration is correct."

 

I thoroughly reviewed firmware specification of Maxon EPOS4 regarding EtherCAT and tried to configure all the things but still stuck in this issue.

 

I have deleted Initcmd in ESI file to get rid of the possible initial command issue but it does not work.

 

I also tried to understand the ESI .xml file and compared the provided file with other motor driver's data (eg. ELMO driver) to find out the problems in ESI file but it was not able to figure out the problem because I am not a member of ETG and does not have access to the technical documents.

 

Could anyone please check for the ESI file to figure out if there is something wrong to be used with cRIO?

 

I attached the ESI .xml file. In the ESI file, I'm trying to use third or fourth module which are Cyclic Synchronous Position Mode and Cyclic Synchronous Velocity Mode.

0 Kudos
Message 2 of 7
(3,627 Views)

Hello Snopyy,

 

I am currently trying to drive the EPOS4 Compact 24/1.5 using EtherCAT with a cRIO 9045.  I am having issues getting the mode to display when I add targets and devices.  You said you had to configure the Modular Device Profile for the slave device.  Could you provide some more information on how you did that?  I have the .xml file from Maxon's website but I have not seen an MDP file.  Is there a separate file I need to find/create or do I need to edit something within the .xml file?

 

Additionally, were you able to get past the remaining problems you were having?

 

Thank you in advance!

0 Kudos
Message 3 of 7
(3,497 Views)

Sorry for not updating this thread.

I had contacted and discussed with engineers working in local NI, Maxon distributor.

 

We concluded that EtherCAT devices from Maxon (including EPOS, MiniMac, and etc.) is not compatible with NI cRIO device.

 

But did not find the exact reason and don't know whether cRIO has problem or Maxon's product has problem.

 

My EPOS drivers became obsolete and I was really frustrated.

 

Please update this thread if somebody had solved this issue: EtherCAT communication between cRIO and Maxon EPOS

0 Kudos
Message 4 of 7
(2,932 Views)

Please update this thread if somebody had solved this issue: EtherCAT communication between cRIO and Maxon EPOS

0 Kudos
Message 5 of 7
(2,930 Views)

Hello Snopy,

 

 

I've been trying to get an EPOS4 to work via Ethercat from a CRIO-9057 for several days now. Thanks to your posts I've been able to make some progress. Now I can't get the EPOS to go into Operational mode. Mode, Init, Bootstraop and Pre-Operational work. So if epos doesn't go into Operational mode, you can't activate the scan engine on the server and communication doesn't work. Have you managed to do anything more?

Thank you in advance for your feedback
Best regards

 

0 Kudos
Message 6 of 7
(1,107 Views)

Hi everyone!

We found that the NI master was incorrectly sending 1A00 for the slave's expected values with PDOConfig=1. Setting this to PDOConfig=0 and manually writing the SDOs allowed us to drive this to operational.  

The NI master isn't capable of dynamically changing the PDOConfig value, so once you edit the ESI file accordingly you can follow these steps: 

  1. Import this to a blank system through the LabVIEW EtherCAT master right-click Utilities menu
    1. If the system already has a EPOS4 ESI imported, return this to a blank system by removing files from /var/local/natinst/IndComECAT/dd on the LinuxRT target, C:\Program Files (x86)\National Instruments\Shared\IndComECAT\DD on Windows and restarting LabVIEW.
  2. Add the slave as an existing target
  3. Add the desired module
  4. Right-click the EtherCAT master by right-click -> Deploy
    1. Select "Stay in Current Mode" when prompted
    2.  
  5. Initialise PDO using the VI shown below. This is set to initialise PPM, x6060=1 and identity=x6100000A and the x1A00, x1600 PDO mappings
    Slave Init.png

     

  6. This should drive the scan engine to active mode and the slave to operational, to then be used with the PDOs as normal.

 

 

0 Kudos
Message 7 of 7
(577 Views)