Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
18.07.2023
Размер:
1.61 Mб
Скачать

заботясь о том прочитал мастер их или нет, а мастер соответственно всегда получать при чтении последнюю согласованную копию данных. Организуется с помощью трех буферов, т.е. если мы настроили SyncManager на адреса 0x1000-0x1010, то в памяти слейва они займут 0x1000-0x1030. При этом слейву надо писать всегда в 0x1000-0x1010, а мастеру читать оттуда же, но по факту он прочитает ту из трех копий которая была записана целиком.

Buffered режим Write. Аналогично, но для записи. Т.е. мастер может писать данные, они будут попадать в один из трех буферов, а слейв может спокойно читать не беспокоясь что они перетрутся новой посылкой в процессе чтения.

FMMU

Рассмотрю еще одну концепцию Ethercat, которая обеспечивает магию команд

LRW. Это Fieldbus Memory Management Unit (FMMU). Она совсем простая. Проще

SyncManagerов, да. Мы просто указываем область памяти в пространстве слейва, какому логическому адресу она соответствует и флаг пишет туда слейв или читает оттуда. Ах да, адресуется она с точностью до бита а не до байта, так что не повторяйте моей ошибки, если хотите работать с целым числом байтов, то StartBit

ставьте 0, а EndBit — 7.

Если взять пример про который я сказал в самом начала, когда мы одной командой прочитали данные сотни датчиков и дали уставки сотне моторчиков. На каждом из датчиков мы используем FMMU0 установив физический адрес в 0x1000 (ну или где мы храним показания датчика), а логический адрес в 0x12345678+4*номер датчика , размер 4 байта, ну и направление READ. На каждом из моторчиков мы используем FMMU0 установив физический адрес в 0x1000 (ну или где мы будем хранить уставку скорости), а логический адрес в 0x12345678+400+4*номер моторчика , ну и направление WRITE. Теперь мастер может отправить один LRW пакет с логическим адресом 0x12345678, размером 800 байт, во вторую половину которого он запишет все уставки. А по приходу ответа прочитает из первой половины данные всех датчиков. Теоретически, моторчики могут даже читать данные которые отправил датчик, если находятся после него в топологии (так называемый slave2slave communication), но мы таким не заморачивались.

Разумеется, одно устройство может использовать несколько FMMU чтобы и писать и читать данные, ну и стоит настроить SyncManagerы на соответствующие адреса.

Спасибо за внимание

В EtherCAT заботливые Beckhoff положили еще много всяких наворотов. Например EEPROM который должен быть в каждом устройстве и который позволит мастеру настроить любой слейв и сохранить настройки. Граф переходов AL_STATUS, который будет гарантировать что слейв успел прочитать перед запуском обмена EEPROM и что мастер инициализировал выходы слейва нормальными значениями. CanOPEN-over-EtherCAT(CoE) который дает мастеру возможность узнать что этот слейв умеет и какие у него есть входы\выходы. Ethernet-over- EtherCAT(EoE) и Files-over-EtherCAT (FoE) чтобы пересылать разное всякое.

Бинарные ESI-файлы c тем самым VendorID и на редкость глючной утилитой их генерации. Синхронизация времени до наносекунд. Мы обошлись без всего этого в нашем проекте, поэтому я не готов о них подробно рассказывать, но основы EtherCAT я, надеюсь, изложил.

Теги: EtherCAT

Хабы: Промышленное программирование, Программирование микроконтроллеров

+24

17K

70

9 0

Карма Рейтинг

Андрей Коновод @kipar

Программист

Комментарии 27

ПОХОЖИЕ ПУБЛИКАЦИИ

26 февраля 2020 в 16:25

Сенсорный терминал для суровых условий

+11

2.9K

17

14 +14

31 октября 2019 в 18:02

Обзор современных протоколов в системах промавтоматики

+9

35K

90

57 +57

17 апреля 2013 в 08:47

Промышленные сети в контексте четвертой промышленной революции

+33

32K

82

16 +16

ЛУЧШИЕ ПУБЛИКАЦИИ ЗА СУТКИ

вчера в 12:00

Отдаю NFT за 880 миллионов долларов

+53

15K

73

31 +31

вчера в 16:00

Визит редкой дамы. Пресноводные медузы средней полосы России

+35 4.3K 24 7 +7

Ваш аккаунт

Разделы

Информация

Услуги

сегодня в 09:22

 

 

 

Работа с клиентами за пределами РФ и западные санкции

Устройство сайта

Реклама

Войти

 

 

Публикации

 

Регистрация+19

5.1K

6

Новости62 +62

 

Для авторов

Тарифы

 

 

 

Хабы

 

Для компаний

Контент

вчера в 10:18

 

 

Компании

 

Документы

Семинары

Чем мы пользуемся для аудитаАвторыутилизации оборудования и ИТСоглашение-систем

Мегапроекты

+19

2.2K

11

Песочница

 

Конфиденциальность

 

0

 

 

 

сегодня в 09:13

 

 

 

Техническая поддержка О сайте

Настройка языка

© 2006–2022 «Habr» Вернуться на старую версию

Linux выживальщика

 

 

 

 

 

+15

3.4K

14

0

 

 

 

Частичка Хабра про бессерверные технологии: боты, обзоры инструментов и лайфхаки

Турбо