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
cs-CZ
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)
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Schnittstellen-DB sinnvoll ?
en-US
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
cs-CZ
de-DE
Quelle-Pointer erzeugen:
en-US
cs-CZ
de-DE
Fifokopfdaten holen
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Zeigerüberprüfung
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Nur Zusatzdaten / als 1.Datensatz speichern ?
en-US
Anzahl der gespeicherten Datensätze
Max. Anzahl von Datenblöcken
Identisch !
Fifo ist voll
Versatz Bring-/Holzeiger
Bringzeiger
Int
3
Pointer erzeugen
Int
0
/ U( ///
/ TAK ///
/ L ' ' ///
/ <>I ///
/ ) ///
Speicherzelle ist belegt
ARef
P#2.0
STL
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Hat Fifo Platz / Datenbereich leer ?
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Zusatzdaten schreiben
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Fifodaten schreiben
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Bringzeiger, Anzahl erhöhen
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Versatz Bring-/Holzeiger
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Fehlerausgabe / RET_VAL
en-US
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
cs-CZ
de-DE
en-US
cs-CZ
de-DE
Fifokopfdaten speichern
en-US
cs-CZ
de-DE
Fifo-Modul
en-US