Robossembler - Открытая робототехника
571 subscribers
44 photos
8 videos
2 files
210 links
Ваш персональный фронтир в борьбе роботов за лучшее будущее для кожаных мешков. Open Source Robotics и всё такое. По вопросам сотрудничества пишите @brylev, наш сайт robossembler.org
Download Telegram
​​EDA, системная инженерия и IEC 81346

Задача с проектированием кабеля в KiCad заставила задуматься о том как в существующих инструментах разработки правильно описывать такого рода интерфейсы в проектах сложной много-составной электроники (роботах). Одной из мета-моделей для таких описаний служит системная инженерия и связанные с ней косвенно стандарты разработки. Например, ISO/IEC 81346, предписывающий правила обозначений для электротехнических систем с поправкой на множественность описаний для одних и тех-же физических объектов (multi-view). Для каждого компонента/системы стандарт выделяет, по меньшей мере, три вида описания: функциональное (как работает: функциональные блоки, порты, потоки), конструктивное (из чего собрано: бом-лист, модули и интерфейсы) и пространственное (где размещается: координаты и габариты мест размещения). Каждое из описаний представляет собой структуру типа дерево (breakdown structure), с декомпозицией по частям/целым. В новой версии стандарта 2022 года было добавлено разбиение по типу, в учебниках Анатолия Левенчука по системному мышлению добавляются также разбиения по стоимости и работам.

Для простоты мы пока остановимся на трёх базовых видах разбиений и попробуем отразить их на KiCad. Функциональным описанием является принципиальная схема, которая определяет количество, тип, номиналы компонентов и их соединения/порты. Однако, в чертёж принципиальной схемы добавляется также и информация о кодах производителей (manufacturer part number, MPN) и типах интерфейсов компонент (в случае с печатной платой это посадочные места - 0603, 1210, SOIC-8), что формально относится к конструктивному описанию (из чего собирается и как соединяется физически). Уже это делает затруднительным гибкое версионирование такого рода описаний - поставщики и их компоненты могут регулярно меняться из-за ситуации на рынке, что по идее должно приводить только к обновлению закупочных позиций, не затрагивая основной чертёж, но разработчики вынуждены вносить изменения в принципиальную схему без существенных на то оснований. В свою очередь, проект топологии печатной платы .kicad-pcb содержит в себе информацию как о количестве и типах посадочных мест, которые размещаются на плате, так и о размещении.

Так вот, возвращаясь к нашему кабелю, можно предположить, что интерфейсом между шаговым двигателем и портом на плате контроллера является сам кабель (как говорит нам принципиальная схема). Но это будет ошибкой, как я писал выше - тут теряется сам физический модуль кабеля, который не так уж и примитивен - он имплементирует два интерфейса - со стороны двигателя и со стороны контроллера, состоит из следующих подмодулей: разъём для двигателя, провода 1...N, разъём для контроллера, между которыми будут реализованы механические контактные интерфейсы, которые также могут быть не столь просты, как кажется на первый взгляд.

А в случае с печатной платой всё ещё интереснее: "голая" печатная плата имплементирует N интерфейсов (посадочных мест) и в попыке описать модули для этих интерфейсов в EDA возникает вторая фигура умолчания: припой. Да, припой никак не упоминается в проекте печатной платы, однако для точного моделирования он необходим - в больших изделиях он может влиять на конечный вес, не говоря уже о том, что про него надо не забыть и включить в закупочные ведомости! Так вот каждый интерфейс на печатной плате (как модуле) сделан не для самих электронных компонентов, а для припоя - то есть интерфейсом тут является химическое соединение медной плёнки и оловянно-свинцового сплава (как также модуля) с одной стороны и соединение припоя и ножек компонента с другой.

#iso #iec #kicad
👍6