false IBAE FIFO FifoIn
Schnittstellen-DB Schnittstellen-1.DW Aufrufparameter (Auftrag / Anzahl Zusatzdaten) InDaten-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 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 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 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 Int 1 Datenblocklänge Int 128 Int 1 Max.Anzahl von Datenblöcken 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! Word 16#FFEE Fifo-Endekennung ? Nein ! Minimum Bringzeiger Bringzeiger Ok ? Int 0 Grundstellung ? Nein ! Holzeiger Grundstellung ? Nein ! Anzahl Datensätze Int 0 Grundstellung ? Nein ! Minimum Bringzeiger Bringzeiger Holzeiger Maximum Bringzeiger Ok ? Bringzeiger Holzeiger Identisch ! Anzahl der gespeicherten Datensätze Fifo noch nicht voll ! Int 0 Datensätze aber noch vorhanden ! Bringzeiger Holzeiger Ungleich ! Anzahl der gespeicherten Datensätze Aber Fifo ist voll ! Int 0 Aber keine Datensätze vorhanden ! 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 ! Byte 16#01 Als 1.Datensatz speichern ? Nein ! Minimum Bringzeiger Bringzeiger Holzeiger Int 0 Anzahl Datensätze STL de-DE de-DE Nur Zusatzdaten / als 1.Datensatz speichern ? Anzahl der gespeicherten Datensätze Max. Anzahl von Datenblöcken Identisch ! Bringzeiger Int 3 Pointer erzeugen Int 0 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 ! Byte 16#04 2.Stelle > 4 ! Byte 16#00 1.Stelle = 0 ! 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 ! Byte 16#02 Nur Zusatzdaten speichern ? Ja ! 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 ? 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 ! Bringzeiger Holzeiger Ungleich ! Anzahl der gespeicherten Datensätze Aber Fifo ist voll ! 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