Does anyone know of a good (preferably open source) library for dealing with the Modbus protocol? I have seen a few libraries, but I am looking for some people's personal experiences, not just the top ten Google hits. I figure there has to be at least one other person who deals with PLCs and automation hardware like I do out there.
Open to any other materials that might have been a help to you as well...
-
I have done a lot of communication with devices for the past few years, since I work for a home automation company, but we don't use Modbus. We do communication in a standard and open way using Web Services for Devices(WSD) which is also know as Devices Profile for Web Services(DPWS).
During this time at one point, I did hear of a project called NModbus. It is an open source library for working with modbus. I have not used it, but looking at the site and the changesets on Google Code, it looks pretty active. You may want to give it a look and even get involved in. This is the only library that I have heard of that targets .Net.
Geoffrey Chetwood : Yeah, I saw nmodbus and it looked ok, but last time I tried it it was a bit rough around the edges. I will give it a try. Really, I am now interested in reading up on WSD. Thanks for the link!Dale Ragan : Sure thing. WSD is really the way to go. Modbus is a very old protocol, I know you may not have a choice, but devices of today are starting to target WSD.egapotz : Thumbs up for NModbus: works really wellFrom Dale Ragan -
Modbus is a very simple protocol to implement. All information you need can easily be found for free on the Internet.
If you choose to implement it yourself, I will be happy to answer any questions you have along the way.
If you choose to go for a modbus master library I would look for:
- Modbust TCP support.
- Modbus RTU over TCP/UDP and COM-port.
- Configurable byte swapping, word swapping
- Configurable "base" adress so you can choose adress 1 to actually be adress 0 (sounds stupid, but I prefere to always specify adresses the same way they are documented)
- it must support reading several adresses as a block, but it need to be flexible, some modbus slaves will return error if any adress in the block is unused/reserved).
From mliesen
0 comments:
Post a Comment