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

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

Все об АСУ ТП

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

Контролируем погрузчик на базе данных из штатной диагностической системы двигателя

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

Привет, Хабр! Меня зовут Илья Родин, я инженер по анализу данных в «Рексофт». Сейчас я работаю в команде департамента горнодобывающих решений компании, поэтому пишу о насущном: как усовершенствовать контроль работы циклов погрузчика, забирая данные из штатной диагностической системы двигателя. Эту статью я писал вместе со своим коллегой @VLebedev_22.

Итак, поехали!

Читать далее
Всего голосов 6: ↑5 и ↓1+4
Комментарии11

Шопинг на рабочем месте: как ЕВРАЗ внедрил внутренний маркетплейс для снабжения

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

Маленькие вещи могут создавать большие проблемы. И нет, речь не о камешке в ботинке и даже не о вирусах. Мелкие закупки — крупная головная боль для отдела снабжения. А поскольку в ЕВРАЗе активно развивается цифровая трансформация, мы эту головную боль решили лечить не цитрамоном, а соответствующим IT-продуктом. 

Под катом вы узнаете, как мы разрабатывали собственный внутренний маркетплейс, какие проблемы героически преодолели, а какие предвидели заранее. Ну и, разумеется, что из этого вышло.

Читать далее
Всего голосов 9: ↑8 и ↓1+10
Комментарии4

Что требуется для развития рынка цифровых двойников

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

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

Цифровые двойники входят в топ-5 мировых стратегических технологических трендов. Ожидается, что в 2024 году технологию внедрят 250 отечественных предприятий, затраты составят 145 млрд рублей по данным дорожной карты «Технет» Национальной технологической инициативы. Давайте разберемся, реальны ли эти прогнозы для России.

Читать далее
Всего голосов 9: ↑4 и ↓5+1
Комментарии0

Сортировка Конфигов для Make Сборок

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

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

Все передают конфиги по-разному.

В этом тексте представлен способ передавать конфиги через скрипты сборки.

Читать далее
Всего голосов 9: ↑4 и ↓5+1
Комментарии10

Истории

Объяснение режимов работы Run, Stop и Program центрального процессора ПЛК

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

Программируемые логические контроллеры (ПЛК) можно перевести в режим «Пуск» (Run) или «Стоп» (Stop), а иногда и в режим «Программирование» (Program) обычно с помощью физических или виртуальных методов. Но что означают эти режимы и когда их следует использовать?

Рассмотрим вопрос фактической загрузки и выполнения программы в центральный процессор (ЦП). При выполнении этих действий ПЛК может переключаться между режимами работы. В связи с этим зададимся вопросом — почему существуют эти режимы, а также почему и когда нужно вручную изменять режим самостоятельно?

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

Перенос вашего проекта под Embox на новую плату STM32

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

Всем привет

В этой статье я хочу показать, насколько в Embox легко перенести существующий проект на новую платформу. За основу возьмем уже описанный ранее демонстрационный проект с ModBus и расскажем, как портировать наш проект на новую плату на примере STM32 NUCLEO-F2207ZG.

В статье про ModBus уже было показано, как важны для уменьшения “времени выхода на рынок” (time-to-market), переносимость ПО и удобство разработки и отладки. А теперь предположим, что мы хотим сделать новую версию нашего устройства на новой аппаратной платформе, более дешевой, менее энергопотребляющей или просто доступной на рынке.

Читать далее
Всего голосов 8: ↑7 и ↓1+7
Комментарии14

Написание модуля Modbus RTU Master для VPD-130-H2 в HMI Works

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

Мне поставили задачу связать панель VPD-130-H2 с 2 частотными преобразователями DC1-344D1NN-A20N. На панели и частотнике встроен интерфейс RS485, поэтому для управления я буду использовать протокол Modbus. В данном случае частотники будут выступать в роли Slave-устройств с адресами 11 и 22, а панель в качестве Master-устройства.

Читать далее
Всего голосов 6: ↑4 и ↓2+4
Комментарии7

Как я за месяц написал интерпретируемый язык программирования на Python

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

Привет, Хабр! В этой статье я хотел бы поделиться опытом создания своего языка программирования.

Предыстория

Мне 14. Обучаясь на втором году Яндекс Лицея, нужно было написать несколько проектов. Первым из них стал проект на PyQT5. Я долго думал над идеей и вспомнил, что летом я хотел создать свой язык, но у меня этого не получилось (Тогда я не понимал как работает парсер и абстрактное синтаксическое дерево, поэтому забросил). И вот, мне пришла идея - сделать свой язык программирования и написать для него IDLE (т.к. тема проекта все таки QT). Ещё полгода назад я изучал асинхронность и многопоточность, поэтому именно одну из этих идей я хотел воплотить в своём языке. В данной статье я хотел рассказать устройство интерпретируемых языков и как их создать.

Читать далее
Всего голосов 32: ↑26 и ↓6+29
Комментарии44

Загрузка прошивки в дисплеи Nextion без использования IDE. Протокол v 1.1. Добавлена ссылка на 1.2 и внесены исправления

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

Загрузка прошивки в дисплей  Nextion без использования IDE. Это перевод официальной инструкции. Протокол версии 1.1 Актуален на конец 2023. Внесены исправления.

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии13

Обзор Чипа Внешней I2C Памяти AT24Cхх

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

AT24C02M5/TR это EEPROM на 256 байт с доступом по двухпроводному синхронному последовательному интерфейсу I2C.

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

Внешние чипы памяти особенно важны так как прошивку могут полностью стереть. В связи с этим хранить серийный номер на микроконтроллере внутри on-chip NOR-Flash самого микроконтроллера ненадежно.

Читать далее
Всего голосов 24: ↑13 и ↓11+8
Комментарии33

Диспетчер Задач для Микроконтроллера

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

В программировании микроконтроллеров часто нужно написать простые тестировочные прошивки. При этом надо некоторые функции вызывать чаще, а некоторые реже. Для этого, конечно, можно запустить FreeRTOS, однако тогда этот код не будет переносим на другие RTOS например Zephyr RTOS или TI-RTOS. Поэтому надо держать наготове какой-нибудь простенький NoRTOS планировщик.

В этот тексте я представил основные идеи алгоритма такого кооперативного планировщика.

Читать далее
Всего голосов 21: ↑19 и ↓2+22
Комментарии26

Некоторые особенности голосового ввода на реальном производстве

Время на прочтение8 мин
Количество просмотров5.7K
Голосовой ввод обычно никому не нужен. В реалиях производства дешевле поставить человека, который будет ходить туда-сюда или говорить коллеге по рации и вбивать что-то в терминал, чем настраивать распознавание речи. Собственно, так мы и решали вопрос голосового ввода довольно долго.

Человек с рацией неизменно побеждал по экономическому эффекту.

image

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

Он внимательно смотрит на 19 муфт, а двадцатую берёт и начинает измерять разными точными инструментами. Делает он от 20 до 27 замеров, а результаты записывает на бумажке.

Затем останавливает станок, идёт к терминалу и вводит в систему данные замеров.

Возвращается и снова смотрит на муфты.

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

Понадобилось добраться с автоматизацией до этого самого станка.

Первым сюрпризом стало то, что нужно распознавать неформальную лексику специализированную терминологию. Некоторые слова выражают одобрение догадки робота, а некоторые (обычно более короткие) означают команду «Немедленная отмена текущей операции».

Устройство-ассистент должно понимать специалиста цеха буквально с полуслова.

Сейчас я расскажу отличную историю, как мы всё это внедряли.
Читать дальше →
Всего голосов 37: ↑37 и ↓0+37
Комментарии40

Полезные Заготовки Вызова Утилит Командной Строки

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

Не для кого не секрет, что некоторые типичные действия на компьютере проще быстрее и эффективнее выполнить из-под командной строки.

В этом тексте я хотел бы поделиться командами, которые мне очень часто помогают в работе.

Читать далее
Всего голосов 32: ↑7 и ↓25-18
Комментарии44

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

Конференция HR API 2024
Дата14 – 15 июня
Время10:00 – 18:00
Место
Санкт-ПетербургОнлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Синтаксический разбор CSV строчек

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

В программировании микроконтроллеров часто надо производить синтаксический разбор (парсинг) CSV строчек. CSV это просто последовательность символов, которые разделены запятой (или любым другим одиночным символом: ; | /). CSV строчки можно, например, повстречать в NMEA протоколе от навигационных GNSS приемников. Любой URL это в сущности та же самая CSV строчка.

В этом тексте я написал как производить синтаксический разбор CSV строчек.

Читать далее
Всего голосов 16: ↑5 и ↓11-4
Комментарии133

Белоснежно чистый код

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

Что такое чистый код? Это то, что все ищут, но никто не может найти. Люди редко могут сойтись на том, что это такое и как это реализовать на практике. Можно найти бесчисленное число статей на эту тему, и эта станет ещё одной. Я попытаюсь разобраться в том, что такое чистый код сам по себе, в отрыве от языков, парадигм и сфер применения. 

Читать далее
Всего голосов 14: ↑9 и ↓5+4
Комментарии38

Приходите к нам на завод, у нас тяжело

Время на прочтение10 мин
Количество просмотров138K
Короче, ИТ на заводе — это вам не романтика, особенно в нашем цифровом направлении.

Между «давайте этим займёмся» и «о, смотрите, какая гламурная ML-модель» лежит очень много того, про что не рассказывают. Сейчас расскажу.

Вначале у нас была банда энтузиастов из разных подразделений: несколько человек из ИТ, АСУТП, технологи со знанием статистики — чтобы смотреть с разных углов и видеть всё в целом, насколько это возможно. Начали с оценки перспектив. Они были необъятные — наше производство размером с небольшой город. Стали формироваться подразделения и направления: кто-то пошёл собирать роботов, кто-то в видеоаналитику, кто-то в лайтовый анализ данных, кто-то в самый хардкор — в дата-сатанизм. Работы у нас всегда больше, чем рук.

И на каждой из этих дорожек нас поджидали свои чудеса и сюрпризы.

Вот, к примеру, видеоаналитика:

  • Мы поняли, что ML в 50% задач не нужны. Нужна, например, камера, которая по цвету определяет, где есть железка, и смотрит её геометрию в реальности. Всё. Или другая камера, которая следит, чтобы в нужной зоне ничего не шевелилось.
  • Всё это прекрасно до первого солнечного зайчика. ML отлично показывают себя там, где вам лень строить крышу или ставить прожектор над конвейером.
  • У нас была идея, что мы можем сами в нейросети. Чуть не написали свой сервис для распознавания номеров вагонов. Казалось, делов-то на 20 минут, а у подрядчика это стоит 25 копеек за фото. Сделали свой, сферические вагоны в вакууме он определял хорошо. Потом приехало вот это:

image

А потом внезапно пошёл дождь. Знаете что? Вагоны под дождём становятся мокрыми. Это было неожиданно. Ещё они бывают после снега, битые, немытые, обновлённые криворукими малярами и ПРОЧИЕ. И в солнечных зайчиках тоже.

Мы накалывались на получении данных (кто сказал, что прошивка станка без костылей?), на роботизации, инфраструктуре, связи, на всём. Мы облазили весь завод, испачкались в солидоле, мазуте и масле. Но стали делать то, что должны, — оптимизировать мир.
Читать дальше →
Всего голосов 228: ↑224 и ↓4+268
Комментарии278

7. Точность систем автоматического регулирования (ч. 2)

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

Продолжаем публикацию лекций Олега Степановича Козлова по предмету "Управление в Технических Системах".

В этой лекции мы продолжим разбираться с точностью, но сначала краткое содержание предыдущих серий:

1. Введение в теорию автоматического управления.2. Математическое описание систем автоматического управления 2.1 — 2.32.3 — 2.82.9 — 2.13

3. ЧАСТОТНЫЕ ХАРАКТЕРИСТИКИ ЗВЕНЬЕВ И СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ РЕГУЛИРОВАНИЯ. 3.1. Амплитудно-фазовая частотная характеристика: годограф, АФЧХ, ЛАХ, ФЧХ3.2. Типовые звенья систем автоматического управления регулирования. Классификация типовых звеньев. Простейшие типовые звенья3.3. Апериодическое звено 1–го порядка инерционное звено. На примере входной камеры ядерного реактора3.4. Апериодическое звено 2-го порядка3.5. Колебательное звено3.6. Инерционно-дифференцирующее звено3.7. Форсирующее звено.  3.8. Инерционно-интегрирующее звено (интегрирующее звено с замедлением)3.9. Изодромное звено (изодром)3.10 Минимально-фазовые и не минимально-фазовые звенья3.11 Математическая модель кинетики нейтронов в «точечном» реакторе «нулевой» мощности

4. Структурные преобразования систем автоматического регулирования.

5. Передаточные функции и уравнения динамики замкнутых систем автоматического регулирования (САР).

6. Устойчивость систем автоматического регулирования. 6.1 Понятие об устойчивости САР. Теорема Ляпунова. 6.2 Необходимые условия устойчивости линейных и линеаризованных САР. 6.3 Алгебраический критерий устойчивости Гурвица. 6.4 Частотный критерий устойчивости Михайлова. 6.5 Критерий Найквиста.

7. Точность системы автоматического управления (ч.1)

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии13

Как концепция ЕОМ и графический конфигуратор моделей в ZIIoT облегчают жизнь промышленным разработчикам

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

Всем привет! Тут уважаемые коллеги уже много раз писали о различных инструментах и технологиях платформы ZIIoT для работы с промышленными данными и создания приложений. Но как-то руки пока не доходили до одного из самых важных ее компонентов — единой объектной модели (ЕОМ). В этой статье я исправлю это недоразумение и расскажу, как реализована концепция ЕОМ у нас и как работает наш инструмент для графического конфигурирования моделей — Zyfra Graphic Object Designer. Меня, кстати, зовут Александр Пучков, я ведущий владелец продуктов в компании «Цифровая индустриальная платформа», которая занимается развитием отдельной модификации ZIIoT для нефтегазовой и нефтехимической отраслей – ZIIoT Oil&Gas – и приложений на ее основе.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

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

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

Российские промышленные предприятия и компании, которые занимаются разработкой решений АСУ ТП, столкнулись с необходимостью поиска альтернативы программируемым логическим контроллерам (ПЛК) европейских, американских и японских производителей. В этой статье мы предлагаем вашему вниманию сравнительный обзор технических характеристик программируемых контроллеров Consyst Electronics. 

Читать далее
Всего голосов 32: ↑28 и ↓4+31
Комментарии38

Генерация зависимостей внутри программы

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

В программировании программы часто строятся иерархично. Один программный компонент вызывает функции из другого программного компонента. Как бы представить эту взаимосвязь в законченной программе?

Эту задачу можно решить прибегнув к языку Graphviz и утилитам cpp, dot, make, chrome.

Читать далее
Всего голосов 14: ↑10 и ↓4+11
Комментарии48

Вклад авторов