Рубрика «Промышленное программирование» - 4

Кому в микроконтроллере жить хорошо? - 1
В каком году — рассчитывай, в какой земле — угадывай, задачился вопросами. Насколько ARM быстрее AVR? Какая разновидность протокола Modbus более «быстрая»? ASCII или RTU?
Читать полностью »

Я работаю инженером АСУТП и немного увлекаюсь программированием: при помощи Гугла и Stack Overflow делал несколько калькуляторов на HTML и javascript, делал бота для телеграма на php, даже немного программировал на c# по работе. В этот раз задача была куда интереснее и сложнее, хотя и звучала просто: «хочу видеть в своем браузере текущую скорость агрегата». Для начала я решил попробовать поискать готовый софт: естественно такое уже давно придумано, есть готовые и даже бесплатные SCADA системы, которые могут работать и в качестве веб сервера, но они все были сильно наворочены и сложны для моего понимания, к тому же нужно было просто вывести скорость. Поэтому я подумал что можно попробовать сделать это самому и вот что из этого вышло:

Backend

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

Как я при помощи Google сделал OPC2WEB клиент - 1
Читать полностью »

Всем привет. Сегодня продолжаем серию статей, которые я написал специально к запуску курса «Алгоритмы и структуры данных» от OTUS. По ссылке вы сможете подробно узнать о курсе, а также бесплатно посмотреть запись Demo-урока по теме: «Три алгоритма поиска шаблона в тексте».


Введение

Сортировка массива является одной из первых серьезных задач, изучаемых в классическом курсе «Алгоритмы и структуры данных» дисциплины computer science. В связи с этим задачи на написание сортировок и соответствующие вопросы часто встречаются на собеседованиях на позиции стажера или junior разработчика.
Читать полностью »

Спутниковая связь против экологических катастроф? Решение дешевле и проще чем вы думаете - 1

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

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

Про язык управления промышленными CNC-станками и всевозможными любительскими устройствами вроде 3D-принтеров написано очень много статей, но почитать о том, какова идеология этого языка и как она связана с аппаратной реализацией — почти негде. Поскольку моя работа связана непосредственно с программированием станков и автоматизацией производства, я попробую заполнить этот пробел, а также объяснить, почему выбрал такой странный заголовок.
Читать полностью »

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

Единственный нюанс — я опишу довольно низкий уровень работы протокола (Data Layer в терминологии EtherCAT). Потому что именно он нам понадобился и им мы ограничились. Неописанными (пока?) останутся Application Layer протоколы типа CanOPEN-over-EtherCAT (CoE).

Ethercat для начинающих - 1

Читать полностью »

Мы публикуем конспект вступительной лекции видеокурса «Бэкенд-разработка на Python». В ней Егор Овчаренко egorovcharenko, тимлид в Яндекс.Такси, рассказал о внутреннем устройстве интерпретатора CPython.

— Если кратко, какой у нас будет план? Сначала мы поговорим о том, почему будем изучать именно Python. Затем посмотрим, как работает интерпретатор CPython более глубоко, как он управляет памятью, как устроена система типов в Python, на словари, генераторы и исключения. Я думаю, это займет примерно час.
Читать полностью »

Мы заинтересованы в том, чтобы повышать образовательный уровень в IT-сфере,  и готовы строить высшее образование вместе с вузом.

В этом посте мы расскажем об образовательных проектах в Петербурге, которые поддерживает JetBrains: о бакалаврских и магистерских программах в НИУ ВШЭ, ИТМО, СПбГУ и о Computer Science Center.

Где учиться программированию в Петербурге: программы при поддержке JetBrains - 1

Читать полностью »

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

Лекции по курсу «Управление Техническими Системами», читает Козлов Олег Степанович на кафедре «Ядерные реакторы и энергетические установки», факультета «Энергомашиностроения» МГТУ им. Н.Э. Баумана. За что ему огромная благодарность.

Данные лекции только готовятся к публикации в виде книги, а поскольку здесь есть специалисты по ТАУ, студенты и просто интересующиеся предметом, то любая критика привествуется.

Введение в теорию автоматического управления. Основные понятия теории управления техническим системами - 1

Читать полностью »

Владей и заимствуй

Долгое время Rust позиционировался исключительно как язык для системного программирования. Попытки использовать Rust для высокоуровневых прикладных задач зачастую вызывали усмешку у значительной части сообщества: зачем использовать инструмент в том качестве, на которое он не рассчитан? Какая польза от возни с типами и анализатором заимствований (borrow checker), если есть Python и Java со сборкой мусора? Но другая часть сообщества всегда видела потенциал Rust именно как языка прикладного, и даже находила его удобным в использовании для быстрого прототипирования — во многом благодаря его особенностям, а не вопреки им.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js