menfoo Posted March 14, 2011 Report Share Posted March 14, 2011 (edited) 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 Thank you very much for you help. Best regards, Tom. Edited March 14, 2011 by menfoo Quote Link to comment
menfoo Posted March 15, 2011 Author Report Share Posted March 15, 2011 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 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 Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.