EtherCAT: Що означають APRD/APWR?
- APRD означає Auto-Increment Physical Read (фізичне читання з автоінкрементом).
- APWR означає Auto-Increment Physical Write (фізичний запис з автоінкрементом).
Це низькорівневі EtherCAT-запити, що видаються EtherCAT-мастером і надсилаються EtherCAT-слейву.
Вони виконують читання та запис у пам’ять слейва, використовуючи фізичні адреси (на противагу логічним адресам).
Мастер обирає слейва за його порядковим номером у ланцюжку daisy chain.
Процес читання/запису за допомогою APRD/APWR називається Positional physical read/write (позиційне фізичне читання/запис), де позиційне стосується адресації за позицією слейва у ланцюжку daisy chain на противагу налаштованій station address (адресі станції) слейва (яку мастер може обрати під час ініціалізації).
Коли у вас є station address замість фізичної позиції, можна використати команду FPRD.
Що означає “auto-increment”?
Auto-increment не має жодного відношення до інкременту фізичної адреси пам’яті, з якої виконується читання або запис.
Натомість це означає, що кожен слейв автоматично збільшує поле адреси запиту на 1. Якщо слейв отримує поле адреси слейва (правильна назва — Ordinal Device Number) зі значенням 0, він обробляє запит і пересилає його наступному слейву з полем адреси, встановленим у 1.
Важливо: Жоден слейв ніколи не змінюватиме поле фізичної адреси пам’яті у запиті. Це поширена помилка, проте фізичну адресу задає мастер, і вона ніколи не може бути змінена слейвом.
Приклад
Якщо мастер хоче звернутися до 3-го слейва, він надішле запит із адресою, встановленою в -2. Перші 2 слейви в ланцюжку збільшать це значення до -1, а потім до 0 (але не оброблятимуть запит), після чого 3-й слейв побачить адресу 0, обробить запит і пересилатиме його з адресою 1 і так далі.
Джерело: ETG1000.3 V1.0.32 - потребує безкоштовного членства ETG.
- Приклад наведено у розділі
4.3.2 Position addressing - Значення назв подано у таблиці `3.4