Modbus And Multifunction Meter Selec Mfm383A-C


nguyenbaotrung555

Recommended Posts

Please email your .ctl document.

 

There can be many problems:

 

1) improper RS485 wiring

2) improper RS485 termination

3) wrong serial port settings (port #, baud, etc.)

4) wrong Modbus ID (most devices default to 1)  Should be 1-255

 

Any of the above will cause a Timeout error.  DAQFactory cannot detect which is causing the problem.

 

5) wrong I/O type or Channel #.  In this case you will usually, but not always, get an error message from the device.

Link to comment
Share on other sites

I'm sorry, for security reasons I can't access files posted on external sites, especially public sharing sites.  You can simply post your document here.  Is the MFM unit streaming data to the computer?  Then you wouldn't see timeouts, but should see data in the Monitor.  But that also means its not Modbus.

 

I found a manual for that unit and indeed it is Modbus.  Defaults are Modbus ID 1, 9600 baud, 8N1.

 

This manual is the perfect example of someone writing a Modbus manual without understanding Modbus.  They have the Voltage V1N register at address 30000 / hex address 0.  What they really mean is 30001.  30000 doesn't exist in the standard modbus addressing space.  You'll need to add one to the addresses listed.  Also, they are Floating point I/O type, though I can't tell if you need Reverse Words or not.  

 

So to read Voltage V1N it'd be:

 

D#: 1

I/O Type: Read Input Register Float (or Float Reverse Words)

Channel #: 30001 (or 0)

Link to comment
Share on other sites

I'm sorry, for security reasons I can't access files posted on external sites, especially public sharing sites.  You can simply post your document here.  Is the MFM unit streaming data to the computer?  Then you wouldn't see timeouts, but should see data in the Monitor.  But that also means its not Modbus.

 

I found a manual for that unit and indeed it is Modbus.  Defaults are Modbus ID 1, 9600 baud, 8N1.

 

This manual is the perfect example of someone writing a Modbus manual without understanding Modbus.  They have the Voltage V1N register at address 30000 / hex address 0.  What they really mean is 30001.  30000 doesn't exist in the standard modbus addressing space.  You'll need to add one to the addresses listed.  Also, they are Floating point I/O type, though I can't tell if you need Reverse Words or not.  

 

So to read Voltage V1N it'd be:

 

D#: 1

I/O Type: Read Input Register Float (or Float Reverse Words)

Channel #: 30001 (or 0)

Thank you, i did it, but it still happens that errors. I think that i had connected wrong or converter.

i don't know upload my file at here?

1-2.png

Untitled-11.png?t=1383615992

Link to comment
Share on other sites

Two things:

 

1) you need to attach the ground to the MFM 383, otherwise the ground might be floating so far as to drive the input voltage out of range and can throw things off despite it being a differential reading.

2) you want "Read Input Float (4)" for the I/O type.  It might be another Read Input, but start with Float.  Also try "Read Input U16"

Link to comment
Share on other sites

  • 3 weeks later...

OK, that helps.  You just have garbage on the line.  DAQFactory is sending requests, but only garbage is coming back.  I wonder if you stop the queries if you still receive random data, probably not.  Anyhow, this indicates one of several things:

 

1) you have the baud, byte size, parity or stop bits set wrong.  Double check with your docs.  Many modbus devices use Even parity.

2) you have noise on the line.  If RS232, you can only run it about 15 feet.  If RS485, you may not have it properly terminated.  In either case, if you have a electrically noisy environment, you need to shield the cable.  Also, make sure you have a ground tied between your device and the PC.

Link to comment
Share on other sites

If its modbus, the first byte of response will always be the same as the first byte of the request.  The second byte will be the same as well, or +128 if the device responded with an error.  You are seeing all 255, which is all high bits, which says wiring or serial port configuration problem.  Sounds like the serial port might be correct, so I'm guessing its going to be a wiring issue.  Simplify your system as much as possible until you get it to work.

Link to comment
Share on other sites

  • 3 years later...
On 11/5/2013 at 0:17 PM, AzeoTech said:

Two things:

 

1) you need to attach the ground to the MFM 383, otherwise the ground might be floating so far as to drive the input voltage out of range and can throw things off despite it being a differential reading.

2) you want "Read Input Float (4)" for the I/O type.  It might be another Read Input, but start with Float.  Also try "Read Input U16"

Dear sir,

I'm also have problem with MFM383AC RS485 . I've purchased this device and found out there is only 2 I/O for RS485 port (A and B ) with no connection for ground. Plz check the pic below. So when i connected 2 devices, the float voltage happened and data transmission failed. Could you show me how to connect the ground of my device to MFM383?

  No automatic alt text available.   

 

 

Link to comment
Share on other sites

Hmm, so I see.  I'm surprised that there is no ground at all.  Does the DIN rail mount on the back by chance have exposed metal so that the unit grounds to the chassis?  If so, you could tie the chassis ground to your device.  Otherwise, you'll just need to make sure the two devices are on the same AC panel.  But that also may not be the issue.  It takes a lot for the ground to wander enough to cause an issue and there are so many other things that also have to be right.  Comm port settings is the first, then there is improper termination, bad wires, noise from unshielded wiring (rare in differential systems), incorrect addressing, etc.  A scope on the RS485 lines will help.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.