Zuviel Werbung? - > Hier kostenlos beim SPS-Forum registrieren

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Werte in DB suchen

  1. #1
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo, ich habe ein Problem bei der suche einen Wert der in einem DB gespeichert ist. in diesem DB sind 100 Werte Type DWORD gespeichert, diese Werte werden nach bestimmte durchläufe überschrieben.

    war mit FC86 TBL_Find leider nicht erfolgreich und mit SCL habe leider keine Erfahrung.

    wäre für eure Hilfe sehr Dankbar
    Zitieren Zitieren Werte in DB suchen  

  2. #2
    Registriert seit
    23.02.2012
    Ort
    Norilsk/Sibirien
    Beiträge
    31
    Danke
    5
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Such doch nach dem datenbaustein DWord und nicht nach dem wert an sich das macht es um einiges einfacher würde ich sagen

  3. #3
    Registriert seit
    06.02.2012
    Beiträge
    102
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Was möchtest du den genau haben, wenn du Ihn gefunden hast?
    Die Position oder den Wert?
    Suchen im DB mit SCL (wurde nicht getestet):
    Code:
    FUNCTION FC100 : INT
    VAR_INPUT
        DATEN: BLOCK_DB;
        GESUCHT: WORD;
    END_VAR
    VAR_OUTPUT
        AUSGABE:WORD;
    END_VAR
    VAR_TEMP
        Index:INT;
    END_VAR
    BEGIN
        Index := 0;
        REPEAT
            Index := Index + 1;
        UNTIL DATEN.DW[Index] = Gesucht OR Index >=100 
        END_REPEAT
        FC100 := 1;
    END_FUNCTION
    Geändert von WinniePooh (08.11.2012 um 08:02 Uhr)

  4. #4
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich suche nach dem Wert, also ob diese Wert in meinem DB vorhanden ist oder nicht und gebe eine Ausgangssignal 1 oder 0.
    Beispiel: ich lese den Wert der in DB4.DBD4 aus und Suche in DB 7 (in DB7 sind 100 DWORD ) nach dem Wert.

    leider SCL steht mir nicht zu Verfügung und habe keine Erfahrung damit.

    Danke Vorab

  5. #5
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Was für eine CPU verwendest du?
    Falls es keine 1200er ist wären AWL und indirekte Adressierung die richtigen Stichworte für die Suche.

    Wenn du nicht indirekt adressieren möchtest kannst du auch jeden einzelnen Wert laden und mit dem den du suchst vergleichen.
    L DBXDBDx
    L DBYDBDY
    =I
    S AXY

    und das ganze dann eben für jede Adresse.

  6. #6
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    es ist auch eine Lösung aber für 100 Werte oder mehr geht es bestimmt eleganter mit AWL, oder ?

  7. #7
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    musste noch mal drüberschauen. ist aus einer funktion die was ähnliche macht.
    Code:
          L     #Datenbaustein_1 //in INT
          T     #db_1 //temp INT
          L     #Datenbaustein_2 //in INT
          T     #db_2 //temp INT
          L     #Datenanfang_1 //in INT
          T     #datpos1 //temp INT
          L     #Datenanfang_2 //in INT
          T     #datpos2 //temp INT
          L     1
          T     #schleife //temp INT
          L     0
          T     #position //out INT
          CLR   
          =     #gleich// out BOOL
    anfa: NOP   0                           //Schleifenanfang
          L     #datpos1
          SLD   3
          LAR1  
          L     #datpos2
          SLD   3
          LAR2  
          AUF   DB [#db_1]
          L     DBD [AR1,P#0.0]
          AUF   DB [#db_2]
          L     DBD [AR2,P#0.0]
          ==D    
          =     #gleich
          SPB   gl1                        //gleich deshalb zum ende
    
          L     #datpos1
          L     4//+4 wegen dword
          +I    
          T     #datpos1
          L     #datpos2
          L     4 //bei dword
          +I    
          T     #datpos2
          L     #schleife
          L     1
          +I    
          T     #schleife
          L     #schleife
          L     #anzahl//in INT anzahl der variablen die verglichen werden sollten
          >I    
          SPB   fert
          SPA   anfa
    fert: NOP   0
          BEA   
    gl1: NOP   0
          L     #schleife
          T     #position//position wo  der erste gleich gefunden wurde
    Geändert von volker (08.11.2012 um 15:36 Uhr)
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  8. #8
    Registriert seit
    04.11.2010
    Beiträge
    31
    Danke
    16
    Erhielt 0 Danke für 0 Beiträge

    Standard

    ich glaube hier wird zwischen 2 Bausteine verglichen, oder ?

  9. #9
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Zitat Zitat von kruz_007 Beitrag anzeigen
    es ist auch eine Lösung aber für 100 Werte oder mehr geht es bestimmt eleganter mit AWL, oder ?
    Ja natürlich, darum mein Hinweis auf die indirekte Adressierung welche ja auch Volker in seinem Beirag darstellt!

  10. #10
    Registriert seit
    06.02.2012
    Beiträge
    102
    Danke
    4
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von kruz_007 Beitrag anzeigen
    ich glaube hier wird zwischen 2 Bausteine verglichen, oder ?
    ratter ratter ratter... Baustein gegen dein gesuchtes Word auswechseln und Fertig....

Ähnliche Themen

  1. Eingang suchen
    Von waldy im Forum Simatic
    Antworten: 13
    Letzter Beitrag: 06.08.2012, 20:45
  2. Array in DB suchen
    Von Limette im Forum Simatic
    Antworten: 46
    Letzter Beitrag: 25.01.2012, 15:45
  3. FB' in FB's suchen
    Von Poldi007 im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 19.08.2009, 07:30
  4. Werte in einem DB suchen und vergleichen
    Von Kodan im Forum Simatic
    Antworten: 48
    Letzter Beitrag: 25.02.2009, 18:06
  5. Datenwort suchen
    Von Deep Blue im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 04.02.2009, 13:11

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •