**Коммуникационные протоколы в электроэнергетике: ModBus — Transcript & SRT | SozAI**
Source: https://sozai.app/transcript/kommunikatsionnye-protokoly-v-elektroenergetike-modbus-transcript/

Answers

## Questions about this video

Какова основная цель серии видеороликов, которую планирует выпустить Сиренко Николай?

Основная цель серии видеороликов — создать первый бесплатный всеобъемлющий курс по работе с коммуникационными протоколами в электроэнергетике. Этот курс будет полезен как специалистам РЗА, так и АСУТП, предлагая профессиональный, интересный и познавательный контент.

Что такое протокол Modbus и когда появилась его первая спецификация?

Протокол Modbus — это коммуникационный протокол, основанный на архитектуре ведущий-ведомый, который представляет собой набор правил для обмена информацией между устройствами. Его первая спецификация появилась в 1979 году, и он является одним из самых простых протоколов, используемых в энергетике.

Какие физические реализации протокола Modbus наиболее распространены в энергетике?

Наибольшее распространение в энергетике получили две физические реализации: интерфейс RS-485 с наложенным на него протоколом Modbus-RTU и Ethernet (медный или оптический) с наложенным на него протоколом Modbus-TCP. В Modbus-RTU может быть только одно ведущее устройство, тогда как в Modbus-TCP ведущих устройств может быть несколько.

## Full Transcript — Download SRT & Markdown

00:04

Speaker A

Меня зовут Сиренко Николай, и я работаю в компании Микропроцессорные технологии.

00:09

Speaker A

Мы планируем выпустить серию роликов про работу с коммуникационными протоколами в сфере электроэнергетики.

00:14

Speaker A

Эти видео планируются как первый бесплатный всеобъемлющий курс, который будет полезен как для специалистов РЗА, так и АСУТП.

00:21

Speaker A

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

00:32

Speaker A

У каждого видео будут тайм-коды для облегчения навигации.

00:35

Speaker A

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

00:43

Speaker A

Тема первого видео будет протокол Modbus.

00:45

Speaker A

Протокол Modbus - это коммуникационный протокол, основанный на архитектуре ведущий-ведомый, первая спецификация которого появилась в 1979 году.

00:55

Speaker A

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

01:01

Speaker A

Можно сказать, что это язык, на котором общаются устройства.

01:06

Speaker A

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

01:13

Speaker A

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

01:19

Speaker A

Наибольшее распространение в энергетике получил интерфейс RS-485 с наложенным на него протоколом Modbus-RTU.

01:26

Speaker A

И Ethernet с наложенным на него протоколом Modbus-TCP.

01:30

Speaker A

Ethernet, в свою очередь, бывает медным, то есть по витой паре, и оптическим, передаваемым по оптоволокну.

01:35

Speaker A

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

01:42

Speaker A

И несколько ведомых, называемых слейвами.

01:44

Speaker A

Это означает, что только мастер может быть инициатором обмена данными.

01:50

Speaker A

А всё, что остаётся слейвом - это отвечать на его запросы.

01:53

Speaker A

Таким образом, у ведущего устройства нет возможности определить, прервалась ли связь нештатно.

02:00

Speaker A

Либо у ведущего устройства нет к нему запросов.

02:03

Speaker A

Конечно, тут можно оговориться и сказать, что устройство может анализировать трафик.

02:08

Speaker A

Но на практике это требует много ресурсов и не применяется.

02:11

Speaker A

Совсем другое дело - Modbus-TCP, использование стека TCP/IP даёт некоторую свободу.

02:16

Speaker A

И ведущих устройств в сети может быть несколько.

02:19

Speaker A

Протокол Modbus является самым простым из используемых в энергетике.

02:23

Speaker A

В нём нет никакой оптимизации трафика.

02:26

Speaker A

Обмен информацией происходит по принципу запрос-ответ.

02:30

Speaker A

Чтобы у ведущего устройства, а в основном это SCADA-системы, полностью обновилась модель данных.

02:37

Speaker A

Оно должно честно просить каждый интересующий его адрес в каждом устройстве.

02:41

Speaker A

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

02:43

Speaker A

Мне очень нравится пример с выдвижными шкафчиками.

02:46

Speaker A

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

02:52

Speaker A

Точно так же и ведущее устройство в протоколе Modbus должно просить каждый адрес, чтобы узнать, какие данные там находятся.

02:59

Speaker A

Всё это создаёт значительный трафик в сети при опросе большого количества устройств.

03:05

Speaker A

И увеличивает цикл опроса каждого параметра.

03:07

Speaker A

Но обычно требования к SCADA-системам не очень высокие, достаточно, чтобы информация обновлялась.

03:13

Speaker A

Со скоростью, с которой изменения может заметить оперативный персонал.

03:16

Speaker A

Поэтому протокола Modbus для таких целей вполне достаточно.

03:21

Speaker A

Теперь мы перейдём к практике.

03:25

Speaker A

Я рекомендую для подключения использовать программу Modbus Poll последней версии.

03:30

Speaker A

Это очень хорошая программа с широким функционалом.

03:34

Speaker A

Во вкладке Connection мы выбираем Serial Port для подключения по RS-485.

03:40

Speaker A

И Modbus TCP/IP для подключения по Ethernet.

03:44

Speaker A

У меня сейчас выполнено подключение по RS, поэтому я выбрал Serial Port.

03:49

Speaker A

Для подключения компьютера к устройству потребуется переходник с RS-485 на USB.

03:54

Speaker A

Если вы подключаетесь по Modbus-RTU.

03:57

Speaker A

Я использую вот такой переходник, называется Юка.

04:00

Speaker A

Если же вы подключаетесь по Ethernet, то можно подключаться как напрямую к сетевой карте.

04:06

Speaker A

Так и подключать устройство к любому маршрутизатору, относящемуся к вашей сети.

04:11

Speaker A

По тому, как настраивается сеть, у нас планируется отдельное видео.

04:15

Speaker A

Дальше нам нужно выбрать номер COM-порта.

04:18

Speaker A

Если вы не знаете, какой у вас номер COM-порта, то это всегда можно посмотреть в диспетчере устройств.

04:24

Speaker A

Подключая и отключая устройство.

04:27

Speaker A

Далее мы выбираем скорость обмена, количество бит, чётность и количество стоп-бит.

04:32

Speaker A

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

04:36

Speaker A

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

04:40

Speaker A

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

04:44

Speaker A

Нажимаем Окей и подключаемся.

04:47

Speaker A

Теперь настроим адреса для чтения.

04:49

Speaker A

Заходим в Setup, Read/Write Definition.

04:51

Speaker A

Slave ID указываем Modbus-адрес устройства.

04:54

Speaker A

Сейчас я подключаю к устройству Iris-DIN производства нашей компании.

04:58

Speaker A

Обратите внимание, в каком формате указаны адреса в карте памяти устройства.

05:03

Speaker A

Если перед адресом стоят символы 0x, то это шестнадцатеричная система счисления.

05:08

Speaker A

И нужно переключиться на неё.

05:10

Speaker A

Кроме того, вы всегда можете использовать калькулятор, предварительно переведя его в режим программист.

05:16

Speaker A

Для перевода из одной системы счисления в другую.

05:18

Speaker A

Для наглядного отображения адресов советую установить настройки, как у меня.

05:23

Speaker A

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

05:26

Speaker A

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

05:32

Speaker A

Потому что они могут не совпадать с предусмотренными по стандарту.

05:35

Speaker A

И тогда прочитать данные не получится.

05:37

Speaker A

Если указать адрес правильно, но функцию выбрать некорректно, то от устройства будет приходить ответ о некорректно выбранной функции.

05:44

Speaker A

Первая функция предназначена только для считывания дискретных выходов.

05:48

Speaker A

С её помощью можно считывать биты состояния: один включено и ноль отключено.

05:53

Speaker A

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

05:59

Speaker A

Так как размер кадра должен быть кратен одному байту, то если запросить один адрес, то оставшиеся 7 бит придут заполненными нулями.

06:06

Speaker A

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

06:10

Speaker A

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

06:16

Speaker A

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

06:24

Speaker A

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

06:30

Speaker A

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

06:36

Speaker A

Если таких адресов не слишком много.

06:38

Speaker A

Это относится ко всем функциям, а не только к Read Coils.

06:41

Speaker A

Выбрать количество запрашиваемых адресов можно ниже, в графе Quantity.

06:46

Speaker A

Функция Read Discrete Inputs, как понятно из названия.

06:50

Speaker A

Предназначена для считывания дискретных входных сигналов.

06:53

Speaker A

Её работа аналогична работе функции Read Coils, точно так же можно считать только биты, которые упаковываются в байты.

06:59

Speaker A

Read Holding Registers, на мой взгляд, самая популярная функция для получения данных.

07:04

Speaker A

Изначально она была нужна для чтения аналоговых сигналов.

07:08

Speaker A

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

07:16

Speaker A

И не возникает путаницы с тем, что по разным адресам находятся данные с разными функциями чтения.

07:22

Speaker A

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

07:27

Speaker A

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

07:33

Speaker A

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

07:38

Speaker A

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

07:44

Speaker A

В первом поле содержится адрес устройства, к которому адресуется запрос.

07:49

Speaker A

Естественно, на него должно отвечать только устройство с указанным адресом.

07:53

Speaker A

Остальные устройства, получившие данный запрос, игнорируют его.

07:58

Speaker A

Второе поле - это номер функции чтения.

08:00

Speaker A

Если мы будем менять функцию, то оно будет меняться.

08:05

Speaker A

Следующие два поля - это адрес первого регистра.

08:08

Speaker A

С которого будет начинаться чтение.

08:12

Speaker A

И затем два поля - это количество считываемых адресов.

08:15

Speaker A

Последние два поля - это контрольная сумма.

08:17

Speaker A

Для записи данных можно два раза щёлкнуть по адресу, вписать отправляемое значение и нажать Send.

08:22

Speaker A

Если выбрана эта галочка, то окно закроется при получении подтверждения от устройства.

08:26

Speaker A

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

08:32

Speaker A

Но в таком случае обращайте внимание на поддержку такой записи со стороны устройства.

08:38

Speaker A

Если есть необходимость выводить данные в лог, то нужно перейти в Setup, Log или Excel Log.

08:43

Speaker A

Далее нужно настроить, что и в каких случаях вы хотите логировать.

08:47

Speaker A

Затем обязательно выбрать файл, в который будет сохраняться лог, и после этого начнётся запись данных.

08:53

Speaker A

Если вы хотите в рамках тестирования отправить произвольное сообщение, например, с некорректной контрольной суммой.

09:00

Speaker A

Чтобы проверить то, что устройство проигнорирует его.

09:04

Speaker A

То можно воспользоваться вкладкой Function, Test Center.

09:08

Speaker A

Скопируем сообщение, зайдём во вкладку и изменим контрольную сумму.

09:12

Speaker A

Видим, что устройство полностью игнорирует данное сообщение.

09:24

Speaker A

Весь трафик мы можем посмотреть, перейдя в Display, Communication.

09:29

Speaker A

TX - это запросы к устройству, а RX - это его ответы.

09:36

Speaker A

Иногда длины одного адреса не хватает, и данные приходится считывать из нескольких объединённых адресов.

09:42

Speaker A

Например, в Iris-DIN максиметр частоты находится по адресам 162 и 163 в шестнадцатеричной системе отсчёта.

09:50

Speaker A

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

09:54

Speaker A

Потому что существует неопределённость, в какой последовательности нужно рассчитывать байты.

10:00

Speaker A

То есть, какой из двух адресов будет стоять на первом месте.

10:04

Speaker A

И в какой последовательности должны быть биты внутри байт.

10:08

Speaker A

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

10:13

Speaker A

Например, 16 дискретных входов не распределяются по 16 адресам, а упаковывают в один адрес в разные биты.

10:21

Speaker A

Такую информацию нужно читать третьей функцией.

10:24

Speaker A

Но представлять её в побитовом виде.

10:27

Speaker A

Например, адрес 130 в шестнадцатеричном представлении содержит 13 бит информации.

10:33

Speaker A

Отображающих дискретные входы.

10:38

Speaker A

Чтобы увидеть их, я выбираю формат Binary.

10:45

Speaker A

Теперь каждый бит соответствует дискретному входу.

10:48

Speaker A

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

10:52

Speaker A

Как вы видите, нумерация бит происходит справа налево.

10:56

Speaker A

Точно так же с отправкой информации в побитовом виде.

11:00

Speaker A

Например, первый адрес подразумевает такое управление.

11:05

Speaker A

Нужно два раза щёлкнуть по адресу, когда он находится в бинарном представлении.

11:10

Speaker A

И тогда откроется окно для выбора отправляемых бит.

11:13

Speaker A

Конечно, можно всё то же самое рассчитать на калькуляторе.

11:15

Speaker A

Например, отключение Bluetooth будет 100 в двоичной системе.

11:20

Speaker A

Пересчитав то же самое в десятичной системе, получим 4.

11:24

Speaker A

Поэтому можно либо поставить галочку в третьем окне, если выбрано двоичное представление.

11:31

Speaker A

Либо записать 4, предварительно пересчитав на калькуляторе.

11:35

Speaker A

Если выбрано десятичное, и вы любите страдать.

11:37

Speaker A

Лично, на мой взгляд, выбор очевиден.

11:40

Speaker A

Кроме создания мастера опроса, можно создавать ведомое устройство.

11:43

Speaker A

Для этого я советую использовать программу Modbus Slave.

11:48

Speaker A

Она входит в тот же пакет, что и Modbus Poll.

11:52

Speaker A

Можно даже подключить ведущее устройство, созданное в Modbus Poll, и ведомое, созданное в Modbus Slave.

11:58

Speaker A

Но для этого понадобится создать пару виртуальных портов.

12:00

Speaker A

Я использую программу Virtual Serial Port Driver Pro.

12:04

Speaker A

Нужно зайти во вкладку Pairing, выбрав номер для виртуальных портов, я использовал 100 и 101.

12:11

Speaker A

Чтобы не перепутать с реальными физическими устройствами.

12:14

Speaker A

И добавить пару.

12:16

Speaker A

Теперь мы видим, что данная пара появилась в диспетчере устройств.

12:19

Speaker A

По сути, это сквозной виртуальный канал с двумя виртуальными выводами в виде COM-портов.

12:26

Speaker A

Теперь подключим к одному из них виртуальное ведущее устройство.

12:30

Speaker A

А к другому - виртуальное ведомое.

12:33

Speaker A

И получим полноценную виртуальную систему.

12:36

Speaker A

Для физической реализации такой системы нам бы понадобилась SCADA-система в качестве ведущего устройства.

12:41

Speaker A

Измерительный прибор в качестве ведомого.

12:46

Speaker A

И физическая шина RS-485.

12:49

Speaker A

Мы же будем всё это эмулировать.

12:52

Speaker A

В данной системе можем как отправлять данные с ведущего устройства на ведомое.

12:57

Speaker A

И они там будут сохраняться.

13:00

Speaker A

Так и менять данные в модели ведомого устройства, и эти изменения будет видеть ведущее устройство после опроса.

13:06

Speaker A

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

13:12

Speaker A

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

13:16

Speaker A

Кроме того, эта программа будет полезна, если вы хотите посмотреть трафик на шине Modbus-RTU.

13:21

Speaker A

Где уже есть ведущее устройство.

13:24

Speaker A

Как я уже говорил ранее, в Modbus-RTU в сети может быть только одно ведущее устройство.

13:30

Speaker A

Поэтому не получится просто подключиться в сеть при помощи Modbus Poll и включить монитор сети.

13:35

Speaker A

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

13:42

Speaker A

И когда эти запросы будут происходить одновременно, в сети будут возникать коллизии.

13:47

Speaker A

Обмен данными будет невозможен.

13:50

Speaker A

Поэтому в сеть нужно подключаться именно как ведомое устройство.

13:54

Speaker A

Для этого после подключения в Modbus Slave выбираем Display, Communication.

13:58

Speaker A

Теперь можно анализировать трафик в сети без коллизий.

14:02

Speaker A

Сегодня мы рассмотрели использование протокола Modbus в электроэнергетике.

14:06

Speaker A

Надеюсь, что это видео было для вас полезным.

14:10

Speaker A

До встречи на канале и лёгких вам коммуникаций.

14:14

Speaker A

Пока.

Учить по этому видео

- [Карточки по этому видео](https://sozai.app/ru/tools/ai-flashcard-generator/?from=transcript&id=7093)
- [Тест по этому видео](https://sozai.app/ru/tools/quiz-generator/?from=transcript&id=7093)
- [Краткое содержание этого видео](https://sozai.app/ru/youtube-video-summarizer/?from=transcript&id=7093)

Бесплатно, составлено ИИ по этой расшифровке. Без регистрации.


---
This is the markdown twin of https://sozai.app/transcript/kommunikatsionnye-protokoly-v-elektroenergetike-modbus-transcript/ — the same content, without the markup.
Published by SozAI (https://sozai.app). Reuse and quotation are allowed with attribution and a link back.
Machine-readable index: https://sozai.app/llms.txt · data API: https://sozai.app/api/
