Skip to content

Кроссплатформенный терминал для работы с COM-портами и TCP-сокетами с поддержкой протоколов Modbus TCP / RTU / ASCII

License

Notifications You must be signed in to change notification settings

AndreyAbdulkayumov/CoreBus

Repository files navigation

CoreBus

License GitHub repo size Code size GitHub release (latest by date including pre-releases) Downloads Last Commit

CoreBus — кроссплатформенный терминал для работы с COM-портами и TCP-сокетами с поддержкой протоколов Modbus TCP / RTU / ASCII.

Основные возможности приложения:

  1. Два режима работы: "Без протокола" и "Modbus".

  2. "Без протокола":

    • Работа с данными в строковом или байтовом формате.
    • Поддержка разных кодировок.
    • Три режима отправки: одиночная, цикличная, отправка файла.
  3. "Modbus":

    • Поддержка различных вариаций протокола Modbus: TCP, RTU, ASCII и RTU / ASCII over TCP.
    • Удобная работа с функциями записи.
    • Возможность работы с числами типа float.
    • Возможность работы с бинарными данными.
    • Цикличный опрос.
    • Modbus сканер, который осуществляет поиск устройств на линии связи.
  4. Макросы:

    • Отдельные макросы для каждого режима работы.
    • Макрос состоит из неограниченного количества команд (действий).
    • Для Modbus макросов предусмотрена возможность выставления общего Slave ID для всего макроса.
    • Импорт и экспорт макросов.
  5. Темная и светлая темы приложения.

  6. Пресеты с пользовательскими настройками.

  7. Кроссплатформенность: Windows, Linux.

Приложение тестировалось на Windows 10/11, Ubuntu и Astra Linux Common Edition.

Помощь проекту

Автор будет благодарен за любую поддержку. Реквизиты указаны по ссылке.

Статьи на Хабр

CoreBus: Часть 5 — попытка использования Native AOT

Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 4

Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 3

Кроссплатформенный терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 2

Терминал Modbus TCP / RTU / ASCII с открытым исходным кодом: Часть 1

История версий

Ссылки на скачивание любой публичной версии приложения вы можете найти на этой странице.

Также приложение выложено на SourceForge.

Связанные проекты

EchoServer - консольное приложение для тестирования по TCP/IP.

ArduinoModbusDevice - Modbus RTU Slave устройство.

Описание

Начиная с версии 3.0.0 в проекте используется Avalonia UI, в более ранних версиях WPF.

Платформа:

  • .NET Framework до версии 1.9.1 включительно.
  • .NET 7 начиная с версии 1.10.0.
  • .NET 8 начиная с версии 2.3.0.
  • .NET 9 начиная с версии 3.0.0.

Ниже будет описание режимов работы приложения. Подробнее можно узнать из статей на Хабр или из встроенного руководства пользователя (кнопка со знаком вопроса в верхнем левом углу).

"Без протокола"

В поле передачи пользователь пишет данные, которые нужно отправить.

В поле приема находятся данные, которые прислал сервер или внешнее устройство.

Можно работать как с байтами, так и со строковыми данными в разных кодировках.

Поддерживаются протоколы: 
- UART
- TCP

Есть три режима отправки: 
- Одиночная
- Цикличная
- Файлы

"Modbus"

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

Поддерживаются протоколы: 
- Modbus TCP
- Modbus RTU
- Modbus ASCII
- Modbus RTU over TCP
- Modbus ASCII over TCP

Есть разные способы визуализации данных:

  • Последний запрос.
  • История обмена.
  • Бинарное представление.
  • Число типа float.

Также в этом режиме реализован Modbus сканер. Он служит для поиска подчиненных устройств на линии связи и доступен только при подключении по последовательному порту. Список адресов найденных устройств отображается в поле "Устройства".

"Макросы"

В приложении предусмотрена работа с макросами. Они доступны для всех режимов. Макросы поддерживают отправку сразу нескольких сообщений за раз.

Все макросы представлены на рабочем поле в виде кнопок с соответствующими названиями. При наведении курсора на любой из макросов появляются кнопки редактирования и удаления.

Макрос разделен на команды. Каждая команда – это отправка одного сообщения.

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

В макросах Modbus есть возможность использовать единый Slave ID во всем макросе.

Вспомогательный софт

GUI Framework - Avalonia UI

Для упрощения работы с паттерном MVVM использован ReactiveUI

Для тестирования используется xUnit

Скрипт установщика написан с помощью Inno Setup Compiler

Иконки приложения Material.Icons.Avalonia

Система версирования Global.Major.Minor

Global - глобальная версия репозитория. До релиза это 0. Цифра меняется во время релиза и при именениях, затрагивающих значительную часть UI или внутренней логики.

Major - добавление нового функционала, крупные изменения.

Minor - исправление багов, мелкие добавления.

About

Кроссплатформенный терминал для работы с COM-портами и TCP-сокетами с поддержкой протоколов Modbus TCP / RTU / ASCII

Resources

License

Stars

Watchers

Forks

Packages

No packages published