false
IBAE
FIFO
FifoIn
Schnittstellen-DB
Schnittstellen-1.DW
Aufrufparameter (Auftrag / Anzahl Zusatzdaten)
OutDaten-Schnittstelle
Rückmeldung
Zeiger, wo Rein-Daten sind
Zeiger, FIFO-Stelle
Fifo-Kennung (FF)
Datensatzlänge in Word (1 - 128)
Länge des Fifo (maximale Anzahl der Datensätze)
Zeiger, wohin nächster Eintrag gespeichert wird
Zeiger, woher nächste Daten geholt werden
Anzahl der Datensätze (eingetragene)
Status des Fifo
Fehlerbits
1.Aufrufparameter
2.Aufrufparameter
2.Aufrufparameter 1.Stelle
2.Aufrufparameter 2.Stelle
Minimum Holzeiger
Maximum Holzeiger
FIFO-DB
Rückmeldung SFC-Aufruf
Rückmeldung SFC-Aufruf
Ende des Fifo
Loopzähler
Offset 1. zu lesendes Zusatzwort
Rückmeldung SFC-Aufruf
Status nicht speichern
Bie-Bit zwischenspeichern
Lesezeiger
Differenz
Standard
FifoOut
81
STL
de-DE
COPYRIGHT by Ingenieurbüro A.Emmert
Ortsstr.33, D-869925 Fuchstal (Germany)
Tel.: 0049(0)8243-1254
Version: ILS2100 / 06.11.2009
Datenblock in Fifo lesen, aus Fifo austragen
SSDB: FIFO-DB
SSDW: FIFO-1.DW
PARA: Aufrufparameter XXYZ:
XX: 00 = nächsten Eintrag lesen
01,02...,224 = Eintrag 1,2,...,224 lesen
E1 = nächsten Eintrag lesen + austragen!
E2 = Nur Zusatzdaten lesen
YZ: 00 = Keine Zusatzdaten zum lesen
Y: 1 - 4 = Beginn, ab welchem Zusatzwort lesen
Z: 1 - 4 = Ende, bis zu welchem Zusatzwort lesen
OUTDATEN: Pointer, wohin ausgelesene Daten übergeben werden (P#DB1.DBX0.0,
P#M220.0)
RE_VAL: Rückmeldungen:
Bit0: Kein Fifobereich / falscher Kopfinhalt / Endekennung
Bit1: SFC20-Aufruf mit Fehler
Bit2: Fifo ist leer
Bit3: Falscher Parameter bei Aufruf
Bit4: Frei
Bit5: Bringzeiger ist ausserhalb
Bit6: Holzeiger ist ausserhalb
Bit7: Versatz Bring-/Holzeiger
CALL TEST_DB
DB_NUMBER :=#DBFifo
RET_VAL :=#SFC_RET_VAL
DB_LENGTH :=#SFC_DB_LENGTH
WRITE_PROT :=#SFC_WRITE_PROT
Word
2#0000_0000_0000_0000
Status nicht speichern
kein Fifobereich
STL
de-DE
de-DE
Schnittstellen-DB sinnvoll ?
Word
16#1004
Kennung 10 + Word=04
Any-Kennung, Datentyp
Word
16#0006
6 Dw´s holen
Wiederholungen
DB_Nummer
Adresse
Int
3
DWord
16#8400_0000
Kennung: Daten
Kennung, Adresse
1.-6.DW FIFO holen
Variant
Any
P#L20.0 WORD 6
Word
2#0000_0000_1110_0000
Kapitalfehler vorhanden
Word
2#0000_0000_0000_0000
STL
de-DE
Quelle-Pointer erzeugen:
de-DE
Fifokopfdaten holen
Fifo-Kopf
Byte
16#FF
= Fifokennung ?
Nein !
Status nicht speichern
kein Fifobereich
Int
1
Datenblocklänge
kein Fifobereich
Int
128
kein Fifobereich
Int
1
Max.Anzahl von Datenblöcken
kein Fifobereich
Int
40
Speichern ab 20.DW
Minimum Holzeiger
Länge FIFO (in Word)
Int
-1
Datenblocklänge
Int
2
DB byteorientiert
Int
40
Speichern ab 20.DW
Maximum Holzeiger
Datenblocklänge
Int
2
DB byteorientiert
Maximum Holzeiger
Zeiger Endekennung
Int
3
Pointer erzeugen
Fifo-DB ist zu kurz!
kein Fifo-Bereich
Word
16#FFEE
Fifo-Endekennung ?
Nein !
kein Fifobereich
Minimum Holzeiger
Holzeiger
Ok ?
Ja!
Int
0
Grundstellung ?
Nein !
Holzeiger ist ausserhalb
Bringzeiger Grundstellung ?
Nein !
Holzeiger ist ausserhalb
Anzahl Datensätze
Int
0
Grundstellung ?
Nein !
Holzeiger ist ausserhalb
Minimum Holzeiger
Bringzeiger
Holzeiger
Zusatzdaten lesen ?
Maximum Holzeiger
Ok ?
Ja!
Holzeiger ist ausserhalb
Bringzeiger
Holzeiger
Identisch !
Anzahl der gespeicherten Datensätze
Fifo noch nicht voll !
Int
0
Datensätze aber noch vorhanden !
Versatz Bring-/Holzeiger
Bringzeiger
Holzeiger
Ungleich !
Anzahl der gespeicherten Datensätze
Aber Fifo ist voll !
Int
0
Aber keine Datensätze vorhanden !
Versatz Bring-/Holzeiger
STL
de-DE
de-DE
Zeigerüberprüfung
Aufrufparameter zwischenspeichern
Byte
16#E2
Nur Zusatzdaten lesen ?
1.Aufrufparameter
Ja !
2.Aufrufparameter
Byte
16#00
=0 ?
Ja !
Falscher Aufrufparameter
Byte
16#00
=0 ?
2.Aufrufparameter
Ja !
Keine Zusatzdaten lesen
Word
16#00F0
Int
4
1.Stelle isolieren
2.Aufrufparameter
Word
16#000F
2.Stelle isolieren
1.Stelle > 2.Stelle !
Falscher Aufrufparameter
Byte
16#04
2.Stelle > 4 !
Falscher Aufrufparameter
Byte
16#00
1.Stelle = 0 !
Falscher Aufrufparameter
Quelle-Pointer erzeugen:
Word
16#1004
Kennung 10 + Word=04
Any-Kennung, Datentyp
Any-Kennung, Datentyp
bis
von
Int
1
Wiederholungen
Wiederholungen
Beginn ab X.Zusatzwort
Int
-1
Int
2
byteorientiert
Offset 1. zu speicherndes Zusatzwort
DB_Nummer
Int
12
ab 6.Dw lesen
falls nicht ab 1.Zusatzwort
Int
3
DWord
16#8400_0000
Kennung: Daten
Kennung, Adresse
Ziel-Pointer erzeugen:
Kennung + Datenbytes s.o.
Int
0
DB_Nummer
Word
16#00F0
Adresse (MW240)
falls nicht ab 1.Zusatzwort
Int
3
DWord
16#8300_0000
Kennung: Merker
Kennung, Adresse
Zusatz-Daten speichern
Variant
Word
2#0000_0000_0000_0000
STL
de-DE
de-DE
Zusatzdaten lesen ?
1.Aufrufparameter
Byte
16#E2
Nur Zusatzdaten lesen ?
Ja !
Fertig !
Anzahl der gespeicherten Datensätze
Int
0
Keine Datensätze vorhanden !
Fifo ist leer
Quelle-Pointer erzeugen:
Word
16#1004
Kennung 10 + Word=04
Any-Kennung, Datentyp
Datenbytes speichern
Wiederholungen
DB_Nummer
Adresse (erstmal !, falls Para 2=0)
Lesezeiger
1.Aufrufparameter
Byte
16#00
=0 ?
Byte
16#E1
Datensatz löschen ?
Ja !
X-te Stelle lesen
Int
-1
-1, da 1.ohne Offeset
Datenblocklänge
Int
2
DB byteorientiert
Adresse
Lesezeiger
Maximum Holzeiger
Ist nicht über Maximum !
Länge FIFO (in Word)
Datenblocklänge
Int
2
DB byteorientiert
Differenz subtrahieren:
Lesezeiger
Lesezeiger
Int
3
DWord
16#8400_0000
Kennung: Daten
Kennung, Adresse
Ziel-Pointer erzeugen:
Kennung + Datenbytes s.o.
DATEN-Pointer übernehmen:
DB_Nummer
Kennung, Adresse
FIFO-Daten speichern
Variant
Word
2#0000_0000_0000_0000
STL
de-DE
de-DE
Fifodaten lesen
Byte
16#E1
Daten löschen ?
1.Aufrufparameter
Nein !
Fertig !
Holzeiger
Int
3
Pointer erzeugen
Int
0
ARef
P#2.0
STL
de-DE
de-DE
Daten aus Fifo austragen ?
Datenblocklänge
Int
2
1 word = 2 bytes
Holzeiger
Holzeiger
Maximum Holzeiger
Erreicht ?
Nein !
Minimum Holzeiger
Holzeiger
Anzahl der gespeicherten Datensätze
Int
-1
Anzahl der gespeicherten Datensätze
STL
de-DE
de-DE
Holzeiger, Anzahl erniedrigen
Bringzeiger
Holzeiger
Identisch !
Anzahl der gespeicherten Datensätze
Int
0
Datensätze aber noch vorhanden !
Versatz Bring-/Holzeiger
Bringzeiger
Holzeiger
Ungleich !
Anzahl der gespeicherten Datensätze
Int
0
Aber keine Datensätze vorhanden !
Versatz Bring-/Holzeiger
STL
de-DE
de-DE
Versatz Bring-/Holzeiger
VKE = 1 ohne Fehler !!!
Word
2#0000_0000_0000_0001
Kein Fifobereich
SFC20-Aufruf mit Fehler
Fifo ist leer
Falscher Parameter
Holzeiger außerhalb
Versatz Bring-/Holzeiger
VKE = 0 bei Fehler !!!
VKE in BIE-Bit speichern
STL
de-DE
de-DE
Fehlerausgabe / RET_VAL
Falscher Parameter
Status nicht speichern
Ziel-Pointer erzeugen:
Word
16#1004
Kennung 10 + Word=04
Any-Kennung, Datentyp
Word
16#0004
4Dw´s speichern
Wiederholungen
DB_Nummer
Adresse
Int
4
Int
3
DWord
16#8400_0000
Kennung: Daten
Kennung, Adresse
Ab Bringzeiger sichern!
Variant
Any
P#L24.0 WORD 4
VKE in BIE-Bit speichern
STL
de-DE
de-DE
Fifokopfdaten speichern
de-DE
Fifo-Modul