Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
EtherCat failing to read value.
#1
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
Software Engineer on DKIST
Reply
#2
(03-16-2018, 02:20 PM)pilotchute Wrote: 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
Reply
#3
(03-19-2018, 12:25 AM)piefum Wrote:
(03-16-2018, 02:20 PM)pilotchute Wrote: 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.
Software Engineer on DKIST
Reply
#4
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?
Reply
#5
(03-22-2018, 06:30 PM)Eric Hotchkiss Wrote: 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.
Software Engineer on DKIST
Reply
#6
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?
Reply
#7
(03-19-2018, 12:25 AM)piefum Wrote:
(03-16-2018, 02:20 PM)pilotchute Wrote: 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 :)
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)