EtherCAT & LinuxCNC

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Сергей Саныч »

selenur писал(а):поэтому коммутатор его вроде целиком получает, потом уменьшает значение TTL на единицу и передает получателю, если TTL равно нулю, то убивает пакет.
В эзернете нет понятия TTL (время жизни пакета). Оно появляется в протоколах следующих уровней (TCP/IP).
Ethernet изначально был сетью, основанной на принципе обнаружения и "разруливания" столкновений, поэтому время доставки пакета не гарантировано, что для систем управления оборудованием никак не подходит.
Если я правильно понял, в EtherCAT используется в основном физический уровень эзернета (карты и линии, да и то линии разведены не через хабы - коммутаторы, а по кольцу). Как следствие, исключаются столкновения и вызванные ими неконтролируемые задержки.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Serg »

Сергей Саныч писал(а):Если я правильно понял, в EtherCAT используется в основном физический уровень эзернета (карты и линии, да и то линии разведены не через хабы - коммутаторы, а по кольцу). Как следствие, исключаются столкновения и вызванные ими неконтролируемые задержки.
Я вот тоже думаю зачем в EtherCAT MAC-адреса... Тем более, что мастер может быть только один. MAC-адреса имело-бы смысл использовать ради возможности соединять устройства не цепочкой, а через комутаторы, но они испортят саму идею EtherCAT. А хабы в принципе и сейчас никто не мешает использовать (разве что с небольшой модификацией протокола).
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение selenur »

Я конечно не особо точно знаю тонкости физической части построения сети, но получается что используется способ передачи данных похожий, но способ соединения проводов между устройствами совсем другой?
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Serg »

Да, при одном мастере коллизии в принципе не возможны.
А среда передачи Base-T довольно удобна - две дифпары с гальванической развязкой.
Последний раз редактировалось Serg 15 фев 2014, 16:31, всего редактировалось 1 раз.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Сергей Саныч »

Вообще, я думал, что в EtherCAT реализована физически кольцевая топология, то есть TX мастера к RX первого слейва, TX первого слейва к RX второго и так далее..., и наконец TX последнего слейва к RX мастера. Или я не прав и всё сложнее? :thinking:
Википедия что-то пишет про разные возможные топологии, например древовидную.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Serg »

Утверждать не буду - спеки протокола читал по диагонали, на грубо это работает примерно так: мастер передаёт кадр, а слейвы просто вставляют свои данные каждый в своё место в этом кадре взамен данных переданных им мастером. Т.е. мастер ведёт передачу кадра с командами для всех устройств, и в процессе принимает свой собственный кадр, в котором команды заменены на отчёты слейвов.
В принципе это можно сделать и в звезде, только если использовать готовые карты Ethernet, то как раз MAC-адреса и будут мешаться.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
dpss
Мастер
Сообщения: 265
Зарегистрирован: 23 фев 2012, 13:40
Репутация: 27
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение dpss »

Уточню. Там ходит один - единственный кадр максимально возможной длины. Декодирование, чтение и запись у слейва делается аппаратно или микропрограммно, т.е. в реальном времени. Обход пакетом слейвов всегда последовательное - по кольцу, независимо от формы физической коммутации.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Сергей Саныч »

dpss писал(а):Обход пакетом слейвов всегда последовательное - по кольцу, независимо от формы физической коммутации.
Но как это может быть реализовано, скажем, в звезде? Если учесть, что пакет транслируется без буферизации и одновременно в разных сегментах сети (лучах звезды) идут разные копии пакета? Что находится в центре звезды?
Чудес не бывает. Бывают фокусы.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Impartial »

Сергей Саныч писал(а):Вообще, я думал, что в EtherCAT реализована физически кольцевая топология, то есть TX мастера к RX первого слейва, TX первого слейва к RX второго и так далее..., и наконец TX последнего слейва к RX мастера. Или я не прав и всё сложнее?
Точно так и сделано. На вторую и далее ветку нужен новый контроллер на мастере.
dpss писал(а): Там ходит один - единственный кадр максимально возможной длины.
Кадр может быть любой длины от минимальной до максимальной. Но кадр один. Есть упоминание в стандарте о мультикадре, но я не понял как это работает.
UAVpilot писал(а):В принципе это можно сделать и в звезде, только если использовать готовые карты Ethernet, то как раз MAC-адреса и будут мешаться.
А почему будут мешаться? Я думаю, что преамбула, МАСи приемников и источников и поле типа пакета как то аппаратно связаны с МАС уровнем мастера.
В слейве они не нужны, а вот мастер может чего нибуть накуролесить если их заменить пользовательскими данными. Надо попробовать.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2857
Откуда: Тюмень
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Сергей Саныч »

Вообще, возможно, что MAC-адрес нужен постольку, поскольку в мастере используется обычная сетевая карта, которая основные элементы кадра (преамбула, MAC, CRC) обрабатывает на аппаратном уровне.
Что еще не понятно - как обрабатываются ошибки. Допустим, один из слейвов обнаружил ошибку CRC. Что он будет делать?
Чудес не бывает. Бывают фокусы.
romanru1
Мастер
Сообщения: 584
Зарегистрирован: 22 фев 2013, 22:31
Репутация: 177
Откуда: Первоуральск
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение romanru1 »

vmarkiv писал(а):Ethercat использует фирма http://infosys.beckhoff.com/index_en.htm в продукте TwinCat , у меня на одном из станков стоит
Насколько понятно идеология Beckhoff - это промышленные PLC/ CNC/ и т.д. на базе ПК с Windows и все это работает с железом через один из распространенных протоколов , в том числе EtherCAT . Интересно работает ли TwinCat с чужим (самодельным ) железом ( сервы , IO ) ?
Сколько стоит лицензия на модуль NC и/или PLC ?
— Мы месяц по Галактике «маму» попоём — и планета у нас в кармане.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Impartial »

Что еще не понятно - как обрабатываются ошибки. Допустим, один из слейвов обнаружил ошибку CRC. Что он будет делать?
Я пока тоже это до конца не понял. Понял только то, что слейв не отрабатывает пакет пока не сойдется црц пакета. Он считает црц со своими вставками на передачу, а принимает црц на приеме. Если не сошлось, то не пропускает пакет на выполнение и оставляет прежний црс. А мастер разбирается со сбойным пакетом у себя на приеме.
Последний раз редактировалось Impartial 15 фев 2014, 18:44, всего редактировалось 1 раз.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение PKM »

Я не совсем понимаю, какими сервами (кроме дорогих фирменных) можно управлять по EtherCAT. Вот когда китайцы начнут такие сервы производить задешево - будет очень актуально :)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Serg »

Impartial писал(а):А почему будут мешаться?
В EtherCAT вся фишка в том, что слейв сразу передаёт все данные со входа на выход, имея право подменить только свой фрагмент. Это для скорости.
В случае звезды слейв имеет право транслировать со входа на выход только свой собственный фрагмент, все остальные данные он должен принимать и игнорировать (в надежде обнаружить свои). Преамбула ethernet-кадра - это общие данные для всех слейвов, если они все начнут транслировать их на вход мастера, то там получится каша. Чтобы этого не случилось трансляцию придётся задерживать до момента пока слейвам не станет понятно кому адресован пакет, т.е. до передачи мастером адреса конкретного слейва (не MAC). Вот и получается, что в этом случае достаточно передавать коротенькие старт и адрес, а потом данные, а всякие MACи тут лишние.

В итоге получаем увеличение времени передачи из расчёта один-два лишних байт на каждый слейв, но зато удобную и более надёжную комутацию.
IMHO EtherCAT излишне усложнён только ради возможности использовать готовые сетевые карты. Всё равно в общую сеть его выпускать не стоит.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Impartial »

PKM писал(а):Я не совсем понимаю, какими сервами (кроме дорогих фирменных) можно управлять по EtherCAT. Вот когда китайцы начнут такие сервы производить задешево - будет очень актуально
В том и вся фишка, что любыми, в том числе и самодельными. Причем все контуры сервы ( момент, скорость, и положение) можно обрабатывать внутри ЕМС, оставляя на выходе слейва только физические силовые ключи.
UAVpilot писал(а):В случае звезды слейв имеет право транслировать со входа на выход только свой собственный фрагмент, все остальные данные он должен принимать и игнорировать (в надежде обнаружить свои).
Звезда ломает всю простоту идеи. Хотя в стандарте что то об этом говорят. Зачем извращаться?
UAVpilot писал(а):Всё равно в общую сеть его выпускать не стоит.
Так стандарт получил собственный тип пакета (0x88A4). Значит может свободно циркулировать по сети гарантированно маршрутизируясь в соответствии стандарту.
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение PKM »

Impartial писал(а):все контуры сервы ( момент, скорость, и положение) можно обрабатывать внутри ЕМС
Не думаю, что хватит быстродействия... требуется 2-4кГц для сервоцикла по положению, в несколько раз больше по скорости и еще больше по току. Разве не так?
В то же время, больше 4кГц получить весьма сложно.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Serg »

Impartial писал(а):Так стандарт получил собственный тип пакета (0x88A4). Значит может свободно циркулировать по сети гарантированно маршрутизируясь в соответствии стандарту.
Можно например пропустить через свичфабрику соединение между мастером и первым слейвом (и отказаться от гарантии времени доставки, ибо там коллизии бродят!), но стоит завести туда выход первого слейва как весь этот пакет будет пристрелен как мешающий работе сети первым-же умным комутатором.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
romanru1
Мастер
Сообщения: 584
Зарегистрирован: 22 фев 2013, 22:31
Репутация: 177
Откуда: Первоуральск
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение romanru1 »

Impartial писал(а):В том и вся фишка, что любыми, в том числе и самодельными
Если удастся разработать на базе ПЛИС чип который будет кушать EtherCAT с одной стороны и иметь какой ни будь интерфейс для общения с МК ( например ) с другой ( для построения сервы или IO модуля ) и при этом еще окажется , что лицензия на TwinCat недорога , а он вполне себе хорош , то смысл в EMC и Mach
и прочих потеряется . Если лицензия неподъёмна , то ой ! Но все это случится , если народ увидит какое то явное преимущество этой конфигурации . Например получить за недорого промышленную систему чпу ( twincat nc ) котороя явно на уровне Фанука , Сименса и прочего .
— Мы месяц по Галактике «маму» попоём — и планета у нас в кармане.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Impartial »

PKM писал(а):Не думаю, что хватит быстродействия... требуется 2-4кГц для сервоцикла по положению, в несколько раз больше по скорости и еще больше по току. Разве не так?
В то же время, больше 4кГц получить весьма сложно.
Не согласен. Достаточно 1мс на всё. В конечном итоге нужно расчитать, допустим для асинхронника с векторным управлением - самый сложный случай, только параметры выходного 3х фазного ШИМ. Комп это сделает очень быстро - меньше 1мкс на один расчет. При этом обмен можно осуществить в среднем за 10мкс. Так что не понятно, откуда цифра 4кгц и почему токовый ПИД должен считаться чаще, чем ПИД положения.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

Re: EtherCAT & LinuxCNC

Сообщение Impartial »

romanru1 писал(а):Если удастся разработать на базе ПЛИС чип который будет кушать EtherCAT с одной стороны и иметь какой ни будь интерфейс для общения с МК ( например ) с другой ( для построения сервы или IO модуля ) и при этом еще окажется , что лицензия на TwinCat недорога , а он вполне себе хорош , то смысл в EMC и Mach
Я не знаю сколько стоит TwinCat. Я поднял эту тему на любительском форуме применительно к ЕМС. TwinCat скорее всего заточен под блоки фирмы и использовать его вряд ли удастся. Хотя на сам EtherCAT есть довольно толковые исходники для ЕМС. Может, со временем, и появятся бюджетные варианты контроллеров совместимые с TwinCat. Хотя зачем TwinCat если есть Мatlab. И уже заточенный под EtherCAT.
Ответить

Вернуться в «LinuxCNC»