DB nach Array durchsuchen

gPunkt

Level-1
Beiträge
7
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo!

Bin nach längerem wieder in die S7 Programmierung eingestiegen und stehe momentan vor einem kleinen Problem.

Ich habe einen DB gefüllt mit Arrays.

Code:
type TTypData
  struct 
    ID : DINT;
    Drehzahl : INT;
    Vorschub : INT;
    Spanndruck : INT;
    Stationsnummer : INT;
    Klartext : STRING[25];
  end_struct
end_type 
data_block DB_Typdaten
  struct
    Typ : array [1..350] of TTypData;
  end_struct
begin
  Typ[1].Typ := L#100029;
  Typ[1].Drehzahl := 2000;
  Typ[1].Vorschub := 800;
  Typ[1].Spanndruck := 3;
  Typ[1].Stationsnummer := 1;
  Typ[1].Klartext := 'PK-NG Abzweig 200/110/45';
end_data_block

Momentan enthält nur Typ 1 Daten.

Brauche nun eine Funktion, die den DB nach dem nächsten lehren Array durchsucht und mir die ID zurück gibt (also in meinem Fall sollte jetzt 2 zurück kommen=.

Danke für eure Hilfe.

MFG

Gerry
 
Da bietet sich eine Schleife mit i=1..350 an, welche solange Typ.ID vergleicht bis eine Leer-Kennung (0?) gefunden wird oder das ganze Array ergebnislos durchsucht wurde. i ist dann die von Dir gesuchte Rückgabe.

In AWL oder einfacher in SCL machbar.

Harald
 
In SCL
Code:
    LeerDatensatz_Index := 0;
    FOR i := 1 TO 350 DO
      IF DB_Typdaten.Typ[i].ID = 0 THEN
        LeerDatensatz_Index := i;
        EXIT;
      END_IF;
    END_FOR;

// LeerDatensatz_Index enthält den Index (1..350) des ersten leeren Datensatzes
// oder 0 wenn kein Datensatz im Array mehr leer ist

Harald
 
Zurück
Oben