1. Установите TwinCAT в смешанный режим.
После сохранения перезапустите TwinCAT.
В настоящее время мое устройство не может войти в состояние OP, и у WireShark нет никаких данных.
2. TwinCAT не может войти в состояние OP. Как снова войти в состояние OP?
①После нажатия зеленой кнопки нажмите кнопку «ОК» во всплывающем окне, чтобы закрыть всплывающее окно. В настоящее время вы все еще не можете войти в состояние OP.
②Перезагрузите устройство.
Выберите Да.
Вот и все.
3. Предварительный анализ кадра данных EtherCAT.
EtherCAT использует стандартные кадры Ethernet IEEE 802.3, тип кадра — 0x88A4. Кадр EtherCAT состоит из заголовка кадра EtherCAT и сообщения EtherCAT с максимальной эффективной длиной 1498 байт.
Структура кадра связи Ether CAT принимает стандартную структуру кадра экстрасети, которая формируется путем изменения традиционного протокола и вставки кадра данных Ether CAT специального типа в стандартный протокол. Другими словами, содержимое данных стандартного протокола является следующим. кадр данных Ether CAT. Типы частных кадров обозначаются 0x88A4. По этой причине связь Ether CAT полностью совместима со стандартной связью Ethernet. Структура сообщения кадра данных Ether CAT показана на рисунке.
Два сравнительных исследования.
Суб-сообщение Ether CAT в основном состоит из трех частей: заголовка суб-сообщения, данных суб-сообщения и рабочего счетчика WKC (рабочий счетчик). Целью счетчика работы WCK является определение того, было ли субсообщение прочитано или вставлено ведомой станцией. Это достигается путем записи количества раз, когда ведомая станция обрабатывала субсообщение.
Определение структуры подсообщения Ether CAT показано в Таблице 2-2. Подсообщение состоит из 7 частей, включая команду, индекс, длину области адреса, бит флага, бит состояния, область данных и рабочий счетчик. Команда в сообщении обычно состоит из 8 бит и используется для указания режима адресации сообщения и операций чтения и записи; индекс представляет собой код кадра; адрес связи подчиненного устройства представляет собой 32-битный двоичный код адреса; значение последующего сообщения Указывает, что если кадр данных Ether CAT имеет несколько подсообщений, за исключением бита флага последнего подсообщения, биты флага других подсообщений необходимо сбросить в данных подсообщения; принадлежит пользовательской части, а длина обычно составляет 1486 байт.
Все услуги субтелеграмм EtherCAT передаются посредством работы главной станции. Канал передачи данных! Чтобы указать услуги физического хранения, чтения, записи и обмена (чтение и немедленная запись) данных на ведомой станции. Операции чтения и записи, а также режим адресации совместно определяют тип службы связи подсообщения. определяется подсообщением. Байты команды в заголовке указывают, что все команды, поддерживаемые EtherCAT, перечислены в Таблице 2.4.
Запасайтесь вышеперечисленными базовыми знаниями. Анализ сообщений - это всегда скучно и радостно. Радость от незнания к незнанию.
Посмотрите на первый кадр захваченных данных, 29 байт.
①Понятные данные
6 байт (010105010000) целевой Mac;
6 байт (000000000000) исходный Mac;
0x88A4(88a4); на данный момент всего 14 байт;
Заголовок кадра EtherCAT (16 бит, 2 байта)
.... .000 0000 1101 = Длина: 0x00d …… 11 цифр
.... 0... .... .... = Зарезервировано: Действительно (0x0) …… 1 человек
0001 .... .... .... = Тип: команда EtherCAT (0x1) ... 4 цифры
② Подсообщение
EtherCAT datagram(s): 'BWR': Len: 1, Adp 0x0, Ado 0x101, Wc 0
EtherCAT datagram: Cmd: 'BWR' (8), Len: 1, Adp 0x0, Ado 0x101, Cnt 0
Header
Cmd : 8 (Broadcast Write)
Index: 0x80
Индекс:80 Каждый раз, когда подсообщение отправляется по команде BWR, индекс увеличивается на 1 в диапазоне от 0x80 до 0xff.
Slave Addr: 0x0000
Offset Addr: 0x0101
Адресная зона: 00 00 01 01 Помимо команд логической адресации, адресная область будет разделена на подчиненные Addr и Offset Аддр, также известный как Раб Addr:0x0000,Offset Адрес: 0x0101, обратите внимание, что это режим с прямым порядком байтов, вы знаете, как его читать, если это логическая адресация, область адреса имеет только одну 32-битную; Log Addr:0x 01010000. (Я до сих пор не понимаю...)
Length : 1 (0x1) - No Roundtrip - Last Sub Command
.... .000 0000 0001 = Length: 1
..00 0... .... .... = Reserved: Valid (0)
.0.. .... .... .... = Round trip: Frame is not circulating
0... .... .... .... = Last indicator: Last EtherCAT datagram
Длина:0100 Длина области данных сообщения, прямой порядок байтов, правильная сортировка — 0x0001, разверните ее в двоичный формат:
0000 0000 0000 0001;
Замените ненужные биты на *:
0*** **** **** **** Самый старший бит в структуре кадра — M. Если он равен 0, это означает, что существует только один кадр. Если он равен 1, это означает, что будут последующие. сообщения;
*000 0*** **** ****Старшие 2, 3 и 4 бита являются зарезервированными, но в реальных ситуациях, при использовании анализа Wireshark, определение второй старшей цифры равно 0... .. .. . ... .... = Обратный путь: Кадр не циркулирует;
**** *000 0000 0001 Оставшиеся младшие 11 бит представляют собой длину данных.
Interrupt: 0x0000
Бит состояния: 0000знак прибытия прерывания
ESC Ctrl (0x101): 0x00, Port 0: Auto loop, Port 1: Auto loop, Port 2: Auto loop, Port 3: Auto loop
.... ..00 = Port 0: Auto loop (0x0)
.... 00.. = Port 1: Auto loop (0x0)
..00 .... = Port 2: Auto loop (0x0)
00.. .... = Port 3: Auto loop (0x0)
Данные:00 Структура сообщения, определяемая пользователем
Working Cnt: 0
WKC:00 WKC указывает, сколько раз подсообщение обрабатывалось ведомой станцией, а ведущая станция устанавливает ожидаемый WKC для каждого подсообщения службы связи. Начальное значение счетчика Работа в отправленном подсообщении равно 0. После корректной обработки подсообщения ведомой станцией значение счетчика Работа увеличится на шаг. Ведущая станция сравнивает WKC и ожидаемый WKC. в возвращенном подсообщении, чтобы определить, правильно ли оно обработано. WKC обрабатывается ESC при обработке кадров данных. Различные коммуникационные службы добавляют WKC по-разному.