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 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 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! Word 16#FFEE Fifo-Endekennung ? Nein ! Minimum Holzeiger Holzeiger Ok ? Int 0 Grundstellung ? Nein ! Bringzeiger Grundstellung ? Nein ! Anzahl Datensätze Int 0 Grundstellung ? Nein ! Minimum Holzeiger Bringzeiger Holzeiger Maximum Holzeiger 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#E2 Nur Zusatzdaten lesen ? 1.Aufrufparameter Ja ! 2.Aufrufparameter Byte 16#00 =0 ? Ja ! 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 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 ! Anzahl der gespeicherten Datensätze Int 0 Keine Datensätze vorhanden ! 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 ! 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 ? 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 ! Bringzeiger Holzeiger Ungleich ! Anzahl der gespeicherten Datensätze Int 0 Aber keine Datensätze vorhanden ! 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