Перейти к содержанию
    

29 minutes ago, dimka76 said:

Модуль отвечает, вайршарк распарсивает ответ и говорит, что ответ содержит

ESC (EtherCAT Slave Controller) Revision: 0xC0

ESC Type: 0x02

Так что тут нет никаких битовых полей. По крайней мере, не в этом случае.

а там точно других команд кроме brd не было?

 

вот пример что обычно читают через BRD

 

Quote

The BRD(Broad Cast Read) command reads out the combined states of all slaves.

Slave Count: Number of slave devices connected to the EtherCAT master.

DevState: Device status information as WORD (or UINT) variable, assumes the following values:

Bit

Description:

0 (0x0001)

Link error detected.

1 (0x0002)

I/O locked after link error (I/O reset required)

2 (0x0004)

Link error (redundancy adapter)

3 (0x0008)

Missing one frame (redundancy mode)

4 (0x0010)

Out of send resources (I/O reset required)

5 (0x0020)

Watchdog triggered

6 (0x0040)

Ethernet driver (miniport) not found

7 (0x0080)

I/O reset active

8 (0x0100)

At least one device in 'INIT' state

9 (0x0200)

At least one device in 'PRE-OP' state

10 (0x0400)

At least one device in 'SAFE-OP' state

11 (0x0800)

At least one device indicates an error state

12 (0x1000)

DC not in sync

 

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/29/2023 at 3:27 PM, _pv said:

а там точно других команд кроме brd не было?

image.thumb.png.54041a84f98b60677bc6ca1cd93db1ae.png

Вот целиком весь дам от начала общения

dump_1.pcapng

On 9/29/2023 at 3:27 PM, _pv said:

вот пример что обычно читают через BRD

Это из какого документа ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

подозреваю что в самом начале (пакет #12) этот BRD только для того, чтобы посмотреть на write count, сколько там вообще устройств на шине, а что именно он там "прочитает" никому не интересно.

все остальные brd из дампа читают статус.

57 minutes ago, dimka76 said:

Это из какого документа ?

https://infosys.beckhoff.com/english.php?content=../content/1033/tcsystemmanager/1089009035.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/29/2023 at 4:28 PM, _pv said:

подозреваю что в самом начале (пакет #12) этот BRD только для того, чтобы посмотреть на write count, сколько там вообще устройств на шине, а что именно он там "прочитает" никому не интересно.

все остальные brd из дампа читают статус.

https://infosys.beckhoff.com/english.php?content=../content/1033/tcsystemmanager/1089009035.html

Спасибо.

Надо еще раз лог повнимательнее пересмотреть.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 9/29/2023 at 4:28 PM, _pv said:

подозреваю что в самом начале (пакет #12) этот BRD только для того, чтобы посмотреть на write count

Кстати, на write count можно посмотреть уже в самом первом ответе. 

Думается, что BRD здесь все-таки не для этого.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто-нибудь применял FIDO5200? https://www.analog.com/en/products/fido5200.html ? В документе как пример стыковка с STM32F103 приведена https://www.analog.com/media/en/technical-documentation/application-notes/AN-1554.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте.

Если кто-то знает, подскажите пожалуйста: почему может не программироваться часть памяти i2c? Есть двоичный файл конфигурации, через twincat пробую шить, напрямую в eeprom - зашивается всё кроме шести байт. Соответственно верификация падает. При этом отдельно флешка в программаторе прекрасно работает. Вопросы именно к контроллеру, поскольку смотрел лог обмена i2c - там команд записи по спорным адресам вообще нет. При этом команды чтения есть.

Техническое: связка et1100 и 24L02

Изменено пользователем SimSup

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

(У меня не et1100, но думаю это не имеет значения.)

Вероятно, не шьет служебную область, которая влияет на общение по ECAT (Vendor ID и прочее, что влияет на выбор ESI файла) ?

Попробуйте через EtherCAT Slave Stack Code (SSC), тоже от beckhoff . Там есть EEPROM Programmer внутри. Только через него мне удавалось прошить устройства с еще чистым EEPROM. Соединение должно быть точка-точка, то есть на линии ECAT должно быть только одно еще не сконфигурированное устройство.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Была идея, что это что-то служебное, но проверить сложно, документацию в отличие от файлов мне не дали )

 За программу спасибо, спрошу у заказчика тоже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 часов назад, SimSup сказал:

Спасибо. Была идея, что это что-то служебное, но проверить сложно, документацию в отличие от файлов мне не дали )

 За программу спасибо, спрошу у заказчика тоже.

А как без этой программы ESI файлы и hex(bin)-файлы EEPROM к своим устройствам создавать? Можно, конечно, и врукопашную, в текстовом редакторе, но смысла нет никакого. Эта SSC интересная софтинка (еще и си-исходники может), но я ее только для ESI файлов и прошивки EEPROM использую.

Области EEPROM и адреса полностью прописаны в документации ECAT. Например, ethercat_esc_datasheet_sec1_technology_2i3.pdf, раздел "11 SII EEPROM"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, Ruslan1 сказал:

А как без этой программы ESI файлы и hex(bin)-файлы EEPROM к своим устройствам создавать? Можно, конечно, и врукопашную, в текстовом редакторе, но смысла нет никакого. Эта SSC интересная софтинка (еще и си-исходники может), но я ее только для ESI файлов и прошивки EEPROM использую.

Области EEPROM и адреса полностью прописаны в документации ECAT. Например, ethercat_esc_datasheet_sec1_technology_2i3.pdf, раздел "11 SII EEPROM"

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

Указанный файл я читал, вопросы остались, поскольку как раз на спорных адресах (0x40+) 41 таблица заканчивается, а текст раздела за всеми подробностями посылает в подзамочное описание.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Купили плату на AX58100 с Ali. Плата сконфигурирована как 32 Output (X58100_EVB_DO_32), но у нее еще выведен интерфейс SPI Slave.

Для начала собрали проект под WIN отсюда: https://github.com/OpenEtherCATsociety/SOEM

Для корректной работы пришлось установить драйвер сетевой карты npcap-1.79. 

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

*** Меряет среднюю задержку по 10 000  циклам

simple_ng.exe \Device\NPF_{3A8323FC-BAC5-4A53-9890-83556A88C47A}
Initializing SOEM on '\Device\NPF_{3A8323FC-BAC5-4A53-9890-83556A88C47A}'... done
Finding autoconfig slaves... 2 slaves found
Sequential mapping of I/O... mapped 8O+0I bytes from 1 segments
Configuring distributed clock... done
Waiting for all slaves in safe operational... done
Send a roundtrip to make outputs in slaves happy... done
Setting operational state... all slaves are now operational
Iteration 10000:   163 usec  WKC 4  O: 00 00 00 00 00 00 00 00  I:  T: 763454736069056320
Roundtrip time (usec): min 0 max 3006
Requesting init state on all slaves... done
Close socket... done

*** Простой тест

simple_test.exe \Device\NPF_{3A8323FC-BAC5-4A53-9890-83556A88C47A}

SOEM (Simple Open EtherCAT Master)
Simple test
Starting simple test
ec_init on \Device\NPF_{3A8323FC-BAC5-4A53-9890-83556A88C47A} succeeded.
2 slaves found and configured.
Slaves mapped, state to SAFE_OP.
segments : 1 : 8 0 0 0
Request operational state for all slaves
Calculated workcounter 4
Operational state reached for all slaves.
Processdata cycle 10000, WKC 4 , O: 00 00 00 00 00 00 00 00 I: T:763453756226545360
Request init state for all slaves
End simple test, close socket
End program

*** Информирует об устройствах на шине

slaveinfo.exe \Device\NPF_{3A8323FC-BAC5-4A53-9890-83556A88C47A}

SOEM (Simple Open EtherCAT Master)
Slaveinfo
Starting slaveinfo
ec_init on \Device\NPF_{3A8323FC-BAC5-4A53-9890-83556A88C47A} succeeded.
2 slaves found and configured.
Calculated workcounter 4

Slave:1
 Name:AX58100_EVB_DO_32
 Output size: 32bits
 Input size: 0bits
 State: 4
 Delay: 0[ns]
 Has DC: 1
 DCParentport:0
 Activeports:1.1.0.0
 Configured address: 1001
 Man: 00000b95 ID: 00010202 Rev: 00000001
 SM0 A:0f00 L:   1 F:00090044 Type:3
 SM1 A:0f01 L:   1 F:00090044 Type:3
 SM2 A:0f02 L:   1 F:00090044 Type:3
 SM3 A:0f03 L:   1 F:00090044 Type:3
 FMMU0 Ls:00000000 Ll:   4 Lsb:0 Leb:7 Ps:0f00 Psb:0 Ty:02 Act:01
 FMMUfunc 0:1 1:0 2:0 3:0
 MBX length wr: 0 rd: 0 MBX protocols : 00
 CoE details: 00 FoE details: 00 EoE details: 00 SoE details: 00
 Ebus current: 0[mA]
 only LRD/LWR:0

*** Работа с eeprom

eepromtool.exe \Device\NPF_{3A8323FC-BAC5-4A53-9890-83556A88C47A} 1 -r >> 0utput.txt

SOEM (Simple Open EtherCAT Master)
EEPROM tool
Usage: eepromtool ifname slave OPTION fname|alias
ifname = eth0 for example
slave = slave number in EtherCAT order 1..n
    -i      display EEPROM information
    -walias write slave alias
    -r      read EEPROM, output binary format
    -ri     read EEPROM, output Intel Hex format
    -w      write EEPROM, input binary format
    -wi     write EEPROM, input Intel Hex format

***

Запустили под TwinCAT3, можем зажигать светодиоды. 

Теперь хотелось бы ее переконфигурировать, скажем на 32 Input / SPI Slave, 

но пока непонятно как. Вроде как TwinCaAT32 позволяет это сделать -> 

поменять конфигурацию в ESI (XML) и перепрошить EEPROM ?! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А почему не начать с родных аппнотов от производителя?

https://www.asix.com.tw/en/product/IndustrialEthernet/EtherCAT/AX58100

Непонятно что Вы делаете и что за плату используете. Если его родной SPI slave и никаких микроконтроллеров: то да,  поддерживает разные I/O. Чтобы их задействовать - да, нужно перешивать конкретные адреса, в которых этот конфиг храниться, и разрешать этому SPI slave работать. 

А если свой МК- то уже через него делаете что желаете. И он уже подсовывает данные в AX58100.

Но XML файл по любому менять если другие данные доставляете, и EEPROM редактировать. Про Гитхабовский проект не знаю, я через "EtherCAT Slave Stack Code (SSC)" софтину всегда XML файл делал (и hex для прошивки тоже).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 3/21/2024 at 3:16 PM, Ruslan1 said:

А почему не начать с родных аппнотов от производителя?

https://www.asix.com.tw/en/product/IndustrialEthernet/EtherCAT/AX58100

Непонятно что Вы делаете и что за плату используете. Если его родной SPI slave и никаких микроконтроллеров: то да,  поддерживает разные I/O. Чтобы их задействовать - да, нужно перешивать конкретные адреса, в которых этот конфиг храниться, и разрешать этому SPI slave работать. 

Спасибо. Плата без МК, вот : 

 

Плата разработки Ethernet AX58100, плата разработки модуля Ethernet, интерфейс SPI

TwinCAT3 и SSC Tool китайцы прислали, только там вся документация на китайском.

Если я верно понял, на основе ESI (XML) файла TwinCAT3 умеет прошивать EEPROM. 

Может и ESI файл умеет гененрировать? Я пока с этим не разобрался. 

Правильно ли я понимаю, что SSC Tool нужен в основном для генерации кода для МК?

 

Дядечка тут: Make my own EtherCAT device 3. Encoder   

показывает отдельный онлайн калькулятор для генерации ESI + EEPROM файлов.

 

А еще есть такой EEPROM Generator.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...