Echelon ISI User Manual
Page 71
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,