ModbusMaster
Автономное приложение для Windows, поддерживающее протоколы Modbus RTU
, TCP
, UDP
, RTUoverTCP
, RTUoverUDP
, ASCIIoverRTU
, ASCIIoverTCP
и ASCIIoverUDP
.
Также включены версии Mono для Linux и Mac OS X, это версии VB Net, поэтому:
- Для Linux вам придется установить пакеты
mono-complete
и mono-vbnc
- Mac может отличаться в зависимости от версии OS X, возможно, следует установить
mono
и mono-basic
пакеты.
Если брандмауэр включен, он может предложить вам разрешить этому приложению обмениваться данными в сети:
- Обычно ему должно быть разрешено общение в частной сети, иначе он может работать неправильно.
- Не разрешайте публичный доступ, если вы не знаете, что делаете.
- После завершения тестирования не забудьте удалить это приложение из списка разрешенных приложений брандмауэра.
Приложение предназначено для одновременного запуска нескольких экземпляров приложения, например:
- Используйте один и тот же протокол для каждого экземпляра, но с разными номерами портов, например:
- IP 127.0.0.1 TCP-порт 501 и IP 127.0.0.1 TCP-порт 502
- Используйте сочетание различных протоколов с помощью других инструментов (например, com0com для протокола RTU в Windows).
Все это основано на модифицированных библиотеках nModbus .NET 3.5, Copyright (c) 2006 Скотт Александер:
- Они включены в качестве ресурса для версии Windows, но являются отдельными для версии Mono.
Предназначен для использования в качестве инструмента быстрого тестирования:
- Можно протестировать с помощью аналога ModbusSlaveSimulation (см. видео ниже)
Вместо этого простой альтернативой может быть программное обеспечение AdvancedHMI, поскольку оно очень функциональное и бесплатное.
Скриншот
Функциональность
- Прочтите комментарии внутри формы, а также наведите указатель мыши на метки, чтобы получить подсказки.
- Адресация без смещения (где xxxxx идет от 00000 до 65534):
- Катушки = 0xxxxx
- Дискретные входы = 1xxxxxx
- Входные регистры = 3xxxxxx
- Регистры хранения = 4xxxxxx
- Помимо
Int16
, который представляет собой только адрес регистрации без модификатора, это приложение также поддерживает:- Модификаторы
U
, F
, L
, UL
и S
(которые используются для UInt16
, Float32
, Int32
, UInt32
, String
)
- Добавлена поддержка 64-битных значений — Float64, знаковое и беззнаковое Integer64:
- Используйте модификаторы
FQ
, LQ
и UQ
(где Q
означает Quad Word)
- Добавлена экспериментальная поддержка 128-битных значений — знаковое и беззнаковое Integer128:
- Используйте модификаторы
LO
и UO
(где O
означает Octa Word)
- Он также поддерживает чтение/запись бит/символов:
- выберите либо последовательные биты/символы внутри одного элемента, либо точный отдельный бит/символ из каждого из нескольких элементов
- для записи потребуется либо одно значение, либо точное количество значений, разделенных запятыми, если количество
Points
> 1.
- Для протоколов на основе RTU на одном ПК это приложение может использовать:
- Программа com0com для Windows для предоставления пар виртуальных последовательных портов.
- Дополнительное текстовое поле позволяет вручную вводить последовательный порт, предназначенный для Linux, поэтому можно получить доступ к парам виртуальных портов tty0tty, например
/dev/tnt0
<=> /dev/tnt1
.- Это поле было удалено в версии Mac Mono.
- Библиотека поддерживает
Masked Bit Write
, код функции 22 (0x16H или FC22). - Приложение также включает встроенный код для ведомых устройств, которые не поддерживают
FC22
:- Это влечет за собой процесс
read-modify-write
, который может занять некоторое время и может перезаписать значения, которые изменились во время его выполнения.
ВАЖНО: Соблюдайте осторожность при попытке записать какое-либо значение в ПЛК.
Использование
-> Для Windows
- Либо используйте исполняемые файлы Windows из папки
exe
, либо следуйте инструкциям ниже, чтобы собрать их самостоятельно:- Загрузите и установите версию сообщества Visual Studio (в идеале 2019 г.).
- Загрузите и распакуйте zip-файл этого проекта.
- Откройте это как существующий проект в Visual Studio и в меню выполните:
- Сборка/построение решения (или нажмите Ctrl-Shift-B)
- Отладка/Начать отладку (или нажмите F5), чтобы запустить приложение.
- Найдите созданный EXE-файл в папке
/bin/Debug
и скопируйте его в предпочитаемую папку или на рабочий стол.
-> Для моно
- Убедитесь, что Mono установлено на вашем компьютере:
- Пакеты
mono-complete
и mono-vbnc
для Linux. - Для Mac вам, возможно, придется поэкспериментировать, возможно, установить
mono
и mono-basic
пакеты.
- Загрузите и распакуйте zip-файл этого проекта и найдите zip-архив Mono в папке
Mono
. - Извлеките 4 файла и, возможно, переименуйте вновь созданную папку и/или exe-файл во что-то более короткое, если хотите, просто чтобы ускорить навигацию по терминалу.
- Откройте терминал, перейдите в папку и введите:
sudo mono ModbusMaster.exe
:- На Mac вам может потребоваться переключиться на учетную запись суперпользователя
su
.
- Для тестирования протоколов RTU в Linux вы можете установить и использовать пары виртуальных портов tty0tty, в то время как на Mac более поздние версии OS X, похоже, имеют псевдотерминалы — пары устройств, таких как
/dev/ptyp3
<=> /dev/ttyp3
Примечание для пользователей Mac: это было протестировано на старом компьютере iMac G5 PowerPC с Mono v2.10.2. Наблюдалось странное поведение: приложение теряло фокус, что нарушало TCP-связь в режиме автоматического чтения. Существует текстовое поле с красным крестиком, по которому вы можете щелкнуть, чтобы попытаться сохранить фокус (если после этого вы сделаете что-то еще, щелкните его еще раз). Поскольку я не могу проверить это каким-либо другим способом, вам остается поэкспериментировать.
Видео
Modbus.TCP.Communication.mp4
Лицензия
Лицензия MIT — см. файл README.txt в папке «Ресурсы».
Товарные знаки
Любые торговые марки, прямо или косвенно упомянутые в этом проекте, принадлежат их владельцам.
Полезные ресурсы
Форум веб-сайта AdvancedHMI, еще один проект с открытым исходным кодом.