AbvSpu

| ALPHA-VISION® PMU

# AbvSpu-UDP-Kommunikation

Die UDP-Kommunikation ist eine ungesicherte Übertragungsart, d.h. es gibt keine Gewähr, ob die gesendeten Datenpakete alle Empfänger erreicht haben. Aus diesem Grund wird eine begrenzte Anzahl von Sendepaketen aufbewahrt (Rollback-Puffer), damit im Falle eines Übertragungsfehlers die verlorenen Datenpakete erneut gesendet werden können. Die Information darüber, ob bestimmte Datenpaket erneut gesendet werden müssen, muss der Empfänger liefern. Damit dies möglich ist, werden alle Datenpakete mit einer fortlaufenden Paketnummer versehen. Diese Paketnummer wird auf der Empfänger-Seite auf 'Lücken' überwacht.

Für die Kommunikation zwischen AbvSpu und den VisuNT-Bedienstationen muss mindestens 1 UDP-Verbindung mit Verbindungspartner <Alle Multicast-Teilnehmer> projektiert werden. Damit wird festgelegt, dass die gesendeten UDP-Telegramme allen erreichbaren Multicast-Teilnehmern der Multicast-Gruppe zugestellt werden.

## S7-Verbindungsprojektierung

Für die UDP-Kommunikation muss der Anwender im S7-Projekt 1 - n Verbindungen projektieren und in das Zielsystem laden. Die in der AbvSpu vorhandenen Kommunikations-Parameter müssen mit der vom Anwender vorgenommenen Verbindungsprojektierung übereinstimmen. Standardmäßig (im Auslieferungszustand der AbvSpu) sind für die UDP-Kommunikation die folgenden Parameter eingestellt:

Adresse | Symbol | Kommentar | Anfangswert
--- | --- | --- | ---
DB190.DBW2 | wCountConnections | Anzahl Verbindungen | 3
DB190.DBW4 | wFirstConnection | Erste Verbindungs-ID | 1
DB190.DBW34/36 | wLAddr[1..2] | Log. Baugruppenadresse | W#16#3FFD, W#16#3FFE
DB190.DBW40 | wRollbackSize | Größe des Rollback-Puffers (Anzahl Pakete) | 10

### UDP-Verbindungen

Die AbvSpu verwendet für die UDP-Kommunikation mit den VisuNT-Bedienstationen die in der Zelle DB190.DBW2 eingetragene Anzahl an UDP-Verbindungen (Standard = 3). Das bedeutet dass pro Zyklus maximal 2 Datenpakete mit jeweils 1024 Byte Nettodaten verschickt werden.
Wenn der Datendurchsatz aufgrund der Menge der permanent anstehenden Prozesswert-Änderungen zu gering sein sollte, kann die Anzahl der Verbindungen erhöht werden (die theoretische Grenze liegt bei 32 Verbindungen).

Wenn nur eine oder mehr als 2 UDP-Verbindungen verwendet werden sollen bzw. andere Verbindungs-IDs, muss folgendes beachtet werden:

- Die Verbindungs-IDs (Lokale ID) müssen fortlaufend sein, z.B. 0001, 0002, usw.
- Die Port-Adresse der Partners muss immer die gleiche sein (Partner-Port=2000)
- Die Anzahl der UDP-Verbindungen, die ID der ersten Verbindung sowie der Parameter LADDR muss im DB190 der AbvSpu als Anfangswert eingetragen sein. Die Default-Anfangswerte sind entsprechend anzupassen.

### Erste Verbindungs-ID

Diese Zelle beinhaltet die ID der ersten UDP-Verbindung. Die ID wird als Aufrufparameter für den FC "AG_LSEND" bzw. FC "AG_LRECV" benötigt. Für weitere Verbindungen werden fortlaufende IDs verwendet.

### Log. Baugruppenadresse

Diese beiden Parameter kennzeichnen die Baugruppen-Anfangsadresse der Ethernet-CPs. Die zweite Adresse wird nur im Falle einer redundanten Kommunikation benötigt. Die Parameter werden als Aufrufparameter für den FC "AG_LSEND" bzw. FC "AG_LRECV" benötigt.

### Register <allgemein>

Lokale ID (Hex) | identisch mit dem Wert aus der Verbindungsliste. Die LokaleID kann geändert werden. Das ist dann notwendig, wenn bereits Kommunikations-Funktionsbausteine programmiert wurden und die dort angegebene Lokale ID für die Verbindung verwenden werden soll. Die neue Lokale ID wird als Hexadezimalzahl eingegeben. Der zulässige Wertebereich wird vom System automatisch vorgegeben.
Name | Vorschlagsname plus Suffix Verb.-Nr.; Der Name kann beliebig geändert werden (max. 24 Zeichen) und so z.B. an technologische Bezeichnungen angepasst werden.
Über CP | Falls mehrere CPs gleichen Typs in der Station existieren, die mit dem gleichen Subnetz verbunden sind, kann hier eine Auswahl des Verbindungswegs getroffen werden.

### Register <adressen>

Im Register "Adressen" wird unter der IP-Adresse (IP) für den Partner eine im Netz gültige Multicast-Adresse vorgeschlagen. Partner ist bei Multicast jeweils eine Gruppe von Empfängern (Multicast-Gruppe).
Die Ports bzw. die Port-Adressen definieren den Zugangspunkt zum Anwenderprogramm innerhalb der Station / CPU. Sie müssen innerhalb der Station / CPU eindeutig sein!
Für IP-Multicast können die IP-Adressen von 224.0.0.0 bis 239.255.255.255 verwendet werden.

IP (DEZ) | Lokal | IP-Adresse des Ethernet-CP (nur Anzeige)
Multicast-Gruppe | z.B. 239.0.1.0
PORT (DEZ) | Lokal | 2000 Achtung: Für die erste UDP-Verbindung ist das Port 2000 zwingend vorgeschrieben, da alle VisuNT-Stationen auf dem Port 2000 senden!
Multicast-Gruppe | 2000 Achtung: Das Port 2000 muss bei allen UDP-Verbindungen als Ziel-Port eingetragen sein, da alle VisuNT-Stationen nur auf diesem Port empfangen!

## Beispiel-Projektierung

Verbindungs-ID | IP (Lokal) | Port (lokal) | IP (Multicast) | Port (Multicast)
--- | --- | --- | --- | ---
1 | 192.168.0.100 | 2000 | 239.0.1.0 | 2000
2 | 192.168.0.100 | 2001 | 239.0.1.0 | 2000
3 | 192.168.0.100 | 2002 | 239.0.1.0 | 2000

## Diagnose Kommunikationsschnittstelle

Adresse | Symbol | Bedeutung
--- | --- | ---
Status Kommunikationsschnittstelle (nach Neustart/Wiederanlauf)
DB195.DBW186 | - | 0 = okay, sonst = Fehler
Anzahl angeschlossener OSen (VisuNT-Stationen)
DB195.DBW162 | - | maximale Anzahl der PC-Kommunikationspartner
Sendetakt
DB195.DBW190 | - | Anzahl Zyklen, nach denen die bis dahin gesammelten Änderungstelegramme an die angeschlossenen Kommunikationspartner versendet werden.
PC Online/Offline-Status

DB190.DBD356

-

Online-Status der angeschlossenen PC-Kommunikationspartner.Der Online-Status der maximal 32 Kommunikationspartner wird jeweils durch ein Bit mit der Bedeutung 1=online, 0=offline dargestellt.
Die Zuordnung zwischen PC-Nummer und Bit-Nummer verläuft von rechts nach links aufsteigend:
DBX359.0 //PC1
DBX359.1 //PC2
...
DBX359.7 //PC8
...
DBX356.0 //PC25
...
DBX356.7 //PC32

AbvSpu-Watchdog
DB190.DBB0 | S7_WDOG | Wenn die Initialisierung der AbvSpu (insbesondere die Initialisierung der Kommunikationsschnittstelle) erfolgreich war, wird diese Speicherzelle in jedem OB1-Zyklus um den Wert 1 inkrementiert.
Verfügbare UDP-Verbindungen Nach einem erfolgten Neustart/Wiederanlauf werden alle über "Anzahl Verbindungen" definierten UDP-Verbindungen auf 'verfügbar gesetzt' und ein Sendeauftrag angestoßen. Im normalen Betrieb werden die Sendeaufträge aller verfügbaren Verbindungen auf Fertigmeldung abgefragt. Die Statusmeldung 0x8183 (Projektierfehler) bewirkt dass die entsprechende Verbindung dauerhaft auf "nicht verfügbar" gesetzt wird. Im Normalfall sollten alle Verbindungen als "verfügbar" angezeigt werden. Die Anzeige der verfügbaren Verbindungen erfolgt in einem 32Bit-Datenwort, wobei der Bit-Wert "1" den Status "verfügbar" und der Bit-Wert "0" den Status "nicht verfügbar" repräsentiert.

DB190.DBD22

dwConnectionAvailable[1]

Verbindungen CP 1
Bit 2^0 //Verbindung 1
Bit 2^1 //Verbindung 2
...
Bit 2^15 //Verbindung 32

Bit = 1 //verfügbar
Bit=0 //nicht verfügbar

DB190.DBD26 | dwConnectionAvailable[2] | Verbindungen CP 2
Freie Verbindungen Die Anzeige der freien Verbindungen (d.h. die Verbindung kann mit einem Sendeauftrag belegt werden) ist sehr dynamisch. Im Regelfall werden die Verbindungen meist als 'nicht frei' angezeigt, da sie ständig mit Sendeaufträgen belegt sind. Die Anzeige der freien Verbindungen erfolgt in einem 32Bit-Datenwort, wobei der Bit-Wert "1" den Status "frei" und der Bit-Wert "0" den Status "nicht frei" repräsentiert.

DB190.DBD6

dwSndInfo_ConnectionFree[1]

Verbindungen CP1
Bit 2^0 //Verbindung 1
Bit 2^1 //Verbindung 2
...
Bit 2^15 //Verbindung 32

Bit = 1 //frei
Bit = 0 //nicht frei

DB190.DBD10 | dwSndInfo_ConnectionFree[2] | Verbindungen CP 2
Sendefehler Hier werden die beim Senden der Lebenszeichen/Nettodaten aufgetretenen Fehler aller Art vermerkt. Ein einmal aufgetretener Fehler bleibt anstehen, d.h. er wird nicht durch einen folgenden erfolgreichen Sendevorgang zurückgesetzt. Die Anzeige der Sendefehler erfolgt in einem 32Bit-Datenwort, wobei der Bit-Wert "1" den Status "Fehler" und der Bit-Wert "0" den Status "kein Fehler" repräsentiert.

DB190.DBD14

dwSndInfo_Error[1]

Verbindungen CP 1
Bit 2^0 //Verbindung 1
Bit 2^1 //Verbindung 2
...
Bit 2^15 //Verbindung 32

Bit = 1 //Fehler
Bit = 0 //kein Fehler

DB190.DBD18 | dwSndInfo_Error[2] | Verbindungen CP 2
Rollback-Anforderungen In dieser Speicherzelle werden die Rollback-Anforderungen der Kommunikationspartner seit Neustart/Wiederanlauf gezählt. Dieser Wert ist ein Maß für die Güte der Kommunikation.
DB190.DBW390 | wRollbackRequestsFromPC | Anzahl Rollback-Anforderungen von den Kommunikationspartnern