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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: DB schnell durchsuchen

  1. #11
    Registriert seit
    21.01.2008
    Beiträge
    70
    Danke
    0
    Erhielt 15 Danke für 15 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Schade, dass sich Gerri nicht mehr zu Wort meldet...
    Die letzten Posts beziehen sich fast alle auf den indizierten DB Zugriff. Dies hat aber nix mit "durchsuchen"(siehe Startthread) zu tun. Und auch der Satz "Der DB ist nach FIFO aufgebaut." lässt nicht darauf schließen, dass es so einfach wie oben beschrieben ist.
    Also lieber Gerri, bitte sag uns was

  2. #12
    Registriert seit
    05.03.2007
    Ort
    Lindlar
    Beiträge
    112
    Danke
    19
    Erhielt 20 Danke für 18 Beiträge

    Standard

    Zitat Zitat von wwwandy Beitrag anzeigen
    Schade, dass sich Gerri nicht mehr zu Wort meldet...
    Die letzten Posts beziehen sich fast alle auf den indizierten DB Zugriff. Dies hat aber nix mit "durchsuchen"(siehe Startthread) zu tun. Und auch der Satz "Der DB ist nach FIFO aufgebaut." lässt nicht darauf schließen, dass es so einfach wie oben beschrieben ist.
    Also lieber Gerri, bitte sag uns was

    Da hat der wwwandy wohl nicht ganz unrecht
    IF Time < '09:00:00' THEN
    SELECT finger from right hand where ID=3
    END IF

  3. #13
    Gerri ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    04.01.2008
    Ort
    Wien
    Beiträge
    772
    Danke
    136
    Erhielt 39 Danke für 35 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Morgen zusammen, ich war etwas eingedeckt mit Arbeit.

    Also, ich habe einen Wagen aud dem eine Kamera montiert ist, die mir diverse Korrekturwerte eines Spaltes auf einer Seitenwand eines Zuges misst.

    Nun fahre ich mit dem Wagen diese Seitenwand entlang und nehme die Korrekturwerte sowie meine Achsenpositionen auf.

    Die Korrekturwerte sind etwas Zeitversetzt da die Kamera für die Auswertung etwas Zeit benötigt, die Achsenpositionen jedoch sind wirklich von dem Zeitpunkt zudem ich die Daten empfange. Das soll hier aber keine Rolle spielen.

    Ca. 300mm dahinter befindet sich mein Schweissbrenner auf dem Wagen.

    Ich nehme also die Längsposition des Seitenwagens des Brenners und vergleiche diese mit den zur Messung der Kamera aufgenommenen Längspositionen.
    Durch interpolieren kann ich nun alle Werte aus dem DB holen.

    Da ich nun jedes Array nach der Längsposition durchsuchen muss mache ich es folgneder massen:

    // ----------------------------------------------------

    agai: NOP 0

    L Count // Array Zähler für die durchsuchung
    L 28
    *D
    SLD3
    LAR1

    AUF DBXY

    L #act_X
    L DBD[AR1,p#0.0]
    >
    ...
    ...

    L Count
    L 1
    +D
    T Count

    U #gefunden

    spbn agai // again


    // -----------------------------------------------------------

    Wenn ich gefunden habe nehme ich mir meinen aufgemotzten SFC20 her (mit 2 Anypointern bestückt) und schiebe die Daten der Längswerte die ich noch nicht passiert habe nach oben beginnend beim ersten Array.
    Dadurch habe ich keinen Überlauf.

    Wenn ich nach 100 Arrays nichts gefunden habe beende ich den FC um nicht eine Zykluszeitüberschreitung zu bekommen.
    (Immerhin sind es 1000 Arrays; die konnte ich bis jetzt aber noch nicht testen weil auf meiner Test-CPU zu wenig Speicher ist).

    Im Prinzip sind es zwei Arrays da ich die Achsenpositionen zwar Aufnehme, die Messwerte aber nur durch Interpolieren ermitteln kann da die Aufnahme nicht zur selben Zeit statt fand.

    Jetzt habe ich erfahren dass der Abstand zum Brenner sich ändern kann da die Kamera nicht senkrecht zur Seitenwand misst, sondern in einem Winkel.

    Wenn der Abstand zum Wagen sich nun ändert, dann ändert sich auch die Distanz der Kamera zum Brenner.
    Also muss ich nun die Distanzwerte ebenfalls Aufnehmen sowie die Geschwindigkeit um mit einer Winkelfunktion zurück rechnen zu können.

    Ich habe es nun Geschafft das soweit zu programmieren, nur bekomme ich die interpolierten Werte alle 1-1,5 sekunden geupdatet was zwar bei dieser Art der Schweisstechnologie nicht das Problem ist, aber wenn man schon so ein perverses Konzept für eine Maschine erstellt sollte es so gut wie möglich arbeiten.

    Da mein Zyklus nun auf 25ms angeschwollen ist und das Korrekturupdate so lange dauert, dachte ich mir auf die Microbox umzusteigen da die den Speicher sowie die Schnelligkeit hat.
    Wenn jedoch jemand eine bessere Lösung hat, um den DB zu durchsuchen, dann würde mir das natürlich extrem weiterhelfen.

    So, wer es nun geschafft hat bis hier her, dem möchte ich für die Hilfestellung danken!
    Geändert von Gerri (18.10.2009 um 11:27 Uhr)
    irgendetwas ist ja immer...
    ING. Gerald Miedler

Ähnliche Themen

  1. Kont. Heizen, schnell Heizen, schnell kühlen
    Von Krumnix im Forum Programmierstrategien
    Antworten: 10
    Letzter Beitrag: 21.02.2011, 18:43
  2. Schnell Zähler bei der CPU 313 C
    Von oli--pro im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 05.09.2008, 20:22
  3. Ist OPC sicher und schnell?
    Von BorisDieKlinge80 im Forum Hochsprachen - OPC
    Antworten: 5
    Letzter Beitrag: 04.06.2008, 20:20
  4. Schnell- Kurs
    Von pashewuh im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 01.05.2008, 16:02
  5. DB durchsuchen
    Von puehri im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 05.12.2005, 14:46

Lesezeichen

Berechtigungen

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