Pull to refresh
3
0
Send message

Полезные возможности ST+Codesys 3, которые многие не замечают

Reading time8 min
Views21K

За время работы инженером-программистом ПЛК очень часто в ходе разработки находились не самые очевидные, но довольно простые и красивые решения как типовых, так и специализированных задач. В этой статье хочу поделиться опытом и рассказать как сделать разработку под ПЛК приятнее и эффективнее.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments2

Кибербезопасность для самых маленьких

Reading time10 min
Views30K

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

Цель статьи - поделиться практиками, которые я применил для защиты данных при поднятии собственного VPS в публичной сети. Всегда, когда твой IP открыт всему Миру напоказ и доступен извне внутренних контуров сети - это означает, что любой прохожий может устроить тебе неприятности: похитить твои данные, завладеть твоим сервером и сломать твое замечательное приложение. Я буду приводить пример атаки, показывать, как ее можно заметить и после этого будем разбирать возможные способы защиты.

Защитить данные!
Total votes 22: ↑22 and ↓0+22
Comments32

Как мы отказались от JPEG, JSON, TCP и ускорили ВКонтакте в два раза

Reading time24 min
Views168K

На протяжении всей жизни мне приходится экономить вычислительные и сетевые ресурсы: сначала были компьютеры с 300 кГц (кило — не гига!) и 32 Кбайт RAM, интернет по dial-up. Потом я решал олимпиадные задачки. Теперь имею дело с терабайтами трафика и 50 млрд событий в сутки. И хотя современные телефоны в 1 000 раз мощнее любого оборудования двадцатилетней давности, я до сих пор оптимизирую. Думал даже, что это со мной что-то не так. Но потом понял, что все постоянно что-нибудь оптимизируют. 

Эта статья в меньшей степени о том, почему нужно бороться за производительность, и в большей о том, на что сейчас стоит заменить устаревший стек из JPEG, JSON, gzip и TCP — и как это сделать. 

Спойлер: у нас есть решение и мы его не только показываем — ссылки на open source в конце статьи.

Читать далее
Total votes 336: ↑324 and ↓12+411
Comments300

Безопасность ПЛК: 20) Ловите ложные срабатывания для критических предупреждений

Reading time4 min
Views2.6K

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

Разбираем последние рекомендации по безопасному программированию ПЛК. Обсудим где, кому и зачем данные рекомендации нужны.

Всех неравнодушных прошу под кат.

Читать далее
Total votes 2: ↑1 and ↓10
Comments9

Безопасность ПЛК: 16-19) Отслеживайте длительность циклов, потребление памяти, логируйте аварийные ситуации

Reading time5 min
Views2.8K

Суммируйте время циклов каждые 2-3 секунды и направляйте на HMI для визуализации на графике.

Логируйте время безотказной работы ПЛК, чтобы знать, когда он был перезапущен. Отслеживайте время безотказной работы на HMI для диагностики.

Храните события неожиданной остановки ПЛК из-за сбоев или отключений для будущего извлечения системой мониторинга в HMI, чтобы проанализировать их перед перезапуском ПЛК. Синхронизируйте время для получения корректных данных.

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

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

K8S для начинающих. Первая часть

Reading time10 min
Views197K

Технологический прогресс не стоит на месте, особенно если это касается области IT. Еще в 2014 году, когда Google открыл исходный код проекта Kubernetes, который вобрал в себя лучшее из Borg и Omega - внутренних систем Google, его мало кто знал и использовал. Но прошло 7 лет и K8S (он же Kubernetes) стал успешным open-source проектом, который используется по всему миру. В большинстве компаний инфраструктура построена на K8S - от маленьких проектов до огромных кластеров и облаков, которые обеспечивают бесперебойную доступность сервисов. Давайте коснемся Kubernetes и расскажем, как им пользоваться на практике. Но сначала надо спросить, а что такое этот ваш Kubernetes и для чего он собственно нужен. Подойдет ли он для ваших проектов.

Читать далее
Total votes 16: ↑15 and ↓1+15
Comments1

Безопасность ПЛК: 13-15) Сетевые интерфейсы и безопасная перезагрузка ПЛК

Reading time6 min
Views2.2K

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

Ограничьте типы соединений и доступные данные для сторонних интерфейсов. Соединения или интерфейсы передачи данных должны быть четко определены и ограничены, чтобы чтение/запись были доступны только для необходимого обмена данными.

Определите безопасные состояния для процесса в случае перезапуска ПЛК.

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

Безопасность ПЛК: 11, 12) Реализуйте механизмы для проверки достоверности измерений и входных значений

Reading time4 min
Views1.1K

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

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

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

Безопасность ПЛК: 10) Разделите регистры по их назначению

Reading time4 min
Views2.1K

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

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

Безопасность ПЛК: 8,9) Проверяйте входные переменные, следите за косвенными обращениями

Reading time6 min
Views2.1K

Доступ к переменным ПЛК должен быть ограничен. Значение с HMI, вышедшее за допустимые пределы, должно быть корректно обработано или оператор должен получить об этом сообщение.

Следите за обращением к элементам массива, чтобы избежать ошибку неучтённой единицы.

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

Эмулятор электросчётчиков

Reading time10 min
Views9K

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

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

Безопасность ПЛК: 6,7) Проверяйте таймеры, счётчики и парные входы/выходы

Reading time4 min
Views2.6K

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

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

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

Безопасность ПЛК: 4,5) Используйте переменные-флаги, хеши и контрольные суммы для проверки целостности проекта

Reading time3 min
Views2.3K

Добавляйте счётчики для флагов ошибок.

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

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

Безопасность ПЛК: 3) Вся логика процесса по возможности должна быть в ПЛК

Reading time3 min
Views3.8K

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

Разбираем рекомендации по безопасному программированию ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

Читать далее
Total votes 2: ↑1 and ↓10
Comments5

Безопасность ПЛК: 2) Следите за режимом работы

Reading time3 min
Views3.9K

Держите ПЛК в режиме исполнения. Если ПЛК вышел из режима исполнения, то следует выдать предупреждение оператору.

Разбираем рекомендации по безопасному программироваю ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

Безопасность ПЛК: 1) Модульность программы

Reading time3 min
Views4.9K

Разделите код на модули, рационально используйте программные организационные единицы. Тестируйте модули независимо.

Разбираем рекомендации по безопасному программироваю ПЛК, формируем список своих рекомендаций. Всех неравнодушных прошу под кат.

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

Всё не то и всё не так — когда твой компьютер ПЛК

Reading time3 min
Views13K

Статья указывает на особенности разработки для промышленных контроллеров. Написана для объеденения программистов данного направления.

Если мем понял - добро пожаловать под кат, эта статья для тебя.

Если хочешь понять мем - смело жми ПУСК.

ПУСК
Total votes 11: ↑7 and ↓4+9
Comments54

Information

Rating
Does not participate
Registered
Activity