false
IBAE
FIFO
FifoIn
Schnittstellen-DB
Schnittstellen-1.DW
Aufrufparameter (Auftrag / Anzahl Zusatzdaten)
InDaten-Schnittstelle
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 Bringzeiger
Maximum Bringzeiger
FIFO-DB
Rückmeldung SFC-Aufruf
Rückmeldung SFC-Aufruf
Ende des Fifo
Loopzähler
Offset 1. zu speicherndes Zusatzwort
Rückmeldung SFC-Aufruf
Status nicht speichern
Bie-Bit zwischenspeichern
Standard
FifoIn
80
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 eintragen
SSDB: FIFO-DB
SSDW: FIFO-1.DW
PARA: Aufrufparameter XXYZ:
XX: 00 = Als nächsten Eintrag speichern
01 = Als 1.Eintrag speichern
02 = Nur Zusatzdaten speichern
FF = Testsendung (nur RE_VAL!)
YZ: 00 = Keine Zusatzdaten zum Speichern
Y: 1 - 4 = Beginn, ab welchem Zusatzwort speichern
Z: 1 - 4 = Ende, bis zu welchem Zusatzwort speichern
INDATEN: Pointer, wo einzutragende Daten stehen (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 voll
Bit3: Falscher Parameter bei Aufruf
Bit4: Speicherzelle ist belegt
Bit5: Bringzeiger ist ausserhalb
Bit6: Holzeiger ist ausserhalb
Bit7: Versatz Bring-/Holzeiger
1. - 4.Zusatzdaten: Mw240-246
Weitere Übergaben an FC+1:
MW248: Länge des Fifo
MW250: Bring-Zeiger
MW252: Hol-Zeiger
MW254: Anzahl der Datensätze (eingetragene)
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 Bringzeiger
Länge FIFO (in Word)
Int
-1
Datenblocklänge
Int
2
DB byteorientiert
Int
40
Speichern ab 20.DW
Maximum Bringzeiger
Datenblocklänge
Int
2
DB byteorientiert
Maximum Bringzeiger
Zeiger Endekennung
Int
3
Pointer erzeugen
Fifo-DB ist zu kurz!
kein Fifo-Bereich
Word
16#FFEE
Fifo-Endekennung ?
Nein !
kein Fifobereich
Minimum Bringzeiger
Bringzeiger
Ok ?
Ja!
Int
0
Grundstellung ?
Nein !
Bringzeiger ist ausserhalb
Holzeiger Grundstellung ?
Nein !
Bringzeiger ist ausserhalb
Anzahl Datensätze
Int
0
Grundstellung ?
Nein !
Bringzeiger ist ausserhalb
Minimum Bringzeiger
Bringzeiger
Holzeiger
Maximum Bringzeiger
Ok ?
Ja!
Bringzeiger 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#02
Nur Zusatzdaten speichern ?
1.Aufrufparameter
Nein !
2.Aufrufparameter
Byte
16#00
=0 ?
Ja !
Falscher Aufrufparameter
Zusatzdaten speichern
Byte
16#01
Als 1.Datensatz speichern ?
Nein !
Minimum Bringzeiger
Bringzeiger
Holzeiger
Int
0
Anzahl Datensätze
Zusatz-Daten speichern?
STL
de-DE
de-DE
Nur Zusatzdaten / als 1.Datensatz speichern ?
Anzahl der gespeicherten Datensätze
Max. Anzahl von Datenblöcken
Identisch !
Fifo ist voll
Versatz Bring-/Holzeiger
Bringzeiger
Int
3
Pointer erzeugen
Int
0
Speicherzelle ist belegt
ARef
P#2.0
STL
de-DE
de-DE
Hat Fifo Platz / Datenbereich leer ?
Byte
16#00
=0 ?
2.Aufrufparameter
Ja !
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
Int
0
DB_Nummer
Beginn ab X.Zusatzwort
Int
-1
Int
2
byteorientiert
Offset 1. zu speicherndes Zusatzwort
Word
16#00F0
Adresse (ab MW240)
falls nicht ab 1.Zusatzwort
Int
3
DWord
16#8300_0000
Kennung: Merker
Kennung, Adresse
Ziel-Pointer erzeugen:
Kennung + Datenbytes s.o.
DB_Nummer
Int
12
ab 6.Dw speichern
falls nicht ab 1.Zusatzwort
Int
3
DWord
16#8400_0000
Kennung: Daten
Kennung, Adresse
Zusatz-Daten speichern
Variant
Word
2#0000_0000_0000_0000
STL
de-DE
de-DE
Zusatzdaten schreiben
Byte
16#FF
Testsendung ?
1.Aufrufparameter
Ja !
Zeiger testweise verändern
Byte
16#02
Nur Zusatzdaten speichern ?
Ja !
Fertig !
Quelle-Pointer erzeugen:
Word
16#1004
Kennung 10 + Word=04
Any-Kennung, Datentyp
Datenbytes speichern
Wiederholungen
DATEN-Pointer übernehmen:
DB_Nummer
Kennung, Adresse
Ziel-Pointer erzeugen:
Kennung + Datenbytes s.o.
DB_Nummer
Adresse
Int
3
DWord
16#8400_0000
Kennung: Daten
Kennung, Adresse
FIFO-Daten speichern
Variant
Word
2#0000_0000_0000_0000
STL
de-DE
de-DE
Fifodaten schreiben
Datenblocklänge
Int
2
1 word = 2 bytes
Bringzeiger
Bringzeiger
Maximum Bringzeiger
Erreicht ?
Nein !
Minimum Bringzeiger
Bringzeiger
Anzahl der gespeicherten Datensätze
Int
1
Anzahl der gespeicherten Datensätze
STL
de-DE
de-DE
Bringzeiger, Anzahl erhöhen
Bringzeiger
Holzeiger
Identisch !
Anzahl der gespeicherten Datensätze
Fifo noch nicht voll !
Versatz Bring-/Holzeiger
Bringzeiger
Holzeiger
Ungleich !
Anzahl der gespeicherten Datensätze
Aber Fifo ist voll !
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 voll
Falscher Parameter
Speicherzelle ist belegt
Bringzeiger 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
Anzahl der Datensätze (eingetragene)
Int
-1
da vorher zum Test erhöht wurde
Übergabe an FC+1 (für FIFO-FÖBE)
Byte
16#FF
Testsendung ?
1.Aufrufparameter
Ja !
Weil Zeiger testweise geändert!
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
Länge des Fifo (maximale Anzahl der Datensätze)
Übergabe an FC+1 (für Durchlaufspeicher)
Zeiger, wohin nächster Eintrag gespeichert wird
Übergabe an FC+1 (für Durchlaufspeicher)
Zeiger, woher nächste Daten geholt werden
Übergabe an FC+1 (für Durchlaufspeicher)
Anzahl der Datensätze (eingetragene)
Übergabe an FC+1 (für Durchlaufspeicher)
STL
de-DE
de-DE
Fifokopfdaten speichern
de-DE
Fifo-Modul