Jump to content

lots of addresses to read from lots of Modbus slaves


Recommended Posts

Hello,

Like the title says, I need to read lots of address from 50 energy analysers (Entes EPR-04S), whose Modbus addresses range from 40021 to 297.

I use four 32bit arrays AD400..L.. of maximum size L20 (or maximum forty 16bit addresses).

I am also using 2 Adam 4572 from advantech for rs485 to ethernet conversion.

I use labview 2010 with the DSC module.

I have no problem communicating with the EAs separately but I will need to log all those values from all the slaves in a database and I currently need several minutes to go around them all.

Here is what I've tried until now:

- create 1 I/O Modbus server per EA (did only 8 for trial) and create the bound variables to the addresses I need to read.

Problem: only the variables from the 2 first EA (I/O server) are read/changing, not for the other 6 (or very seldom)

- create 1 I/O Modbus server for the 1st EA and create the bound variables for it, then use the "Create and Configure IO Server" Express VI to change the modbus slave address.

Problem: it takes 5 sec after changing the modbus slave address for the bound variables to update and get the right values.

I've been playing with the refresh rate, wait if fail, advanced settings (Holding/Input register), etc.. but without any success.

Furthermore, with Modsan32, the data changes almost instantaneously when changing the Modbus slave address. So the problem doesnt seem to come from ADAM or ENTES but from my programming skills :P

Thank you very much for you help.

Best regards,

Tom.

Edited by menfoo
Link to comment

Hello,

Like the title says, I need to read lots of address from 50 energy analysers (Entes EPR-04S), whose Modbus addresses range from 40021 to 297.

I use four 32bit arrays AD400..L.. of maximum size L20 (or maximum forty 16bit addresses).

I am also using 2 Adam 4572 from advantech for rs485 to ethernet conversion.

I use labview 2010 with the DSC module.

I have no problem communicating with the EAs separately but I will need to log all those values from all the slaves in a database and I currently need several minutes to go around them all.

Here is what I've tried until now:

- create 1 I/O Modbus server per EA (did only 8 for trial) and create the bound variables to the addresses I need to read.

Problem: only the variables from the 2 first EA (I/O server) are read/changing, not for the other 6 (or very seldom)

- create 1 I/O Modbus server for the 1st EA and create the bound variables for it, then use the "Create and Configure IO Server" Express VI to change the modbus slave address.

Problem: it takes 5 sec after changing the modbus slave address for the bound variables to update and get the right values.

I've been playing with the refresh rate, wait if fail, advanced settings (Holding/Input register), etc.. but without any success.

Furthermore, with Modsan32, the data changes almost instantaneously when changing the Modbus slave address. So the problem doesnt seem to come from ADAM or ENTES but from my programming skills :P

Thank you very much for you help.

Best regards,

Tom.

I think I kinda solved it.

For those who are interested, the "update now" bound variable that comes with the I/O modbus server is very useful :)

Cheers,

Tom

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.