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

ModLook — сканер регистров ModBus. Отмечаем 20-летие программы

Время на прочтение2 мин
Количество просмотров21K
Сегодня я бы хотел рассказать о программе, с помощью которой я начинал изучать протокол ModBus и ПЛК. Я ей пользуюсь до сих пор, и лично видел её в использовании у нескольких наладчиков. Если кому-то интересна история её создания или исходники прошу под кат.

image

Сканер регистров ModBus предназначается для людей, занимающихся наладкой систем автоматизации или просто пытающихся “подружиться” с каким-либо устройством, на борту которого находится Modbus. Для желающих иметь возможность быстро считать интересующие регистры или вручную пройтись по содержимому нескольких устройств на шине.

Первый автор программы тесно связан с АСУ ТП. Появление ПЛК с ModBus в 90-х потребовало какой-то программы для работы с этим протоколом. В те времена чтобы посмотреть содержимое регистров контроллера нужно было либо устанавливать на компьютер среду программирования контроллера, что неудобно, либо покупать какую-то платную программу. Хотелось что-то лёгкое и компактное, что можно таскать на дискете. Это и привело к написанию собственной программы. Прототип программы был написан под DOS на Basic. Прототип, кстати, получился не очень удачным. Позже проект был сконвертирован в Visual Basic. И где-то в начале 2000-х программа была переписана на Delphi. В середине 2000-х исходники попали уже ко мне. Тогда я вынес опрос по ModBus в отдельный поток, и добавил несколько мелких улучшений. Недавно добавил режим опроса ModBus rtu поверх TCP/IP и сконвертировал проект в Lazarus.

ModLook писался для собственного пользования. Получилось довольно удобно. Все элементы вынесены на главную панель. После измерения параметра не нужно жать ОК, изменения применяются автоматически. Так что программой можно управлять одной рукой (или ногой).

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

ModLook может опрашивать регистры Coil Status (0ХХХХ), Discrete Inputs (1ХХХХ), Holding Registers (4ХХХХ), Input Registers (3ХХХХ). Можно разрешить или запретить опрос какого-то из этих регистров галочкой «Опрос».

Ссылка на исходники
Теги:
Хабы:
+14
Комментарии9

Публикации

Истории

Работа

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