Hi Martin,

I found a workaround last night.  I have split the read and write PDO's into 
separate read and write domains.  I had not tried this earlier as the flag 
requiring this is not set in the slave and TwinCAT is working from one domain.  
However TwinCAT is using overlapped PDO's which I did not try as that does not 
suit our application.

Re: the dc sync settings in the ESI file, I tried enabling SM-Synchron cyclic 
operation mode under TwinCAT and the slave exhibited similar problems.  After 
talking to the supplier they recommended not using DC or SM-Synchron mode at 
all.  So I tried hardcoding removing the DC supported flag from the slave but 
it made no difference.

So it is now working, but still with a manually loaded SII file via the loading 
firmware from file mechanism.

Thanks,
Graeme.


From: Steih, Martin <martin.st...@lachmann-rink.de>
Sent: Tuesday, 22 November 2022 20:39
To: Graeme Foot <graeme.f...@touchcut.com>
Subject: AW: Kjellberg Q3000 slave problems

Hi,

Are you sure it does not support dc sync?

<Dc>
          <OpMode>
            <Name>Synchron</Name>
            <Desc>FreeRun/SM-Synchron</Desc>
            <AssignActivate>#x0</AssignActivate>
            <CycleTimeSync0 Factor="1">0</CycleTimeSync0>
            <ShiftTimeSync0>0</ShiftTimeSync0>
            <CycleTimeSync1 Factor="1">0</CycleTimeSync1>
          </OpMode>
        </Dc>

I found this in your ESI file under Q3000, and the problem description you just 
sent is precisely the same one we face when dc sync settings are not correct or 
fitting.

i. A. Martin Steih
Projektleiter
Entwicklung

[cid:image001.png@01D8FF20.1CB46390]<https://www.lachmann-rink.de/>

Lachmann & Rink GmbH
martin.st...@lachmann-rink.de<mailto:martin.st...@lachmann-rink.de> | 
www.lachmann-rink.de<https://www.lachmann-rink.de>
fon: +49 2734 2817 430<tel:+49%202734%202817%20430>

Hommeswiese 129, 57258 Freudenberg | Otto-Hahn-Straße 18-20, 44227 Dortmund
Geschäftsführer: Dipl.-Ing. Arjan Bijlard, Dipl.-Inf. Claudius Rink | 
Amtsgericht Siegen, HRB 2600
Von: Etherlab-users 
<etherlab-users-boun...@etherlab.org<mailto:etherlab-users-boun...@etherlab.org>>
 Im Auftrag von Graeme Foot
Gesendet: Dienstag, 15. November 2022 08:02
An: etherlab-users@etherlab.org<mailto:etherlab-users@etherlab.org>
Betreff: [Etherlab-users] Kjellberg Q3000 slave problems

Hi,

We are trying to get a Kjellberg Q3000 plasma slave up and running in our 
system.  Unfortunately it is getting to SAFEOP and going to SAFEOP + Error.  
Also while in SAFEOP it drops 1 or two packets out of three, causing the master 
to enter an endless rescan loop.  The Q3000 gets to OP successfully under 
TwinCAT.  I have wireshark logs of both startup sequences and can't find 
anything obvious that is causing the issue.


  *   I'm using the 1.5.2 master with the GavinL patchset.
  *   I have enabled the --enable-regalias option as this slave uses the 0x0012 
register to specify the slave alias.
  *   There are errors in the slaves SII.  I have generated an SII using 
TwinCAT and I'm loading it via the firmware loading patch (using 
EC_SII_OVERRIDE).  As far as I can tell it is correct.  (I needed to increase 
the esi files Eeprom ByteSize to 4096 so that it would include the categories 
information, as per: https://etherlab.org/en/ethercat/faq.php).  I've attached 
the SII bin file in case anyone is interested.
  *   I gather the slave firmware uses the ET9300 slave stack code version 5.10.
  *   The slave allows LWR (i.e. both read and write data in the same domain)
  *   It supports distributed clocks, but not DC Sync.
  *   It looks like TwinCAT configures the read and write domain data to 
overlap.  Our master does not.

The Sync manager config is the same between TwinCAT and EtherLab
SM0: 0010800026000100
SM1: 0014800022000100
SM2: 0018250064000100
SM3: 001c410020000100

The FMMU config is mostly the same, the only difference I can see is the 
virtual start address and that they overlap
TwinCAT:
FMMU0: 00000001250000070018000201000000
FMMU1: 0000000141000007001c000101000000
EtherLab:
FMMU0: 0f000000250000070018000201000000
FMMU1: 3400000041000007001c000101000000

TwinCAT also sets up a third FMMU for what I assume is a slave working counter 
status domain.
FMMU2: 00000009010000000d08000101000000

One thing that the TwinCAT master does that EtherLab does not is set the "Error 
Ack" flag to true when requesting a slave state change.  E.g.:
EtherCAT datagram: Cmd: 'APWR' (2), Len: 2, Adp 0x1, Ado 0x120, Cnt 1
    Header
    AL Ctrl (0x120): 0x0011, Al Ctrl: INIT, Error Ack
        .... .... .... 0001 = Al Ctrl: INIT (0x1)
        .... .... ...1 .... = Error Ack: True
        .... .... ..0. .... = Id: False
    Working Cnt: 1

I've attached the esi file.  As far as I can tell there's nothing particularly 
special about the slave.  We are using the Q3000 (460-480V) slave 
(ProductCode="#x00003023"), but they are all the same configuration.


Tomorrow I'll try patching the master to set the Error Ack flag in the INIT 
state change datagram, but apart from that I'm currently out of ideas for 
things to try.  Does anyone have any other ideas from problem slaves you've 
encountered?

Regards,
Graeme Foot



-- 
Etherlab-users mailing list
Etherlab-users@etherlab.org
https://lists.etherlab.org/mailman/listinfo/etherlab-users

Reply via email to