EtherCAT: Что означают APRD/APWR?
- APRD означает Auto-Increment Physical Read.
- APWR означает Auto-Increment Physical Write
Это низкоуровневые запросы EtherCAT, инициируемые EtherCAT master и отправляемые EtherCAT slave.
Они выполняют чтение и запись в память slave, используя физические адреса (в отличие от логических адресов).
Master выбирает slave по его порядковому номеру в daisy chain.
Процесс чтения/записи с использованием APRD/APWR называется Positional physical read/write, где positional относится к адресации по позиции slave в daisy chain, в отличие от настроенного station address slave (который master может выбрать во время инициализации).
Если у вас есть station address вместо физической позиции, вы можете использовать команду FPRD.
Что означает “auto-increment”?
Auto-increment не имеет никакого отношения к увеличению адреса физической памяти для чтения или записи.
Вместо этого это относится к автоматическому увеличению каждым slave поля адреса запроса на 1. Если slave получает поле адреса slave (правильно называемое Ordinal Device Number) равное 0, он обрабатывает запрос и пересылает его следующему slave с полем адреса, установленным в 1.
Важно: Ни один slave никогда не изменит поле адреса физической памяти запроса. Это распространённое заблуждение, но физический адрес фиксируется master и никогда не может быть изменён slave.
Пример
Если master хочет адресовать 3-й slave, он отправит запрос с адресом, установленным в -2. Первые 2 slave в цепочке увеличат это значение до -1, а затем до 0 (но не обработают запрос), после чего 3-й slave увидит адрес 0, обработает запрос и пересылает его с адресом 1 и так далее.
Источник: ETG1000.3 V1.0.32 — требует бесплатного членства ETG.
- Пример находится в разделе
4.3.2 Position addressing - Значение имён приведено в таблице `3.4