Как стать автором
Обновить
68.66

Промышленное программирование *

Все об АСУ ТП

Сначала показывать
Порог рейтинга
Уровень сложности

Атрибуты Хорошего Loader-a

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.7K

В программировании микроконтроллеров периодически приходится писать клиентские PC программы для загрузки *.hex файлов в микроконтроллер через загрузчик.

Обычно в названии этих утилит присутствует слово loader.

В этом тексте я попробовал порассуждать на тему того, каким же атрибутами должна обладать эта самая утилита FW_Loader.

Читать далее

Новости

Статический Анализ С-кода

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.3K

Существуют бесплатные статические анализаторы для Си кода. Среди них splint и cppcheck.

Статический анализатор - это такая консольная программа, которая проверяет исходные коды до компиляции. Своего рода автоматическая инспекция программ.

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

Суть этой короткой заметки в том, чтобы показать, как просто и лаконично происходит подключение разнообразных статических анализаторов к проекту, который собран скриптами сборки GNU Make.

Читать далее

Необходимость статического анализа для РБПО на примере 190 багов в TDengine

Уровень сложностиСложный
Время на прочтение39 мин
Количество просмотров814

РБПО


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

Читать дальше →

«Обучали по-старому — теряли миллионы»: зачем внедрять VR в промышленности

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.1K

Разбор нашего 4-летнего опыта внедрения VR в TAPP Group

Привет, Хабр!

Меня зовут Дмитрий Лохов, я основатель TAPP Group — компании, которая разрабатывает оборудование для горно‑обогатительной отрасли. Я начинал свой путь помощником машиниста экскаватора, а через несколько лет вывел Тугнуйскую обогатительную фабрику в число лучших в отрасли. Сегодня моя команда разрабатывает и внедряет технологии, которые кажутся фантастикой даже европейским инженерам.

За 13 лет работы мы заметили парадокс: современные предприятия оснащены высокотехнологичным оборудованием, но продолжают обучать персонал по методикам прошлого века. Когда мы проанализировали потери на простоях из‑за ошибок новичков — стало ясно: проблема не в людях, а в устаревшей системе подготовки.

Читать далее

Путь программиста: в ловушке SRP

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.6K

Рано или поздно каждый программист должен задуматься о вопросах архитектуры приложения. Архитектура это про выделение ответственностей, определение компонентов их реализующих и связей между ними. Начинается все с ответственностей, а грани тонки. Очень часто будет сложно определить где начинается одна роль и заканчивается другая, сформулировать признаки по которым мы разделяем. Человеку требуются ориентиры, точки опоры и чем проще тем лучше.

Читать далее

Технологическая платформа для разработчиков. Ускоряем цифровизацию производства

Время на прочтение18 мин
Количество просмотров1.3K

Я из команды технологической платформы НЛМК ИТ. Спойлер — это все, что про централизованные сервисы около DevOps, Kubernetes, стриминг вокруг Kafka и так далее. Расскажу, зачем и по каким принципам мы ее строили, что получилось неплохо и всем советуем. Обо что споткнулись и всем советуем там не спотыкаться.

Читать далее

Как построить открытую АСУТП. IEC 61499 — основа открытой автоматизации будущего

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5K

Добрый день! Меня зовут Татьяна Пчельникова, и я — владелец продукта в ИТ-команде «Северстали», занимающейся разработкой компонентов для открытой АСУТП. В марте этого года мы начали выпуск статей, посвящённых нашей разработке компонентов открытой АСУТП, с первой статьёй этого цикла можно ознакомиться здесь: Как построить открытую АСУТП. Рождение идеи открытых систем: почему мир движется в этом направлении / Хабр. Мы внимательно прочитали все комментарии к прошлой статье и хотим отметить, что тема вызвала большой интерес и горячие споры, а значит, направление — актуальное, и  мы продолжим цикл публикаций. 

Чтобы не было разночтений, давайте дадим определение открытой АСУТП. Открытая АСУТП это система, построенная на принципах модульности, совместимости и взаимозаменяемости компонентов. Она позволяет гибко использовать элементы от разных производителей, являясь независимой от конкретного поставщика, и обеспечивает простую интеграцию с другими системами посредством реализации международных стандартных протоколов и интерфейсов. Эти характеристики позволяют открытой АСУТП масштабироваться как горизонтально, так и вертикально, что делает её перспективной для промышленного применения. «Северсталь» делает два компонента: открытый программный ПЛК (среду исполнения) и открытую среду разработки. Открытая SCADA, интересующая комментирующих, тоже разрабатывается, но другими участниками, входящими в рабочую группу открытой АСУТП.  

В данной статье мы поделимся информацией о том, что содержит управляющая программа для открытого программного ПЛК, базирующаяся на стандарте IEC 61499, и как она обрабатывается в среде исполнения. 

Читать далее

Как я осознавал пользу ИТ на заводе

Время на прочтение12 мин
Количество просмотров23K
image

Мой цех — тот самый, который «труба стране». В 2007 году я пришёл работать сюда инженером-калибровщиком. Тогда в валковом парке трудно было ориентироваться даже бывалым. Это сейчас я уже руководитель, процессы отстроены, а тогда всё начиналось с нуля, без опыта, но на энтузиазме.

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

Тогда мы делали восемь типоразмеров труб. Для каждого сортамента трубы — свой набор, их в запасе было по пять-шесть комплектов. Валки изнашиваются, выходят из строя, могут иметь дефекты и так далее. Их нужно регулярно снимать, перетачивать, ремонтировать и заменять. От них зависит качество выпускаемых труб.

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

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

Оказалось — показалось.

Мне понадобился Excel, чтобы организовать сбор статистики. Затем я поговорил с «погромистами» и узнал, что можно выгружать произведённые объёмы труб из АСУ ТП. Потом думал над алгоритмами, рисовал интерфейсы в Пейнте и Паверпоинте.

Через 10 лет оказалось, что наша система — одна из немногих, которую цеховые понимают, пользуются ею и за неиспользование которой не прилетело ни одного взыскания.

Давайте я расскажу, как в цеху мы открывали для себя ИТ.
Читать дальше →

Зачем программисту алгоритмы?

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров4.3K

Зачем программисту алгоритмы?

Многие компании, нанимающие программистов, требуют от них знания алгоритмов. Некоторые даже устраивают отдельное собеседование по алгоритмам, зачастую весьма нешуточное.

Однако сами программисты нередко удивляются, зачем всё это? Действительно, работа наших коллег часто заключается в поиске и устранении ошибок в залежах legacy кода. Какие уж там алгоритмы? Даже те, кому посчастливилось участвовать в новом проекте знают, что зачастую новый проект состоит на 80% из чужого, уже кем-то написанного и найденного на просторах гитхаба кода, а новый код - это, по сути, клей и обёртки, которые позволяют склеить эти уже готовые запчасти между собой, чтобы получить заданный продукт.

Сегодня я прочитал на Хабре статью о подготовке к алгоритмическому собеседованию в Яндексе. Видно, что ребята относятся к делу всерьёз. Однако на вопрос, зачем всё таки это нужно, статья отвечает в том духе, что алгоритмическая подготовка показывает полезную готовность кандидата поотжиматься (отмечу при этом, что это не мнение Яндекса, а личное мнение человека, получившего этот опыт с обеих сторон - и кандидата и интервьювера).

Однако всё же, действительно ли основная польза алгоритмической подготовки сводится к тому, чтобы продемонстрировать работодателю свою сообразительность и готовность потратить время жизни на подготовку к собеседованиям, а в целом она не слишком полезна для нормального рабочего процесса? Или всё же алгоритмы нужны?

Попробуем разобраться

Как мы следим за металлоломом, и для чего нам там IT

Время на прочтение9 мин
Количество просмотров6.5K
Ваш старый холодильник попадает вот в такое место:

image
Знакомьтесь: это копровый цех, где лом готовят к переплавке

В разные виды стали мы добавляем разные виды лома. Холодильник, например, — лучше телевизора, а грузовик — лучше легковушки.

В копровом цехе нужное количество нужного лома засыпают в открытые 50-кубовые полувагоны с носиком (мы называем их «совки») и отправляют по внутренней железной дороге на поезде-«вертушке» к конвертеру.

Там краном их снимают с платформы, взвешивают и отправляют в конвертер, либо ставят в шихтарник — специальный склад, где хранится шихта, то есть составляющие для будущих плавок. Потом пустые совки собирают, ставят обратно на платформы и возвращают назад. В каждый совок умещается до 40 тонн лома. На каждую плавку нужно не менее 50 тонн лома.

Звучит несложно.

А теперь добавим немножко головной боли:
  • Между двумя цехами проложена железная дорога длиной три километра.
  • Тепловозы, везущие лом, на этом промежутке пространства иногда «теряются», и никто не может точно сказать, где они едут и когда прибудут.
  • Все данные записаны в бумажный журнал, который существует в единственном экземпляре.

И вот именно тут технологи просят нас сделать какую-то систему, чтобы всё было понятно.
Читать дальше →

Простой пример использования в ПЛК нейросетевого контроллера

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров4.2K

Современный мир движется к объединению технологий: промышленной автоматизации и искусственного интеллекта. Но для меня, занимающегося программированием в сфере АСУ ТП, было трудно понять, как на ПЛК, с его скромными техническими характеристиками и средой Codesys или TIA Portal можно применить технологии ИИ. На форумах готового решения не нашел, но проникся мыслью, что лучше обучить нейросеть на Python, а затем готовые веса и структуру перенести в Codesys. Я решил использовать OpenAI Gym, задачу CartPole. Это классическая задача обучения с подкреплением, где цель агента состоит в том, чтобы удерживать шест в вертикальном положении, выбирая действия (движение влево (0) или вправо (1)), на основе текущего состояния системы. План действий: для получения весов написать класс нейросети на PyTorch с использованием пакет DEAP.  После этого написать Modbus TCP сервер на Python с окружающей средой CartPole, подсоединиться к нему с помощью ПЛК. Полученные данные обрабатывать в ПЛК и передавать сигнал, который будет управлять тележкой, на сервер.

Читать далее

Эксгаустеры и где они обитают: о новой разработке рассказывает эксперт ЕВРАЗа

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров1.1K

Исключить аварийные остановки на производстве и прогнозировать время, когда агрегаты нуждаются в ремонте, — такие цели успешно реализовала команда ЕВРАЗа. Для этого на агломерационной фабрике внедрили автоматизированную систему, причем не отличающуюся особой сложностью. Как она работает, расскажу я, Python Backend разработчик компании Ольга Седова.

Читать далее

Team Topologies: Инструкция по выживанию для платформ, которые перестали масштабироваться

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров432

Представьте, что ваша компания — это город. Сначала это посёлок с одной улицей, где все знают друг друга и работают сообща. Но когда посёлок превращается в мегаполис, старые правила перестают работать: дороги забиты, свет отключается, а жители бунтуют. То же происходит с IT-платформами: на старте монолит кажется простым решением, но с ростом он душит развитие. Team Topologies предлагает альтернативу — превратить платформу в сеть «умных посёлков», где каждый сервис развивается автономно, но по общим правилам. В статье разберём базу как это работает и посмотрим на примере реальной компаний. 

Читать далее

Ближайшие события

Делаем собственный анализатор C++ кода в виде плагина для Clang

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров4.7K


Есть много проектов, целью которых является превратить С++ более "безопасный" язык программирования. Но внесение изменений в синтаксис языка обычно нарушает обратную совместимость со старым кодом, который был написан до этого.


Недавно вышла новая версия библиотеки memsafe для языка С++, которая превращает его в Rust с помощью плагина Clang добавляет в С++ безопасное управление динамической памятью и контроль инвалидации ссылочных типов данных во время компиляции приложения.


Но данная статья не о библиотеке, а об особенностях разработки анализатора программы на С++ в виде плагина для Clang.


Можно считать, что это подведение итогов по результатам сравнения нескольких разных способов создания плагина для компилятора С++, а так же очередной Хабрахак для хранения результатов экспериментов и публикации итоговых выводов, которые я решил сохранить не только для себя, но и в виде статьи на Хабре, что бы результатами моего труда могли воспользоваться и другие хорошие люди :-), которым так же может потребоваться погрузиться в дебри парсинга исходного текста программ.

Читать дальше →

Умный дом. Как соединить разные технологии? Реальный опыт

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров17K

Умным домом в наше время уже никого не удивишь, а если говорить об элементах умного дома, то они распространены практически повсеместно, а новые экосистемы появляются с завидной регулярностью. И тут встает вопрос, а как быть обычному рядовому пользователю? Покупать оборудование и быть привязанным к конкретной экосистеме? А если случилось так, что используются элементы нескольких разных производителей/экосистем? Куча приложений в смартфоне для управления всем этим хозяйством выглядит удручающее. Перспектива, при отключении интернета, остаться без управления или вообще неожиданно получить в своем хозяйстве неработающее устройство, которое по каким-то причинам перестали поддерживать в новой версии экосистемы, удручает еще больше. А это я еще не касаюсь вопросов безопасности.

Читать далее

Восстановление работы конвейера розлива бытовой химии

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров4K

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

Позднее удалось понять, почему старые системы на подобных ПЛК Siemens встают. Если со временем возникают дефекты питания контрольных цепей датчиков 24VDC, и они начинают «коротить» о корпуса, то контроллер воспринимает это как критическое нарушение и останавливает работу, переходя в режим «Стоп». При этом выйти из этого режима (сбросить его) возможно только при наличии исходного кода и онлайн соединения с контроллером.

Читать далее

Разработка AI‑приложений с Effect

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров676

Эта статья рассказывает о интеграционных пакетах AI от Effect – наборе инструментов для упрощения работы с крупными языковыми моделями (LLM) в современных приложениях. В ней подробно описывается, как можно использовать универсальные сервисы для разработки AI‑функционала, не привязываясь к конкретному провайдеру, что позволяет сократить объем «клейкого кода» и снизить технический долг.

Авторы делятся опытом создания системы, в которой взаимодействия с LLM становятся максимально удобными и гибкими. Рассматриваются вопросы тестирования, параллельного выполнения запросов, стриминга ответов и мониторинга производительности – всё это делает интеграцию с AI не только мощным, но и надежным решением для разработки сложных приложений.

Данная статья будет полезна разработчикам, стремящимся внедрить передовые технологии AI в свои проекты без лишних сложностей. Она показывает, зачем нужен подход, независимый от провайдера, и почему использование Effect может значительно упростить жизнь при работе с различными поставщиками LLM.

Читать далее

Заметки теоретика. Платформенная инженерия: Как выбрать тип платформы для вашей компании?

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров433

Вы задумали создать платформу, но не знаете, с чего начать? Сегодня «платформой» называют всё — от облачных сервисов до экосистем вроде Apple. Но чтобы не потратить годы и миллионы впустую, важно выбрать тип, который решит ваши задачи, а не будет данью моде. Как не запутаться? Давайте разберёмся.

Читать далее

Препарируем промышленные протоколы — как и зачем

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров2.3K

Привет, Хабр! Я Роман Сафиуллин, руковожу отделом защиты информации InfoWatch ARMA. Мы занимаемся защитой инфраструктуры промышленных предприятий от киберугроз, и сегодня хочу поделиться с вами инструкцией по разбору промышленных протоколов на примере протоколов IEC104 и Fanuc Focas.  В основе статьи – мой доклад на конференции Industrial++. Совместно с коллегами из отдела разработки ARMA – Сергеем Калдыркаевым и Алексеем Пуцем, собрали для вас немного цифр по атакам на промышленность, примеры интересной малвари и, собственно, туториал по разбору пром. протоколов.

Читать далее

Открытая шина данных АСУ ТП

Время на прочтение4 мин
Количество просмотров5.4K

Над созданием открытой шины данных АСУ ТП работают как российские, так и зарубежные разработчики. Причина понятна – уйти от проприетарных протоколов и решений и создать единую прозрачную среду передачи данных систем автоматики. Раскроем суть задач, стоящих перед разработчиками.

Читать далее
1
23 ...