Alias table size, Domain table size – Echelon ISI User Manual

Page 14

Advertising
background image

ISI Programmer’s Guide

12

When used in a self-installed network, an ISI device will typically only require

one address table entry for each group it can join. Since the ISI application has
complete control over the groups it might belong to (by means of the

IsiGetAssembly(), IsiGetNextAssembly(), and IsiCreateCsmo() overrides), the

maximum size address table can be determined by the application developer.
This is not the case in a managed network, where a 15-entry address table is

normally required for flexible use of a device.

Alias Table Size

When designing an application that is to be used in a managed network, a rule of
thumb is to declare a minimum number of alias table entries of at least

A

+

NVs

/

Z

, with

A

and

Z

being 3 or 5 and

NVs

equal to the number of NVs declared by the

application. You can declare a maximum of 62 aliases. This rule-of-thumb often
provides a good size estimate, although you may have a better understanding of

the expected alias table requirements based on analysis of typical use-cases and

expected connection scenarios for the device.

The IsiCompactManual and IsiCompactAuto libraries do not support aliases, and
therefore do not use the alias table at all. In these cases, declaring an alias table

following the above guidelines is recommended to allow for use of the device in a

managed network.

Other ISI libraries support aliases, and allocate alias table entries each time an
ISI connection is extended (using the IsiExtendEnrollment() function call). One

alias table entry is typically required for each network variable that is associated

with the assembly that is used with the IsiExtendEnrollment() function, unless
the assembly is not yet bound at that time. An API is provided to determine the

connection status of a given assembly (IsiIsConnected() function), and a function
is provided to determine the number of remaining, unused, alias table entries

(IsiGetFreeAliasCount()). The number of IsiExtendEnrollment() calls made for

the same assembly over time cannot be predetermined (unless the application
never calls this function, and never accepts automatic enrollment). For those

applications, the above rule-of-thumb is recommended for a reasonable minimum

alias table size.

Automatic enrollment always calls IsiExtendEnrollment(), unless the ISI library
does not support connection extensions. In this case, IsiCreateEnrollment() is

used instead.

Domain Table Size

The domain table holds two entries by default. This is the required minimum

size of the domain table for an ISI device. If you use the #num_domain_entries
compiler directive to construct an ISI application that implements just one

domain table entry, the device will not function correctly. The error log contained
in the device will report an invalid_domain (138) error, resulting from an attempt

to start the ISI engine with less than two domain table entries.

Advertising