Pull to refresh
0
0
Send message

Hardware in the Loop (HIL) или как залупить модель с контроллером. Зачем и кому это надо?

Level of difficultyEasy
Reading time18 min
Views2.6K

Отладка систем управления вместе с моделью объекта. 

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

Все события выдуманы, все совпадения случайны.

Определение:

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

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

Каждый из них занимается свои делом по жизни, но, когда нужно создать сложный технический объект, они встречаются как лед и пламень, или лебедь, рак и щука, или мартышка и очки. А все потому, что любой современный технический объект содержит в себе систему управления, которая сейчас почти всегда выполнена в виде программного обеспечения на контроллере, а значит, нам нужен программист, и он должен понимать (хотя бы примерно), что от него хочет технолог.

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments33

Фильтрация шума сигнала

Reading time7 min
Views44K

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

Читать далее
Total votes 34: ↑29 and ↓5+35
Comments38

Фильтр Калмана — Введение

Reading time5 min
Views262K
Фильтр Калмана — это, наверное, самый популярный алгоритм фильтрации, используемый во многих областях науки и техники. Благодаря своей простоте и эффективности его можно встретить в GPS-приемниках, обработчиках показаний датчиков, при реализации систем управления и т.д.

Про фильтр Калмана в интернете есть очень много статей и книг (в основном на английском), но у этих статей довольно большой порог вхождения, остается много туманных мест, хотя на самом деле это очень ясный и прозрачный алгоритм. Я попробую рассказать о нем простым языком, с постепенным нарастанием сложности.
Читать дальше →
Total votes 157: ↑151 and ↓6+145
Comments50

Новый подход к просмотру логов

Reading time7 min
Views30K

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

Хотелось иметь просмотрщик логов, позволяющий, в любой момент, открыть любой файл, без скачивания на локальную машину, как команда less в linux консоли. Но при этом, должна быть удобная подсветка текста, как в IDE, и фильтрация событий по различным параметрам. Фильтрация и поиск должны работать по событиям в логе, а не по строкам, как grep, это важно когда есть многострочные записи, например ошибки со стектрейсами. Так же должна быть возможность просматривать записи сразу из нескольких файлов на одной странице, смёржив их по таймстемпу, даже если файлы находятся на разных нодах.

Читать далее
Total votes 19: ↑16 and ↓3+17
Comments26

Создание простейшего back-end на Node.js с использованием PostgreSQL

Level of difficultyMedium
Reading time5 min
Views8.3K

Сегодня мы продемонстрируем как создавать back-end приложения на Node.js c PostqreSQL. В качестве примера создадим простейший back-end на Node.js с использованием PostgreSQL.

Почему именно Node.js и PostgreSQL? Node.js имеет хорошую скорость и асинхронность, а PostgreSQL, в свою очередь, является мощной и надежной СУБД.

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

Читать далее
Total votes 10: ↑9 and ↓1+12
Comments11

Нормальные таблицы в Markdown

Reading time5 min
Views29K


Таблицы Markdown — это ад кромешный:


  1. В ячейках нельзя написать текст длиннее пары слов, а тем более список.
  2. Если диалект и позволяет пункт 1, это неудобно форматировать.
  3. Если ячейки не выровнены, таблицу невозможно читать.
  4. Нет поддержки однотипных таблиц и автоматики, вроде нумерации строк.

Пришло время написать фильтр для Pandoc, рисующий таблицы из структурированного YAML, с нумерацией строк, горизонтальной ориентацией, шаблонами граф, и заодно разобраться, как писать Lua-фильтры.

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments6

Автоматизируем создание отчетов в Word с данными из Excel на Python

Level of difficultyEasy
Reading time7 min
Views40K

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

Читать далее
Total votes 35: ↑33 and ↓2+33
Comments55

В продолжении темы автоматизации вывода файлов по шаблону. Excel

Reading time7 min
Views18K


Автоматизация заполнения и вывода файлов по шаблонам рутинных документов это одна из та областей в отрасли строительства по которой традиционно софт, кроме бухгалтерского, находится на уровне вылизанных поделок, на мой скромный взгляд. Поэтому, развивая тему, приглашаю обсудить те проблемы и возможности, с которыми пришлось столкнуться в процессе реализации на базе MS Excel.
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments15

Введение в REST API — RESTful веб-сервисы

Reading time4 min
Views1M
Эта статья начинает серию постов о разработке REST API:


Она содержит введение в RESTful веб-сервисы и краткий обзор REST и HTTP.


Intro to RESTful Web Services
Читать дальше →
Total votes 11: ↑4 and ↓7+1
Comments13

Что почитать игровому программисту?

Level of difficultyEasy
Reading time6 min
Views28K

Объём специфичных знаний, которые требуются рядовому программисту игр, даже если он только начал свою карьеру, вызывает у меня «лёгкую» тоску. Это одна из причин, почему большая часть людей, которые «горят делать игры», отсеивается на этапе технических собеседований (обычно их больше одного). Это нормально и грустно. Добавьте сюда, что нефундаментальные знания, вроде инструментов, библиотек и движков, приходится обновлять где‑то раз в 5–7 лет. Не вижу тут, что игрострой сильно отличается от других областей разработки. Если бы лет 15 назад «добрый я» скинул на почту список книг, которые придется прочитать и осмыслить, армия собранных граблей не была бы столь большой и разнообразной, и без ручек половинной длины. Осторожно, в конце статьи будет супердлинная картинка (взята с github отсюда, с разрешения автора).

У программиста нет цели, только путь.
Total votes 60: ↑60 and ↓0+60
Comments36

Расширение браузера для управления маршрутами на Микротике

Level of difficultyMedium
Reading time26 min
Views12K

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

Посочувствовать
Total votes 11: ↑10 and ↓1+10
Comments25

Python и чистая архитектура…

Level of difficultyMedium
Reading time12 min
Views26K

Всем привет! Сегодня я хочу поделиться своими опытом разработки на различных языках программирования и размышлениями касаемо проектирования серверных приложений. Речь пойдет про много обсуждаемую в последнее время чистую архитектуру в рамках языка python. Казалось бы, по заветам Роберта Мартина мы не должны зависеть от инструмента(зачастую под этим понимают фреймворк или библиотеку), однако это порождает множество ошибок и просто небольших неточностей в проектировании сервисов и даже выборе языка программирования.

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

Читать далее
Total votes 16: ↑11 and ↓5+10
Comments58

Актуальный гайд по написанию простого Windows-драйвера

Level of difficultyMedium
Reading time10 min
Views38K

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

Читать далее
Total votes 60: ↑60 and ↓0+58
Comments40

PLC Allen Bradley подключение с помощью Python

Level of difficultyEasy
Reading time2 min
Views3.6K

Привет, уважаемый читатель!

Хочу немного поведать тебе как через Python в локальной сети можно подключиться к PLC от Allen Bradley.

В свое время перепробовал кучу разных библиотек, но в один прекрасный день нашлась та самая "pycomm3".

Читать далее
Total votes 6: ↑6 and ↓0+6
Comments6

«Кто на ком стоял?» Про страдательный залог в технической документации

Reading time5 min
Views17K

В технической документации часто встречаются фразы с использованием страдательного залога. Параметры там «задаются», файлы «сохраняются», а программа «запускается». Ох, опасная эта форма для строгих и однозначных описаний! Почему же страдательный залог заставляет читателей страдать? Будем разбираться...

Читать далее
Total votes 79: ↑73 and ↓6+92
Comments52

Как и зачем составлять чек-листы при разработке проекта? Делюсь бесплатными шаблонами чек-листов

Level of difficultyEasy
Reading time6 min
Views16K

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

Чек-лист (англ. checklist) — структурированный список задач, элементов, свойств, факторов, полезный инструмент, помогающий упростить и упорядочить работу. Перекочевало оно в русский язык, конечно же, из английского.

Всем привет, я — Саша Комбаров, исполнительный директор в веб-студии. Мы любим браться за сложные, нестандартные проекты. Чтобы разработать продукт высокого качества мы составляем чек-листы на каждый этап разработки. Решили рассказать, как именно это делаем и что это дает. А в конце материала делюсь красивыми чек-листами.

Как составить чек-лист?
Total votes 9: ↑7 and ↓2+5
Comments12

Как я описал на Битриксе правила для корпоративных ачивок

Level of difficultyMedium
Reading time7 min
Views2.3K

Практически в каждой компании есть корпоративная система поощрений. Но вот как прописать для неё правила, да ещё и на Битриксе, — вопрос. Делюсь личным опытом.

Привет! Я full-stack веб-разработчик в IBS, меня зовут Вячеслав Степин, и это мой дебют на Хабре.

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

Как я решил эту задачу
Total votes 8: ↑8 and ↓0+8
Comments2

Zabbix + Wirenboard: мониторинг производства

Reading time9 min
Views20K

Введение

В этой статье я расскажу о том, как мы используем zabbix и wirenboard для мониторинга производственного оборудования, каким образом мы смоли получить данные с линий и источников основных ресурсов. Статья описывает концепцию и основные моменты организации мониторинга средствами свободного распространяемого ПО и в ней не будут обсуждаться серьезные системы класса SCADA. Моя задача была быстро развернуть мониторинг без капитальных вложений и начать получать данные как можно скорее с того что уже есть.

Вот как мы это реализовали
Total votes 20: ↑20 and ↓0+20
Comments13

Смотрим на технологическую сеть глазами злоумышленников

Reading time12 min
Views8.5K

Могут ли злоумышленники проникнуть в АСУ ТП[1]? Как они это делают и какие инструменты используют? А главное, обязательно ли атакующие должны что-то понимать в АСУ ТП и технологических системах, чтобы нанести ущерб промышленным предприятиям?

Дмитрий Федосов, специалист отдела экспертных сервисов и развития SOC в Positive Technologies, и Дмитрий Даренский, руководитель направления по развитию продуктов промышленной безопасности Positive Technologies, рассказывают, как злоумышленники видят технологическую сеть и что объективно необходимо для защиты промышленных инфраструктур. Их статья будет полезна специалистам SOC, инженерам промышленных компаний и тем, кто интересуется безопасностью АСУ ТП.

Читать статью
Rating0
Comments4

Открытый курс машинного обучения. Тема 1. Первичный анализ данных с Pandas

Level of difficultyEasy
Reading time15 min
Views1M


Открытый курс машинного обучения mlcourse.ai сообщества OpenDataScience – это сбалансированный по теории и практике курс, дающий как знания, так и навыки (необходимые, но не достаточные) машинного обучения уровня Junior Data Scientist. Нечасто встретите и подробное описание математики, стоящей за используемыми алгоритмами, и соревнования Kaggle Inclass, и примеры бизнес-применения машинного обучения в одном курсе. С 2017 по 2019 годы Юрий Кашницкий yorko и большая команда ODS проводили живые запуски курса дважды в год – с домашними заданиями, соревнованиями и общим рейтингом учаcтников (имена героев запечатлены тут). Сейчас курс в режиме самостоятельного прохождения.

Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments61
1

Information

Rating
Does not participate
Registered
Activity