Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Расскажите про EtherCAT
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Интерфейсы
Страницы: 1, 2, 3, 4
gosha-z
Только что привалило от техасцев.
СНБ
Цитата(Make_Pic @ May 4 2016, 07:16) *
Еще вопросы в догонку:
1) Мастер в Twincat EtherCAT Simulator использует стандартный порт Ethernet на PC? Есть к нему какие либо требования?
2) Slave как эмулируется на PC - что для этого надо (физика)?
3) Что за IP Core для Slave можно его где-то найти (понимаю, что платный sm.gif?

1) Вроде как да. В рекламных проспектах пишут, что Вам не нужно какое-то особенное железо для реализациии мастера. Что, мол, сгодится, обычный комп со стандартной сетевой карточкой.
2) ?
3) Прошивки для ПЛИСин
Make_Pic
Цитата(СНБ @ May 4 2016, 21:01) *
1) Вроде как да. В рекламных проспектах пишут, что Вам не нужно какое-то особенное железо для реализациии мастера. Что, мол, сгодится, обычный комп со стандартной сетевой карточкой.
2) ?
3) Прошивки для ПЛИСин

1) только с интеловским ethernet-овским чипом.
2)? - Я так понял используется та же физика - обычный ethernet порт на интоловском чипе.
3) Как-то я в беседе со своим босом - французом, говорю обычно разговорно: "используется фпга..." - он не понимет. Тогда я понял в чем дело и повторяю: "используется эф-пи-джи-эй" sm.gif А вы говорите прошивки для плисин... - И что плисина? Какой в нее IP Core зашивается и где его можно раздобыть без обмена на 10000000 зеленых президентов (возможно open core использовался)?
СНБ
Я вообще думаю все же PowerLink заюсать.
У него открыто все. До последнего бита. Он полностью Open Source. И он полностью софтовый. Т.е. никакого специального hardware не потребуется. И в отличии от EtherCAT совместим и с одним гигабитом и с 10Gigabit
А в EtherCAT ( как я понял после беглого чтения доков и и форумов), самые "вкусные" вещи закрыты и даются только за немаленькую денежку

А вообще сейчас хилшер производит универсальные сетевые платы, в которых ты можешь использовать ЛЮБОЙ реал-тайм езернет протокол. Для этого достаточно просто перепрошить ПЛИСину. Прошивки на диске идут в комплекте вместе с сетевой платой.
romasv
Цитата(СНБ @ May 5 2016, 22:16) *
самые "вкусные" вещи закрыты и даются только за немаленькую денежку


денежку просят бешеную( в связи с чем у меня вопрос: есть какие-то решения кроме TwinCAT и EC-WIN от аконтиса, позволяющие поднять реалтаймовый эзеркат под виндой?
пытаюсь сейчас на raspberry pi поднять ethercat-master, но как-то оно очень сомнительно, очень мало инфы и опыта. Если кто-то подскажет советом, буду очень благодарен)
syoma
Цитата
пытаюсь сейчас на raspberry pi поднять ethercat-master, но как-то оно очень сомнительно, очень мало инфы и опыта. Если кто-то подскажет советом, буду очень благодарен)

По поднятию EtherCAT. Сейчас делаю маленький ПЛК проектик на RPI 3 + EtherCAT. На Rpi стоит Codesys Runtime. Из EtherCAT стоит EK1100+EL2008,EL1008,EL2602, EL3202. Контроллер измеряет температуру, исполняет PID контроллер, крутит сервоклапанами, опрашивает кнопки, показывает и управляется через встроенный Вебсервер, добавлю еще Modbus TCP slave. Все в цикле 4мс.
Запустилось все очень быстро по туториалам. EtherCAT модули понасобирал на Ebay по 30€.
_pv
а свои устройства на LAN9252 тут случайно никто не делал?
AlexandrY
Цитата(syoma @ Mar 29 2017, 12:03) *
По поднятию EtherCAT. Сейчас делаю маленький ПЛК проектик на RPI 3 + EtherCAT. На Rpi стоит Codesys Runtime. Из EtherCAT стоит EK1100+EL2008,EL1008,EL2602, EL3202. Контроллер измеряет температуру, исполняет PID контроллер, крутит сервоклапанами, опрашивает кнопки, показывает и управляется через встроенный Вебсервер, добавлю еще Modbus TCP slave. Все в цикле 4мс.
Запустилось все очень быстро по туториалам. EtherCAT модули понасобирал на Ebay по 30€.


С фотками было бы информативней. Не думаете?

А вот начало моего монстра
Нажмите для просмотра прикрепленного файла

Будет 10 EtherCAT каплеров, цикл 1 мс на мастере.
Не менее 60 контроллеров вводы-вывода, из них 20 будут Safety контроллеры.
Интересно есть ли в Codesys Runtime поддержка FailSafe over EtherCAT. А то без этого на серьезные объекты не сунутся.
syoma
Цитата(AlexandrY @ Mar 29 2017, 16:26) *
С фотками было бы информативней. Не думаете?

Могу выложить, когда сделаю.
Только зачем? В сети полно видео, как это выглядит https://www.youtube.com/watch?v=x4ePFqxqTfY
Причем с RPI 3 стало еще проще, так как там для общения со средой уже есть Wi-Fi на борту, а EtherCAT подключается к проводному Ethernet порту.

AlexandrY
Цитата(syoma @ Mar 29 2017, 17:59) *
В сети полно видео, как это выглядит https://www.youtube.com/watch?v=x4ePFqxqTfY


Понятно, RPI 3 в принципе не может поддерживать FailSafe over EtherCAT.
syoma
Цитата(AlexandrY @ Mar 29 2017, 18:58) *
Понятно, RPI 3 в принципе не может поддерживать FailSafe over EtherCAT.

Если бы вы еще обьяснили, почему без FSoE нельзя сделать серьезные проекты, было бы неплохо. С RPi и так понятно, что он в основном годится только под тестовые проекты - там и Рантайм несильно реалтаймовый получается.
Make_Pic
Цитата(syoma @ Mar 29 2017, 18:59) *
Могу выложить, когда сделаю.
Только зачем? В сети полно видео, как это выглядит https://www.youtube.com/watch?v=x4ePFqxqTfY
Причем с RPI 3 стало еще проще, так как там для общения со средой уже есть Wi-Fi на борту, а EtherCAT подключается к проводному Ethernet порту.


Я PC подключил через USB-TPLINK Ethernet переходник/

Цитата(syoma @ Mar 29 2017, 23:30) *
Если бы вы еще обьяснили, почему без FSoE нельзя сделать серьезные проекты, было бы неплохо. С RPi и так понятно, что он в основном годится только под тестовые проекты - там и Рантайм несильно реалтаймовый получается.

Если конечное устройство поддерживает этот профиль, например частотник, то возможно безопасное выключение или перевод в безопасное состояние. Если TV-ящик смотрите, то наверно видели как в Китае сбесился эскалатор в метро. Это как раз та тема.
Я все это решаю аппаратным WDT для оконечного контроллера -устройства.
P.S. Быстродействия Rpi мне хватает для моих задач.
syoma
Цитата
С фотками было бы информативней. Не думаете?

Вот фотка ящика. RPI в белом корпусе слева.
Нажмите для просмотра прикрепленного файла
AlexandrY
EtherCAT тут выглядит слегка притянутым за уши.
EtherCAT это все таки дорогая технология.
И юзать её при количестве IO меньше 100 довольно затратно.
Я б в такой ящик поставил бы что нибудь более гибкое и современное типа CAN FD.
А CAN и к топологии сети менее критичен, можно использовать без транспортных протоколов, и дешевле обвязка, и надежность передачи выше.
syoma
Цитата
EtherCAT это все таки дорогая технология.

Гы. Вот тут вы заблуждаетесь, как и многие другие. Посмотрите на стоимость стандартных промышленных I/O модулей для EtherCAT и для других стандартных интерфейсов - Modbus TCP, Profibus, CANopen - от тех же производителей Beckhof, Wago, Phoenix, Weidmuller. EtherCAT просто дешевле! В сочетании с дешевыми и простыми кабелями и отсутствием специальных требований к Мастеру(просто Ethernet Порт) это и делает EtherCAT сейчас мегапопулярным - его есть смысл использовать просто везде в стандартной автоматизации. Ну и быстродействие, как бонус.
Я после данного эксперимента собираюсь во всех своих стендах использовать только EtherCAT.
AlexandrY
Цитата(syoma @ Apr 6 2017, 10:49) *
Я после данного эксперимента собираюсь во всех своих стендах использовать только EtherCAT.

Насчет перекоса цен у брендов согласен. EtherCAT и у OMRON-a дешевле.

Но в остальном проблемы.
Во-первых цены на брендовые IO модули в принципе вздутые.
Поэтому я даже для мелкосерийных проектов делаю свои. Другие применяют ардуино.

Во-вторых вот сейчас столкнулся я в своем распределенном проекте, вам нужно специально покупать Ethernet Coupler-ы для своих IO.
А что если на одном их них отключится питание? У вас падает вся сеть!
В CAN-е такого не бывает. CAN будет продолжать работать.
САN можно вставить в микроскопические дивайсы, он не требует трансформатора и монструозного ненадежного разъема, гальваноизоляторы для CAN более электрически прочные.
CAN можно ответвить по любой лапше.

Нет, для проектов уровня вашего ящика CAN лучший выбор.
syoma
Цитата
А что если на одном их них отключится питание? У вас падает вся сеть!

В EtherCAT есть Cable Redundancy. Второй Ethernet порт на Мастере и Ethernet пакеты начинают двигаться в обоих направлениях и снимается проблема не только питания Ethernet Couplerа а и обрыва кабеля.
Цитата
В CAN-е такого не бывает. CAN будет продолжать работать.
САN можно вставить в микроскопические дивайсы, он не требует трансформатора и монструозного ненадежного разъема, гальваноизоляторы для CAN более электрически прочные.
CAN можно ответвить по любой лапше.

Я не говорю про применения на своем железе. У меня самого железки на CAN работают. Но для таких вещей - когда нужно сделать контроллер быстро и надежно и в одном экземпляре, не обойтись без стандартных модулей. И тут EtherCAT смотрится очень неплохо по сравнению с другими стандартными шинами. Ящик, который я показал - это единственный экземпляр, заточенный под конкретный проект, а не серийный продукт.
AlexandrY
Цитата(syoma @ Apr 6 2017, 13:07) *
это единственный экземпляр, заточенный под конкретный проект, а не серийный продукт.

Странная заточенность с применением IO модулей без родных ПЛК.


syoma
Цитата(AlexandrY @ Apr 6 2017, 16:27) *
Странная заточенность с применением IO модулей без родных ПЛК.

На то он и стандартный протокол, чтоб работал с любыми ПЛК, а не только Beckhoff. Ethercat сейчас поддерживается почти всеми ПЛК
gte
Цитата(syoma @ Apr 6 2017, 20:32) *
На то он и стандартный протокол, чтоб работал с любыми ПЛК, а не только Beckhoff. Ethercat сейчас поддерживается почти всеми ПЛК

Siemens, Rockwell, Mitsubishi, ABB, Bosch-REXROTH?

Цитата с форума АСУТП:

PROFIBUS International (PI) Organization - стандарт PROFInet - около 1200
членов.
ODVA - стандарт EtherNet/IP - 264 члена, из них пятая часть и в PI.
MODBUS.ORG - стандарт MODBUS TCP - 19 членов.
EPSG - стандарт ETHERNET POWERLINK - 27 членов.
EtherCAT Technology Group - стандарт EtherCAT - 53 члена.
syoma
Gte Вы на дату цитаты смотрели?
Ethercat technology group сегодня
Цитата
The worlds largest Industrial Ethernet organization with 4200 member companies.

В то время как в Profinet как было 1200 членов, так и сейчас
Цитата
PI has about 1400 members worldwide.
gte
Цитата(syoma @ Apr 6 2017, 22:55) *
Gte Вы на дату цитаты смотрели?
Ethercat technology group сегодня
В то время как в Profinet как было 1200 членов, так и сейчас

Да, действительно оплошал со ссылкой.
И тем не менее вопрос остался.
Сейчас ПЛК таких фирм как Siemens, Rockwell, Mitsubishi, ABB, Bosch-REXROTH легко работают с периферией Ethercat?
Я только Сименс периодически использую.
AlexandrY
Цитата(syoma @ Apr 6 2017, 20:32) *
На то он и стандартный протокол, чтоб работал с любыми ПЛК, а не только Beckhoff. Ethercat сейчас поддерживается почти всеми ПЛК

Да протокол тут последнее что интересует.
Интероперабельность - вот вопрос.
Откуда берете ESI файлы, откуда знаете что они исчерпывающие, откуда знаете что характеристики быстродействия модулей соответствуют вашему мастеру и т.д.
syoma
Цитата(gte @ Apr 6 2017, 22:37) *
Сейчас ПЛК таких фирм как Siemens, Rockwell, Mitsubishi, ABB, Bosch-REXROTH легко работают с периферией Ethercat?
Я только Сименс периодически использую.

Точно не знаю. В директории членов ETG они присутствуют, кроме Rockwell. Я работаю с Codesys - там EtherCAT поддерживается. Т.е. все ПЛК на этой системе должны с EtherCAT тоже работать.

Цитата
Интероперабельность - вот вопрос.
Откуда берете ESI файлы, откуда знаете что они исчерпывающие, откуда знаете что характеристики быстродействия модулей соответствуют вашему мастеру и т.д.

ETG дает четкие ответы на эти и другие вопросы https://www.ethercat.org/en/faq.html#778
За интероперабельностью четко следится. Доступ ко всем спецификациям, исходным кодам мастера открыт любому члену группы. Членство бесплатное.

В моем случае я просто скачал нужный архив с https://www.beckhoff.com/english.asp?download/elconfg.htm и импортировал в Codesys нужные мне описания EK и EL модулей, после чего они распознались в среде.
gte
Цитата(syoma @ Apr 7 2017, 10:28) *
Точно не знаю. В директории членов ETG они присутствуют, кроме Rockwell. Я работаю с Codesys - там EtherCAT поддерживается. Т.е. все ПЛК на этой системе должны с EtherCAT тоже работать.

Вот это уже ближе к истине - те, что используют Codesys. У крупных игроков все больше свои системы.

Когда делали первую систему на Симатик с нуля, без опыта работы с Сименс (S7-300, 100+входов/выходов, ET, графическая панель), без реального железа полгода (параллельно с другой работой) ушло на освоение, написание и отладку. Вся система отлажена в симуляторе вместе с панелью, отлажена реакция программы на сигналы входов/выходов и в результате все запустилось на объекте без дополнительной отладки на реальном железе.
AlexandrY
Цитата(syoma @ Apr 7 2017, 10:28) *
ETG дает четкие ответы на эти и другие вопросы https://www.ethercat.org/en/faq.html#778
За интероперабельностью четко следится. Доступ ко всем спецификациям, исходным кодам мастера открыт любому члену группы. Членство бесплатное.

Ага, как они с бесплатным членством-то будут четко следить?
Позасовывают все кому не лень свою проприетарщину.
Не вижу никаких мотивов тому же Сименсу давать своим контроллерами полнофункционально работать в среде Beckhoff.

syoma
Цитата(AlexandrY @ Apr 7 2017, 12:49) *
Не вижу никаких мотивов тому же Сименсу давать своим контроллерами полнофункционально работать в среде Beckhoff.

Причем здесь среда Beckhoff к Ethercat и Сименсу?
AlexandrY
Цитата(syoma @ Apr 7 2017, 15:56) *
Причем здесь среда Beckhoff к Ethercat и Сименсу?

Потому что без среды программирования нам от этого EtherCAT никакой пользы.
Вы например его использует только потому что имеете CodeSys
А не имей вы его, то отказались бы от EtherCAT еще на этапе знакомства с конфигурационными XML файлами.
Поскольку там черт ногу сломит, один парсинг займет неадекватные ресурсы. После чего еще остается риск нарваться на проприетарные данные.

Я использую EtherCAT только потому что заказчик потребовал цепь безопасности по SIL3, а объект в длину несколько сот метров.
Кстати посмотрим как EtherCAT потянет.

А так ассортимент модулей EtherCAT IO у производителей очень беден, цены на них вздуты, да еще и купить их так просто нельзя, месяц доставка.
syoma
Ну так у Сименса должна быть своя среда, которая должна поддерживать EtherCAT. Вполне допускаю, что Сименс специально не будет делать драйвер EtherCAT, чтобы проталкивать свой Profibus.

Как я уже писал в одном из контроллеров нами за основу был взят демо код от ETG и был сделан мастер, которому ни среда программирования, ни XML файлы не нужны.
Цитата
А так ассортимент модулей EtherCAT IO у производителей очень беден, цены на них вздуты, да еще и купить их так просто нельзя, месяц доставка.

Смотря где. У нас тут они даже на ebay продаются. Есть Beckhof, есть Phoenix, есть Weidmuller, есть Wago. По ценам я уже писал - прежде чем писать про вздутие, посмотрите на цены аналогичных модулей для Profinet или Canopen.
AlexandrY
Цитата(syoma @ Apr 7 2017, 16:30) *
Смотря где. У нас тут они даже на ebay продаются. Есть Beckhof, есть Phoenix, есть Weidmuller, есть Wago. По ценам я уже писал - прежде чем писать про вздутие, посмотрите на цены аналогичных модулей для Profinet или Canopen.

Я бы сравнивал с ардуино, а не с Profinet или Canopen. biggrin.gif
syoma
Цитата
Я бы сравнивал с ардуино

Ну покажите мне индустриальный IO модуль Ардуино. Посмеемся вместе.
syoma
Наткнулся на неплохую презентацию по EtherCAT, правда от 2012 года.
https://indico.cern.ch/event/201794/attachm...CERN_120920.pdf

Студент заборстроительного
Возникли следующие вопросы.
1) Так он реально открытый и бесплатный? Или тебе только айсики могут продать в которых УЖЕ ВСТРОЕН код слейва, а сам код для плисины тебе не дадут бесплатно?
2) если каждый слейв вставляет свои данные в пакет "на лету", то получается, что CRC пакета, который получит мастер (после прохождения пакета через все слейвы) будет не верным? Но тогда такой пакет стандартный TCP|IP должен же отклонить? Тогда зачем мастеру в исходном пакете считать CRC зря теряя на это драгоценные такты?

3) А есть у нас в России люди, которые написали "с нуля" код етеркат слейфа для ПЛИСине?
4) Как слейф определяет в какое место "телеграммы" ему вставлять (доставать) данные? Тупо подсчетом числа тактов? А если у меня данные 1500 байт - это же гигантское число тактов будет?
5) Исходя из 4) полчучается, что достаточно испортить 1 бит (в цеху помехи дай божЕ)и вся телеграмма "псам под хвост" и 10000 тысяч устройств не получат команды в данном цикле? Или (что хуже) получат неверные команды? к примеру, вместо "включить клапан" слейв получит команду "выключить клапан" и произойдет катастрофа
Студент заборстроительного
Никто не в теме что ли?
gosha-z
Цитата(Студент заборстроительного @ Dec 30 2017, 12:55) *
Возникли следующие вопросы.
1) Так он реально открытый и бесплатный? Или тебе только айсики могут продать в которых УЖЕ ВСТРОЕН код слейва, а сам код для плисины тебе не дадут бесплатно?

Доступность спецификации не означает бесплатность реализации.
Цитата(Студент заборстроительного @ Dec 30 2017, 12:55) *
2) если каждый слейв вставляет свои данные в пакет "на лету", то получается, что CRC пакета, который получит мастер (после прохождения пакета через все слейвы) будет не верным? Но тогда такой пакет стандартный TCP|IP должен же отклонить? Тогда зачем мастеру в исходном пакете считать CRC зря теряя на это драгоценные такты?

А причем тут tcp/ip? Правильно написанный tcp/ip stack этих фреймов не увидит вообще.

syoma
Я бы в первую очередь почитал спецификации EtherCAT. Там должны быть даны ответы по реализации. По поводу открытости и бесплатности - присоединюсь к предыдущему комментатору. Вы можете получить спецификации бесплатно - они открыты. Но тогда вам придется реализовать весь слейв самому. А вот бесплатных слейвов для ПЛИС я не встречал, хотя платные пробовал.
Студент заборстроительного
Т.е. полностью открытых прошивок для ПЛИС в общем доступе нету?

Цитата(gosha-z @ Dec 31 2017, 16:01) *
А причем тут tcp/ip? Правильно написанный tcp/ip stack этих фреймов не увидит вообще.

Т.е. то что мастер примет пакет с покоцанной CRC16 - это ничего?
Студент заборстроительного
Цитата(syoma @ Dec 31 2017, 17:57) *
Вы можете получить спецификации бесплатно - они открыты. Но тогда вам придется реализовать весь слейв самому.

А это возможно?
А то в инете разная инфа бродит.
Что якобы все равно пока фирме Bechhoff не отстегнёшь "мопед не поедет", так как есть некторые нюансы, которые не изложены в открытой спецификации.

Почему я и вопрос задал: есть ли тут те, кто сам, "с нуля" написал прошивку для ПЛИС на языке VHDL (или Verilog), реализующую EtherCAT-слейв, который успешно "внедрился как родной" в сеть из покупных EtherCAT устройств, изготовленных фирмой Bechhoff?
Impartial
4) Как слейф определяет в какое место "телеграммы" ему вставлять (доставать) данные? Тупо подсчетом числа тактов? А если у меня данные 1500 байт - это же гигантское число тактов будет?

ЕtherСАТ применяется в промышленных системах управления. Там максимальная длина пакета около 100 байт. И счет идет, действительно, побитно вернее по два, четыре или восемь бит в зависимости от протокола чипа физического уровня. Реализовать слейв можно только аппаратно. А вот мастером может быть любой компьютер. Мастер выбрасывает пакет и задержка его прихода в приемник составляет длину в битах интерфейса чипа физического уровня.
Студент заборстроительного
Impartial
Скажите, а реализовать слейв с нуля самому реально? Ну, в смысле, имеющейся в открытом доступе инфы достаточно для этого?

Цитата(Impartial @ Jan 9 2018, 19:09) *
ЕtherСАТ применяется в промышленных системах управления. Там максимальная длина пакета около 100 байт.

Не факт.
Сам же Bechkoff пишет об охвате 10000 устройств одной телеграммой. Т.е. пакеты там явно длинней 1000 байт.

Цитата(Impartial @ Jan 9 2018, 19:09) *
И счет идет, действительно, побитно вернее по два, четыре или восемь бит в зависимости от протокола чипа физического уровня.

А если в цепочке 4 слейва и более?
А телеграмма должна пройти СКВОЗЬ них, то в принципе любой из них может "ЗАПОРОТЬ"телеграмму, "сбившись со счета" из-за помех и сбоев тактового генератора.
А если их 4 и более в цепочке, то вероятность этого вырастает многократно.

В связи с этим вопрос: какая практическая надежность EtherCAT в случае 4-х слейвов в цепочке и длине пакета 1500 байт?

Кто-нибудь проводил такие исследования?
Есть инфа по этому вопросу?

Т.е. какой процент битовых ошибок?

И по CRC16 не ясно.
Ведь когда слейвы вставляют свои данные в телеграмму они же CRC пакета не меняют.
Получается, что мастер получает пакет с испорченной CRC?
SSerge
Цитата(Студент заборстроительного @ Jan 13 2018, 17:38) *
Скажите, а реализовать слейв с нуля самому реально? Ну, в смысле, имеющейся в открытом доступе инфы достаточно для этого?

так уже:
http://www.microchip.com/DevelopmentTools/...B-LAN9252-DIGIO
16 цифровых входов/выходов как с куста, на одной микросхеме без контроллеров и программирования.
Для этого случая, полагаю, надёжность будет наивысшая из доступных, поскольку т.н. программисты не могут залезть туда своими немытыми лапками и всё испортить.
Цитата
И по CRC16 не ясно.
Ведь когда слейвы вставляют свои данные в телеграмму они же CRC пакета не меняют.
Получается, что мастер получает пакет с испорченной CRC?

Если слэйв может вставлять свои данные на лету, кто мешает так же на лету и подсчитывать CRC передаваемого пакета?
Кстати, в обычном Ethernet контрольную сумму пакета тоже в процессе передачи (как правило) считают.
Студент заборстроительного
Цитата(SSerge @ Jan 13 2018, 14:30) *
Если слэйв может вставлять свои данные на лету, кто мешает так же на лету и подсчитывать CRC передаваемого пакета?

Так слейвов много. И каждый что-то вставляет в пакет в свой место.
И потом. Вставить "на лету" 1 байт в 1500 байтовый пакет это реально
А вот посчитать "на лету" (за доли наносекунды) CRC16 1500байтного пакета не реально
Поэтому, я думаю, что слейвы в EtherCAT CRC16 не пересчитывают когда вставляют в него свои данные.
Т.е. получается, что целостность данных НИКАК не контролируется.
Поэтому единственным способом контроля целостности полученных, как мне видится, в EtherCAT может быт только повторные передачи одного и того же пакета.
К примеру.
Если слейв - это устройство, включающее некоторый исполнительный механизм, то для надёжности нужно будет 3 раза передавать слейву пакет, чтобы слейв убедился, что реально нужно включать устройство.
Но тогда весь цимус етерката (маленький цикл обмена) пропадает из-за многократных повторных передач
И по факту пропускная способность будет уже не 100Мбит, а 30 и меньше
Студент заборстроительного
Но об этом (про рост процента битовых ошибок, про необходимость повторных передач и т.п. "скользкие места" EtherCAT, про снижение надёжности передачи и достоверности принятых данных из-за отказа от CRC) не пишут в рекламных проспектах.



Ведь даже на офф. сайте брехня



Какая контрольная сумма?

слейв просто вставляет данные в опр. место телеграммы при этом CRC16 не меняя
_pv
Цитата(Студент заборстроительного @ Jan 13 2018, 21:07) *
А вот посчитать "на лету" (за доли наносекунды) CRC16 1500байтного пакета не реально

конечно нереально, особенно когда 100Мбит/с это 1500 байт за доли наносекунды.

Цитата(Студент заборстроительного @ Jan 13 2018, 21:07) *
Ведь даже на офф. сайте брехня

вы похоже вообще не имеете никакого представления о том что такое ethercat,
и вы в присутствии двух людей с университетским образованием позволяете себе с развязностью совершенно невыносимой подавать какие-то советы космического масштаба и космической же глупости о том, как всё поделить этот самый езеркат устроен.
Студент заборстроительного
Цитата(_pv @ Jan 13 2018, 19:51) *
конечно нереально, особенно когда 100Мбит/с это 1500 байт за доли наносекунды.

Вы не ёрничайте. Чай не Петросян.
Скажите конкретно. Считает слейв CRC16 или нет после того как модифицирует пакет?
И каким образом он сможет сделать это корректно если он ещё не получил "хвост" от пакета (к котором и находится CRC) когда уже следующий слейв в цепочке начал вставлять свои данный и менять пакет, а предыдущий слейв об этом НИЧЕГО НЕ ЗНАЕТ

См. видео https://upload.wikimedia.org/wikipedia/comm...gPrinciple.webm

Цитата(_pv @ Jan 13 2018, 19:51) *
вы похоже вообще не имеете никакого представления о том что такое ethercat, ... как этот самый езеркат устроен.

Да куда уж нам. С суконным то рылом, да в калашный ряд

P.S. И таки да.Последний слейв в цепочке слейвов если он считывает и вставляет свои данные в конц пакета, непосредственно перед CRC16, то таки да он должен сформировать CRC16 за доли наносекунды.
Потому что после последнего бита данных начинается бит CRC
Правда при подсчёте нужно будет за доли наносекунды добавить к CRC16 только последнее слово данных пакета и тем не менее. Выполнить это надо за время, существенно меньшее битового интервала, который равен для 100 МБит/с 10 наносекундам

И как быть с этим
Цитата
Протоколы суммарного фрейма более восприимчивы к помехам, чем протоколы с одним фреймом. При повреждении фрейма в протоколах с суммарным фреймом всегда теряется весь цикл.
...
В конечном итоге теоретически более высокая производительность метода суммарного фрейма сводится на нет.

©

Цитата(Siargy @ Dec 17 2015, 09:46) *
проблемы больше в том что нужно платное членство в изиркат сообществе,

Зачем?
Разве этот протокол не открытый?
SSerge
Цитата(Студент заборстроительного @ Jan 14 2018, 03:57) *
Вы не ёрничайте. Чай не Петросян.
Скажите конкретно. Считает слейв CRC16 или нет после того как модифицирует пакет?
И каким образом он сможет сделать это корректно если он ещё не получил "хвост" от пакета (к котором и находится CRC) когда уже следующий слейв в цепочке начал вставлять свои данный и менять пакет, а предыдущий слейв об этом НИЧЕГО НЕ ЗНАЕТ

См. видео https://upload.wikimedia.org/wikipedia/comm...gPrinciple.webm

У меня тоже есть для Вас картинки CRC
Каждый узел в сети формирует поток битов на передачу. Не важно как он это делает, просто пропускает через себя принимаемый пакет или что-то в него вставляет на лету. На входе передатчика это просто биты идущие друг за другом каждые 10 нс.
На второй картинке в вики схема которая подсчитывает CRC для такого потока бит одновременно с передачей. Биты кодируются и передаются в линию, одновременно те же биты поступают на вход схемы считающей crc. В тот момент когда последний бит данных передан в регистре будет находится подсчитанная crc, в следующем такте можно уже передавать биты из этого регистра. Как не трудно заметить никакого феноменального быстродействия от этой схемы не требуется.
Фокус в том, что crc никто не модифицирует, её просто вычисляют заново для передаваемого пакета, причём прямо в процессе передачи.
_pv
Цитата(Студент заборстроительного @ Jan 14 2018, 03:57) *
Скажите конкретно. Считает слейв CRC16 или нет после того как модифицирует пакет?

нет, CRC16 не считает, но лишь по той причине что в езернете используется CRC32.

Цитата(Студент заборстроительного @ Jan 14 2018, 03:57) *
И каким образом он сможет сделать это корректно если он ещё не получил "хвост" от пакета (к котором и находится CRC) когда уже следующий слейв в цепочке начал вставлять свои данный и менять пакет, а предыдущий слейв об этом НИЧЕГО НЕ ЗНАЕТ

вам тут ссылку дали про то как контрольные суммы считаются, почитайте.

Цитата(Студент заборстроительного @ Jan 14 2018, 03:57) *

о да, зачем читать скучные спецификации, когда есть википедия с картинками и рекламные статьи на русском языке.

Цитата(Студент заборстроительного @ Jan 14 2018, 03:57) *
P.S. И таки да.Последний слейв в цепочке слейвов если он считывает и вставляет свои данные в конц пакета, непосредственно перед CRC16, то таки да он должен сформировать CRC16 за доли наносекунды.
Потому что после последнего бита данных начинается бит CRC

это делает каждый слэйв, а не только последний.
Цитата(Студент заборстроительного @ Jan 14 2018, 03:57) *
Правда при подсчёте нужно будет за доли наносекунды добавить к CRC16 только последнее слово данных пакета и тем не менее. Выполнить это надо за время, существенно меньшее битового интервала, который равен для 100 МБит/с 10 наносекундам

даже хуже - время одного бита 8 нс.
но если вдруг пакет из слэйва вылезет не прям сразу как залез, а через пару (а может десятков, а то и сотен) тактов, то можно не только CRC посчитать.
Impartial
"И потом. Вставить "на лету" 1 байт в 1500 байтовый пакет это реально
А вот посчитать "на лету" (за доли наносекунды) CRC16 1500байтного пакета не реально
Поэтому, я думаю, что слейвы в EtherCAT CRC16 не пересчитывают когда вставляют в него свои данные."


CRC32 считается на лету после приема каждой группы бит. Каждый слейв считает и передает дальше свой црц. Других вариантов просто нет.
Причем считается не только выходной но и входной для проверки целостности пакета на входе.
Реализовать в плисине саму идеологию не проблема. Проблема в том, что бы выдержать стандарт. А там много разных дополнений типа "ethernet
over ethercat".
Если не лезть в эти дебри то реализация в плисе типа циклона 4 занимает где то 1000-1200 LES .
В микрочипе есть готовая микросхема LAN9252.

"И по факту пропускная способность будет уже не 100Мбит, а 30 и меньше"

Не так. Задержки во всей цепочке слейвов нет.
К примеру имеем интерфейс к шине RMII. Прием идет по 2 бита. Эти два бита сразу выставляются на передачу если их не надо изменять в том же тактовом интервале. Или из плиса если нужно. Слейв просто мониторит шину со всеми внутренними вычислениями вставляя в нужные тактовые интервалы свои данные.
В том числе и расчитанные црц. Принимает к исполнению полученные данные после окончания пакета и, соответственно, проверив правильность принятого пакета.
Студент заборстроительного
Цитата(SSerge @ Jan 14 2018, 02:07) *
У меня тоже есть для Вас картинки CRC
Каждый узел в сети формирует поток битов на передачу. Не важно как он это делает, просто пропускает через себя принимаемый пакет или что-то в него вставляет на лету. На входе передатчика это просто биты идущие друг за другом каждые 10 нс.
На второй картинке в вики схема которая подсчитывает CRC для такого потока бит одновременно с передачей. Биты кодируются и передаются в линию, одновременно те же биты поступают на вход схемы считающей crc. В тот момент когда последний бит данных передан в регистре будет находится подсчитанная crc, в следующем такте можно уже передавать биты из этого регистра. Как не трудно заметить никакого феноменального быстродействия от этой схемы не требуется.

Допустим.
Что слейв может подсчитывать "на лету" CRC принимаемого пакета.
Но для этого нужно реализовать схему на логических вентилях.
Считать "на лету" CRC программным путем с помощью микроконтроллера не получится.
Так? Потому что операция CRC-сложения занимает не один так процессора

Цитата(SSerge @ Jan 14 2018, 02:07) *
Фокус в том, что crc никто не модифицирует, её просто вычисляют заново для передаваемого пакета, причём прямо в процессе передачи.

Что значит "никто не модифицирует"?
Если слейв вставил какие-то свои данные в пакет, то он должен и CRC, пакета переписать. Ведь она изменилась. Так?

Тут возникает проблема. Допустим переписать он её сможет.
Но ведь целостность ПРИНЯТОГО пакета он никак не проконтролировал.
Поясню.
Допустим данные слейва находятся а 25-м байте от головы пакета.
А CRC - а 154-м байте
Слейв считывает свои данные на 25-м байте и начинает их использовать ДАЖЕ НЕ ПРОВЕРИВ CRC, потому что она еще не дошла. Она ещё "в пути". И формирует ответные данные которые вставляет в 26-й байт
А вдруг пакет "битый" был?
В результате слейв отработал некорректно
Цитата(_pv @ Jan 14 2018, 02:50) *
нет, CRC16 не считает, но лишь по той причине что в езернете используется CRC32.

Да хоть CRC128 - это не принципиально.
Принципиально: считает или нет
Цитата(_pv @ Jan 14 2018, 02:50) *
о да, зачем читать скучные спецификации, когда есть википедия с картинками и рекламные статьи на русском языке.

Вы хотите сказать, что там всё врут?
И в каком конкретно месте там врут?
Цитата(_pv @ Jan 14 2018, 02:50) *
это делает каждый слэйв, а не только последний.

Это очевидно.
Вот же картинка

Цитата(_pv @ Jan 14 2018, 02:50) *
даже хуже - время одного бита 8 нс.
но если вдруг пакет из слэйва вылезет не прям сразу как залез, а через пару (а может десятков, а то и сотен) тактов, то можно не только CRC посчитать.

Только проблема, что слейв может писать только в определенный выделенный ему тайм-слот пакета, а не в весь пакет
Цитата(Impartial @ Jan 14 2018, 08:07) *
CRC32 считается на лету после приема каждой группы бит. Каждый слейв считает и передает дальше свой црц. Других вариантов просто нет.

Это я уже понял.
Также понял, что для подсчета CRC "на лету" нужна ПЛИСина. На MCU общего назначения EtherCAT слейв не реализуешь. Так?
Цитата(Impartial @ Jan 14 2018, 08:07) *
Реализовать в плисине саму идеологию не проблема.

А ПЛИСине да. А вот на MCU - большая проблема
Цитата(Impartial @ Jan 14 2018, 08:07) *
Не так. Задержки во всей цепочке слейвов нет.

Задержка таки есть.
Вы же сами написали:
Цитата
Цитата(Impartial @ Jan 14 2018, 08:07) *
Причем считается не только выходной но и входной для проверки целостности пакета на входе..

Цитата(Impartial @ Jan 14 2018, 08:07) *
Принимает к исполнению полученные данные после окончания пакета и, соответственно, проверив правильность принятого пакета.


Т.е. есть задержка по крайней мере на 1 цикл шины
Цитата(Impartial @ Jan 14 2018, 08:07) *
Реализовать в плисине саму идеологию не проблема. Проблема в том, что бы выдержать стандарт. А там много разных дополнений типа "ethernet over ethercat".

Т.е. без того, чтобы отстегнуть кругленькую сумму фирме Beckhoff (Германия) реализовать полноценный EtherCAT слейв не получится?
Цитата(Impartial @ Jan 14 2018, 08:07) *
Если не лезть в эти дебри то реализация в плисе типа циклона 4 занимает где то 1000-1200 LES .

Вы сами, лично, реализовали "с нуля" EtherCAT слейв на ПЛИСине не платя ничего фирме Beckhoff? Или Вы чисто теоретически говорите?
Цитата(Impartial @ Jan 14 2018, 08:07) *
В микрочипе есть готовая микросхема LAN9252.

И в техасе, и у хилшера, и ... да много у кого есть
И все же остался открытым вопрос по надёжности реализации

Кто-нибудь проводил такие исследования?
Есть инфа по этому вопросу?
А какой процент битовых ошибок?

Ведь если посмотреть ещё раз на картинку

То каждый из 6-ти слейвов может "запороть" всю телеграмму
А наличие 12 (!!!) промежуточных кабелей... Тоже надежность не увеличивают
И повторю это:
Цитата
Протоколы суммарного фрейма более восприимчивы к помехам, чем протоколы с одним фреймом. При повреждении фрейма в протоколах с суммарным фреймом всегда теряется весь цикл.
...
В конечном итоге теоретически более высокая производительность метода суммарного фрейма сводится на нет.

©
Вообщем в рекламе все просто замечательно.
А как в жизни?
Если 6 и более слейвов в цепочке и тяжелая электромагнитная обстановка в цеху?
Как себя поведет система на EtherCAT?
Impartial
Вы должны учитывать специфику приложений в которых езеркат используется. Это системы управления технологией.
Там не важна потеря одного или нескольких пакетов. Просто пропускаем без выполнения битый пакет.

На мокроконтроллере это не сделаешь.

Я реализовал слейв на плисе без поддержки всего стандарта. Задача была узкой специализации. Просто пропускал ненужные поля.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.