User guide

Neuron C Programmer’s Guide 131
See
Message Tags
on page 122 for a more detailed discussion of the nonbind
option.
The use of explicit addressing has an effect on the buffer sizes needed by the
Neuron firmware. See
Table 14 on page 196 for more detailed information.
You can send network variable updates using explicit addressing by creating an
explicit message that corresponds to a network variable update and explicitly
setting the destination address. See the
ISO/IEC 14908-1 Control Network
Protocol
standard for a description of the explicit message format of a network
variable update and for more information on addressing.
Sending a Message with the Acknowledged
Service
When a device sends a message using the acknowledged
service (the default), all
receiver devices must acknowledge receipt of the message to the sender device.
As shown in
Figure 12, the network processor is responsible for sending the
acknowledgment. This acknowledgment message contains no data and is sent to
the network processor on the device where the message originated.
The application layer plays no part in the acknowledgment of a message.
How
then does a program ever learn whether a message has succeeded or failed? The
following section answers this question.
Application
Scheduler
Network
MAC
Hardware
Sender Device (writer)
Application
Scheduler
Network
MAC
Hardware
Receiver Device (reader)
Figure 12. Acknowledging a Message
Message Completion Events
The following events can be used by the sender device to check message
completion status:
msg_completes [(
msg-tag-name
)]
msg_succeeds [(
msg-tag-name
)]
msg_fails [(
msg-tag-name
)]
All three events can be qualified by a message tag name. If unqualified, the
event applies to any message.
When using an unqualified message completion event, the built-in variable
msg_tag_index can be used to determine which message tag was responsible for