I don't agree completely with you.
You're right, but if I write a certain bit out to 1 I expect that nobody
changes it's state and so, the actual value on the fieldbus should
remain 1 up to the end of the program, even if I don't write 1 continuously.
I see this as a sort of bug, I'll write a workaround buffering the
output section of the domain area but I admit that I don't like this too
much ...
Thanks,
Thomas.
On 08/10/2012 09:05, Thomas Bitsky, Jr. wrote:
I think you're thinking of it wrong. The data isn't cleared, it's
replaced by the actual value on the field bus. So, if you don't write
the value out to update the field bus, then the packet gets returned
with the value that is out there.
Thomas C Bitsky Jr
Lead Developer and Application Engineer
ADC | automateddesign.com <http://automateddesign.com>
(Sent from my mobile device.)
On Oct 6, 2012 4:14 AM, "Thomas Paoloni" <[email protected]
<mailto:[email protected]>> wrote:
Hi all,
even if I'm dealing with ethercat since more than one year, I'm in
front of a very basic question ...
As from I can see, the data in master->slave direction in the
domain_pd area are not preserved from an update to another.
I'mean that I need to write out data to domain_pd area at each
cycle, even if I data is not changed and theoretically I don't
need to update some parts of the pdo area.
Just applying this to the basic example in examples/user
void cyclic_task()
{
int i;
// receive process data
ecrt_master_receive(master);
ecrt_domain_process(domain1);
// check process data state (optional)
check_domain1_state();
if (counter) {
counter--;
} else { // do this at 1 Hz
counter = FREQUENCY;
// calculate new process data
blink = !blink;
}
EC_WRITE_U8(domain1_pd + off_dig_out, blink ? 0x06 : 0x09);
// send process data
ecrt_domain_queue(domain1);
ecrt_master_send(master);
}
moving the EC_WRITE_U8 inside the if condition (after the
blink=!blink) will not work, because the blink bit is cleared from
the pdo area after the process data has been sent.
This means that I should keep a copy of the process data and write
it on the domain1_pd each time.
Is this right or I'm missing something ?
Thanks,
Thomas.
_______________________________________________
etherlab-users mailing list
[email protected] <mailto:[email protected]>
http://lists.etherlab.org/mailman/listinfo/etherlab-users
_______________________________________________
etherlab-users mailing list
[email protected]
http://lists.etherlab.org/mailman/listinfo/etherlab-users