09-05-2005 06:17 PM
more on modbus plus performance
I have more dilemmas considering modbus plus. I'm trying to reduce the unnecessary traffic as much as possible, so I've unchecked "immediately write outputs" in advanced settings for modbus plus hoping that lookout will write to plc only when modbus object is polled. However, it seems that it doesn't happen that way, looks to me like lookout is writing to plc poll or no poll. I need to cut down the traffic because I have delay in system response and I'm considering lookout's share in it.
I have a feeling that making a system with deterministic response (which should be one of
Can anyone comment on this issue and maybe share ideas for improving modbus response time? Is there anything about modbus plus and lookout on ni.com that I'm not aware of?
Darko
09-06-2005 08:42 AM
09-07-2005 10:24 AM
By default, Lookout writes Outputs immediately (without waiting for the poll). BUT, if you uncheck the "immediately write outputs" setting, it should write only when polled. If it's not doing this, it's a bug -- can someone at NI verify this?
Couple of things you can try for improving communication performance:
1. Make sure you're not writing outputs every-so-many polls (unless you really have to). By default, Modbus Object writes the Outputs every 100th poll -- even if none of them have changed. Use the Modbus INI settings to change this behaviour:
http://digital.ni.com/public.nsf/allkb/2E64D5CF87CA6A1086256BB30070DC1A
2. If you have some IO points which don't need to be read as fast as others, use a second Modbus object for these with a slower poll rate (but on the same address, etc.).
3. Use an appropriate update deadband for your analog reads -- you can filter out "noise" from data this way. Note that the IO are still read every poll, but aren't propagated to the rest of the system unless the deadband is surpassed.
Hope this helps,
-Khalid
09-08-2005 10:00 AM
02-22-2006 10:15 AM
02-23-2006 06:18 PM
02-27-2006 08:53 AM
02-28-2006 01:34 PM
UpdateOutputs
UpdateOutputs=50
UpdateOutputs
specifies how many poll requests pass before the driver rewrites all outputs to the device. For example, if UpdateOutputs
equals 10, every tenth time the Modbus object receives a poll request,
it writes all output values to the device. This ensures that the device
is synchronized with Lookout. The default value is 100.02-28-2006 01:43 PM
Richard,
That is exactly the problem. One may reduce or increase the time for the driver to rewrite all the outputs, or simply disable rewriting all the outputs. That does not change the fact that in Lookout 3.8 there was not a delay when rewriting all outputs to a modbus device. Lookout 6.0, 6.01, 6.02 there is a significant delay rewriting all the outputs. This delay is in the upwards of 10-15 seconds regardless of how many scans before this rewriting. Even if I told the .ini file to update every 100000th scan, it will still lock up for 10-15 seconds on the 100000th scan using the default modbus driver. The only way around not locking up for 10-15 seconds is to disable rewrites altogether. When one disables the rewriting, all should be well until the state file corrupts. Then, a problem starts.
03-08-2006 02:16 PM