Modnet Driver Preformance

Hello All

Please, someone can give me ideas to tuning better the Modnet Protocol.

we get some intermittent communication errors "I/O Device off-line, cannot talk".

We configured 55 IO Devices over Modnet Protocol reading about 200k Tags in the redundant system.

Thank you

Parents
  • On the topic of MODNET tuning, are the Retries and Timeout parameters able to be specified per device? The documentation seems to indicate no, but I wouldn't have thought the same values would apply to all configured devices.

     , you mentioned splitting IO devices across multiple IO servers on the same PC for better performance - are there any performance indicators, or configuration limits, you'd recommend to check to see whether this change would be recommended? E.g. IO server process CPU, late task time, number of configured IO devices, etc.

Reply
  • On the topic of MODNET tuning, are the Retries and Timeout parameters able to be specified per device? The documentation seems to indicate no, but I wouldn't have thought the same values would apply to all configured devices.

     , you mentioned splitting IO devices across multiple IO servers on the same PC for better performance - are there any performance indicators, or configuration limits, you'd recommend to check to see whether this change would be recommended? E.g. IO server process CPU, late task time, number of configured IO devices, etc.

Children
  • Hi  ,

    I think the limits are usually CPU that the process has available. The Citect32.exe is a single thread application, so it can only make use of one logical CPU. The only exception to that is the startup/shutdown code which touches more of the .NET codebase, and is able to use more than one logical core.

    There are other extremes, where you might have a large number of IO Devices on a single IOServer process (think about all the boards, ports, units that need to be managed). Where it might also make sense to split the load across multiple IOServer processes.

    My general rule is try to keep less than 100,000 variable tags per IOServer. But that isn't a hard and fast rule, and is dependent on complexity of the system, type of driver in use, number of IO Devices, etc.

    I don't think you can set retries and timeout parameters per device, but I could be wrong. But it does seem that way from the documentation.

  • I can't vouch for these parameters, but I have a bunch of INI files from site that have the following in them:

    [MODNET]
    MaxOutstanding = 8
    MaxPending = 16
    Timeout = 1000
    Retry = 0

    [MODNET.PORT102_BOARD1]
    MaxOutstanding = 1
    MaxPending = 2
    RegisterBitReverse = 1
    Timeout = 4000

    [MODNET.PORT402_BOARD1]
    MaxOutstanding = 1
    MaxPending = 2
    RegisterBitReverse = 1
    Timeout = 4000

    Seems to be a simple case of adding the port name...

  • If you apply a group suffix to your device address in the I/O devices (units.dbf) table you can use that instead.

    So if your Modnet device address is currently "1" and you change that to "1 MyDevice" (note the space between the address and the group name), then you can have settings in citect.ini under [MODNET.MyDevice]

    That way you can group parameters by device type. Eg for all your PowerLogic PMxxx meters, address them with a "PMxxx" suffix, you can put all your relevant settings in [MODNET.Pmxxx] which will override those in [MODNET] which themselves override the driver defaults.

    (This isn't specific to MODNET so works with other drivers too.)

  • Hi  

    After digging a bit deeper, it turns out that Timeout was added to device specific parameters (but not Retry), this was done in Driver build 3.01.05.000, as part of bug report  63307.

    The Device Address [MODNET.MyDevice] is a neat trick too! I will have to give that a try.