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

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

Все об АСУ ТП

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

Как составить функцию инициализации микроконтроллера (Топологическая сортировка графов утилитой Make)

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

В программировании микроконтроллеров приходится определять порядок инициализации прошивки. Порядок тут всегда имеет значение.

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

Чтобы всё это работало надо соблюдать правильный порядок инициализации.

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

По сути это топологическая сортировка ориентированного графа зависимостей программных компонентов.

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

Новости

MapStruct — смаппь меня, если сможешь

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

Я потратил на изучение данной библиотеки немало нервных клеток, и уверен, что узнал далеко не все способы и лайфхаки, но постарался донести информацию с практической стороны, чтобы вы с самого старта не испытывали "нежданчиков" и сэкономили свое время в попытках найти работающий способ.

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

Wiren Board шагает в промку — управление линией розлива и этикетирования

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

Компания Levrana Engineering выпускает модульные производственные линии для розлива и этикетирования, упаковки и других задач. Причем по регламенту клиент должен получить линию в сравнительно небольшой срок после заказа.

Раньше для управления линиями устанавливали контроллер Delta и соответствующие модули, но с поставками сегодня очень большие проблемы: несмотря на наличие нескольких дилеров, сроки увеличились до полугода, цены стали космическими. Как уложиться в регламент и что со всем этим делать? 

Устав решать проблемы, инженеры Levrana Engineering решили сменить производителя контроллера и сопутствующего оборудования. В статье мы расскажем, какие подводные камни при это возникли и как с ними удалось справиться.

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

Архитектура Xорошего Кода Прошивки (Массив-Наше Всё)

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

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

Основная идея - массив наша основная скрепа.

Главные достоинства представленной архитектуры - это простота поддержки, сопровождения и масштабирования кодовой базы.

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

Истории

ЭЦП в электронных нарядах-допусках: сага о бюрократии и прогрессе

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

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

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

Как машинное зрение присматривает за коксовыми батареями

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

Это коксовая батарея, внутри которой из угля выпекают высокотемпературный многотонный пирог.

Высота батареи — девять метров, а двери — пять.

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

Малейший дефект двери даёт утечку газа из печи. А мы это очень не любим по двум причинам:
  1. Мы живём в Липецке и хотели бы, чтобы он и дальше оставался самым чистым городом металлургов в России.
  2. Это снижает КПД печи.

И вот, когда в ИТ-отдел обратились экологи с просьбой помочь с более эффективным выявлением эмиссии, мы пошли смотреть, что можно сделать.
Читать дальше →
Всего голосов 49: ↑49 и ↓0+57
Комментарии25

Меняем американца на китайца в цифровых двойниках. Двигатели переменного тока – точные модели

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

Мы живем в неспокойное время. Импортозамещение набирает обороты, но местами буксует как немецкий танк семейства кошачьих в украинской грязи. При чем даже за такое трудное и медленное движение вперед «спасибо» нужно сказать нашим уважаемым партнерам. Без них ничего бы не происходило вообще ничего от слова «совсем». Наши западные «партнеры» пытаются отрезать Россию от передовых инженерных технологий, и мы вынуждены, как те мыши из анекдота, «колоться, плакать», но пытаться съесть кактус.

...Гуд бай Америка о – о – о 

где я не буду никогда 

нас так долго лечили 

любить твои запретные плоды...

В статье мы расскажем как перестать любить Америку и полюбить Китай.

Читать далее
Всего голосов 42: ↑19 и ↓23+2
Комментарии72

Как мы спасаем жизни с помощью геймификации

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

Привет, Хабр! Меня зовут Илья Ульянов, я архитектор информационных систем и руководитель проекта «Охота на риски» в ЕВРАЗе. Расскажу вам, что необычного в дизайне этого проекта. 

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

Заядлый геймер, выполняющий задания за вознаграждения и место в рейтинге, — далеко не первое, что ассоциируется с суровыми горняками и металлургами. Где видеоигры, а где техника безопасности и мониторинг инцидентов? Командная работа, ачивки, тематические сезоны — этого не может быть в цехах. Или может?

Реальность, как это нередко бывает, оказалась куда неожиданнее самых смелых предположений. Идея совместить две, казалось бы, слабо совместимые вещи принесла хорошие результаты. О том, как мы запустили мобильное приложение “Охота на риски”, рассказываем в этой статье.

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

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

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

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

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

КодоГенератор Линейных Отображений (как ускорить создание ASIC драйвера)

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

В программировании микроконтроллеров на Си часто приходится писать драйверы для умных и навороченных ASIC чипов с управлением по I2C/SPI/MDIO интерфейсам.

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

Такие чипы всегда оперируют с реальными физическими величинами. Одновременно с этим ячейки памяти этих ASIC чипов - дискретные, двоичные. Поэтому все производители микросхем кодируют эти переменные бинарными кодами разной разрядности.

В этом тексте я показал как можно делать интерпретаторы этих величин.

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

Бегство от реальности: как перестать подгонять свой код под устаревшие шаблоны

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


Как описать хороший код в трех словах? Исходя из опыта — это код, который [приятно поддерживать и эксплуатировать]. СОЛИД, SOLID, СОЛИД... Редко код ревью обходится без упоминания этих принципов, но для разработчика это не означает ничего хорошего. А что, если я скажу вам, что есть альтернатива? Недавно я наткнулся на одну англоязычную статью в блоге автора по имени Dan North. Он поднимает крайне интересные темы: написание хорошего кода, поддержка кодовой базы, порочные практики следования устаревшим трафаретам. 

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

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

Создание простой Roblox игры без особого знания Lua

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

Если вы когда-либо мечтали создать свою собственную игру в Roblox, но не знаете с чего начать, то эта статья для вас. В этом руководстве я покажу вам, как создать игру в Roblox без базового знания программирования.

Прежде чем мы начнем, вам нужно зарегистрироваться на сайте roblox.com и загрузить Roblox Studio - инструмент, который позволяет создавать игры на платформе Roblox. После установки запустите программу и выберите пустой шаблон для создания новой игры.

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

UX установки диффузионного силицирования

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

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

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

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

Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Зачем Программисту Микроконтроллеров Линейная Алгебра (или Как Найти Угол Между Векторами?)

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

В программировании микроконтроллеров часто возникает задача найти угол между векторами.

Это всяческие встраиваемые системы, где есть подвижные, вращающиеся детали: PTZ камеры, поворотные платформы для радаров, турели, ветрогенераторы, солнечные панели, SDR обработка и прочее.

В данном тексте я приведу простое и понятное решение задачи вычисления угла между векторами на языке программирования Си.

Читать далее
Всего голосов 21: ↑18 и ↓3+21
Комментарии105

Регрессируем обычную известь

Время на прочтение8 мин
Количество просмотров4.1K
Всем привет! На связи конвертерный цех № 1. Последние месяцы мы работаем над тем, как посчитать, сколько известковой пыли приезжает к нам на конвейере.

image
И на данный момент мы научились правильно определять это количество с вероятностью 85 %

И нет, мы не сошли с ума. Просто в процессе использования извести некоторое количество самой мелкой её фракции вылетает в трубу. Каждый раз — разное. И «вылететь в трубу» тут не фигуральное выражение, а точное описание процесса: около 10 % известковой пыли, которую мы отправляем в конвертер с жидким металлом, навсегда исчезает в аспираторе. Так как мы не знаем, от какого количества нужно эти 10 % взять и не можем посчитать, сколько её в какой момент улетит, известь в металл насыпается с запасом. И это бесит.

«А почему бы не посчитать, сколько вешать в граммах?» — заинтересовались мы и начали придумывать, как это сделать.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+36
Комментарии10

Веселые уроки WinCC OA. Настройка сервера протокола МЭК 60870-5-104

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

Говоря сухим языком, МЭК 60870-5-104 – протокол телемеханики, предназначенный для передачи сигналов в систему верхнего уровня, регламентирующий использование сетевого доступа по протоколу TCP/IP. Чаще всего применяется в энергетике для информационного обмена между энергосистемами, а также для получения данных от измерительных преобразователей (вольтметры, измерительные преобразователи и прочее).

А теперь, отбросив официоз, попробуем настроить сервер этого протокола в SCADA системе Simatic WinCC Open Architecture.

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

А точно ли программистам не нужны алгоритмы?

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

Мне 21 год и я работаю программистом всего 4 года, за это время я побывал на 2–3 мелких проектах и 3–4 проектах крупных компаний, таких как: Luxoft (упокой его душу), Альфа, ОТП, ГПБ и др. Так же я часто прохожу собеседования и в другие компании, чтобы «держать себя в форме», собирать статистику и т. п. Прохожу собеседования, в том числе и в крупные финтехи и пока что не хочу туда идти.

В разговорах со своими коллегами я очень часто слышал фразу «алгоритмы программистам не нужны», «алгоритмы никогда не используются в работе» и т. п. Я не являюсь ярым приверженцем того, что алгоритмы нужно учить и использовать их повсеместно, но я понимаю, как они могут помочь мне в жизни программиста.

Читать далее
Всего голосов 32: ↑21 и ↓11+14
Комментарии74

Зачем Программисту Микроконтроллеров Диофантовы Уравнения

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

Школьные уроки математика не прошли даром.

Вот, настал день, когда впервые пришлось решить на работе Диофантовое уравнение.

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

Автоматическая Генерация Конфигураций для Make Сборок (или Лучшее Программирование — Конфигурирование)

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

При разработке программного обеспечения придется столкнуться с тем, что надо как-то передавать конфигурации для данного проекта.

Проблема в том, что конфигов становится так много, что можно нечаянно забыть какой-то важный конфиг.

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

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

9 Синтез и коррекция систем автоматического регулирования (САР)

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

Продолжаем публикацию лекций по предмету "Управление в технических системах". Кафедра "Ядерные энергетические установки" МГТУ им. Н.Э. Баумана. Автор: Олег Степанович Козлов.

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 Критерий Найквиста.

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

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