Member Login
member
passwd
remember me on
this computer.

- join now -
- forgot username or password? -

Jump to a Date

Sponsored Communities
Cool stuff
Select a topic of interest:
...and press:
Neat Stuff
Control.com Stuff

Visit our shop for nerds in control lifestyle products.

Fortune
A copy of the universe is not what is required of art; one of the
damned things is ample.
-- Rebecca West
RSS Feed
RSS feed Use this link to get an RSS feed of the Control.com article flow, for private, non-commercial use only:
www.control.com/rss/
To get a personalized feed, become a member at no cost.
Select a Page Style
Select one of the following styles:
- BluFu
- Classic
(cookies required)
advertisement
from the Forum department...
Is there a way to send device info over ModBus?
Communications systems and equipment. topic
Posted by BasicPoke on 18 November, 2008 - 3:22 pm
I am told there is a way to send some sort of device name or device info over ModBus. Does this sound right? This would be to identify the slave device. I am aware that I can send a string by packing it into registers. Is this the only way to accomplish this?

Thanks,
BasicPoke


Posted by Friedrich Haase on 19 November, 2008 - 3:10 am
Moin BasicPoke,
moin all,

MODBUS Application Protocol Specification V1.1a / June 2004
http://www.Modbus-IDA.org

Function code 43 / 14 (0x2B / 0x0E) Read Device Identification
has vendor name, product code, revision number and more.

Best regards,
Friedrich Haase


Posted by Don Lupo on 19 November, 2008 - 7:34 am
If the slave devices support the "Report Slave ID command -17 (11H)"
then that is a convenient way to discover who they are.

Don...


Posted by BasicPoke on 19 November, 2008 - 10:13 am
I found the Report Slave ID (17) function, which I think will work for me, but I have a couple of questions about it:

1. What is the meaning of "Slave ID" in the response? The spec says this is "device specific" and gives no explanation. This is not the slave address, which would be sent earlier in the response.

2. What is the meaning of "Run Indicator Status"? The spec says "0x00=OFF, 0xFF=ON". What is OFF & ON referring to?

Thanks,
BasicPoke


Posted by Don Lupo on 20 November, 2008 - 1:02 pm
1. The Report Slave ID command is basically vendor and device specific.

2. The Run Indicator Status is also vendor and device specific.
It's a field that can be used to indicate if the process is running or
for status/diagnostic information from the slave device you're talking
to.

If you can read the table or picture below, you'll see an example
"Report Slave ID" response coming from an Acromag 951EN Ethernet slave
I/O module. It echoes back the Unit ID (i.e. Modbus Slave Address),
Function Code, Byte Count, Slave ID which correlates to the model
number, Run Indicator Status which is always set to on in this case, and the firmware number string which includes manufacturer name, firmware #, model number, serial number, revision level, and six byte MAC ID.

Donald Lupo
dlupo at acromag. com


Posted by M Griffin on 20 November, 2008 - 7:05 pm
With respect to Function 17, the Modbus standard says: "The data contents are specific to each type of device." In other words, it is defined by the device designer, not by the standard. As the device designer you would decide what it ought to be and document it thoroughly. I would suggest finding a few devices that implement this function (I don't know of any) and seeing how they did it. You wouldnt' follow those examples exactly, but it would hopefully give you an idea of what customers are used to seeing. Failing that, do something that is simple but useful.

As for the "Run Indicator Status", if your device has run and stop modes (or enabled/disabled, etc.), then this would reflect those states. This would be one byte, where 0 means "stop" (or whatever), and 0xFF (all bits set to "1") means "run" (or whatever is appropriate). The exact meaning of this depends on your device design. If the device only has one mode ("run"), then it would simply always be "on". You have to decide what makes sense in that context.


Posted by Bob on 19 November, 2008 - 12:46 pm
You can send a device name or other string over Modbus using a block of registers. Each 16 bit register will hold 2 bytes (or two alpha characters) by storing their ASCII codes.

There is an example at http://www.simplymodbus.ca/FAQ.htm#Types

I believe this is the easiest way to do it. You can probably come up with another more difficult way to accomplish the same thing if you use your imagination.


Posted by BasicPoke on 21 November, 2008 - 9:28 am
Thank you to everyone who replied. The "ION 7500 / ION 7600 / ION 8000 Series Modbus Register Map" doc was helpful. In my implementation of function 17, Device ID will indicate the model #, and for the data in the, I am sending a string with co., model #, version, serial #.

BasicPoke

Your use of this site is subject to the terms and conditions set forth under Legal Notices and the Privacy Policy. Please read those terms and conditions carefully. Subject to the rights expressly reserved to others under Legal Notices, the content of this site and the compilation thereof is © 1999-2009 Nerds in Control, LLC. All rights reserved.

Users of this site are benefiting from open source technologies, including PHP, MySQL and Apache. Be happy.

advertisements
Find the right Modbus device for your project... or list your Modbus device on the largest online Modbus device directory.
Servo, stepping motor control, analog & web HMI in one system!
Servo, steppers, analog, digital & web HMI - Fully Integrated!
Control.com is the largest Automation community on the web. Learn how to advertise here now...
Time to incorporate data handling, web HMI and motion in one system!
Our Advertisers
Help keep our servers running...
Patronize our advertisers!