Pull to refresh
18
0
Владимир @Opc-server

Программист для АСУ ТП

Send message

ОВЕН ПЛК110[M02]-MS4, HMI, OPC и SCADA, или сколько человеку необходимо Ромашкового чая. Часть 1

Reading time5 min
Views18K
Добрый день, дорогие читатели этой статьи. Пишу это в формате обзора

Небольшое предупреждение
Хочу предупредить, что если вы сразу поняли о чём речь из заголовка, советую первый пункт(собственно, ПЛК-ядро) менять на что угодно из ценовой категории на ступень выше.
Никакая экономия денег не стоит такого количества нервов, субъективно.

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

Зарождение. Постановка задачи


Собственно, работаю я в конструкторском бюро, и мы тестируем оборудование автоматизации для интеграции в наши заводы под ключ. Недавно на склад поступило оборудование ОВЕН и из него было решено собрать испытательный стенд:
Читать дальше →

SunCalc — солнечный калькулятор

Reading time3 min
Views255K
Хочу поделиться с вами небольшим, но полезным проектиком, разработанным мной на досуге — солнечным калькулятором SunCalc.



SunCalc показывает на карте для выбранного места и даты траекторию движения солнца и фазы освещённости в течении суток (и еще пару приятных мелочей).
Читать дальше →

Как общаются машины — протокол MQTT

Reading time10 min
Views60K

В предыдущей статье мы разбирали протокол Modbus, являющийся стандартом де-факто в промышленности для M2M-взаимодействия. Разработанный в далеком 1979 году, он имеет ряд существенных недостатков, которые решает MQTT.

Протокол MQTT достаточно молод (стандартизирован только в 2016 году), но уже успел получить широкое распространение в промышленности и IoT. Он был специально разработан максимально компактным, для нестабильных интернет-каналов и маломощных устройств, и позволяет гарантированно доставлять сообщения в случае потери пакетов и обрывов связи.

Главные особенности протокола MQTT:

  • Компактный и легковесный — минимальные накладные расходы на пересылку данных, для экономии трафика.
  • Устойчивость к потерям — гарантированная доставка в условиях нестабильных сетевых подключений.
  • Асинхронный — позволяет обслуживать большое количество устройств, и не зависит от сетевых задержек.
  • Поддержка QoS — возможность управлять приоритетом сообщений и гарантировать доставку сообщения адресату.
  • Динамическая конфигурация — не требует предварительно согласования полей и форматов данных, может конфигурироваться «на лету».
  • Работает за NAT — клиенты могут находиться за NAT, только сервер (брокер) должен иметь реальный IP. Позволяет обойтись без VPN и пробрасывания портов.
  • Удобная адресация — поля данных имеют текстовые названия, понятные для человека. Не нужно запоминать цифровые адреса и битовые смещения.
Читать дальше →

Как полностью отключить Защитник Windows на Windows 10

Reading time3 min
Views1.4M


В Windows 10 имеется встроенный антивирус Windows Defender («Защитник Windows»), защищающий компьютер и данные от нежелательных программ: вирусов, шпионских программ, программ-вымогателей и многих других типов вредоносных программ и действий хакеров.

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

Единственная проблема связана с тем, что полностью удалить или отключить Windows Defender у вас не выйдет – эта система глубоко интегрирована в Windows 10. Однако есть несколько обходных путей, при помощи которых вы можете отключить антивирус – это использование локальной групповой политики, реестра или настроек Windows в разделе «Безопасность» (временно).
Читать дальше →

Виртуальные файловые системы в Linux: зачем они нужны и как они работают? Часть 1

Reading time6 min
Views52K
Всем привет! Мы продолжаем запуски новых потоков по уже полюбившимся вам курсам и сейчас спешим сообщить о том, что у нас стартует новый набор по курсу «Администратор Linux», который запустится в конце апреля. К этому событию и будет приурочена новая публикация. С оригиналом материала можно ознакомиться тут.

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



Что такое файловая система? Опираясь на слова одного из первых контрибьюторов и авторов Linux Робера Лава, «Файловая система – это иерархическое хранилище данных, собранное в соответствии с определенной структурой». Как бы то ни было, это определение в равной мере хорошо подходит для VFAT (Virtual File Allocation Table), Git и Cassandra (база данных NoSQL). Так что именно определяет такое понятие, как «файловая система»?
Читать дальше →

15 попугаев: выбираем хостинг-провайдера VPS/VDS-серверов

Reading time15 min
Views76K

Выборы, выборы, кандидаты — хостинги.


«Нам нужен новый хостинг», — осенило нашего шефа в начале весны. Это не было весенним обострением, это было объективной необходимостью, потому что старая кобра пережила свой яд предыдущий почему-то решил, что раз клиенты из-за 152-ФЗ идут сами, то можно предоставлять услуги кое-как и забить на SLA. И тут я узнал новое: хостингов очень много, а вот хостингов с приемлемыми характеристиками — поискать. И это я ещё не читал отзывы клиентов — вот где портал в ад!

Итак, я вооружился мозгом, Google, нашими требованиями и стал выбирать лучший VPS хостинг, с которым мы, вероятно, продолжим свою жизнь. В процессе выбора получилась неплохая аналитика, и я решил её частично выложить на Хабр — вдруг поможет такому же админу-страдальцу? Enjoy my work, как говорится.

Читать дальше →

Ни минуты оффлайн — Выбираем промышленный LTE-роутер

Reading time22 min
Views71K
промышленный LTE роутер Termit CR41P, с антеннами Триада MA-2697

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

Мне надоело самостоятельно изобретать failover на USB модемах, и захотелось делегировать это отдельной умной железке. Я решил сравнить несколько промышленных роутеров, чтобы выяснить, оправдывают ли они свое название, и насколько они лучше моих костылей. В статье будут сравниваться роутеры производителей iRZ, Termit, Robustel.

Основные требования к роутерам:

  • 2 SIM-карты и автоматическое переключение между операторами — роутер должен автоматически определять потерю связи на одном операторе и переключаться на резервного. Это особенно важно для подвижных систем, когда покрытие сотовой сети не идеально.
  • Подключение по Ethernet — основная система должна видеть только шлюз по умолчанию, и не должна знать о модемной подсистеме на стороне роутера и переключениях каналов, поэтому никаких USB.
  • Поддержка современных протоколов VPN: IKEv2 и OpenVPN — для удобства администрирования, и чтобы не зависеть от реальных IP-адресов, роутеры должны уметь VPN. При этом поддерживать не только устаревшие PPTP и L2TP, но и современные протоколы.
  • (Опционально) поддержка GPS, наличие GPIO, serial интерфейсов RS-232/485 — эти функции не обязательны для наших задач, но мы рассмотрим их тоже, как бонус, который, возможно, будет кому-то полезен.
Читать дальше →

Как браузер помогает товарищу майору

Reading time6 min
Views147K
Знаете, когда я почти нечаянно обнаружил, читая прекрасную книгу Дмитрия Кетова «Внутреннее устройство Linux» (и это не реклама), что каждый скачанный нами файл из Интернета с легкой руки браузера оставляет в расширенных атрибутах файла (в inode файла, не в самом файле) как минимум полную ссылку на то откуда он был скачан, я пришел в легкое возбуждение и хотел тут же броситься спасать мир. Позже, немного изучив этот вопрос, почитав «коммиты» и «комменты», говорившие, что этой возможности, встроенной в ядро GNU/Linux, как минимум уже около 10 лет, что ею пользуется не только браузеры, но и, к примеру, популярная утилита wget (curl нет), и что эта вещь считается чуть ли не нормой в Linux (и, как выяснилось позже, в MacOS), то я немного подуспокоился. Одно не давало мне покоя: поиск ключевого слова getfattr в google по сайту «Хабра»: site:https://habr.com getfattr, равно как и по ЛОРУ: site:https://linux.org.ru getfattr ничего толком не дал. «Значит» — подумал я — «эта тема еще особенно не обсуждалась». — Что же, тогда пришло время ее обсудить, но для начала пришлось немного по-исследовать. И вот что я обнаружил:

image
Читать дальше →

Настройка UEFI-загрузчика. Самое краткое руководство в мире

Reading time6 min
Views586K

Как устроена загрузка современных ОС? Как при установке системы настроить загрузку посредством UEFI, не утонув в руководствах и ничего не сломав?


Я обещал "самое краткое руководство". Вот оно:


  1. Создаём на диске таблицу разделов GPT
  2. Создаём FAT32-раздел на пару сотен мегабайт
  3. Скачиваем из интернета любой UEFI-загрузчик
    (нам нужен сам загрузчик, это один бинарный файл!)
  4. Переименовываем и кладем этот файл на созданный раздел по адресу /EFI/Boot/bootx64.efi
  5. Создаём текстовый конфиг, кладем его там, где загрузчик ожидает его увидеть
    (настройка и местоположение конфига зависят от конкретной реализации загрузчика, эта информация доступна в интернете)
  6. После перезагрузки видим меню загрузчика
    (Если на диске установлена Windows 8 или 10 — с большой вероятностью это руководство сокращается до пунктов 3 — 5.)

TL;DR не надо прописывать путь к загрузчику в новых загрузочных записях UEFI — надо файл загрузчика расположить по стандартному "пути по-умолчанию", где UEFI его найдет, и вместо загрузочного меню UEFI пользоваться меню загрузчика, которое гораздо проще и безопаснее настраивается

Читать дальше →

Точечная маршрутизация на роутере с OpenWrt. WireGuard и DNSCrypt

Level of difficultyMedium
Reading time13 min
Views166K
Данный материал не является призывом к действию и публикуется исключительно в образовательных целях.

UPD 14.10.2023
Эта статья немного устарела. Здесь можно узнать, как использовать готовые списки IP-адресов, что не совсем актуально. Актуальная статья с маршрутизацией по доменам: https://habr.com/ru/articles/767464/


UPD 16.10.2022


  • Исправлены конфиги для Openwrt 22
  • Добавлен community список
  • В скрипт добавлена проверка загрузки файлов. Которая решает проблему, если при старте устройства не удалось сразу загрузить списки
  • DNSCrypt изменён на DNSCrypt v2

UPD 15.03.2023


  • Добавлена логика для работы с доменами, используются список доменов из community
  • Изменена проверка загрузки файлов в скрипте
  • В Ansible playbook теперь можно выбрать определённые списки

UPD 20.04.2023
Если у вас роутер получает IPv6 адрес, то роутинг будет работать криво. Пока нет инструкции для IPv6, поэтому нужно будет его выключить на роутере.


Часть 2: Поиск и исправление ошибок


Чем отличается от подобных материалов?


  • Реализация на чистом OpenWrt
  • Использование WireGuard
  • Конфигурация роутера организуется с помощью конфигов OpenWrt, а не кучей в одном скрипте
  • Предусмотрены ситуации при рестарте сети и перезагрузке
  • Потребляет мало ресурсов роутера: подсети содержатся в ipset, а не в таблицах маршрутизации. Что позволяет развернуть это дело даже на слабых устройствах
  • Автоматизация конфигурации с помощью Ansible (не требуется python на роутере)
Читать дальше →

Госзакупки: баланс между итальянской забастовкой и русской уголовкой

Reading time11 min
Views42K
Прочитал я на днях статью ЕЭТП о госзакупках, и даже поучаствовал в комментариях.

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

В статье будут рассмотрены основные этапы процесса госзакупки, указаны способы, которыми участники вынуждены пользоваться для их обхода. Данная статья не является пошаговой инструкцией. От читателя ожидается знание основных понятий и некоторый опыт в госзакупках по 44-ФЗ и 223-ФЗ.
Читать дальше →

Высоконагруженная распределенная система управления современной АЭС

Reading time15 min
Views20K
Без электричества не будет высоконагруженных интернет-сервисов, которые мы так любим. Как ни странно, системы управления объектами генерации электричества, например атомными электростанциями, тоже бывают распределенные, тоже подвержены высоким нагрузкам, тоже требуют множества технологий. К тому же, доля атомной энергетики в мире будет расти, управление этими объектами и их безопасностью – очень важная тема.

Поэтому давайте разбираться, что там есть, как оно все устроено, где основные архитектурные сложности и где в АЭС можно применить модные технологии ML и VR.


Читать дальше →

Куда приводят поиски идеальной SCADA

Reading time3 min
Views13K

Два года назад я написал статью “SCADA: в поисках идеала”. Идея была проста — превратить Qt Creator в среду для разработки SCADA. Теперь хочу рассказать, какой путь проделан и что получилось.



Удалось ли достигнуть идеального результата? — Разумеется, нет. На то он и идеал, что недостижим. Зато удалось заметно к нему приблизиться.

Читать дальше →

Эффекты фильтрации SVG. Часть 1. SVG фильтры 101

Reading time19 min
Views21K

Предлагаемая серия статей "Эффекты фильтрации SVG" Sara Soueidan, внештатного разработчика UI/UX интерфейса и автора многих технических статей, проживающей в Ливане, посвящена работе фильтров SVG и состоит из следующих статей:


Эффекты фильтрации SVG


  1. Эффекты фильтров SVG. Часть 1. SVG фильтры 101.
  2. Эффекты фильтров SVG. Часть 2. Контурный текст при помощи feMorphology.
  3. Эффекты фильтрации SVG. Часть 3. Эффект постеризации изображения при помощи feComponentTransfer.
  4. Эффекты фильтрации SVG. Часть 4. Двухцветные изображения при помощи feComponentTransfer.
  5. Эффекты фильтрации SVG. Часть 5. Соответствие текста текстуре поверхности при помощи feDisplacementMap



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


42 оператора расширенного поиска Google (полный список)

Reading time15 min
Views329K
Те, кто давно занимается поисковой оптимизацией, хорошо знают об операторах расширенного поиска Google. Например, почти все знают об операторе site:, который ограничивает поисковую выдачу одним сайтом.

Большинство операторов легко запомнить, это короткие команды. Но уметь эффективно их использовать — совсем другая история. Многие специалисты знают основы, но немногие по-настоящему овладели этими командами.

В этой статье я поделюсь советами, которые помогут освоить поисковые операторы для 15 конкретных задач.
Читать дальше →

Руководство и шпаргалка по Wireshark

Reading time7 min
Views337K
Даже поверхностное знание программы Wireshark и её фильтров на порядок сэкономит время при устранении проблем сетевого или прикладного уровня. Wireshark полезен для многих задач в работе сетевого инженера, специалиста по безопасности или системного администратора. Вот несколько примеров использования:

Устранение неполадок сетевого подключения


  • Визуальное отображение потери пакетов
  • Анализ ретрансляции TCP
  • График по пакетам с большой задержкой ответа

Исследование сессий прикладного уровня (даже при шифровании с помощью SSL/TLS, см. ниже)


  • Полный просмотр HTTP-сессий, включая все заголовки и данные для запросов и ответов
  • Просмотр сеансов Telnet, просмотр паролей, введённых команд и ответов
  • Просмотр трафика SMTP и POP3, чтение писем
Читать дальше →

Нестареющая классика, или обзор новых векторов атак через Microsoft Office

Reading time4 min
Views16K

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

Лучшая OS для безопасности: сравнение титанов

Reading time8 min
Views148K

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

Senior Engineer в поисках работы. Как я прошел 20 собеседований с HR и что я об этом думаю

Reading time16 min
Views104K
Предисловие для читателей Хабра — статья о поиске работы на рынке разработки в Украине (который в основном об аутсорсе на иностранных заказчиков), поэтому некоторые вещи могут показаться странными (LinkedIn, собеседования с заказчиками, обязательное требование разговорного английского, обсуждение ЗП в долларах) или нерелевантными для РФ. Тем не менее, статья имела большой успех на локальных ресурсах, и читатели попросили меня перевести её на русский.

Этой статьей я хочу начать цикл рассказов о том, как я на протяжении нескольких месяцев проходил собеседования в примерно 20-и разных компаниях на разные должности. Тут будут мои мысли о рынке труда, процессе найма, советы а так же несколько самых интересных историй. Цикл будет состоять из нескольких частей — HR собеседования, технические собеседования, финальные собеседования. Итак, первая часть.

Немного о себе. Программирую со школьного возраста, за деньги работаю 10 с хвостиком лет. Работал админом, программистом, тимлидом, РМ-ом, линейным менеджером. Выполнял обязанности SRE/DevOps, архитекта, HR, офис-менеджера, эникейщика.

Работал в кровавом энтерпрайзе, в стартапе, в аутсорсе. В основном занимался формошлёпством и крудами, имел дело с Java и бэкендом. За последние несколько лет пересел на фуллстек микс из Java, Ruby/RoR, Python, Node.js.

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

Всего я прошел примерно 20 собеседований с рекрутерами: половина из которых были из агенств и половина — штатные рекрутеры/HR компаний. Так что, могу сказать что некоторая статистика у меня есть.
Читать дальше →
1

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity