falseIBAEFIFOFifoInSchnittstellen-DBSchnittstellen-1.DWSuchDaten-SchnittstelleAnzahl der DWs zum Vergleichen im DatensatzPosition des Eintrags, der gesuchten DatenRückmeldungenZeiger, wo Rein-Daten sindZeiger, FIFO-StelleFifo-Kennung (FF)Datensatzlänge in Word (1 - 128)Länge des Fifo (maximale Anzahl der Datensätze)Zeiger, wohin nächster Eintrag gespeichert wirdZeiger, woher nächste Daten geholt werdenAnzahl der Datensätze (eingetragene)Status des FifoFehlerbitsMinimum HolzeigerMaximum HolzeigerFIFO-DBRückmeldung SFC-AufrufRückmeldung SFC-AufrufEnde des FifoAdress-Register 2 zwischenspeichernSolldaten-DB, falls angegebenSuchDaten-Startpunkt: AdresseSuchzeigerLoopzählerStatus nicht speichernRückmeldung SFC-AufrufStatt AR1 (ging nur bis DB-Länge <= 8191 Bytes)Startwert mit Offset 0Position des Eintrags, der gesuchten DatenStandardFIFOSearch83STLde-DECOPYRIGHT 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_PROTWord2#0000_0000_0000_0000Status nicht speichernkein FifobereichSTLde-DEde-DESchnittstellen-DB sinnvoll ?Word16#1004Kennung 10 + Word=04Any-Kennung, DatentypWord16#00066 Dw´s holenWiederholungenDB_NummerAdresseInt3DWord16#8400_0000Kennung: DatenKennung, Adresse1.-6.DW FIFO holenVariantAnyP#L20.0 WORD 6Word2#0000_0000_1110_0000Kapitalfehler vorhandenWord2#0000_0000_0000_0000STLde-DEQuelle-Pointer erzeugen:de-DEFifokopfdaten holenFifo-KopfByte16#FF= Fifokennung ?Nein !Status nicht speichernkein FifobereichInt1Datenblocklängekein FifobereichInt128kein FifobereichInt1Max.Anzahl von Datenblöckenkein FifobereichInt40Speichern ab 20.DWMinimum HolzeigerLänge FIFO (in Word)Int-1DatenblocklängeInt2DB byteorientiertInt40Speichern ab 20.DWMaximum HolzeigerDatenblocklängeInt2DB byteorientiertMaximum HolzeigerZeiger EndekennungStartwert mit Offset 0Int3/Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes)Fifo-DB ist zu kurz!kein Fifo-BereichWord16#FFEEFifo-Endekennung ?Nein !kein FifobereichMinimum HolzeigerHolzeigerOk ?Ja!Int0Grundstellung ?Nein !Holzeiger ist ausserhalbBringzeiger Grundstellung ?Nein !Holzeiger ist ausserhalbAnzahl DatensätzeInt0Grundstellung ?Nein !Holzeiger ist ausserhalbMinimum HolzeigerBringzeigerHolzeigerFifo ist leerMaximum HolzeigerOk ?Ja!Holzeiger ist ausserhalbBringzeigerHolzeigerIdentisch !Anzahl der gespeicherten DatensätzeFifo noch nicht voll !Int0Datensätze aber noch vorhanden !Versatz Bring-/HolzeigerBringzeigerHolzeigerUngleich !Anzahl der gespeicherten DatensätzeAber Fifo ist voll !Int0Aber keine Datensätze vorhanden !Versatz Bring-/HolzeigerAnzahl der gespeicherten DatensätzeInt0Keine Datensätze vorhanden !Fifo ist leerSTLde-DEde-DEZeigerüberprüfungInt1RET-POSHolzeigerSuchzeigerStartwert mit Offset 0Int3/Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes)DATEN-Pointer übernehmen:Solldaten-DBSolldaten-DBInt0Angegeben ?Nein CALL TEST_DB DB_NUMBER :=#DBSuchdaten RET_VAL :=#SFC_RET_VAL DB_LENGTH :=#SFC_DB_LENGTH WRITE_PROT :=#SFC_WRITE_PROTWord2#0000_0000_0000_0000Fehler vorhanden ?Ja !SFC20-Aufruf mit FehlerKennung, AdresseDWord16#00FF_FFFFOhne KennungInt3Ohne BitDatenblocklängeInt2DB byteorientiertIndaten-DB ist zu kurzSFC20-Aufruf mit FehlerKennung, AdresseAnzahl der DWs zum Vergleichen im DatensatzSolldaten-DBInt0Angegeben ?Nein Mit Solldaten überprüfenFifo-Daten lesennicht identisch !Startwert mit Offset 0DINT#2Startwert mit nächstem OffsetInt3/Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes)ARefP#2.0Datensatz ist in Fifo enthaltenRET-POS Int1RET-POS Anzahl der Daten im FifoAlle Datensätze sind durchsuchtDatenblocklängeInt2DB byteorientiertSuchzeigerSuchzeigerMaximum HolzeigerEnde erreicht? Nein!Minimum HolzeigerSuchzeigerSTLde-DEde-DEFifodaten suchenVKE = 1 ohne Fehler !!!Word2#0000_0000_0000_0001Kein FifobereichSFC20-Aufruf mit FehlerFifo ist leerHolzeiger außerhalbVersatz Bring-/HolzeigerInt0RET-POS = 0VKE = 0 bei Fehler !!!VKE in BIE-Bit speichern STLde-DEde-DEFehlerausgabe / RET_VALAR2 zurückspeichernFalscher ParameterStatus nicht speichernInt10Status Startwert mit Offset 0Int3/Statt Dyn.Bereichsstop (ging nur bis DB-Länge <= 8191 Bytes)STLde-DEde-DEFifokopfdaten speichernSTLde-DEde-DEde-DEFifo-Modul