Thread Starter


Am new to MODBUS. Am trying to develop an aplication wherein a MODBUS device connects to a PC over the RS232 port. The PC generates data files continuously and is supposed to send data to the MODBUS device as and when new data is generated. All the postings that I have seen talk to reading and writing to registers. Any pointers on what this would entail?

Audun Alvestad

Hi there!

First of all. Most modbus units communicate using RS485 so you have to use an interface converter from RS232 to RS485. I recommend westermo MD44 if you need type approved equipment. You don't say how or with what you are developing your application but I recommend to use one of the many libraries or activeX object etc. that already exists out there. Then you will support other people and save yourselves a lot of time.

Good luck!
Audun Alvestad
Alvestad Automation

Martin Boers

FactorySoft offer a sample OPC Server for Modbus, that will allow your program to communicate with any MODBUS device through the Serial port of your PC - find it at

They also provide a sample OPC client in VB.

Other sample OPC clients written in various languages can be found at the OPC Programmers Connection -
When you talk to a modbus device, you write to or read from 'registers' in the device. These registers may be imagined as a set of memory locations. They may map to real memory areas in the device, or be virtual. The program on the PC reads the data from the file, and writes the
appropriate data to the appropriate register.

For info resources on Mobuds:

Srinivas Iyer

Let me explain better what I am trying to do. I downloaded one of the freely available OPC servers. (KEPServerEx).
It allows configuration of the channels as MODBUS driver, which I set to COM1. Set up the device and the tags. Ran the OPC client.
I have a cable that runs from COM1 to COM2 and I monitor COM2 with another software (LabVIEW).
What I need to understand is this:
1. I am not sure what I should see on COM2, I just see something being constantly updated.

2. If I have a program that is constantly updating an array from a data file (which is refreshed constantly by another software), how does the server (in this case it is going to be a DCS ) query for the data?
I dont understand the meaning of holding registers address that the Tags require you to specify.