Jump to content
OMRON Forums

EtherCat failing to read value.


pilotchute

Recommended Posts

System: PowerBrick AC running kernel 2.6.30.3

EtherCat Devices:

0) Beckhoff EK1100 LAN (works great)

1) Beckhoff EL1008 Digital Input (works great)

2) Beckhoff EL1008 Digital Input (works great)

3) Beckhoff EL3314-0010 Analog TC (doesn't work great, as explained below)

 

When attempting to configure the EtherCat master on the DeltaTau using the PowerPMAC Suite, I am unable to get the temperature sensor readout to be placed in an IO register. (specifically ECAT[0].IO[0])

 

The problem appears two-fold.

 

1) When ECAT[0].Enable=3 is set, the Beckhoff 3314-0010 module does not transition to the OP state.

 

However, if the states are set through the command line ethercat interface, the states transition correctly.

 

root@192.168.0.200:/opt/ppmac# ethercat slaves

0 0:0 PREOP + EK1100 EtherCAT-Koppler (2A E-Bus)

1 0:1 PREOP + EL1008 8K. Dig. Eingang 24V, 3ms

2 0:2 PREOP + EL1008 8K. Dig. Eingang 24V, 3ms

3 0:3 PREOP + EL3314-0010 4K. Ana. Eingang Thermoelement (TC), hochgenau

root@192.168.0.200:/opt/ppmac# ethercat states OP

root@192.168.0.200:/opt/ppmac# ethercat slaves

0 0:0 OP + EK1100 EtherCAT-Koppler (2A E-Bus)

1 0:1 OP + EL1008 8K. Dig. Eingang 24V, 3ms

2 0:2 OP + EL1008 8K. Dig. Eingang 24V, 3ms

3 0:3 OP + EL3314-0010 4K. Ana. Eingang Thermoelement (TC), hochgenau

 

2) The PDO for ECAT[0].IO[0] should be set to the value from 0x6000:11 on the EL3314-0010. I have been unable to find a reason why the configuration steps that allow reading the EL1008, do not work on the EL3314-0010

 

However, when the value is pulled from the device using the command line ethercat interface, I get the correct thermal readout from the configured thermocouple:

 

root@192.168.0.200:/opt/ppmac# ethercat -m0 -p3 -t int32 upload 0x6000 0x11

0x00000961 2401

(this reads as 24.01˚C)

 

Attempted solutions:

 

1) setting startup variables:

0x8000:2 to 2 (for 0.01˚C output)

0x8000:19 to 1 (for J type thermocouple)

 

2) setting all PDOs for Device

 

3) "updating" to older versions of the device xml file.

 

4) resetting and reconfiguring both the PowerPMAC and EtherCat devices innumerable times.

 

5) reconfiguring the EtherCat Master multiple times

 

6) rescanning devices on the EtherCat both via command line and through the PowerPMAC Suite.

 

7) trying a newer version of the EL3314-0010 device.

 

 

So, at this point I'm running low on ideas.

Is this a known issue?

Are there any solutions/workarounds that exist?

Would I be able to run a plc to set up and query EtherCat values command line style rather than relying on the EtherCat system setup GUI?

 

Any and all help greatly appreciated.

_

Austin Kootz

Link to comment
Share on other sites

  • Replies 8
  • Created
  • Last Reply

Top Posters In This Topic

So, at this point I'm running low on ideas.

Is this a known issue?

Are there any solutions/workarounds that exist?

Would I be able to run a plc to set up and query EtherCat values command line style rather than relying on the EtherCat system setup GUI?

 

 

Hi

 

I got a similar problem here: my ethercat chain is composed of 3 EL5032 (Endat 2.2 interface) and 1 EL3208 (8 channel input RTD).

I can correctly configure the EL5032 but not the EL3208: it stays always in Pre-op conditions. However, I can correctly read the temperature via terminal and via plc using the ECATSDO command.

 

My workaround: since I need the temperature information on a very slow time scale, I fire a PLC that perform the temperature reading via ecatsdo every 10 seconds.

The major drawback of this solution is that the running time of this PLC is very high: I get a background load of +10% when this PLC is running. However, I can survive with that.

 

Hope this helps

best

gigi

Link to comment
Share on other sites

So, at this point I'm running low on ideas.

Is this a known issue?

Are there any solutions/workarounds that exist?

Would I be able to run a plc to set up and query EtherCat values command line style rather than relying on the EtherCat system setup GUI?

 

 

Hi

 

I got a similar problem here: my ethercat chain is composed of 3 EL5032 (Endat 2.2 interface) and 1 EL3208 (8 channel input RTD).

I can correctly configure the EL5032 but not the EL3208: it stays always in Pre-op conditions. However, I can correctly read the temperature via terminal and via plc using the ECATSDO command.

 

My workaround: since I need the temperature information on a very slow time scale, I fire a PLC that perform the temperature reading via ecatsdo every 10 seconds.

The major drawback of this solution is that the running time of this PLC is very high: I get a background load of +10% when this PLC is running. However, I can survive with that.

 

Hope this helps

best

gigi

 

Thanks gigi,

I was considering doing that, and if it works for you I'll give it a shot.

Link to comment
Share on other sites

Can you successfully read the PDO if that device is the only slave plugged into your master?

 

Is that PDO, or any other PDO you're mapping on that slave, greater than 32 bits?

 

I have not tried isolating it as a slave.

The PDO I am trying to map is a 32 bit signed integer.

Link to comment
Share on other sites

  • 2 weeks later...

Finally had a chance to look around the office and it doesn't look like this device is available to me.

 

A couple thoughts:

1. Looking up the device, I see some references to a conversion time that sounds longer than a typical EtherCAT cycle time. It may be that the measurement takes too long to use in a PDO.

2. Do you know if you are using a distributed clock? The other devices are IO, so it's possible only this device needs a clock and it isn't getting one.

 

From your commands, it looks like the temperature is at index 0x6000 subindex 0x11 on the device. Is this correct?

Link to comment
Share on other sites

  • 1 month later...

So, at this point I'm running low on ideas.

Is this a known issue?

Are there any solutions/workarounds that exist?

Would I be able to run a plc to set up and query EtherCat values command line style rather than relying on the EtherCat system setup GUI?

 

 

Hi

 

I got a similar problem here: my ethercat chain is composed of 3 EL5032 (Endat 2.2 interface) and 1 EL3208 (8 channel input RTD).

I can correctly configure the EL5032 but not the EL3208: it stays always in Pre-op conditions. However, I can correctly read the temperature via terminal and via plc using the ECATSDO command.

 

My workaround: since I need the temperature information on a very slow time scale, I fire a PLC that perform the temperature reading via ecatsdo every 10 seconds.

The major drawback of this solution is that the running time of this PLC is very high: I get a background load of +10% when this PLC is running. However, I can survive with that.

 

Hope this helps

best

gigi

 

I found that with the EL3208 you have to map all PDOs to a foreground or background task; for some reason the module only enters the OP state if you have none or all of the PDOs mapped. I used the "Load PDOs to PMAC" button on each of the 8 channels. Hope this helps :)

Link to comment
Share on other sites

  • 9 months later...

Finally had a chance to look around the office and it doesn't look like this device is available to me.

 

A couple thoughts:

1. Looking up the device, I see some references to a conversion time that sounds longer than a typical EtherCAT cycle time. It may be that the measurement takes too long to use in a PDO.

2. Do you know if you are using a distributed clock? The other devices are IO, so it's possible only this device needs a clock and it isn't getting one.

 

From your commands, it looks like the temperature is at index 0x6000 subindex 0x11 on the device. Is this correct?

 

 

We are still having issues getting this module into OP mode. To answer your questions:

 

(1) The default conversion time is 250ms. Is that longer than the Power Brick AC EtherCAT cycle time? Since we are only using I/O modules and need data once per second, can we slow down the Power Brick AC EhterCAT cycle time?

 

(2) The EL3314-0010 does not support distributed clocks

Link to comment
Share on other sites

250 ms is a very long time. Typical cycle times for ecat transfer are 0.125 to 1 ms. I could imagine this device not being intended to transfer PDOs with a distributed clock. Have you tried mapping all PDOs like zoo_lander suggested?

 

For Zoo_lander, you should be able to push the "Load PDOs to PMAC" one time after all clock/PDO settings for all slaves are correct.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.

×
×
  • Create New...