Hi Steve,
Typically you don't need to worry about data overlaps at all. I'm not sure if the Etherlab master generates them in the first place (though your XML output suggests that it does), but even if it does it should only do so in cases when it is "safe". (In particular, if you have a single slave with inputs and outputs, or you have an output-only slave followed by an input-only slave, then it's possible to use the same physical memory in the EtherCAT packet to store both - once the output data is "used" by a slave that space in the packet is free to have input data filled in afterwards.) Regarding your confusion about ecrt_slave_config_reg_pdo_entry reporting values higher than ecrt_domain_size, this is because they are reporting different information. The former tells you where to read or write the values in master-internal memory to have them copied to the right place in the EtherCAT packet. The latter tells you the size of the data in the EtherCAT packet itself. Thus the former refers to the non-overlapped data and the latter refers to the overlapped data. Just don't worry about it, and use the offsets returned from reg_pdo_entry to read/write the data. The master library will do the right things to get that data to the slaves and back. Regards, Gavin Lambert From: etherlab-users-boun...@etherlab.org [mailto:etherlab-users-boun...@etherlab.org] On Behalf Of Steve Hartmann Sent: Thursday, 10 April 2014 09:52 To: etherlab-users@etherlab.org Subject: Re: [etherlab-users] Domain offset overlap Another confusing thing I see is ecrt_slave_config_ret_pdo_entry() reports offsets as large as 10, but when I call ecrt_domain_size(), it reports a size of 7. Since the PD buffer is a pointer to uint8_t, I am assuming the size reported is in bytes. Thanks, Steven From: Steven Hartmann <shartm...@militho.com> Date: Wednesday, April 9, 2014 2:49 PM To: Dave Page <dave.p...@gleeble.com>, Etherlab Users <etherlab-users@etherlab.org> Subject: Re: [etherlab-users] Domain offset overlap Hi Dave, Thanks for the reply. I am not using TwinCAT at all. Also, please forgive my ignorance, but what is the "LRW command". I'm not sure how to deal with this with the etherlab stack. If it give me a domain offset of 3 for two different slices (one input and one output), how do I deal with this overlapped data? Thanks, Steven From: Dave Page <dave.p...@gleeble.com> Date: Wednesday, April 9, 2014 2:45 PM To: Etherlab Users <etherlab-users@etherlab.org> Subject: Re: [etherlab-users] Domain offset overlap In order to reduce process data size, TwinCAT overlaps the RxPDO and TxPDO for each module, then uses the LRW command to effect the transfer. So, I believe what you're seeing is normal. Best regards - Dave Page On 09-Apr-14 15:41, etherlab-users-requ...@etherlab.org wrote: Message: 1 Date: Wed, 9 Apr 2014 19:41:29 +0000 From: Steve Hartmann <mailto:shartm...@militho.com> <shartm...@militho.com> To: Etherlab Users <mailto:etherlab-users@etherlab.org> <etherlab-users@etherlab.org> Subject: [etherlab-users] Domain offset overlap Message-ID: <mailto:cf6b0c97.f827%25shartm...@militho.com> <cf6b0c97.f827%shartm...@militho.com> Content-Type: text/plain; charset="us-ascii" Hi all, I have written some code to parse the generated XML file from "ethercat xml" and use that to configure the ethercat stack. The problem I am having is the output from ecrt_slave_config_ret_pdo_entry produces overlapped offsets. I also tried using ecrt_slave_config_reg_pdo_entry_pos with the same results. This is a very simple test rig that has one each of DO, DI, AO, and AI slices - all beckhoff. I have attached a file which includes the generated XML file, the code in question, and the log output. Does anyone know what I am doing wrong? Best regards, Steven Hartmann -- _____ David Page, Chief Embedded Architect Dynamic Systems Inc. PO Box 1234 Poestenkill, NY 12140 Telephone: +1 (518) 283-5350 | Fax: +1 (518) 283-3160 |
_______________________________________________ etherlab-users mailing list etherlab-users@etherlab.org http://lists.etherlab.org/mailman/listinfo/etherlab-users