Рубрика «Промышленное программирование»

Привет! На связи Объединенная металлургическая компания. 

У нас важная новость для всех ML-специалистов и тех, кто неравнодушен к теме ИИ.

Мы не сильно удивим вас, сказав, что ОМК ИТ уже давно использует искусственный интеллект в своей работе. Но вот хакатона по LLM у нас еще не было. Пришло время его объявить! 

Первый металлургический ML-хакатон от ОМК ИТ. Погодите, что??? - 1

Какую задачу решаем

Читать полностью »

Сканирование шины RS485 - 1

В электронике есть множество проводных полудуплексных асинхронных последовательных интерфейсов типа общая шина. Это 1-Wire, RS485, 10BASE2(thin Ethernet), LIN, K-Line , CAN, I2C, MIL-STD-1553, ARINC 429.

Во всех этих shared-bus интерфейсах так или иначе возникает задача сканирования шины.

Всем кто работал с i2c известна процедура сканирования шины. Там можно просто методом перебора просканировать шину. Так как длина адреса всего 7 бит, то можно просканировать шину просто за пару секунд.

Читать полностью »
image
Это слябы. Они смотрят на вас с одобрением

Привет с металлургического завода! У нас устроено так: все работают по плану, и на каждом уровне — свой вид планирования. На уровне завода это календарное планирование, а в цехе — графикование.

Календарный план — это то, что завод обещал кому-то отгрузить, и он в логике планирования просто появляется из ниоткуда и запускает своим появлением все остальные процессы.

Для примера рассмотрим случай условного завода по производству кранов в Иванове, которым нужен листовой прокат разных сортаментов. Предположим, что и тем и другим он нужен 20 января. Это дата отгрузки, то есть прибытия на выход из производства поезда, который заберёт пару вагонов металла.

Это жёсткий дедлайн: к этому моменту прокат должен быть готов и ждать поезда. Но при этом он не должен ждать слишком долго, потому что это дорого, да и место на складе ограничено.

Вот тут-то и производится графикование, т. е. по датам и операциям расписываются работа оборудования и движение материалов: что должно быть сделано в нужном горизонте времени с учётом технологических ограничений и потенциальных возможностей производства.

Чтобы 20 января прокат успешно уехал в Иваново, условно 19-го его надо оцинковать и нанести полимерное покрытие. То есть к 19 января у нас на складе должны быть зарезервированы вспомогательные материалы для этих операций, и их нужно заранее заказать и привезти. Чтобы было что цинковать, прокат нужно раскатать и порезать заранее, а чтобы было из чего раскатывать — предварительно выплавить слябы. Для всего этого и сопутствующих операций нужны мощности нескольких цехов: как минимум горячего проката, конверторного производства, холодного проката и покрытия.

Примерно так в календарный план ставятся все операции, необходимые для производства того, что надо будет отгрузить заказчику, — от конечной порезки проката до начального производства сляба. Но это не всё. Читать полностью »

И

Интерфейс приложения

Вдохновились мы ребятами из PHYGITALISM и их статьей «Как мы заставляли нейронку пялиться на ржавчину», а тему подкинул заказчик. Мы – это компания Alter ЕgoЧитать полностью »

"Нет оснований для сомнений в том, что в недалеком будущем на основании математического анализа деятельности мозга ЭВМ смогут выполнять ряд его сложных функций, например, вывод теорем или построение новых гипотез".

Лев Дашевский, Екатерина Шкабара, 1961 год.

Читать полностью »

Фича = задача и далее по тексту :-)

Что есть задача для разработчика?  

Как правило, разработка получает от продакт-менеджера техническое задание на разработку новой или исправление старой функциональности. Например, это выражено в виде PRD, который может содержать ссылки на Figma, список требований, ссылки и прочие полезности, необходимые для реализации задумки. Исходя из этих входных данных, разработчики могут имплементировать задачу и отдать на тестирование в QA команду. По завершению этих циклов задача готова к релизу.  

После разработки

Читать полностью »

Уже несколько лет я замечаю, что программисты и программистские инструменты делятся на две разные культуры:

Две культуры программирования: почему обе из них важны? - 1

Изначально я человек первой культуры и очень долгое время считал вторую несерьёзной. Пару-тройку лет назад я окончательно понял, что ошибался. Многие «старички» ошибаются в ту же сторону, а в последние годы ещё большее число людей ошибаются в обратную. Знакомство с соседней культурой и понимание, почему дела в ней делаются так, как там принято, превратит вас в лучшего разработчика.
Читать полностью »

Недавно на работе столкнулись с интересной ситуацией, о которой захотелось написать тут, потому что случай довольно интересный, хотя как и оказалось простой. На одном из агрегатов, управляемым контроллером от Allen Bradley Compact Logix L33ER, в контроллере постоянно сыпались предупреждения, а точнее даже минорный ошибки (Minor Faults) - которые на функциональность никак не влияют, но раздражают своим присутствием. В секунду по нескольку десятков таких ошибок без перерыва: Type 04 Program fault (Code 04) Arithmetic overflow. Result of an arithmetic instruction out of range, что переводится примерно как "Арифметическое переполнение. Результат арифметической инструкции вышел за предел."

Читать полностью »

Мы активно изучаем различные алгоритмы (поиск k-ближайших соседей, задача о рюкзаке, всякие алгоритмы сортировки, поиска и т. п.). А часто ли удаётся почитать пример их практического внедрения на каком-нибудь предприятии? Такие истории встречаются реже, чем даже обзоры книг по этим же алгоритмам.

Читать полностью »

Штука для намотки трансформаторов. Без Arduino - 1

В одном из проектов понадобилось намотать под сотню трансформаторов. Это стало поводом пересмотреть нелюбовь к моточным изделиям, которая тянулась ещё со школы, где, помогая в кабинете физики, вручную перематывал большую катушку для опытов Фарадея. Зелёную, как сейчас помню.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js