Hello everyone,
I am working on a setup with an EL2262 terminal. I already found the previous
thread from March about the EL2262, which helped me clarify some uncertainties
and find errors. Thank you for that.
Now I'm facing another problem: my EL2262 always uses only the first value
(0x7000:1 and 0x7000:2) for both channels and ignores all others. I only have a
TRUE at the output for one subcycle; for the remaining subcycles, it is always
FALSE, even if I set the bits in the domain correctly.
I am working on Ubuntu with an RT kernel, isolated RT CPU, and fixed clock.
My setup is EK1100, EL1008, EL2008, EL2262, EK1110.
For example, 10x oversampling with a 5 ms application cycle:
I set my times as follows:
cycleTimeNsSync0 = cycleTimeNanoseconds / 10;
cycleTimeNsSync1 = cycleTimeNanoseconds - cycleTimeNsSync0;
shiftTimeNsSync0 = (int)cycleTimeNanoseconds / 2;
shiftTimeNsSync1 = 0;
I set the SM settings and addresses for the new PDO just as in Beckhoff Twincat
(PDO index +1 and entry index +8).
ethercat config -p 3 -v then displays:
Alias: 0
Position: 3
Vendor Id: 0x00000002
Product code: 0x08d63052
Attached slave: 3 (OP)
Watchdog divider: (Default)
Watchdog intervals: (Default)
SM0, Dir: Output, Watchdog: Default
PDO 0x1700
PDO entry 0x7800:01, 16 bit
PDO 0x1600
PDO entry 0x7000:01, 1 bit
PDO 0x1800
PDO entry 0x7200:01, 8 bit
PDO 0x1601
PDO entry 0x7008:01, 1 bit
PDO 0x1602
PDO entry 0x7010:01, 1 bit
PDO 0x1603
PDO entry 0x7018:01, 1 bit
PDO 0x1604
PDO entry 0x7020:01, 1 bit
PDO 0x1605
PDO entry 0x7028:01, 1 bit
PDO 0x1606
PDO entry 0x7030:01, 1 bit
PDO 0x1607
PDO entry 0x7038:01, 1 bit
PDO 0x1608
PDO entry 0x7040:01, 1 bit
PDO 0x1609
PDO entry 0x7048:01, 1 bit
SM1, Dir: Output, Watchdog: Default
PDO 0x1701
PDO entry 0x7800:02, 16 bit
PDO 0x1680
PDO entry 0x7000:02, 1 bit
PDO 0x1880
PDO entry 0x7200:02, 8 bit
PDO 0x1681
PDO entry 0x7008:02, 1 bit
PDO 0x1682
PDO entry 0x7010:02, 1 bit
PDO 0x1683
PDO entry 0x7018:02, 1 bit
PDO 0x1684
PDO entry 0x7020:02, 1 bit
PDO 0x1685
PDO entry 0x7028:02, 1 bit
PDO 0x1686
PDO entry 0x7030:02, 1 bit
PDO 0x1687
PDO entry 0x7038:02, 1 bit
PDO 0x1688
PDO entry 0x7040:02, 1 bit
PDO 0x1689
PDO entry 0x7048:02, 1 bit
SM2, Dir: Input, Watchdog: Default
PDO 0x1702
PDO entry 0x1d09:98, 32 bit
SDO configuration:
None.
IDN configuration:
None.
Feature flags:
None.
DC configuration:
AssignActivate: 0x0730
Cycle [ns] Shift [ns]
SYNC0 500000 2500000
SYNC1 4500000 0
My own debug output shows:
[20:40:50 VRB] Rx PDO entry registered: Index=0x7000, Subindex=0x01, Offset=3,
BitPos=0
[20:40:50 VRB] Rx PDO entry registered: Index=0x7000, Subindex=0x02, Offset=8,
BitPos=0
[20:40:50 VRB] Rx PDO entry registered: Index=0x7008, Subindex=0x01, Offset=4,
BitPos=1
[20:40:50 VRB] Rx PDO entry registered: Index=0x7008, Subindex=0x02, Offset=9,
BitPos=1
[20:40:50 VRB] Rx PDO entry registered: Index=0x7010, Subindex=0x01, Offset=4,
BitPos=2
[20:40:50 VRB] Rx PDO entry registered: Index=0x7010, Subindex=0x02, Offset=9,
BitPos=2
[20:40:50 VRB] Rx PDO entry registered: Index=0x7018, Subindex=0x01, Offset=4,
BitPos=3
[20:40:50 VRB] Rx PDO entry registered: Index=0x7018, Subindex=0x02, Offset=9,
BitPos=3
[20:40:50 VRB] Rx PDO entry registered: Index=0x7020, Subindex=0x01, Offset=4,
BitPos=4
[20:40:50 VRB] Rx PDO entry registered: Index=0x7020, Subindex=0x02, Offset=9,
BitPos=4
[20:40:50 VRB] Rx PDO entry registered: Index=0x7028, Subindex=0x01, Offset=4,
BitPos=5
[20:40:50 VRB] Rx PDO entry registered: Index=0x7028, Subindex=0x02, Offset=9,
BitPos=5
[20:40:50 VRB] Rx PDO entry registered: Index=0x7030, Subindex=0x01, Offset=4,
BitPos=6
[20:40:50 VRB] Rx PDO entry registered: Index=0x7030, Subindex=0x02, Offset=9,
BitPos=6
[20:40:50 VRB] Rx PDO entry registered: Index=0x7038, Subindex=0x01, Offset=4,
BitPos=7
[20:40:50 VRB] Rx PDO entry registered: Index=0x7038, Subindex=0x02, Offset=9,
BitPos=7
[20:40:50 VRB] Rx PDO entry registered: Index=0x7040, Subindex=0x01, Offset=5,
BitPos=0
[20:40:50 VRB] Rx PDO entry registered: Index=0x7040, Subindex=0x02, Offset=10,
BitPos=0
[20:40:50 VRB] Rx PDO entry registered: Index=0x7048, Subindex=0x01, Offset=5,
BitPos=1
[20:40:50 VRB] Rx PDO entry registered: Index=0x7048, Subindex=0x02, Offset=10,
BitPos=1
[20:40:50 VRB] Rx PDO entry registered: Index=0x7200, Subindex=0x01, Offset=3,
BitPos=1
[20:40:50 VRB] Rx PDO entry registered: Index=0x7200, Subindex=0x02, Offset=8,
BitPos=1
[20:40:50 VRB] Rx PDO entry registered: Index=0x7800, Subindex=0x01, Offset=1,
BitPos=0
[20:40:50 VRB] Rx PDO entry registered: Index=0x7800, Subindex=0x02, Offset=6,
BitPos=0
[20:40:50 INF] Successfully configured slave at position 3
And ethercat domain -v after setting values:
Domain0: LogBaseAddr 0x00000000, Size 11, WorkingCounter 2/2
SlaveConfig 0:2, SM0 (Output), LogAddr 0x00000000, Size 1
01
SlaveConfig 0:3, SM0 (Output), LogAddr 0x00000001, Size 5
00 00 01 04 00
SlaveConfig 0:3, SM1 (Output), LogAddr 0x00000006, Size 5
00 00 00 00 00
You can see that Slave3 is set to SM0 3.0 and 4.2, with addresses matching the
debug output. Nevertheless, the terminal only outputs TRUE for bit 3.0; all
other nine subcycles are FALSE (measured with an oscilloscope). I have already
manually changed other bits than those returned during registration in order to
perhaps find an incorrect address, but that did not help either.
I don't understand why the terminal ignores the transmitted values.
Am I overlooking a setting that is necessary for DC? The values are visibly
sent in Wireshark as in "ethercat domain -v". I am grateful for any advice, as
I have been struggling with this for a few days now.
My cycle is always
- Receive
- Process
- Set Application Data (e.g. writing bits 3.0 and 4.2)
- Queue
- Sync Slave Clocks every ten cycles
- Send
Thank you very much!
Regards
David Breunig
--
Dr.-Ing. David A. Breunig
Projektleiter
Fraunhofer-Institut für
Produktionstechnik und Automatisierung IPA
IT-Architekturen für die Produktion
Nobelstraße 12 ¦ 70569 Stuttgart
Telefon +49 711 970-1375
[email protected]<mailto:[email protected]>
www.ipa.fraunhofer.de<http://www.ipa.fraunhofer.de/>
www.retavi.de<http://www.retavi.de/>
[cid:[email protected]]
--
Etherlab-users mailing list
[email protected]
https://lists.etherlab.org/mailman/listinfo/etherlab-users