
SnapModbus: an open-source multi-platform Modbus suite (libraries and tools).
It’s not written in FreePascal but there is an Object Pascal wrapper than can greatly simplify your life, and, I suppose that someone recognized the paw print

There are dozens of excellent libraries that implement Modbus, both free and commercial.
So, the question is: did we need any more libraries? How are they different?
The main purpose of this suite is to greatly simplify the commissioning of a Modbus system, Generally, the communication libraries focus only on the way of transferring data to and from the peripheral, limiting themselves to the syntax and showing an « educational » aspect where all the devices are homogeneous.
The reality is quite different, we often find ourselves faced with a « field » made up of various peripherals of different technology (Ethernet or serial) which have different response times and whose data need to be updated with different methods and times. The challenging work is not how to exchange data with one device, but how to exchange data with all of them efficiently.
SnapMB’s goal (which I hope it has achieved) is to manage a complex field as easily and efficiently as possible. This through the abstraction of the transfer protocol (a TCP or RTU client are the same object and its behavior can be changed on the fly) and the availability of two architecture models:
– Virtual Bus: a protocol-independent half-duplex way to communicate with all devices, regardless of their technology (Ethernet or Serial).
– Fully parallel management: a multithreaded way to peer-to-peer data exchange with all devices (including RTU devices) simultaneously.
Tested in Windows, Linux, FreeBSD, macOS. 32(where available) and 64 bit.