23.03.2017 Views

wilamowski-b-m-irwin-j-d-industrial-communication-systems-2011

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

KNX 42-7<br />

these GOs using the at-most-once multicast service Data_Group provided by the KNX TL. For this<br />

purpose, it maintains an association table between AL service access points (SAPs), that is, GO identifiers,<br />

and TL SAPs (which correspond one-to-one to DL group addresses). Thus, a group address describes<br />

a group of GOs in a <strong>communication</strong> relationship with each other. Every node is aware which groups it<br />

belongs to and treats messages accordingly.<br />

Usually, data sources will actively publish new data via the AL GroupValue_Write service. If a user<br />

application changes, the value of a GO and A_GroupValue_Write.req is invoked, the network stack<br />

determines the group address this information is to be sent to. The user application is not aware of the<br />

group addresses associated with a GO (implicit addressing). In receivers that recognize this group address<br />

as one of their own, the AL generates an A_GroupValue_Write.ind for the AL SAPs bound to this<br />

group address, providing the user data from the GroupValue_Write PDU (protocol data unit). The<br />

application environment (KNX application interface layer) updates the GOs accordingly and notifies the<br />

user application. This mechanism allows passing a piece of information to an arbitrary number of recipients<br />

by way of a single message. For a single receiver only, it is shown in Figure 42.3. GroupValue_Write<br />

is an unconfirmed service. Message delivery is not guaranteed. If exactly-once semantics are required,<br />

confirmations have to be obtained by the user application.<br />

In this mode of <strong>communication</strong>, senders do not need to know which nodes will actually be receivers<br />

of their messages. The knowledge concerning which nodes participate in any particular <strong>communication</strong><br />

relationship is distributed over all nodes in the system. In KNX, it has traditionally even been<br />

impossible (or at least infeasible) for any node to determine which other nodes will accept and process<br />

messages to any specific group address. This pattern is sometimes referred to as the producer/consumer<br />

1. Wall switch is<br />

pushed<br />

2. Device receives<br />

signal<br />

3. User application recognizes<br />

change of state at input port<br />

User application<br />

GO 1 GO 2 GO 3<br />

6. Network stack looks up KNX network stack<br />

group address associated<br />

with this group object Group obj. ID Group addr.<br />

GO 1 1/1/2<br />

GO 2 4/7/3<br />

GO 3 2/8/1<br />

4. User application updates<br />

associated group object<br />

5. Application environment<br />

recognizes group object<br />

update<br />

7. Network stack sends L_Data<br />

frame (with GroupValue_Write<br />

PDU) to this address<br />

13. Lamp lights up<br />

12. Signal energizes<br />

relay<br />

11. User app. performs associated<br />

action (activates output signal)<br />

KNX<br />

network<br />

User application<br />

10. Application environment<br />

updates appropriate group<br />

object with value received<br />

and notifies user application<br />

GO 1<br />

GO 2<br />

KNX network stack<br />

Group obj. ID<br />

GO 1<br />

GO 2<br />

Group addr.<br />

2/8/1<br />

5/1/6<br />

8. Network stack recognizes<br />

destination address of L_Data<br />

frame as one of its own<br />

9. Network stack determines which<br />

group object is associated with this<br />

group address<br />

FIGURE 42.3<br />

GroupValue_Write—end-to-end overview.<br />

© <strong>2011</strong> by Taylor and Francis Group, LLC

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!