Во второй части нагрузочного тестирования автор проверяет быстродействие Modbus RTU и MQTT. На контроллере формируются 32 переменные с плавающей запятой (синус и косинус), которые читаются по RS-485 через Modbus Poll, а затем транслируются в MQTT и отображаются в нескольких сервисах: на компьютере, в веб-интерфейсе, в командной строке и на мобильном телефоне. Показаны результаты длительного опроса без ошибок, поведение при отключении обмена и архивирование данных на SD-карту.
- 00:02 Нагрузочная логика: расчёт синусов и косинусов
- 00:02 Формирование 32 сетевых переменных с плавающей запятой
- 00:02 Чтение всех регистров по Modbus RTU через Modbus Poll
- 03:21 Подключение к MQTT и публикация значений
- 04:18 Просмотр данных в MQTT-клиенте и командной строке
- 06:46 Синхронный вывод в веб-интерфейсе и консоли
- 07:14 Поведение при отключении и возобновлении обмена
- 09:27 Мобильное приложение Virtuino для мониторинга
- 12:17 Выводы по нагрузке и архивирование на SD-карту
- Modbus RTU
- MQTT
- Modbus Poll
- Virtuino
Кому полезно: Инженерам АСУ ТП, интересующимся нагрузочным тестированием Modbus RTU и MQTT.
Описание составлено автоматически по расшифровке речи в ролике.
Расшифровка видео
0:02 Всех рад приветствовать и так сегодня, 2 часть видео, посвященная различным нагрузочным тестированием, сегодня коснемся, ну во 1 протестируем проводной матбас. Для пр. 200 Ну и далее рассмотрим протоколы МКТ и возможности по получению с помощью него информации для различных устройств, ну и прежде чем запускать. Тест сделаем нагрузочный нагрузочную логику, то есть я хочу сделать все максимально приближенно к реальным проектам. Здесь, в качестве примера, значит, будем. Использовать функцию Синуса и Косинуса, и с помощью выдачи значений в градусах со счетчика будем рассчитывать значения синусов и косинусов для сетевых. Переменных всего таких переменных будет 32 все они будут с плавающей запятой. Ну и время цикла программы получалось 9 Миллисекунд значения, полученные С. Функцией будем чередовать по 8 на сетевые регистры, значит, так как на данный момент максимальное количество сетевых регистров в режиме слейв 64 и выводятся. Значения формате с плавающей запятой, то есть они занимают 2 регистра, соответственно, 64 делим на 2 получаем максимально 32 сетевых переменных, ну и далее. Здесь, в тесте, мы также можем увеличивать время выдачи значений градусов, ну и далее посмотрим, как это будет отражаться на выходных значениях, но как я. Уже сказал время цикла программы Порядка 9 10 Миллисекунд, то есть это средний статистический проект, который в принципе достаточно нагружен, ну и далее. Значит, тест это подключение по проводному интерфейсу раз 485 через мат Бас Пул читаем максимально 1 запросом все сетевые регистры, то есть видим, что они все. С адреса 512 изменяются достаточно быстро, ну и смотрим в верхнем левом углу. Значит, количество посылок и количество ошибок нач время сканирования здесь? Поставлено порядка 100 миллиардекунд, в принципе, на скорости 115 200 все очень быстро работает. И главное, что нет никаких ошибок, далее я в таком состоянии. Оставил прибор подключенным к компьютеру через преобразователь, ну и оставил его в режиме чтения посылок с Мадбас Пул. Ну ну, прошло там порядка больше, чем. Полдня сейчас мы посмотрим результат сканирования. По прошествии данного времени увидим, что значение количества запросов достигло порядка полумиллиона и. При этом все эти запросы были прочитаны без единой ошибки, то есть на достаточно загруженной программе. Мы видим, что результаты опроса очень хорошие, ну и. Далее я подключил, значит, свой преобразователь, который транслирует в сеть протоколы МКП Т. И все эти 32 переменных мы будем отправлять на тестовый сервис.
3:21 Ну и далее посмотрим, как считывать различными сервисами данные значения, но начнем с подключения на компьютере с помощью программы МКД. Спай, значит, подключаемся к нашему серверу москита ОГ, куда будет отправляться все эти данные?
3:41 Ну и для подключения на компьютере, значит, напишем адрес нашего топика, которые транслируются из платы Вай Фай. То есть он принципе стандартный, за исключением Айди самой платы, то есть мы ее здесь устанавливаем, ну. А далее значит это универсальный адрес, то есть это для возможности публиковать топики из прибора и для возможности туда записывать. То есть это отличается под папкой паб и сам сейчас мы попробуем подключиться?
4:18 И мы, по идее, должны увидеть все наши значения. То есть в 1 случае я немножко ошибся, это было топик на управление, так как мы не управляем, мы только считываем, то есть нам нужно было изменить адрес. Ну вот, мы видим считываться. Все эти значения, ну кто наблюдательный может увидеть, что дата проведения этого опыта 19 ноября. Но сейчас, пока у меня руки дошли до монтирования всего этого материала, сейчас уже на дворе 1 декабря, и вот прям сейчас я запустил. Проект Виртуина и все эти значения до сих пор передаются. Но я планирую оставить еще на некоторое время, чтобы те, кто захочет потестить, проверить, как это все работает, смогли скачать тестовый пример проекта для мобильного телефона. Либо попробовать на компьютере, то есть все эти значения, будут некоторое время еще работать и транслировать рассчитанные переменные. То есть вы сможете самостоятельно скачал приложение запустить его на телефоне, либо введя? Команды для подключения, то есть адрес топика и адрес сервера на компьютере увидеть эти же значения и посмотреть их в реальном времени. Вот как раз сейчас я через командную строку запустил еще 1 процесс по получению данных, то. Есть, мы уже видим, значит, самой программе мы получаем ежесекундно весь набор переменных и с помощью командной строки. Также мы подключаемся через сервис москита и видим все эти значения уже в 2 потоках. Значит, ну и кроме этого в. Отдых окне на другом мониторе у меня происходит передача данных по веб интерфейсу на веб страницу. Ну а также идет архивирование на СД карту, то есть для того, чтобы максимально начать сделать нагрузку для контроллера ЕСП, но. Сейчас посмотрим, далее я буду немножко ускорять. Ну вот, как раз наш веб интерфейс опять наши все сетевые переменные, которые мы считываем из пр. Ну и в формате с плавающей запятой. Мы видим все эти значения синхронно, то есть на.
6:46 Консоли это значения, полученные уже непосредственно с сервера. То есть они передались по каналу, обработали, всегда ли мы их уже считываем, ну а веб интерфейс это? принципе в пределах локальной сети значения, ну и мы видим, что значение практически синхронно идут как по через облачный сервис, так и непосредственно в локальной сети.
7:14 Ну, кроме этого, есть также возможность, к примеру, отключить эти значения, и мы сразу видим, что идут константы. То есть при этом, если обмен у нас, допустим, нарушается, у нас ничего не отваливается, не перезагружается, то есть. Значения просто остаются Константа, то есть мы видим, что вместо расчетных значений Синуса и Косинуса мы видим сплошную постоянную полку в виде Констант. То есть при этом как бы все значения сохраняются предыдущее состояние?
7:49 Как только мы включаем обмен для вопросов всех значений, то есть видим, что возобновляются передачи автоматически, то есть по всем 3 каналам. Которые мы сейчас можем наблюдать также в процессе проведения этих экспериментов. Я заметил, что приложение для персонального компьютера и веб. Интерфейс, запущенный в браузере, достаточно много отъедают оперативной памяти. Ну и принципе серьезно тормозят систему, поэтому данные, выводимые К. примеру, сейчас на график веб интерфейсе они принципе, как мне показалось, отстают по времени у тех значений, которые мы получаем непосредственно в. Консоли, вот сейчас мы в параметрах архивирования задали 10 переменных, которые мы будем записывать на карту, ну и также мы их будем выводить на. Экран, ну и как раз вот этот процесс вывода вода на экран, он достаточно ресурсоемкий. То здесь, 10 графиков, 9 из них они накладываются, ну и 1 там. Видео функции передаваемых градусов, то есть он будет немножко отличаться вверх. То есть, если мы сейчас включим у нас все эти значения, которые В. Диапазоне от ты 1 до + 1 они, как бы масштабом, скроются, и мы увидим значение передаваемых градусов, которые там будет достигать от 0 до 360 карты, но в.
9:27 Ну и здесь далее я еще показываю скриншот. Точнее, запись с экрана мобильного телефона, на котором я параллельно еще хочу запустить. Приложение для считывания этих же значений только на мобильном телефоне через МКТ, то есть таким образом уже практически 5 каналов. Мы имеем в реальном времени для различных сервисов и для различных устройств. Все они считывают 32 значения в формате с плавающей запятой, то здесь также прописаны все топики. Наш проект будет приложен в описании, вы его можете скачать, он абсолютно в принципе. Бесплатный, то есть это тестовая версия, но здесь набор элементов, который я позволяет работать абсолютно бесплатно и таким образом. Запустив его у себя на телефоне, вы сможете должны, по крайней мере, если там прибор будет в сети увидеть изменения этих значений на. Телефоне у себя, то есть таким образом мы имеем достаточно удобный интерфейс для случая, если необходимо просто получать значения каких. То назначений, к примеру, с прибора там температуры, влажность либо еще какие то, то есть, которые в принципе нет необходимости защищать. Каким то каналом, то есть они будут отправляться на сервис, который доступен для считывания в принципе всем, но вы их сможете увидеть. У себя абсолютно как бы просто и без различных регистраций и авторизации, то есть эти данные будут доступны всем, но, как правило, я. Этим пользуюсь для отладки, к примеру, каких то программ, то есть у меня, может быть, запущен процесс и удаленно, я смогу увидеть состояние. Которое сейчас имеем в приборе далее, я буду выводить весь процесс обмена по различным каналам в ускоренном режиме, то есть здесь. Ускорено в 8 раз для того, чтобы ролик не имел длину там порядка 40 минут или даже больше. Настолько я тут делал различные опыты, значит, поэтому я сделал в ускоренном режиме остальную часть. Ну принципе для тех, кто захочет посмотреть, либо сравнить значения в. текущем времени можно замедлить, к примеру, в ютюб этот ролик. Ну и таким образом, в принципе, в процессе всего этого действия я сделал. Несколько выводов во 1 если нагружать по максимуму обменом, то есть я заметил, что иногда на графиках в программе КТТ спай мы видим.
12:17 Как бы отсутствующие данные, то есть это говорит о том, что контроллер перестает передавать данные на удаленный сервер. То есть, ну, скорее всего, из за нехватки оперативной памяти, то. Есть так, как в этом контроллере запущена много процессов, то есть это и в интерфейсе. Запись на карту и обмен по матбас всех значений, то есть, видимо, в какие то периоды времени у него. Отключается протокол, но тем не менее все остальные сервисы работают. Ну и так как я архивирую нужные мне значения еще и на карту, я надеюсь, что эти значения останутся, ну и принципе вот. Такой опыт значит, что хотелось бы в конце отметить, что если необходимо удаленно мониторить много значений, то принципе им. КТТ довольно хороший и быстрый протокол, ну и в добавок ко всему я. Использую мобильное приложение, которое в принципе делает мониторинг еще и независимым от Айпи адреса. Серый, он там белый, то есть оперативно имея интернет на телефоне, можно за всем этим. Следить и также есть различные программы для персонального компьютера, где также можно развернуть и мониторить данные. Ну и в конце посмотрим, что у нас на архивировалась на карту памяти. Все 10 каналов присутствуют в архиве, и все они, как видим, нет никаких пропусков данных, то есть локально, все сохраняется с заданным интервалом. На этом, наверное, и все ролик получился. Достаточно длинным, но я постарался его приблизить максимально к боевым условиям, то есть по максимуму, по всем каналам сделать ему нагрузку. Ну и принципе вы также можете проверить все.
14:10 Ссылки на используемые приложения будут в описании к данному видеоролику. Всем спасибо за внимание.
Расшифровка сделана автоматически (Yandex SpeechKit) и может содержать ошибки в терминах.
🔗 Modbus Poll.Virtuino. Тест быстродействия Modbus RTU и MQTT.