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