Einfache Kommandoschnittstelle Modicon M340-Steuerung

Transcrição

Einfache Kommandoschnittstelle Modicon M340-Steuerung
 Einfache Kommandoschnittstelle
Modicon M340-Steuerung
Bibliotheksbeschreibung
DTE102
1
Inhalt
1
2
3
4
Übersicht ....................................................................................................................................................... 3
Haftungsausschluss ...................................................................................................................................... 3
Einstellen der Verbindungsparameter in der Auswerteeinheit ...................................................................... 3
Projektieren der Verbindung in Unity Pro ...................................................................................................... 4
4.1
Einfügen der Auswerteeinheit in den Hardwarekatalog von Unity Pro ................................................. 4
4.2
Einfügen der Auswerteeinheit in das Softwareprojekt .......................................................................... 7
4.3
Einstellen der Verbindungsparameter im Kommunikationsmodul ........................................................ 9
4.4
Konfigurieren der Kanäle der Auswerteeinheit ................................................................................... 12
5 Arbeiten mit der Bibliothek .......................................................................................................................... 13
5.1
Integration der Bibliothek in Unity Pro ................................................................................................ 13
5.2
Inhalt der Bibliothek ............................................................................................................................ 13
5.3
Verwenden der Bausteine im Anwenderprogramm ............................................................................ 14
6 Die Funktionsbausteine der Bibliothek im Detail ......................................................................................... 14
6.1
Der Funktionsbaustein DTE102_INACTIVE ....................................................................................... 14
6.2
Der Funktionsbaustein DTE102_INPUT............................................................................................. 15
6.3
Der Funktionsbaustein DTE102_OUTPUT......................................................................................... 17
6.4
Der Funktionsbaustein DTE102_RWH_RW ....................................................................................... 19
6.4.1 Aufbau der Kommunikation ............................................................................................................ 21
6.4.2 Ablauf der Kommandobearbeitung ................................................................................................. 22
6.4.3 Lesen der UID des Tags ................................................................................................................. 23
6.4.4 Lesen eines Bereichs des USER-Speichers des Tags .................................................................. 24
6.4.5 Beschreiben eines Bereichs des USER-Speichers des Tags ........................................................ 24
6.4.6 Anzeigen am Ausgangsparameter owStatus ................................................................................. 25
2
1
Übersicht
Die Unity Pro Bibliothek DTE102 beinhaltet ein Codepaket für eine Schneider Electric Modicon M340
Steuerung, um im Anwenderprogramm der SPS den Datenaustausch mit einer Auswerteeinheit DTE102 der
Firma ifm electronic zu vereinfachen. Für jedes der unterstützten Module der Auswerteeinheit wird ein
Funktionsbaustein (DFB) bereitgestellt.
Dieses Dokument erläutert das Einrichten der Verbindung zwischen Steuerung und Auswerteeinheit, und
beschreibt die Einbindung und Anwendung der Bibliothek im Unity-Pro Projekt.
2
Haftungsausschluss
Das Codepaket der Bibliothek ist eine Demoversion. Es ist nur dazu gedacht, dem Benutzer als Beispiel zu
dienen. Eine etwaige Anwendung dieses Codepakets zur Maschinensteuerung erfolgt auf eigene Gefahr!
Die Autoren und Rechtsinhaber dieses Codepakets schließen jegliche Haftung für die Funktionstüchtigkeit
oder Kompatibilität dieser Demoversion aus.
Aus urheberrechtlichen Gründen ist nur die kostenlose Weitergabe des Codepakets erlaubt.
3
Einstellen der Verbindungsparameter in der Auswerteeinheit
Zum Einstellen der Verbindungsparameter in der Auswerteeinheit wird das im Gerät integrierte Web-Interface
verwendet. Dieses ist mit einem beliebigen Webbrowser erreichbar. Die Auswerteeinheit wird mit der
IP-Adresse 192.168.0.79 ausgeliefert.
 PC und Auswerteeinheit in einem Netzwerk verbinden
 am PC den Webbrowser starten und die IP-Adresse der Auswerteeinheit eingeben
 auf der Seite Home kann
mit einem Klick auf den
Link EDS.ZIP ein Archiv
mit dem EDS- File für das
Gerät heruntergeladen
werden.
Abbildung 1
3
 auf der Seite Network
können die
Netzwerkparameter
eingestellt werden
 auf [submit] klicken, um
die Netzwerkparameter in
die Auswerteeinheit zu
übernehmen
Abbildung 2
4
Projektieren der Verbindung in Unity Pro
Die Kommunikation zwischen Steuerung und Auswerteeinheit erfolgt über Ethernet/IP durch ein
Kommunikationsmodul NOC0401 in der M340-Steuerung. Die Funktionsbausteine der Bibliothek DTE102
benutzen den zyklischen Dienst „Implicit Messaging“ zum Datenaustausch mit der Auswerteeinheit. Dazu ist
eine Projektierung der Verbindung in Unity Pro zwingend notwendig.
Jede Auswerteeinheit DTE102 belegt je 80 Bytes im Ein- und Ausgangsbereich des Kommunikationsmoduls
NOC0401. Diese Bereiche sind bei der Konfiguration der Adressbereiche des Kommunikationsmoduls zu
reservieren.
4.1 Einfügen der Auswerteeinheit in den Hardwarekatalog von Unity Pro
Um die Auswerteeinheit in den Hardwarekatalog zu integrieren, ist das EDS-File der Auswerteinheit
erforderlich. Dieses EDS-File kann über das Web-Interface der Auswerteeinheit als Archiv heruntergeladen
werden (siehe Kapitel 3). Nach dem Entpacken dieses Archivs kann das EDS-File in den Hardwarekatalog
integriert werden.
4
 Im DTM-Browser mit der rechten
Maustaste auf das
Kommunikationsmodul klicken
 aus dem Kontextmenü GeräteMenü  Zusätzliche Funktionen 
EDS in Bibliothek hinzufügen
wählen
Abbildung 3
5
 mit Hilfe des sich öffnenden
Assistenten die EDS-Datei der
Auswerteeinheit zur Bibliothek
hinzufügen
Abbildung 4
 In Unity Pro den Hardwarekatalog
öffnen
Abbildung 5
6
 im Hardwarekatalog zum Tab
DTM-Katalog wechseln
 mit Klick auf [Aktualisieren] den
Katalog aktualisieren
Abbildung 6
4.2
Einfügen der Auswerteeinheit in das Softwareprojekt
 im DTM-Browser mit der rechten Maustaste auf das
Kommunikationsmodul klicken
 aus dem Kontextmenü Hinzufügen… wählen
Abbildung 7
7
 aus der Liste der Geräte das
DTE102XX (from EDS)
auswählen
 auf [DTM hinzufügen] klicken,
um das Fenster Eigenschaften
des Geräts zu öffnen
Abbildung 8
 im Tab General dem Gerät einen eindeutigen
Alias-Namen geben
Abbildung 9
 im Tab Protokollinformation das erforderliche
Protokoll CIP (EtherNet/IP) einstellen
 den Dialog Eigenschaften des Geräts mit Klick
auf [OK] verlassen, um die Einstellungen zu
übernehmen
Abbildung 10
8
4.3
Einstellen der Verbindungsparameter im Kommunikationsmodul
 im DTM-Browser mit der rechten Maustaste auf
das Kommunikationsmodul klicken
 aus dem Kontextmenü Öffnen wählen, um das
Fenster zur Konfiguration des
Kommunikationsmoduls zu öffnen
Abbildung 11
 in der Struktur in der linken
Seite des Fensters den
Eintrag Geräteliste erweitern
und die Auswerteeinheit
auswählen
 den Tab Eigenschaften
auswählen
 im Bereich
Elementverwaltung den
Importmodus auf Manuell
einstellen
Abbildung 12
9
 zum Tab Adresseinstellungen
wechseln
 im Bereich Adresse ändern
die in der Auswerteeinheit
eingestellte IP-Adresse
eingeben
Abbildung 13
 in der Struktur in der linken
Seite des Fensters den
Eintrag Exclusive Owner
auswählen
 Parameter Request Packet
Interval (RPI) >= 10 ms
einstellen
Der Wert Verbindungsbit gibt
die Nummer des Bits an,
welches in den HEALTH_BITS
den Status der Ethernet/IPVerbindung zum Gerät
anzeigt. Die HEALTH_BITS
sind Teil des Status-ByteArrays im Eingangsbereich
des Kommunikationsmoduls.
Zum Beispiel ist in Abbildung
14 das Verbindungsbit = 0.
Das heißt das Bit
HEALTH_BITS_IN[0].0
zeigt, ob die Ethernet/IPVerbindung zur
Auswerteeinheit aufgebaut ist.
Abbildung 14
10
 in der Struktur in der linken
Seite des Fensters den
Eintrag Elemente auswählen
Abbildung 15
 in den Tabs Eingang,
Eingang(Bit), Ausgang und
Ausgang(Bit) alle
vordefinierten Elemente
löschen
 mit Klick auf [OK] die
Einstellungen übernehmen
und das Fenster schließen
Abbildung 16
11
4.4
Konfigurieren der Kanäle der Auswerteeinheit
 Im DTM-Browser mit der rechten Maustaste auf das
Symbol der Auswerteeinheit klicken
 aus dem Kontextmenü Öffnen wählen, um das Fenster
zur Konfiguration der Auswerteeinheit zu öffnen
Abbildung 17
 in der Struktur auf Exclusive
Owner klicken
 zum Tab
Konfigurationseinstellungen
wechseln
 alle Kanäle der
Auswerteeinheit
entsprechend der
vorgesehenen Verwendung
konfigurieren.
Die Bedeutung der Parameter
ist im Gerätehandbuch der
Auswerteeinheit beschrieben.
 mit Klick auf [OK] die Daten
übernehmen
Abbildung 18
12
5
Arbeiten mit der Bibliothek
5.1 Integration der Bibliothek in Unity Pro
Die Bibliothek DTE102 wird als Archiv-Datei geliefert. Nach dem Entpacken dieses Archivs kann die
Bibliothek mit dem Tool zur Typbibliotheks-Aktualisierung aus dem Unity Software Paket in die Typbibliothek
von Unity Pro integriert werden.
 das Tool zur Typbibliothek-Aktualisierung
starten
 als Quelle das Verzeichnis mit der Bibliothek
einstellen
 auf [Familie installieren] klicken
 nach der Installation auf [Beenden] klicken,
um das Tool zu verlassen
Abbildung 19
Die Bausteine werden in der Bibliothek
ifm electronic in die Familie DTE102
eingeordnet.
Abbildung 20
5.2 Inhalt der Bibliothek
Die Bibliothek DTE102 beinhaltet je einen benutzerspezifischen Funktionsbaustein (DFB) für jedes der
unterstützten Module der Auswerteeinheit.
Name
Typ
Beschreibung
DTE102_INACTIVE
DFB
Funktionsbaustein für einen Kanal der Auswerteeinheit DTE102 mit
Module Identifier = INACTIVE
(nähere Beschreibung siehe Kapitel 6.1)
DTE102_INPUT
DFB
Funktionsbaustein für einen Kanal der Auswerteeinheit DTE102 mit
Module Identifier = INPUT
(nähere Beschreibung siehe Kapitel 6.2)
DTE102_OUTPUT
DFB
Funktionsbaustein für einen Kanal der Auswerteeinheit DTE102 mit
Module Identifier = OUTPUT
(nähere Beschreibung siehe Kapitel 6.3)
DTE102_RWH_RW
DFB
Funktionsbaustein für einen Kanal der Auswerteeinheit DTE102 mit
Module Identifier = RWH_RW
(nähere Beschreibung siehe Kapitel 6.4)
Tabelle 1
13
5.3 Verwenden der Bausteine im Anwenderprogramm
Für jeden Kanal kann im Anwenderprogramm ein Funktionsbaustein verwendet werden. Dieser muss zu dem
eingestellten Modul des Kanals passen (siehe Tabelle 1). Die korrekte Auswahl wird innerhalb der
Funktionsbausteine nicht überprüft.
Es ist nur eine Instanz eines Funktionsbausteins pro Kanal einer Auswerteeinheit zulässig. Alle verwendeten
Instanzen müssen im zyklischen Programm der SPS einmal pro Zyklus aufgerufen werden.
Zur Verwendung der Funktionsbausteine müssen im Unity Projekt dynamische Arrays
(ANY_ARRAY_XXX) als Variablen und Bit-Extraktion aus Bytes zugelassen werden. Dies wird in den
Eigenschaften des Projekts festgelegt.
6
Die Funktionsbausteine der Bibliothek im Detail
6.1 Der Funktionsbaustein DTE102_INACTIVE
Dieser Funktionsbaustein kann für einen als INACTIVE parametrierten Kanal der Auswerteeinheit DTE102
verwendet werden. Er bietet folgende Funktion:
Lesen der Diagnosedaten des Kanals der Auswerteeinheit
Der Funktionsbaustein extrahiert in jedem SPS-Zyklus die Daten des Kanals aus den Eingangsdaten der
Auswerteeinheit. Tritt an dem Kanal ein Diagnoseereignis auf, werden die Diagnosedaten selbständig gelesen
und an den Ausgangsparametern angezeigt. Das Lesen der Diagnosedaten arbeitet asynchron, das bedeutet
es erstreckt sich über mehrere SPS-Zyklen.
Das folgende Bild zeigt einen Aufruf des Funktionsbausteins DTE102_INACTIVE.
Abbildung 21
Die Parameter haben folgende Bedeutung:
Eingangsparameter:
Name
Typ
Beschreibung
iarbDTE102
ANY_ARRAY_BYTE
Datenfeld der Eingänge von der Auswerteeinheit
iiChannelNo
INT
Kanal-Nummer (1..4)
ixConnOK
BOOL
Ethernet/IP-Verbindung zur Auswerteeinheit ist hergestellt
ixAckDiag
BOOL
Löschen der angezeigten Diagnosedaten
Tabelle 2
14
Ausgangsparameter:
Name
Typ
Beschreibung
oarbDTE102
ANY_ARRAY_BYTE
Datenfeld der Ausgänge zur Auswerteeinheit
oiDiagLength
INT
Anzahl der Einträge in den Diagnosedaten
oardwDiagData
ARRAY[0..3] OF DWORD
Array mit Diagnosedaten (Fehlercodes siehe Gerätehandbuch
DTE102)
Tabelle 3
Die Eingangsdaten von der Auswerteeinheit werden dem Baustein am Eingangsparameter iarbDTE102 zur
Verfügung gestellt. Der Ausgangsparameter oarbDTE102 verweist auf die Ausgangsdaten, die zur
Auswerteeinheit transferiert werden.
Durch den Eingangsparameter iiChannelNo wird bestimmt, welcher Kanal der Auswerteeinheit bearbeitet
werden soll.
Der Eingangsparameter ixConnOK zeigt dem Baustein an, dass die Ethernet/IP-Verbindung zur
Auswerteeinheit aufgebaut ist. Vorzugsweise ist dieser Eingangsparameter mit dem entsprechenden
Verbindungsbit (Abbildung 14) aus dem Eingangsbereich der Kommunikationsbaugruppe zu verknüpfen.
Solange der Eingangsparameter ixConnOK = FALSE ist, werden die an den Ausgangsparametern
angezeigten Diagnosedaten mit 0 initialisiert. Ist das Signal am Eingangsparameter ixConnOK = TRUE,
beginnt der Funktionsbaustein zu arbeiten.
Wird von der Auswerteeinheit ein Fehler an dem parametrierten Kanal gemeldet, fügt der Funktionsbaustein
selbständig die Steuersignale für das Lesen der Diagnosedaten in die Ausgangsdaten zur Auswerteeinheit
ein. Die erhaltenen Diagnosedaten werden im Ausgangsparameter oardwDiagData angezeigt. Dabei werden
die bisher angezeigten Diagnosedaten komplett gelöscht. Der Ausgangsparameter oiDiagLength zeigt, wie
viele Diagnosedatensätze aktuell angezeigt werden.
Die Beschreibungen der Fehlercodes in den Diagnosedaten sind im Gerätehandbuch der Auswerteeinheit
aufgeführt.
Eine steigende Flanke am Eingangsparameter ixAckDiag löscht die angezeigten Diagnosedaten.
6.2 Der Funktionsbaustein DTE102_INPUT
Dieser Funktionsbaustein kann für einen als INPUT parametrierten Kanal der Auswerteeinheit DTE102
verwendet werden. Er bietet folgende Funktionen:
Lesen des digitalen Signals am Eingang C/Qi
Lesen des digitalen Signals am Eingang I/Q
Überwachung der Last am L+ Anschluss der Ports
Lesen der Diagnosedaten des Kanals der Auswerteeinheit
Der Funktionsbaustein extrahiert in jedem SPS-Zyklus die Daten des Kanals aus den Eingangsdaten der
Auswerteeinheit und stellt die Daten der digitalen Eingänge des Kanals an seinen Ausgangsparametern zur
Verfügung.
Tritt an dem Kanal ein Diagnoseereignis auf, werden die Diagnosedaten selbständig gelesen und an den
Ausgangsparametern angezeigt. Das Lesen der Diagnosedaten arbeitet asynchron und erstreckt sich über
mehrere SPS-Zyklen. Die zyklischen Funktionen des Bausteins werden davon nicht beeinflusst.
Wird dieser Funktionsbausteins für einen Kanal verwendet, der nicht als INPUT parametriert ist, führt dies zur
Fehlfunktion des Bausteins.
Das folgende Bild zeigt einen Aufruf des Funktionsbausteins DTE102_INPUT.
15
Abbildung 22
Die Parameter haben folgende Bedeutung:
Eingangsparameter:
Name
Typ
Beschreibung
iarbDTE102
ANY_ARRAY_BYTE
Datenfeld der Eingänge von der Auswerteeinheit
iiChannelNo
INT
Kanal-Nummer (1..4)
ixConnOK
BOOL
Ethernet/IP-Verbindung zur Auswerteeinheit ist hergestellt
ixAckDiag
BOOL
Löschen der angezeigten Diagnosedaten
Name
Typ
Beschreibung
oarbDTE102
ANY_ARRAY_BYTE
Datenfeld der Ausgänge zur Auswerteeinheit
oxCQi
BOOL
Status des digitalen Eingangs C/Qi
oxIQ
BOOL
Status des digitalen Eingangs I/Q
oxOverload
BOOL
Overload der Spannungsversorgung aus L+
oiDiagLength
INT
Anzahl der Einträge in den Diagnosedaten
oardwDiagData
ARRAY[0..3] OF DWORD
Array mit Diagnosedaten (Fehlercodes siehe Gerätehandbuch
DTE102)
Tabelle 4
Ausgangsparameter:
Tabelle 5
Die Eingangsdaten von der Auswerteeinheit werden dem Baustein am Eingangsparameter iarbDTE102 zur
Verfügung gestellt. Der Ausgangsparameter oarbDTE102 verweist auf die Ausgangsdaten, die zur
Auswerteeinheit transferiert werden.
Durch den Eingangsparameter iiChannelNo wird bestimmt, welcher Kanal der Auswerteeinheit bearbeitet
werden soll.
Der Eingangsparameter ixConnOK zeigt dem Baustein an, dass die Ethernet/IP-Verbindung zur
Auswerteeinheit aufgebaut ist. Vorzugsweise ist dieser Eingangsparameter mit dem entsprechenden
Verbindungsbit (Abbildung 14) aus dem Eingangsbereich der Kommunikationsbaugruppe zu verknüpfen.
Solange der Eingangsparameter ixConnOK = FALSE ist, werden alle Ausgangsparameter mit 0 initialisiert. Ist
das Signal am Eingangsparameter ixConnOK = TRUE, beginnt der Funktionsbaustein zu arbeiten.
16
Ein als INPUT parametrierter Kanal der Auswerteeinheit stellt 2 digitale Eingänge zur Verfügung. Der Status
dieser Eingänge wird an den Ausgangsparametern oxCQi und oxIO angezeigt. Eine Überlastung der
Spannungsversorgung aus diesen Eingängen wird am Ausgangsparameter oxOverload signalisiert.
Wird von der Auswerteeinheit ein Fehler an dem parametrierten Kanal gemeldet, fügt der Funktionsbaustein
selbständig die Steuersignale für das Lesen der Diagnosedaten in die Ausgangsdaten zur Auswerteeinheit
ein. Die erhaltenen Diagnosedaten werden im Ausgangsparameter oardwDiagData angezeigt. Dabei werden
die bisher angezeigten Diagnosedaten komplett gelöscht. Der Ausgangsparameter oiDiagLength zeigt, wie
viele Diagnosedatensätze aktuell angezeigt werden.
Die Beschreibungen der Fehlercodes in den Diagnosedaten sind im Gerätehandbuch der Auswerteeinheit
aufgeführt.
Eine steigende Flanke am Eingangsparameter ixAckDiag löscht die angezeigten Diagnosedaten.
6.3 Der Funktionsbaustein DTE102_OUTPUT
Dieser Funktionsbaustein kann für einen als OUTPUT parametrierten Kanal der Auswerteeinheit DTE102
verwendet werden. Er bietet folgende Funktionen:
Steuern des digitalen Signals am Ausgang C/Qo
Lesen des digitalen Signals am Eingang I/Q
Aktivieren der erhöhten Stromversorgung des Ausgangs C/Qo (nur für Kanal 3 und 4 verfügbar)
Überwachung der Last am L+ Anschluss der Ports
Lesen der Diagnosedaten des Kanals der Auswerteeinheit
Der Funktionsbaustein extrahiert in jedem SPS-Zyklus die Daten des Kanals aus den Eingangsdaten der
Auswerteeinheit und stellt die Daten des digitalen Eingangs des Kanals an seinen Ausgangsparametern zur
Verfügung. Die Signale für den digitalen Ausgang des Kanals werden zyklisch in die Ausgangsdaten zur
Auswerteeinheit eingefügt.
Tritt an dem Kanal ein Diagnoseereignis auf, werden die Diagnosedaten selbständig gelesen und an den
Ausgangsparametern angezeigt. Das Lesen der Diagnosedaten arbeitet asynchron und erstreckt sich über
mehrere SPS-Zyklen. Die zyklischen Funktionen des Bausteins werden davon nicht beeinflusst.
Wird dieser Funktionsbausteins für einen Kanal verwendet, der nicht als OUTPUT parametriert ist, führt dies
zur Fehlfunktion des Bausteins.
Das folgende Bild zeigt einen Aufruf des Funktionsbausteins DTE102_OUTPUT.
Abbildung 23
Die Parameter haben folgende Bedeutung:
17
Eingangsparameter:
Name
Typ
Beschreibung
iarbDTE102
ANY_ARRAY_BYTE
Datenfeld der Eingänge von der Auswerteeinheit
iiChannelNo
INT
Kanal-Nummer (1..4)
ixConnOK
BOOL
Ethernet/IP-Verbindung zur Auswerteeinheit ist hergestellt
ixCQo
BOOL
Signal für Ausgang C/Qo
ixHighCurrent
BOOL
Aktivieren der erhöhten Stromversorgung des Ausgangs C/Qo
ixAckDiag
BOOL
Löschen der angezeigten Diagnosedaten
Name
Typ
Beschreibung
oarbDTE102
ANY_ARRAY_BYTE
Datenfeld der Ausgänge zur Auswerteeinheit
oxIQ
BOOL
Status des digitalen Eingangs I/Q
oxOverload
BOOL
Overload der Spannungsversorgung aus L+
oiDiagLength
INT
Anzahl der Einträge in den Diagnosedaten
oardwDiagData
ARRAY[0..3] OF DWORD
Array mit Diagnosedaten (Fehlercodes siehe Gerätehandbuch
DTE102)
Tabelle 6
Ausgangsparameter:
Tabelle 7
Die Eingangsdaten von der Auswerteeinheit werden dem Baustein am Eingangsparameter iarbDTE102 zur
Verfügung gestellt. Der Ausgangsparameter oarbDTE102 verweist auf die Ausgangsdaten, die zur
Auswerteeinheit transferiert werden.
Durch den Eingangsparameter iiChannelNo wird bestimmt, welcher Kanal der Auswerteeinheit bearbeitet
werden soll.
Der Eingangsparameter ixConnOK zeigt dem Baustein an, dass die Ethernet/IP-Verbindung zur
Auswerteeinheit aufgebaut ist. Vorzugsweise ist dieser Eingangsparameter mit dem entsprechenden
Verbindungsbit (Abbildung 14) aus dem Eingangsbereich der Kommunikationsbaugruppe zu verknüpfen.
Solange der Eingangsparameter ixConnOK = FALSE ist, werden alle Ausgangsparameter mit 0 initialisiert. Ist
das Signal am Eingangsparameter ixConnOK = TRUE, beginnt der Funktionsbaustein zu arbeiten.
Ein als OUTPUT parametrierter Kanal der Auswerteeinheit stellt 1 digitalen Ausgang und 1 digitalen Eingang
zur Verfügung. Der Status des Eingangs wird am Ausgangsparameter oxIO angezeigt. Das Signal am
Eingangsparameter ixCQo wird in die Ausgangsdaten zur Auswerteeinheit eingetragen und steuert den
digitalen Ausgang des Kanals. Das Signal am Eingangsparameter ixHighCurrent wird nur für die Kanäle 3
und 4 berücksichtigt und an die Auswerteeinheit übermittelt. Eine Überlastung der Spannungsversorgung aus
dem Eingang oder dem Ausgang wird am Ausgangsparameter oxOverload signalisiert.
Wird von der Auswerteeinheit ein Fehler an dem parametrierten Kanal gemeldet, fügt der Funktionsbaustein
selbständig die Steuersignale für das Lesen der Diagnosedaten in die Ausgangsdaten zur Auswerteeinheit
ein. Die erhaltenen Diagnosedaten werden im Ausgangsparameter oardwDiagData angezeigt. Dabei werden
die bisher angezeigten Diagnosedaten komplett gelöscht. Der Ausgangsparameter oiDiagLength zeigt, wie
viele Diagnosedatensätze aktuell angezeigt werden.
Die Beschreibungen der Fehlercodes in den Diagnosedaten sind im Gerätehandbuch der Auswerteeinheit
aufgeführt.
18
Eine steigende Flanke am Eingangsparameter ixAckDiag löscht die angezeigten Diagnosedaten.
6.4 Der Funktionsbaustein DTE102_RWH_RW
Dieser Funktionsbaustein kann für einen als RWH_RW parametrierten Kanal der Auswerteeinheit DTE102
verwendet werden. Mit Hilfe einer angeschlossenen RFID-Antenne können Daten von einem Tag gelesen
werden oder auf einem Tag gespeichert werden.
Bei Verwendung dieses Funktionsbausteins muss bei der Parametrierung des Kanals
der Parameter Data Hold Time = 0 eingestellt werden (Abbildung 18).
Der Funktionsbaustein bietet folgende Funktionen:
Anwesenheit eines Tags erfassen
Lesen der UID eines Tags
Bereich des USER-Speichers von einem Tag lesen
Bereich des USER-Speichers eines Tags beschreiben
Aus- und Einschalten der Antenne
Lesen der Diagnosedaten des Kanals der Auswerteeinheit
Das Schreiben der UID ist nicht möglich. Der Versuch wird mit einer Fehlermeldung quittiert.
Wird dieser Funktionsbausteins für einen Kanal verwendet, der nicht als RWH_RW parametriert ist, führt dies
zur Fehlfunktion des Bausteins.
Der Funktionsbaustein extrahiert die Daten des Kanals aus den Eingangsdaten der Auswerteeinheit und
wertet diese aus. Steuersignale für das Lesen oder Beschreiben eines Tags werden in die Ausgangsdaten zur
Auswerteeinheit eingefügt. Tritt an dem Kanal ein Diagnoseereignis auf, werden die Diagnosedaten
selbständig gelesen und an den Ausgangsparametern angezeigt.
Die Kommunikation muss nach einem definierten Ablauf erfolgen. Abbildung 24 verdeutlicht dies anhand
eines Ablaufplans.
Abbildung 24
Um den Vorgang der Kommandoabwicklung für den Anwender komfortabler zu gestalten, wurde der
Funktionsbaustein DTE102_RWH_RW entwickelt. Dieser Baustein bearbeitet das oben aufgeführte
Kommandoprotokoll selbständig.
Das folgende Bild zeigt einen Aufruf des Funktionsbausteins DTE102_RWH_RW.
19
Abbildung 25
Die Parameter haben folgende Bedeutung:
Eingangsparameter:
Name
Typ
Beschreibung
iarbDTE102
ANY_ARRAY_BYTE
Datenfeld der Eingänge von der Auswerteeinheit
iiChannelNo
INT
Kanal-Nr. (Kanal 1 .. 4)
ixConnOK
BOOL
Ethernet/IP-Verbindung zur Auswerteeinheit ist hergestellt
ixAntOff
BOOL
Antenne ausschalten
ixUserMem
BOOL
Zugriff auf USER-Speicher des Tag
ixRead
BOOL
steigende Flanke startet das Lesen vom Tag
ixWrite
BOOL
steigende Flanke startet das Schreiben auf den Tag
iiRdWrStartAddr
INT
Startadresse im USER-Speicher der Tag zum Lesen/Schreiben
iiRdWrLength
INT
Anzahl der zu lesenden/schreibenden Bytes
iarbSendBuf
ANY_ARRAY_BYTE
Bereich mit den zu schreibenden Daten
Tabelle 8
20
Ausgangsparameter:
Name
Typ
Beschreibung
oarbDTE102
ANY_ARRAY_BYTE
Datenfeld der Ausgänge zur Auswerteeinheit
oxBusy
BOOL
Funktionsbaustein ist beschäftigt, kein neuer Befehl möglich
oxDone
BOOL
Funktion fehlerfrei beendet
oxError
BOOL
Fehler erkannt
owStatus
WORD
Status Information oder Fehlercode (siehe Kapitel 6.4.6)
oiDiagLength
INT
Anzahl der Einträge in den Diagnosedaten
oardwDiagData
ARRAY[0..3] OF DWORD
Array mit Diagnosedaten (Fehlercodes siehe Gerätehandbuch
DTE102)
oxTagPresent
BOOL
Tag erkannt
oiRcvdLength
INT
Anzahl der gelesenen Bytes
oarbRcvBuf
ANY_ARRAY_BYTE
Empfangsbereich für die gelesenen Daten
Tabelle 9
6.4.1 Aufbau der Kommunikation
Die Eingangsdaten von der Auswerteeinheit werden dem Baustein am Eingangsparameter iarbDTE102 zur
Verfügung gestellt, der Ausgangsparameter oarbDTE102 verweist auf die Ausgangsdaten, die zur
Auswerteeinheit transferiert werden.
Durch den Eingangsparameter iiChannelNo wird bestimmt, welcher Kanal der Auswerteeinheit bearbeitet
werden soll.
Der Eingangsparameter ixConnOK zeigt dem Baustein an, dass die Ethernet/IP-Verbindung zur
Auswerteeinheit aufgebaut ist. Vorzugsweise ist dieser Eingangsparameter mit dem entsprechenden
Verbindungsbit (Abbildung 14) aus dem Eingangsbereich der Kommunikationsbaugruppe zu verknüpfen.
21
Solange der Eingangsparameter
ixConnOK = FALSE ist, werden die
Ausgangsparameter oxBusy = TRUE und
owStatus = 0x1000 ausgegeben. Alle
anderen Ausgangsparameter werden mit 0
initialisiert.
ixConnOK
 Eingangsparameter ixConnOK = TRUE
setzen:
Die Kommunikation mit dem parametrierten
Kanal der Auswerteeinheit wird aktiviert.
Die Signale für den Datenaustausch werden
synchronisiert.
ixAntOff
oxBusy
 Eingangsparameter ixAntOff = FALSE
aktiviert die Antenne
oxDone
Wurden der Datenaustausch synchronisiert
und die Antenne aktiviert, wird der
Ausgangsparameter oxBusy = FALSE
ausgegeben. Der Funktionsbaustein ist nun
bereit für den Datenaustausch mit einem
Tag.
oxError
owStatus
0x1000
0x2***
0x3000 0x7000
Abbildung 26
6.4.2 Ablauf der Kommandobearbeitung
Der Funktionsbaustein DTE102_RWH_RW ist ein asynchron arbeitender Funktionsbaustein, das bedeutet die
Bearbeitung erstreckt sich über mehrere FB-Aufrufe.
Der Bearbeitungszustand des Funktionsbausteins wird am Ausgangsparameter owStatus angezeigt.
Solange die angeschlossene Antenne ein Tag erkennt, wird der Ausgangsparameter oxTagPresent gesetzt.
Zeigt der Funktionsbaustein am Ausgangsparameter oxBusy = FALSE, ist er bereit für einen neuen Auftrag.
 Durch den Eingangsparameter ixUserMem bestimmen, ob auf den USER-Speicher oder die UID des Tags zugegriffen
wird
 in den Eingangsparametern iiRdWrStartAddr und iiRdWrLength den USER-Speicherbereich angeben
 steigende Flanke am Eingangsparameter ixRead oder ixWrite startet das Lesen oder Beschreiben des Tags.
Die angezeigten Diagnosedaten werden gelöscht und der am Ausgangsparameter oarbRcvBuf definierte
Empfangsbereich initialisiert.
Während der Bearbeitung ist der Ausgangsparameter oxBusy = TRUE. Im Ausgangsparameter owStatus wird
der Fortschritt der Auftragsbearbeitung angezeigt.
Bei Abschluss des Auftrags wird der Ausgangsparameter oxBusy = FALSE ausgegeben. Das Ergebnis der
Bearbeitung wird in den Ausgangsparametern oxDone und oxError mitgeteilt. Es bleibt erhalten solange der
auslösende Eingangsparameter ixRead oder ixWrite = TRUE ist, mindestens jedoch einen SPS-Zyklus.
Das Ergebnis wird wie folgt dargestellt:
kein Fehler während der Bearbeitung aufgetreten:
oxDone = TRUE
oxError = FALSE
owStatus = 0x0000
oiRcvdLength = zeigt die Anzahl der gelesenen Daten
die gelesene Daten werden in dem durch den Ausgangsparameter oarbRcvBuf definierten Empfangsbereich
abgelegt
Fehler während der Bearbeitung aufgetreten
oxDone = FALSE
22
oxError = TRUE
owStatus zeigt ein Fehlercode. Die möglichen Fehlercodes sind in Tabelle 11 aufgelistet.
Der Signalverlauf ist in Abbildung 27 beispielhaft dargestellt.
kein Fehler aufgetreten
Fehler aufgetreten
ixConnOK
ixRead
oxBusy
oxDone
0x7000
0x8***
0x7***
0x7000
0x8***
0x7***
0x7000
0x0000
0x7***
0x7000
0x0000
0x7***
owStatus
0x7000
oxError
Abbildung 27
Wird von der Auswerteeinheit ein Fehler an dem parametrierten Kanal gemeldet, fügt der Funktionsbaustein
selbständig die Steuersignale für das Lesen der Diagnosedaten in die Ausgangsdaten zur Auswerteeinheit
ein. Die erhaltenen Diagnosedaten werden im Ausgangsparameter oardwDiagData angezeigt. Dabei werden
die bisher angezeigten Diagnosedaten komplett gelöscht. Der Ausgangsparameter oiDiagLength zeigt, wie
viele Diagnosedatensätze aktuell angezeigt werden.
Die Beschreibungen der Fehlercodes in den Diagnosedaten sind im Gerätehandbuch der Auswerteeinheit
aufgeführt.
6.4.3 Lesen der UID des Tags
Wie der Funktionsbaustein die UID eines Tags zur Verfügung stellt, hängt von der Parametrierung des Kanals
ab (Abbildung 18).
Kanalparameter Edge Controlled UID Read nicht aktiviert:

Eingangsparameter ixUserMem = FALSE einstellen
Erkennt die Antenne einen Tag (oxTagPresent = TRUE), wird dessen UID im Empfangsbereich zur
Verfügung gestellt. Die Länge der UID wird am Ausgangsparameter oiRcvdLength angezeigt.
Diese Daten werden gelöscht, wenn der Tag das Antennenfeld verlässt oder der Eingangsparameter
ixUserMem = TRUE gesetzt wird.
Kanalparameter Edge Controlled UID Read aktiviert:

Eingangsparameter ixUserMem = FALSE einstellen

steigende Flanke am Eingangsparameter ixRead startet das Lesen der UID des Tags.
Nach Beendigung ohne Fehler wird der Ausgangsparameter oxDone gesetzt und die UID im
Empfangsbereich zur Verfügung gestellt. Die Länge der UID wird am Ausgangsparameter
oiRcvdLength angezeigt.
23
Diese Daten bleiben erhalten, solange der Ausgangsparameter oxDone gesetzt bleibt (siehe
Kapitel 6.4.2)
6.4.4 Lesen eines Bereichs des USER-Speichers des Tags
Ein Bereich des USER-Speichers eines Tags wird wie folgt gelesen:
 Eingangsparameter ixUserMem = TRUE einstellen
 am Eingangsparameter iiRdWrStartAddr die Adresse im USER-Speicher des Tags angeben, ab der gelesen werden
soll
 am Eingangsparameter iiRdWrLength die Anzahl der zu lesenden Bytes einstellen
 steigende Flanke am Eingangsparameter ixRead übernimmt die Eingangsparameter iiRdWrStartAddr und
iiRdWrLength und startet das Lesen vom Tag.
Die vom Tag gelesenen Daten werden im Empfangsbereich abgelegt. Kann die angegebene Datenlänge nicht
mit einem einzelnen Lesezyklus transferiert werden, führt der Funktionsbaustein selbständig mehrere
Lesezyklen mit entsprechenden Adressoffsets im Quell- und Zielbereich aus. Die Länge der zu lesenden
Daten ist somit nur durch den angegebenen Empfangspuffer und den Speicher des Tags limitiert.
Bei Abschluss des Auftrags wird das Ergebnis der Bearbeitung angezeigt (siehe Kapitel 6.4.2).
Im Ausgangsparameter oiRcvdLength wird die Gesamtlänge der Daten im Empfangsbereich angezeigt.
Die Daten bleiben erhalten, solange der Ausgangsparameter oxDone gesetzt ist.
6.4.5 Beschreiben eines Bereichs des USER-Speichers des Tags
Ein Bereich des USER-Speichers eines Tags wird wie folgt beschrieben:
 Eingangsparameter ixUserMem = TRUE einstellen
 die zu schreibenden Daten in den am Eingangsparameter iarbSendBuf eingestellten Sendebereich eintragen
 am Eingangsparameter iiRdWrStartAddr die Adresse im USER-Speicher des Tags angeben, ab der die Daten
geschrieben werden sollen
 am Eingangsparameter iiRdWrLength die Anzahl der zu übertragenden Bytes einstellen
 steigende Flanke am Eingangsparameter ixWrite übernimmt die Eingangsparameter iiRdWrStartAddr und
iiRdWrLength und startet das Beschreiben des Tagspeichers.
Kann die angegebene Datenlänge nicht mit einem einzelnen Schreibzyklus transferiert werden, führt der
Funktionsbaustein selbständig mehrere Schreibzyklen mit entsprechenden Adressoffsets im Quell- und
Zielbereich aus. Die Länge der zu schreibenden Daten ist somit nur durch den angegebenen Sendepuffer und
den Speicher des Tags limitiert.
Die Daten im Sendebereich dürfen während der Bearbeitung des Auftrags nicht verändert werden!
Bei Abschluss des Auftrags wird das Ergebnis der Bearbeitung angezeigt (siehe Kapitel 6.4.2).
24
6.4.6
Anzeigen am Ausgangsparameter owStatus
Statusanzeigen
owStatus
Beschreibung
0x0000
Funktion ohne Fehler abgeschlossen
0x1000
warten auf Eingangsparameter ixConnOK = TRUE
0x2000
Startup Signale für den Datenaustausch prüfen
0x2101
0x2102
0x2103
Startup USER-Speicher-Modus aktivieren
Startup USER-Speicher lesen synchronisieren
Startup USER-Speicher lesen abschließen
0x2201
0x2202
0x2203
Startup USER-Speicher-Modus aktivieren
Startup USER-Speicher schreiben synchronisieren
Startup USER-Speicher scheiben abschließen
0x2402
0x2403
Startup Diagnosedaten lesen synchronisieren
Startup Diagnosedaten lesen abschließen
0x3000
warten auf Eingangsparameter ixAntOff = FALSE
0x7000
Warten auf Start eines Auftrags
0x7101
0x7102
0x7103
USER-Speicher-Modus aktivieren
USER-Speicher lesen
USER-Speicher lesen abschließen
0x7201
0x7202
0x7203
USER-Speicher Modus aktivieren
USER-Speicher beschreiben
USER-Speicher beschreiben abschließen
0x7301
0x7302
0x7303
UID Zugriff aktivieren
UID lesen
UID lesen abschließen
0x7401
0x7402
0x7403
Wechsel zu USER-Speicher oder UID abschließen
Diagnosedaten lesen
Diagnosedaten lesen abschließen
0x8***
Fehlercode (siehe Tabelle 11)
Tabelle 10
25
Fehlercodes
owStatus
Beschreibung
0x8000
Auswerteeinheit meldet Fehler; Diagnosedaten im Ausgangsparameter oardwDiagData auswerten
0x8101
0x8102
0x8103
0x8104
0x8105
0x8106
Eingangsparameter iiChannelNo ungültig
Eingangsparameter iarbDTE102 ungültig
Eingangsparameter oarbDTE102 ungültig
unterschiedliche Größen der Eingangsparameter iarbDTE102 und Ausgangsparameter oarbDTE102
Eingangsparameter iarbSendBuf ungültig
Ausgangsparameter oarbRcvBuf ungültig
0x8201
0x8202
Eingangsparameter ixConnOK = FALSE während der Datenübertragung
Timeout; Auswerteeinheit reagiert nicht
0x8301
0x8302
0x8303
0x8304
0x8305
0x8306
0x8307
Start eines Auftrags während Funktionsbaustein beschäftigt ist (oxBusy = TRUE)
Start eines Auftrags mit abgeschalteter Antenne (ixAntOff = TRUE)
Start von Lese- und Schreibauftrags gleichzeitig
Start eines Auftrags ohne Tag im Antennenfeld
Eingangsparameter iiRdRwLength <= 0 oder größer als der definierte Empfangsbereich (oarbRcvBuf)
Eingangsparameter iiRdRwLength <= 0 oder größer als der definierte Sendebereich (iarbSendBuf)
UID schreiben wird vom System nicht unterstützt
0x8401
Empfangsbereich (oarbRcvBuf) zu klein für zyklisch gelesene UID
Tabelle 11
26