false IBAE FIFO FifoIn
Schnittstellen-DB Schnittstellen-1.DW SuchDaten-Schnittstelle Anzahl der DWs zum Vergleichen im Datensatz
Position des Eintrags, der gesuchten Daten Rückmeldungen
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 Minimum Holzeiger Maximum Holzeiger FIFO-DB Rückmeldung SFC-Aufruf Rückmeldung SFC-Aufruf Ende des Fifo Adress-Register 2 zwischenspeichern Solldaten-DB, falls angegeben SuchDaten-Startpunkt: Adresse Suchzeiger Loopzähler Status nicht speichern Rückmeldung SFC-Aufruf Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) Startwert mit Offset 0 Position des Eintrags, der gesuchten Daten
Standard FIFOSearch 83 STL de-DE COPYRIGHT by Ingenieurbüro A.Emmert Ortsstr.33, D-869925 Fuchstal (Germany) Tel.: 0049(0)8243-960629 Version: KyungBang00 / 14.04.2009 Datenblock in Fifo suchen SSDB: FIFO-DB SSDW: FIFO-1.DW SEARCHDATEN: Pointer, wo zu suchende Daten stehen (P#DB1.DBX0.0, P#M220.0) RE_POS: Position an welcher sich Datensatz befindet RE_VAL: Rückmeldungen: Bit0: Kein Fifobereich / falscher Kopfinhalt / Endekennung Bit1: SFC20-Aufruf mit Fehler Bit2: Fifo ist leer Bit3: Frei Bit4: Frei Bit5: Bringzeiger ist ausserhalb Bit6: Holzeiger ist ausserhalb Bit7: Versatz Bring-/Holzeiger AR2 zwischenspeichern 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 Startwert mit Offset 0 Int 3 /Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes) 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 ! Anzahl der gespeicherten Datensätze Int 0 Keine Datensätze vorhanden ! STL de-DE de-DE Zeigerüberprüfung Int 1 RET-POS Holzeiger Suchzeiger Startwert mit Offset 0 Int 3 /Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes) DATEN-Pointer übernehmen: Solldaten-DB Solldaten-DB Int 0 Angegeben ? Nein CALL TEST_DB DB_NUMBER :=#DBSuchdaten RET_VAL :=#SFC_RET_VAL DB_LENGTH :=#SFC_DB_LENGTH WRITE_PROT :=#SFC_WRITE_PROT Word 2#0000_0000_0000_0000 Fehler vorhanden ? Ja ! Kennung, Adresse DWord 16#00FF_FFFF Ohne Kennung Int 3 Ohne Bit Datenblocklänge Int 2 DB byteorientiert Indaten-DB ist zu kurz Kennung, Adresse Anzahl der DWs zum Vergleichen im Datensatz Solldaten-DB Int 0 Angegeben ? Nein Mit Solldaten überprüfen Fifo-Daten lesen nicht identisch ! Startwert mit Offset 0 DINT#2 Startwert mit nächstem Offset Int 3 /Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes) ARef P#2.0 RET-POS Int 1 RET-POS Anzahl der Daten im Fifo Alle Datensätze sind durchsucht Datenblocklänge Int 2 DB byteorientiert Suchzeiger Suchzeiger Maximum Holzeiger Ende erreicht? Nein! Minimum Holzeiger Suchzeiger STL de-DE de-DE Fifodaten suchen VKE = 1 ohne Fehler !!! Word 2#0000_0000_0000_0001 Kein Fifobereich
SFC20-Aufruf mit Fehler
Fifo ist leer
Holzeiger außerhalb
Versatz Bring-/Holzeiger Int 0 RET-POS = 0 VKE = 0 bei Fehler !!! VKE in BIE-Bit speichern STL de-DE de-DE Fehlerausgabe / RET_VAL AR2 zurückspeichern
Falscher Parameter Status nicht speichern Int 10 Status Startwert mit Offset 0 Int 3 /Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes) STL de-DE de-DE Fifokopfdaten speichern STL de-DE de-DE de-DE Fifo-Modul