Как стать автором
Обновить
0
0
Отправить сообщение

Становление стандартов передачи телемеханических данных в электроэнергетике (МЭК 101/104) — особенности разработки

Время на прочтение6 мин
Количество просмотров28K
Здравствуйте! Меня зовут Юрий.

Преамбула

Проработав несколько лет в энергетической отрасли в теме организации передачи данных, хочу поделиться с сообществом полученными знаниями, в том числе тем, «как это было».
Сразу оговорюсь, что в тексте будут даны названия компаний и продуктов, которые на рынке уже давно, так что рассматривать это как рекламу я бы не стал. Также хочу отметить, что все сроки, связанные с «неразглашением конфиденциальной информации» давно уже прошли, что позволяет мне делиться полученной в процессе работы информацией. Какие-то конкретные фамилии «ответственных за» называться не будут, т.к. все они в той или иной степени развивали это направление.
Ссылки в статье даны для тех, кто желает погрузиться в тему немного глубже.


Для краткости я введу некоторые сокращения:
  • МЭК -протоколы по ГОСТ Р МЭК 60870-5-101/104
  • МЭК 101, 101-ый — протокол по ГОСТ Р МЭК 60870-5-101
  • МЭК 104, 104-ый — протокол по ГОСТ Р МЭК 60870-5-104


Как все начиналось


Повышение требований к информационным системам в современной Энергетике России привело к развитию средств и технологий передачи данных. В энергетики это направление называется телемеханика. В качестве основы передачи телемеханической информации был взят стек протоколов IEC 870-5-101 и в 2001 году появился его отечественный перевод ГОСТ Р МЭК 870-5-101.
Для его локализации было несколько причин:
  1. на тот момент «развелось» огромное количество разновидностей реализаций протоколов передачи данных и весь этот «зоопарк» все сложнее и сложнее было как-то упорядочивать;
  2. у всех существующих протоколов было большое количество ограничений, по емкости передаваемых данных, по типу передаваемых данных, отсутствовали средства диагностики качества передаваемых данных, не было возможности для расширения и пр.;
  3. на наш рынок постепенно начали приходить зарубежные поставщики решений и оборудования, где процесс стандартизации уже давно шел.

Читать дальше →
Всего голосов 4: ↑3 и ↓1+2
Комментарии14

Основные типы распределений вероятностей в примерах

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров13K

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

Читать далее
Всего голосов 58: ↑58 и ↓0+58
Комментарии11

Самое понятное объяснение Специальной теории относительности

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров98K

Специальная теория относительности - удивительная теория, которая опровергла многие представления о мире, в которых человечество не сомневалось всю историю своего существования.

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

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

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

Читать далее
Всего голосов 386: ↑386 и ↓0+386
Комментарии388

Деплой Flutter-приложений и особенности платформ

Время на прочтение8 мин
Количество просмотров2.4K

Всем привет! Меня зовут Александр Омельяненко, я Flutter-разработчик в AGIMA. Сегодня расскажу про релиз приложений в сторы. И поскольку работаю с кросс-платформой, речь пойдет как про Android, так и про iOS. Уверен, каждый участник команды должен понимать, что происходит с приложением, когда оно готово. Поэтому всё объясняю подробно: какие сторы использовать, каких подводных камней ожидать, что делать, если релиз отклонили.

Читать далее
Всего голосов 17: ↑17 и ↓0+17
Комментарии2

Жизненный цикл приложения на Flutter

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров4.6K

Всем привет! Сегодня с вами я, Александр Чаплыгин, Flutter dev Amiga. Расскажу вам одну  интересную тему — отслеживание состояния приложения: в фоне, закрыто или оно не активно. Вы поймете, как обрабатывать переходы в новое состояние. Также  рассмотрим 2 подхода к реализации, которые могут выручить в той или иной ситуации.

Читать далее
Всего голосов 11: ↑7 и ↓4+3
Комментарии0

Основы компьютерных сетей. Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP

Время на прочтение51 мин
Количество просмотров236K


Всем привет! Спустя продолжительное время возвращаемся к циклу статей. Долгое время мы разбирали мир коммутации и узнали о нем много интересного. Теперь пришло время подняться чуть повыше и взглянуть на сторону маршрутизации. В данной статье поговорим о том, зачем нужна маршрутизация, разберем отличие статической от динамической маршрутизации, виды протоколов и их отличие. Тема очень интересная, поэтому приглашаю всех-всех к прочтению.
Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии1

Протоколы «бесшовного» резервирования PRP и HSR

Время на прочтение12 мин
Количество просмотров30K
В промышленности требования к ЛВС становятся все более серьезными, т.к. АСУ ТП берут на себя все больший функционал, и потери данных могут повлечь серьезные издержки.

Например, в энергетике, если на терминал РЗА не попадут вовремя данные от измерительных преобразователей, то это может быть чревато распространением короткого замыкания на смежные участки электросети, что скажется убытками гораздо более серьезными, нежели в случае своевременного отключения участка с КЗ. Поэтому часто в проектах энергетики можно встретить требование «Время восстановления менее 1 мс».
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии4

Немного про ПИД-регуляторы или «велосипед автоматизации». Часть 3

Время на прочтение10 мин
Количество просмотров10K

Часть 3. Реализация регулятора – вот теперь регулятор.

продолжение практической реализации ПИД-регулятора

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии4

Создаем federated plugin для Flutter-проекта

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров1.5K

Всем привет! Это Мурат Насиров, Flutter-разработчик в Friflex. Мы разрабатываем высоконагруженные мобильные приложения для бизнеса и специализируемся на Flutter. В этой статье я рассказываю о том, как создать federated plugin для Flutter-проектов.

В мае 2022 года на Google I/O был представлен урок по созданию federated plugin в Flutter. Federated plugin — это способ разделения функционала в рамках одного плагина на разные платформы. Он позволяет сегрегировать функционал на зоны ответственности для каждой из платформ. 

К примеру, если мы создаем плагин для работы с bluetooth, тогда нужно будет создавать пакеты отдельно для каждой платформы, то есть: flutter_bluetooth (как пакет flutter), flutter_bluetooth_android, flutter_bluetooth_ios и flutter_bluetooth_platform_interface (интерфейс для работы с платформами). 

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

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Что нужно знать о gRPC системному аналитику

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров19K

Всем привет! Я Ирина Матевосян, системный аналитик в направлении продуктового и системного анализа в отделе Tinkoff Mobile Core. Мы разрабатываем общие библиотеки, которые используют все мобильные приложения экосистемы Тинькофф. 

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

Читать далее
Всего голосов 19: ↑19 и ↓0+19
Комментарии6

Как изучать китайский язык / 怎样学习汉语? Пошаговая инструкция

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров40K

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

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

И как же?
Всего голосов 26: ↑17 и ↓9+8
Комментарии39

Как легко сделать подмену данных на вебе?

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров12K

Привет, Хабр!

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

В роли QA-инженера, активно тестирующего веб, я часто сталкиваюсь с необходимостью изменения запросов/ответов API, статус кода ответа и других параметров. Иногда возникают ситуации, когда фронт готов, но доработки с бэка еще предстоит дождаться.

Тут на помощь приходит Requestly! 

Читать далее
Всего голосов 10: ↑9 и ↓1+8
Комментарии13

Паттерны проектирования в Dart. Часть 2

Время на прочтение12 мин
Количество просмотров6K

В первой части статьи мы рассмотрели основные и порождающие шаблоны и особенности их реализации на Dart. Теперь пришло время поговорить о структурных шаблонах и о их реализации с использованием синтаксических конструкций языка Dart и возможностей стандартной библиотеки. Мы будем стараться исключать возможности, предоставляемые такими сущностями языка как символы и рефлексия (пакет dart:mirrors), поскольку они не поддерживаются во Flutter (но обозначим возможные их применения при использовании Dart для бэкэнда), предпочитая использовать кодогенерацию во всех ситуациях, где это возможно.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Кодогенерация в Dart. Часть 1. Основы

Время на прочтение3 мин
Количество просмотров7.3K

Известно, что для программиста очень хорошо быть ленивым, потому что делать больше с меньшими затратами — ключ к прогрессу. Никто не любит делать одно и то же снова и снова. Это утомительно, скучно, да и совсем не креативно. Повторяя одно и то же действие мы часто делаем ошибки, но, к счастью, есть те, кто действительно хорош и эффективен в выполнении однотипных задач. И это КОМПЬЮТЕРЫ!


https://yougottobekidding.wordpress.com/2012/02/18/geeks-and-repetitive-tasks/


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


В мире Android разработки такие инструменты хорошо известны каждому разработчику. Это и Retrofit, и Dagger, и Room. А как насчет Dart? И не менее важный вопрос: что нам нужно, чтобы создавать собственные инструменты для кодогенерации?

Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии0

Кодогенерация в Dart. Часть 2. Аннотации, source_gen и build_runner

Время на прочтение7 мин
Количество просмотров9K

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


Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Разработка мультиплеерной игры на Dart+Flutter

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров5.1K

Разработка простой мультиплеерной игры с использованием языка программирования dart на сервере и flutter+flame на клиенте. Небольшой гайд от любителя игростроя.

Читать далее
Всего голосов 9: ↑9 и ↓0+9
Комментарии2

Разработка мультиплеерной игры на Dart+Flutter. Часть 2

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров1.9K

Разработка простой мультиплеерной игры с использованием языка программирования dart на сервере и flutter+flame на клиенте. Небольшой гайд от любителя игростроя. Часть 2

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Как мы WASM в PWA на Flutter прикручивали

Время на прочтение6 мин
Количество просмотров2.2K

— Парни, у нас PWA тормозит! — в голосе Димы чувствовались нотки интриги.

Вообще-то мы разрабатываем на Flutter кроссплатформенное приложение для мобильных устройств, но коль уж фреймворк позволяет, на сдачу запустили и веб-версию. Поначалу с PWA мы отхватили немало проблем, но со временем большую часть из них победили. Только вот производительность (из песни слов не выкинешь) так и осталась ахиллесовой пятой приложения — даже на достаточно мощных устройствах нет-нет, да проскакивали микрофризы.

Новостью это не было ни для нас, ни для Димы, поэтому причина озвучивания этого факта ни с того, ни с сего была не ясна.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии10

Использование Provider, Riverpod, Bloc(Cubit), Redux, MobX на одном простом примере

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров8.4K

Управление состоянием – это фундаментальная концепция всех фреймворков для разработки приложений, и Flutter не является исключением. Существует несколько техник и инструментов, которые можно использовать, и выбор наиболее подходящего из них часто зависит от сложности и требований приложения, которое вы создаете. В этой статье рассмотрено несколько отличных способов управления состоянием – (с помощью) Provider, Riverpod, Bloc(Cubit), Redux, Mobx.

Узнать
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

System Design для самых маленьких. Reference к интервью

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров17K

Эта статья-инструкция по построению высоконагруженных распределенных систем. Описанный подход может быть полезен как reference при подготовке к интервью по system design в FAANG и не только.

Читать далее
Всего голосов 19: ↑17 и ↓2+15
Комментарии3
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность