EtherCAT: Що означають APRD/APWR?

Це низькорівневі 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.


Дивіться схожі статті за категоріями: EtherCAT