Showing results for 
Search instead for 
Did you mean: 

Modbus over TCP - recommended package for new design



I will communicate with the Kollmorgen Servo amplifier over Modbus TCP, which is the most supported protocol across all Kollmorgen amplifiers.

My question is about recommendations for selecting the Modbus package for low-level communication.


I know that any of the existing ones will not provide the final commands like home servo, enable servo...etc. But because it will be a new design (and I never worked in LabVIEW with the Modbus before) I would like to listen for your recommendation on which package is the best according to your experience. Which is kept to be most updated?


For the initial tests, I download the NI Modbus Library, and seems to be OK but what if exists something better?

Thank you.




0 Kudos
Message 1 of 8

Packages from the VIPM repository are not generally free of charge. I use the first one, the NI package. That is free and can do RTU and TCP.

The only downside is, since it's based on VISA, that it uses VISA resource names and VISA read/write VIs, which is OK for RTU over USB, but not so good for Ethernet 

0 Kudos
Message 2 of 8

It also depends on the used ModBus commands.

Our products use custom ModBus commands. So I ended up (years ago) creating my own ModBus VI to communicate over serial and ethernet.

But if you only use the standard commands I would suggest to use the NI library



0 Kudos
Message 3 of 8

Of course, you would expect that every package supports the described functions from the standard paper.

Custom ModBus functions is something that you could implement in the open packages yourself.


@K C: out of curiosity, what did you implement that isn't already covered by the existing functions?

0 Kudos
Message 4 of 8

Our product uses more custom commands than standard commands.

  • For writing and reading a configuration
  • Reading an error log
  • Set and read date and time
  • Retrieval of events
  • and some others

The communication module of the ProSafe-SLS system.



0 Kudos
Message 5 of 8

OK, but why create an own function code to write a date/time string or hex data when there is WMR already? Just want to understand the obviously unnecessary extra work.

0 Kudos
Message 6 of 8

Sure a lot of things could be handled by using registers. But if the data is spread over multiple registers there must be an additional action to split or combine the data.

With custom commands the data can be any specified length. 

Most of these commands or not intended for the standard users.


This has also some history. This product was already designed over 30 years ago. Many updates over the years but also a lot of things are kept the same to stay compatible.



0 Kudos
Message 7 of 8

Thank you for your recommendations. I will use the NI Modbus Library.

0 Kudos
Message 8 of 8