beautypg.com

Echelon ISI User Manual

Page 71

background image

69

ISI Programmer’s Guide

With that knowledge, an accepting device that implements a

SFPTclosedLoopActuator functional block must associate

S

1

with its local input

network variable, and

S

0

with its output network variable. The completed

connections are shown next:

Compound Assembly Connections

When the accepting SFPTclosedLoopActuator functional block implements the

connection, the ISI implementation will query the mapping from selector values
to network variables using the IsiGetNvIndex() callback.

The IsiGetNvIndex() function provides an assembly number and offset. The

application must return the index of the matching network variable, or
ISI_NO_INDEX if no matching network variable exists.

In this example, the IsiGetNvIndex() function will be called twice on the
connection host because the CSMO indicated a width of 2. The Assembly

parameter will be set to

Y

(which was provided through IsiGetAssembly()

callback earlier). When the callback occurs with offset 0, the application returns

the global index of the input network variable. The index of the output is

provided for offset 1. The code regarding AmBecomingHost is included to avoid
having an input network variable on the first device having the same selector

value as the input network variable on the second device, and an output network

variable on the first device having the same selector value as the output network
variable on the second device:

unsigned IsiGetAssembly(...) {
if ( ... ) {
// Recognized SFPTclosedLoopSensor with width 2, variant 0,