[Etherlab-users] Kjellberg Q3000 slave problems
Graeme Foot
Graeme.Foot at touchcut.com
Tue Nov 15 08:02:06 CET 2022
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20221115/ecd77d27/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Kjellberg_Qxxxx_v0i5.xml
Type: application/xml
Size: 358632 bytes
Desc: Kjellberg_Qxxxx_v0i5.xml
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20221115/ecd77d27/attachment-0001.xml>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Q3000 SII generated by TwinCAT.bin
Type: application/octet-stream
Size: 4096 bytes
Desc: Q3000 SII generated by TwinCAT.bin
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20221115/ecd77d27/attachment-0001.bin>
More information about the Etherlab-users
mailing list