В этом тексте я собрал самые странные правила и рекомендации оформления исходных кодов, которые только попадались мне на работе в разных реальных компаниях.
Вот буквально несколько настоящих примеров из жизни. Парад нелепости.
Все об АСУ ТП
В этом тексте я собрал самые странные правила и рекомендации оформления исходных кодов, которые только попадались мне на работе в разных реальных компаниях.
Вот буквально несколько настоящих примеров из жизни. Парад нелепости.
Технология программируемых логических контроллеров совершенно точно достигла зрелости – ей уже 60 лет. В связи с чем возникает вопрос: станут ли нынешние ПЛК «пенсионерами» и сойдут ли их будущие версии в могилу? Такое предположение кажется уместным, учитывая быстрое, а порой экспоненциальное развитие компьютерного оборудования, программного обеспечения, искусственного интеллекта, облачных сервисов и средств связи. Благодаря этим достижениям информационные технологии постепенно проникли в ранее изолированную сферу операционных технологий.
В свете этих событий приводим статью Джеффа Пейна, опубликованную в журнале Control Engineering о будущем контроллеров и приложений промышленной автоматизации на фоне происходящей в последние десятилетия эволюции ПЛК.
Вернемся к одному из проектов дистрибутива программной платформы SimInTeh, который был рассмотрен в двух статьях(см. [1, 2]). Он же под именем "Управление водонагревательным котлом" включен в раздел "Лабораторные работы по библиотекам" справочной системы SimInTech. Последнее должно предъявлять к нему повышенные требования, как к примеру, поясняющему, рекламирующему те или иные стороны и возможности программной платформы. Одним словом, он должен быть идеальным ...
Только недавно одна из найденных в нем ошибок была устранена. Но не это знаменательное событие было причиной вернуться к данной теме, а пришедшая примерно в это же время рассылка, рекламирующая возможности "новейшей российской инженерной платформы Engee". В числе прочих ее достоинств описывались включенные в платформу конечные автоматы (КА)[3], а в видео по ссылке прослеживалась явная любовь к светофорам. Но нагреватель в этом смысле ни чуть не хуже, а даже предпочтительнее.
Но "спусковым крючком" стал эмоциональный всплеск не самой положительной оценки данной конечным автоматам (подробнее см. [4]). Примечательно, что прозвучал он со стороны тех, кто ранее ввел этот инструментарий в свою платформу и, как можно предполагать, использует. Видимо, они лучше знают возможности своих автоматов? Но, если серьезно, то это, скорее всего, результат отмеченного "всплеска", который за истину воспринимать не стоит. Тем не менее, необходимо что-то уточнить, чтобы учесть и такое мнение о КА.
Итак, перед нами проект "Нагреватель" или "Управление водонагревательным котлом". Я не смог сразу найти проект в ВКПа к тем еще статьям, но, если честно, не сильно его и искал, т.к. решил, что проще создать новый. Хотелось проверить, что получится, если повторить в ВКПа автоматы, полностью аналогичные ранее созданным программным автоматам на внутреннем языке платформы SimInTech. А поскольку они были спроектированы согласно концепциям автоматного программирования, то препятствий не предполагалось. Но ... воистину - "не было этого никогда и вот опять".
Отладка систем управления вместе с моделью объекта.
В данной статье рассмотрены примеры использования графических языков программирования в жизненном цикле модельно-ориентированного проектирования для систем управления сложными техническими объектами. А также продемонстрировано, как графические языки программирования делают жизнь проще, но интересней. И чтобы читатель не заскучал, мы рассмотрим противостояние программистов и технологов. Это как Монтекки и Капулетти, физики и лирики, красное и белое. Разберемся кто из них главный, а кто лишний.
Все события выдуманы, все совпадения случайны.
Определение:
Технологи - специалисты в конкретной предметной области: физики, электрики, конструктора и проектанты разных сложных объектов. Технолог знает, как работает его сложный технический объект, что и когда включать или что и когда выключать, чтобы не было потом мучительно больно.
Программисты - специалисты в написании программ, умеют закодировать любой бред, который напишут в техническом задании, а также знают, как работает аппаратура управления, и что нужно написать в коде, чтобы получить данные с АЦП в программу, и наоборот отправить из программы в ЦАП.
Каждый из них занимается свои делом по жизни, но, когда нужно создать сложный технический объект, они встречаются как лед и пламень, или лебедь, рак и щука, или мартышка и очки. А все потому, что любой современный технический объект содержит в себе систему управления, которая сейчас почти всегда выполнена в виде программного обеспечения на контроллере, а значит, нам нужен программист, и он должен понимать (хотя бы примерно), что от него хочет технолог.
Есть такая тема, как автоматическое выравнивание отступов в исходных текстах программ на Си или С++. Притом для этого есть специальные утилиты. Например clang-format или GNU indent.
В этом тексте я написал, как встроить процесс выравнивания исходных кодов прямо в систему сборки проекта.
Цель данного текста- показать, как интегрировать clang-format в процесс сборки прошивки. Просто в одно касание и выровнять код, и собрать бинари.
Эта статья — ответ на ранее опубликованную статью про IT на заводах. Я почитал и понял, что мне есть что об этом рассказать. Вопросы оттуда же и немного больше. Сразу уточню, что я не работал непосредственно на заводах, а работал в компании, которая предоставляла услуги по автоматизации производственных линий разным предприятиям, но в основном ориентированные на работу с весами и дозированием.
Основной посыл статьи – демонстрация возможности детерминирования динамических свойств технологических параметров, описываемых решётчатыми функциями, и возможности прогнозирования изменения значений этих параметров, применяя простые, а оттого высокопроизводительные вычислительные инструменты.
Статья не претендует на научную точность, уникальность и оригинальность. Доступна в формате Jupyter Notebook и PDF по ссылке – https://gitflic.ru/project/56h/tde
Вступление Так получилось что мы группа студентов и преподавателей заинтересованных в создании имитационных виртуальных лабораторий, в которых студенты могут без особых углубленных знаний попробовать поуправлять квадрокоптером, конвейером или другими интересными моделями. Ведь не всегда есть возможность потренироваться на реальных физических лабораториях. Нужны: место (деньги), оборудование (деньги) и время (тоже деньги). Следовательно придется смотреть в сторону виртуальных моделей. Мы искали удобную среду для создания таких моделей и вот до чего дошли (обозреваем ниже).
Немного истории: факультет электромеханики (ныне переименован в Мехатроники и Автоматизации) НГТУ создавался в 50-х, чтобы готовить специалистов по разработке и производству электродвигателей, электрогенераторов e.t.c. Позднее факультет оброс кафедрами смежных направлений а в конце 2020-х открыл направление Робототехники. Профиль ФГОС и 70% предметов оставили прежними. Как и педсостав. В результате получили выпускников которые: умеют подобрать двигатели для круглого квадрокоптера в вакууме (и не только подобрать, но и спроектировать с нуля или пересчитать/перемотать); умеют настроить регуляторы для этого пепелаца; знают как рассчитать мощность и КПД. А вот о том, как программировать автопилот — только «имеют представление».
В принципе такая заточка имеет право на жизнь если разрабатывать не роботов-доставщиков, а промышленные роботизированные ячейки.
В этом тексте я написал про то, как самому написать System Software уровня HAL для ARM Cortex-M4 совместимого микроконтроллера.
Как отлаживать такую работу и на что обратить внимание при запуске I2S на Artery MCU.
Программа это реализация алгоритма. А алгоритм это упорядоченная последовательность действий. Поэтому очень большое значение имеет правильный порядок исполнения программы.
В этом тексте я написал как автоматически выявить правильную последовательность инициализации
Привет, Хабр!
Сегодня производственные процессы становятся все более масштабными, на заводах внедряются сложные цифровые системы и оборудование. Это приводит к увеличению нагрузки на операторов технологических установок, что в свою очередь негативно сказывается на эффективности и безопасности работы предприятий. В этих условиях совершенствование человеко-машинных интерфейсов (HMI — Human-Machine Interface) становится оружием, которое оптимизирует объем информации, поступающей к оператору, и существенно снижает производственные риски.
По образованию я инженер разгонных блоков и космических аппаратов, и погружение в производство началось еще в институте. Меня учили разрабатывать ракеты и спутники. А дальше оказалось, что в России это крайне малооплачиваемая отрасль. В итоге хобби админство в институте, стало работой, но знания полученные в ходе обучения очень помогают в текущих задачах. В производстве у меня было много проектов. Я реализовывал системы по техосмотрам и ремонтам в энергетике, участвовал в проектах на Уралхиммаше и на Дальневосточных распредсетях и много где ещё. Был даже опыт управления командой на рынке оптовых продаж электроэнергии России. А потом друзья позвали присоединиться к команде цифровизации в СИБУР.
Всё началось в 2018 году, я сопровождал и развивал проекты американских стартапов из реальной отрасли экономики. Потом меня пригласили в крупнейший в России ритейл запчастей. Там было 250 СТО, 120 городов и 150 складов. Это были реальные склады, реальные продукты, реальные люди. Всё это мы сопровождали командой в 20 человек, и я понял, что объёмы — это интересно. Но в ритейле, в отличие от промышленности, очень короткий горизонт планирования. Я быстро достиг стеклянного потолка и понял, что надо двигаться дальше.
Перешёл в сферу цифрового телевидения, а оттуда в промышленность. Начал DevOps инженером, а через год стал руководить DevOps направлением. Наша команда из пяти человек за год выполнила 250 проектов. Поэтому нужно было срочно наращивать команду и быстро вводить её в процессы. Но на онбординг и вход в проект уходило три недели. Пришлось всё менять.
Коэффициент трудового участия — коэффициент, отражающий количественную оценку меры трудового участия отдельного работника в общих результатах труда группы работников, характеризующий суммарный вклад работника в общие результаты труда производственной бригады, коллектива
https://ru.wikipedia.org/wiki/Коэффициент_трудового_участия
Очень часто КТУ используют для начисления некого вознаграждения, премии или бонуса отделу или бригаде.
В своей статье я попыталась смоделировать ситуацию, когда у нас есть несколько факторов, которые влияют на увеличение/снижение КТУ работника в бригаде.
В таблице ниже приведен пример данных факторов.
Когда-то я работал системным инженером в одном из крупнейших российских системных интеграторов. Там внедрял и сопровождал системы электронного документооборота. В 2010 году «Гринатом» искал специалиста с моим опытом, чтобы сопровождать свою отраслевую систему документооборота. Мне понравились условия и возможность развивать новые продукты фактически с нуля, и я согласился. С тех пор работаю там, и за 14 лет работы развитие не останавливается. Растёт мое подразделение, и внедряемые технологии, и компетенции. Мы постоянно привносим новые решения, и это не останавливающееся движение очень мотивирует.
В программировании микроконтроллеров на выходе получается довольно много артефактов. Всё это надо как-то связать и заточить в архив, чтобы всегда можно было ассоциировать *.hex с нужным для него *.map и *.elf.
Логичным шагом является архивация всех этих файликов в *.tar архив. Один архив очень удобен при транспортировке программного обеспечения.
В этом тексте я написал как это можно провернуть средствами утилиты GNU Make.
В последнее время на производственных площадках нефтепереработки и нефтехимии все чаще стало звучать словосочетание «Виртуальный анализатор». Что же это такое? Давайте разберемся.
Виртуальный анализатор – это косвенное измерение параметров качества (концентрации/ содержания) компонентов в выпускаемой продукции, в основе которой математическая модель, рассчитанная на статистических исторических данных. Он позволяет в режиме реального времени видеть качество продукта на технологическом объекте. В качестве входных параметров модели используются датчики с приборов КИП технологических объектов: температуры, давления, расходы и т.д.
Классическая математическая формула виртуального анализатора выглядит как:
ВА = k1*X1 + k2*X2 + kn*Xn + bias,
Где ВА – значение виртуального анализатора, X1…Xn технологические параметры (температура, давление, расход и т.д.), k1…kn коэффициенты этих параметров, полученные при построении модели в специализированном ПО, bias – свободный коэффициент для корректировки показаний виртуального датчика. В конце статьи это формула станет гораздо понятней :)