Как стать автором
Обновить

Modbus терминал и не только

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

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

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

От отчаяния я решил посмотреть, а что мне может предложить мировое IT сообщество. Какие-то программы были очень ограничены в бесплатной версии, где-то такой версии не было в принципе, а что-то мне просто не понравилось внешне.

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

Для меня было очень важно создать красивый GUI, которым было бы приятно пользоваться.

Поэтому представляю вам мою версию Modbus терминала!

Терминал поддерживает все разновидности протокола Modbus:

  • Modbus TCP

  • Modbus RTU

  • Modbus ASCII

В таблице находятся расшифрованные данные посылок. А само содержимое этих посылок находится ниже, в поле «Запрос — Ответ».

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

В самом низу расположена строка подключения. Там содержится информация о текущем подключении и индикация.

Индикаторы приема и передачи работают таким образом:

Казалось бы, а что еще нужно для счастья? Верно, смена тем оформления.

Темная тема? Нет, не слышал

Периодически, приходится работать в IDE, в которых разработчики не добавили темную тему. Keil, CODESYS и некоторые другие.

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

Чтобы сделать содержимое экрана монитора более однородным я добавил светлую тему.

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

А что еще?

А еще у меня есть два дополнительных режима работы «Без протокола» и «Http».

Первый режим я добавил для работы с текстовой информацией, а второй просто потому что могу =)

Да, в режиме «Без протокола» хотелось бы добавить работу с байтами... когда‑нибуть она появится =)

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

Немного о разработке

Для написания Desktop приложений я чаще всего использую WPF. По мне, это один из самых удобных фреймворков для разработки приложений на ПК.

Первая релизная версия появилась где-то полтора года назад с момента написания этой статьи.

Сначала использовался .NET Framework, а затем все приложение переехало на .NET 7, и вот совсем недавно на .NET 8.

Были ли проблемы при переезде с платформы на платформу? В целом нет. Пришлось только немного повозиться с переездом с Framework на Core.

Сама архитектура приложения тоже менялась со временем. По началу вся логика была в обработчиках событий в code behind. А потом это стало невозможно поддерживать и проект был полностью переписан согласно паттерну MVVM.

UI тоже менялся со временем.

Например, вот так выглядел режим "Modbus" в одном из первых вариантов.

Какие-то фичи добавлялись, какие-то вырезались. У меня не было четкого плана разработки. И действовал я методом проб и ошибок.

После миграции на .NET Core я ощутил необходимость создания установщика с возможностью обновления.

Согласитесь, один файл установщика, в отличии от кучи непонятных файлов приложения, выглядит весьма лаконично. А каждое нажатие на кнопку "Далее" в мастере установки прибавляет солидности вашему ПО.

Для написания скрипта установщика я использовал Inno Setup. Может быть напишу об этом отдельную статью =)

Советую ознакомиться, если еще нет.

Итого

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

Надеюсь, вам понравилась моя первая публикация на Хабре, а мой софт поможет вам меньше уставать на работе. Буду рад обратной связи. Всем удачи!

Скачать программу

А ценители прекрасного и ужасного могут посмотреть исходный код

Теги:
Хабы:
Всего голосов 38: ↑38 и ↓0+38
Комментарии29

Публикации

Истории

Работа

Ближайшие события