ModLook - ModBus register scanner. Celebrating the 20th anniversary of the program

    Today I would like to talk about the program with which I began to study the ModBus protocol and PLC. I still use it, and personally saw it in use with several installers. If someone is interested in the history of its creation, or I ask for the source code under cat.


    The ModBus register scanner is intended for people who are setting up automation systems or simply trying to “make friends” with any device on board which Modbus is located. For those who want to be able to quickly read the registers of interest or manually go through the contents of several devices on the bus.

    The first author of the program is closely associated with ACS TP. The appearance of PLCs with ModBus in the 90s required some kind of program to work with this protocol. In those days, to see the contents of the controller registers, it was necessary either to install the controller programming environment on the computer, which is inconvenient, or to buy some kind of paid program. I wanted something lightweight and compact that you can carry around on a floppy disk. This led to the writing of his own program. The prototype of the program was written under DOS in Basic. The prototype, by the way, was not very successful. The project was later converted to Visual Basic. And somewhere in the early 2000s, the program was rewritten in Delphi. In the mid-2000s, the source code came to me already. Then I put the poll on ModBus in a separate thread, and added a few minor improvements.

    ModLook was written for your own use. It turned out pretty convenient. All elements are placed on the main panel. After measuring the parameter, you do not need to press OK, the changes are applied automatically. So the program can be controlled with one hand (or foot).

    For data addressing, register numbers are used (counting starts from 1), not physical addresses. Then it was more usual to start counting from one, and not from scratch.

    ModLook can query the registers Coil Status (0XXXX), Discrete Inputs (1XXXX), Holding Registers (4XXXX), Input Registers (3XXXX). You can enable or disable the polling of one of these registers by ticking “Poll”.

    Link to source

    Also popular now: