false IBAE DLISTE DatenIn
Datenlisten-DB Datenlisten-1.DW InDaten-Schnittstelle
Zeiger, wo Rein-Daten sind Zeiger, FIFO-Stelle Datenliste-Kennnung (DA) Datensatzlänge in Word (01 - F0) F0=128 Länge der Datenliste (maximale Anzahl der Datensätze) Stammdatenlänge in Word (1 - 9) Indizierter DB (nur bei Stammdaten = 1 erlaubt !!!) Länge des indizierten DB in Einträge (nur bei Stammdaten = 1 erlaubt !!!) FC zum Wandeln der indizierte Daten (nur bei Stammdaten = 1 erlaubt !!!) Speicherung des letzten Zugriffs / Schreibzeiger reserviert von Sort-Datenliste Anzahl der eingetragenen Datensätze (nicht bei ind.Zugriff!) Reserve Datenlisten-DB Rückmeldung SFC-Aufruf Rückmeldung SFC-Aufruf Ende der Datenliste Adress-Register 2 zwischenspeichern Loopzähler Indaten-DB, falls angegeben In-Daten-Pointer: Kennung, Adresse In-Daten-Startpunkt: Adresse Zeiger für IndDB 1.Datenwort der Indaten 1+2.Datenwort der Indaten (falls ind.Suchen mit Stammdaten 2) Zeiger für Leerzelle Datenblocklänge in Bytes Bei angegebenen Datensatz suchen Rückmeldung SFC-Aufruf Indizierung möglich Indizier-Zeiger angegeben Sortliste wird durchsucht Rückmeldung Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) Wandel-FC
Standard DatenIn 85 STL cs-CZ de-DE COPYRIGHT by Ingenieurbüro A.Emmert Ortsstr.33, D-869925 Fuchstal (Germany) Tel.: 0049(0)8243-1254 Version: P&O / 10.2024 Version: ILS2100 / 06.11.2009 Datenblock in Datenliste eintragen SSDB: Datenlisten-DB SSDW: Datenlisten-1.DW INDATEN: Pointer, wo einzutragende Daten stehen (P#DB1.DBX0.0, P#M220.0) RE_VAL: Rückmeldungen: Bit0: Kein Datenlistenbereich / falscher Kopfinhalt / Endekennung Bit1: SFC20-Aufruf mit Fehler Bit2: Liste ist voll Bit3: Frei Bit4: Undefinierte Indaten Bit5: Frei Bit6: Daten wurden überschrieben Bit7: Eintrag ist richtig erfolgt en-US AR2 zwischenspeichern Word 2#0000_0000_0000_0000 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#000A 10 Dw´s holen
Wiederholungen
DB_Nummer Adresse Int 3 DWord 16#8400_0000 Kennung: Daten
Kennung, Adresse 1.-10.DW Datenliste holen Variant Any P#L20.0 WORD 10 Word 2#0000_0000_0000_0000 STL cs-CZ de-DE Quelle-Pointer erzeugen: en-US cs-CZ de-DE Datenlistekopf holen en-US Datenliste-Kopf Byte 16#DB = Sort-Datenlistekennung ? Ja ! Sortliste wird durchsucht Byte 16#DA = Datenlistekennung ? Nein ! Int 1 Datenblocklänge Int 128 Int 1 Max.Anzahl von Datenblöcken Int 1 Anzahl der Stammdaten Int 9 Anzahl der Stammdaten Datenblocklänge Länge der Datenliste Datenblocklänge Int 2 DB byteorientiert Int 20 Speichern ab 10.DW Int 3 /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) Datenlisten-DB ist zu kurz! Word 16#DAEE Datenliste-Endekennung ? Nein ! Word 16#DBEE Sort-Datenliste-Endekennung ? Nein ! Datenblocklänge Int 2 Datenblocklänge in Bytes STL cs-CZ de-DE en-US cs-CZ de-DE Zeigerüberprüfung en-US Indaten-DB Indaten-DB Int 0 Angegeben ? Nein 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 Indaten-DB Int 0 Angegeben ? Nein Indaten überprüfen 1.Indaten speichern Suchdaten überprüfen 1.Suchdaten speichern Indaten-DB Int 0 Angegeben ? Nein Indaten überprüfen Int 0 Etwas angegeben ? Ja ! ARef P#2.0 STL cs-CZ de-DE In-DATEN-Pointer übernehmen: en-US cs-CZ de-DE Indaten definiert ? en-US Indizierung möglich Indizier-Zeiger angegeben Indizierter DB Int 0 Angegeben ? Nein ! Sortliste wird durchsucht Word 2#0000_0000_0000_0000 Länge des Indizierten DB überschritten ? Int 2 DB byteorientiert Indizier-DB ist zu kurz Stammdaten Int 3 zu viele Stammdaten ? Ja ! Offset zum Abziehen Int 0 Parameter vorhanden ? Nein Stammdaten (1.DW) übergeben Stammdaten (2.DW) übergeben Beeinflussung der Weiterfahrt Rückwert von FC Stammdaten Stelle, wo Zeiger hinterlegt ist Int 0 negativ Länge des Indizierten DB überschritten ? Stelle, wo Zeiger hinterlegt ist Ja ! Int 2 DB byteorientiert Int 3 Pointer erzeugen Pointer, wo Zeiger hinterlegt ist Indizierter DB Schreibzeiger Datenliste DB Indizierung möglich Indizier-Zeiger angegeben STL cs-CZ de-DE en-US cs-CZ de-DE Indiziert speichern ? en-US Int 0 nicht gespeichert Zeiger Leerzelle Schreibzeiger Int 0 Angegeben ? Nein ! Schreibzeiger Int -20 Zeiger 1.Daten Datenblocklänge in Bytes Ermittlung der wievielten Daten -1 Int 16 Rest ermitteln Int 0 = 0 ? Schreibzeiger nicht im Raster ! Int 0 Bei angegebener Stelle suchen Such bei X-ten Datensatz Int 1 Suche bei 1.Datensatz beginnen Such bei X-ten Datensatz Indizier-Zeiger angegeben Int 20 Offset für 1.Daten Schreibzeiger Schreibzeiger Int 3 /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) Anzahl der Stammdaten Indaten-DB Int 0 Angegeben ? Nein Indaten überprüfen mit Datenliste-Daten lesen nicht identisch ! Int 3 DINT#2 Int 3 ARef P#2.0 Word 2#0000_0000_1100_0000 Daten werden gespeichert + überschrieben Ok-Status Int 0 Suche bei 1.Datensatz begonnen Such bei X-ten Datensatz Nein ! Zeiger Leerzelle Int 0 Gespeichert ? Ja ! Schreibzeiger Int 3 /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) Daten lesen Int 0 Leerzelle ? Nein ! Int 3 DINT#2 Int 3 Schreibzeiger Zeiger Leerzelle Such bei X-ten Datensatz Int 1 Such bei X-ten Datensatz Anzahl aller Daten in Datenliste Alle Datensätze sind durchsucht Int 0 Gefunden ? Zeiger Leerzelle Nein ! Schreibzeiger Word 2#0000_0000_1000_0000 Daten werden gespeichert Ok-Status Datenblocklänge in bytes Schreibzeiger Schreibzeiger STL cs-CZ de-DE en-US cs-CZ de-DE Kontrolle auf gleiche Stammdaten en-US Word 16#1004 Kennung 10 + Word=04
Any-Kennung, Datentyp Datenwords 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 Datenliste-Daten speichern Variant Word 2#0000_0000_0000_0000 Sortliste wird durchsucht Int 12 Int 3 /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) Schreibzeiger Speicherung letzter Zugriff Ok-Status Word 2#0000_0000_1100_0000 Daten werden gespeichert + überschrieben ? Ja ! Indizierung möglich ((Dann nicht!) Int 16 Offset Anzahl Einträge Int 3 /Statt AR1 (ging nur bis DB-Länge <= 8191 Bytes) Anzahl der Einträge Int 1 Einträge +1 Anzahl der Einträge STL cs-CZ de-DE Quelle-Pointer erzeugen: en-US cs-CZ de-DE Daten in Datenliste schreiben en-US Indizierung möglich Indizier-Zeiger angegeben Indizierter DB Schreibzeiger Datenliste DB STL cs-CZ de-DE en-US cs-CZ de-DE Indizierung ok ? en-US VKE = 1 ohne Fehler !!! Ok-Status Word 2#0000_0000_0000_0001 Kein Datenlistebereich Word 2#0000_0000_0000_0010 SFC20-Aufruf mit Fehler Word 2#0000_0000_0000_0100 Datenliste ist voll Word 2#0000_0000_0001_0000 Undefinierte Indaten VKE = 0 bei Fehler !!! VKE in BIE-Bit speichern AR2 zurückspeichern STL cs-CZ de-DE en-US cs-CZ de-DE Fehlerausgabe / RET_VAL en-US STL cs-CZ de-DE en-US cs-CZ de-DE Ausgangsvariablen schreiben en-US cs-CZ de-DE Datenlisten-Modul en-US