alex_avr (alex_avr2) wrote,
alex_avr
alex_avr2

Categories:

Учет электронных компонентов

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

После прошлого поста я занялся поиском готового софта, который мог бы решить мою задачу. В целом подобный софт называется ERP (Enterprise Resource Planning, планирование ресурсов предприятия) и кроме, собственно учета склада и производства, включает еще кучу всяких функций.

Я изучил десятки программ и грубо они делятся на три группы:
1)Мелкие софтины, заточенные под конкретные задачи, часто довольно странные и чаще всего очень скудные по функционалу и не гибкие.
2)Средние софтины, часто бесплатные (или условно бесплатные), а также открытые (или условно открытые). Есть весьма навороченные.
3)Огромные монстры для огромных заводов. Стоимость подписки может составлять тысячи долларов в месяц за рабочее место (и думаю это не предел, многие просто не пишут о ценах).

Третий пункт я отмел сразу.
Первый - тоже, после того как поставил несколько таких приложений и понял, что нужного мне функционала там адекватно не получить.
И честно принялся изучать второй пункт, а если точнее, то одну из самых популярных открытых систем - Odoo, по наводке arhiv_6 (впрочем при поиске открытых ERP систем гугл неибежно ведет к ней).

Также на easyelectronics есть видеообзор этой системы, применительно к задаче учета электронных компонентов и посмотрев его я подумал: "идеально, то что надо!".



Система ставится на компьютер (кроссплатформенна), а доступ к ней реализован через веб интерфейс. Начал играться с системой, вводя тестовые данные и почти сразу полезли грабли. Например, на странице компонентов все компоненты отображались в виде больших, абсолютно неудобных плашек, вместо очевидно удобной таблицы. Кнопочка List view переводит вид в режим таблицы, но эта настройка не сохраняется и каждый раз приходится нажимать заново (в видеообзоре это есть). Как выяснилось, проблема решаемая, но для ее решения нужно активировать специальный debug режим, нажать несколько кнопочек, вбить мало понятные данные в мало понятные поля в debug окошке и вот оно, отображается в виде раскрываемой таблицы (но не просто таблицы).

Ну ладно, не велика беда, создали компоненты, распихав их по удобной древовидной структуре, идем создавать BOM - Bill Of Materials, т.е. список деталей необходимый для того, чтобы произвести какое-то изделие. Первые же грабли тут - добавление компонентов в BOM очень неудобно. Почему-то невозможно сделать так, чтобы компоненты показывались древовидно. От дерева и след простыл, все одним списком. И как это исправить я так и не нашел. Ок, ладно, удалим все компоненты и создадим заново, с префиксами, чтобы проще было в общем списке искать. Выделяем компонент, жмем удалить и хрен там.



Нельзя удалить, т.к. ваш компонент упоминается еще в куче мест, например в специальной таблице "движение по складу" и еще в каких-то. Для удаления компонента нужно сначала пощелкать кучу разных разделов и везде удалить упоминания и потом можно нет, не удалить - можно отправить в архив...

Мое терпение долго держалось, подпитываемое "надо научиться пользоваться такой мощной системой, вначале всегда тяжело, зато потом будет удобный инструмент в работе и пригодится еще не раз на более крупных проектах". Но окончательно меня добил импорт CSV. Система позволяет импортировать CSV файл с компонентами, и их свойствами. Учитывая, что в CSV файл забить все компоненты банально намного проще и удобнее, чем нажимать кучу кнопок в веб интерфейсе, кроме того у меня уже есть списки в экселе - грех было не воспользоваться такой функцией. И тут поджидали очередные грабли. Импортировать список компонентов можно. Можно импортировать их цену, объем, вес, еще десяток каких-то нафиг не нужных свойств, но нельзя импортировать самого главного - количества в наличии. Нет возможности из CSV файла взять эти данные. Гугл сообщает о том, что проблема эта известная и много людей с этим сталкиваются. И есть даже инструкция, как это обойти. Состоящая из 19 пунктов...



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

В итоге, тряхнул стариной, напряг память, вспомнил SQL и за несколько часов написал свою софтину. Да, она разумеется не имеет той тонны функционала, что есть в готовых системах. Зато в ней есть ровно тот функционал, который нужен мне.



Структура очень простая - есть две основные таблицы - список компонентов (я решил на текущий момент не заморачиваться с деревьями и просто использую префиксы) и список плат. Для каждого компонента задается название, цена, количество в наличии и количество заказанное. Для плат задается название, количество в наличии, количество, которое хочется произвести и то, сколько каких компонентов на какой плате используется.

Все остальное система считает сама. А именно, в первую очередь самое главное - сколько каких компонентов нужно, чтобы произвести все те платы, которые хочется. Если компонентов не хватает, то система считает дефицит и подсвечивает ячейку красным. При этом можно указать количество заказанных компонентов и система также посчитает, хватит ли деталей с учетом заказанных. Когда детали будут на руках можно будет нажать галочку и количество автоматически обновится. Также, для справки считается сумма, на которую нужно закупить компонентов и сумма, на которую они уже есть в наличии (обнаружил, что у меня одних только не запаянных печатных плат почти на 25 тысяч лежит О_О). В таблице с платами можно задать сколько мы плат хотим произвести и система рассчитает сколько это будет стоить. Также можно нажать на шестереночку, это значит, что платы мы изготовили и система автоматически вычтет соответствующие количества компонентов из "склада".

CSV же можно легко подгрузить в базу данных используя phpmyadmin, что примечательно - процесс очень сильно похож на процесс импорта в Odoo и требует примерно одного уровня владения ПК :)

В общем вышло так, как это часто бывает - под конкретную задачу оказалось проще и быстрее написать программу состоящую из 500 строк кода, чем использовать монструозные системы, с кучей подводных камней и сложностей. Да, может быть они во многом сделаны "правильнее", но вот эта правильность иногда уж больно напоминает бюрократию в худших ее проявлениях :)
Tags: Программирование, Разработанные устройства, Электроника
Subscribe

  • Светофоры, гроза и батут

    Вчера и сегодня немало катал и видел кучу неработающих светофоров. Интересно, это последствия ливней и недостаточно хорошей герметичности…

  • Метрострой

    Дело было в далёких нулевых. Тогда ещё не было ярких светодиодных фонарей и я лазил под землю с мощной галогенной зеркальной лампой и здоровым…

  • Самый ценный ресурс

    Наступил "день воды" и из всех щелей полезли сочувствующие в духе — "выключайте воду пока чистите зубы, а то дети в Африке от жажды помирают".…

promo alex_avr2 july 2, 2018 13:00 41
Buy for 200 tokens
Думаю многие слышали рассказы про огромные бункеры под Москвой, подземные города, секретное метро на случай ядерной войны. Многое в этих рассказах очевидно преувеличено, что-то придумано, но безусловно, основаны они не на пустом месте. Совсем недавно небольшой кусочек этих подземных тайн был…
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 50 comments

  • Светофоры, гроза и батут

    Вчера и сегодня немало катал и видел кучу неработающих светофоров. Интересно, это последствия ливней и недостаточно хорошей герметичности…

  • Метрострой

    Дело было в далёких нулевых. Тогда ещё не было ярких светодиодных фонарей и я лазил под землю с мощной галогенной зеркальной лампой и здоровым…

  • Самый ценный ресурс

    Наступил "день воды" и из всех щелей полезли сочувствующие в духе — "выключайте воду пока чистите зубы, а то дети в Африке от жажды помирают".…