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

Seite 7 von 12 ErsteErste ... 56789 ... LetzteLetzte
Ergebnis 61 bis 70 von 115

Thema: verschiedene ergebnisse aus 0b 35 addieren

  1. #61
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    ... du solltest dann die Berechnung der Beschleunigung auch vom OB35 ausgehen lassen. Ansonsten erhälst du ja irgend etwas unsynchrones ...

    Wenn du zuviel Code in deinem OB35 hast, dann gheht die CPU auch in Stop (außer du hats den Fehler-OB dafür geschrieben), weil ein neuer Aufruf erfolgte bevor der alte abgearbeitet war. Ich weiß jetzt nicht, wie komplex deine Berechnung ist, aber eigentlich habe ich da nicht so die Bedenken.
    Was hattest du noch für eine CPU am Start ?

  2. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    stift (05.03.2008)

  3. #62
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    eine 313-c

  4. #63
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    wie fahre ich dann eigentlich die auswertung?
    Ich muss ja alle DBD die größer als 0 sind addieren und durch ihre anzahl teilen. Wie kann ich das denn umsetzen?

  5. #64
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    Die Auswertung oder die Zwischenberechnung ?

    In der Auswertung weißt du doch, wieviele Werte du aufgezeichnet hast (#Pointerwertigkeit).
    Wenn du daraus einen Gesamt-Mittelwert bilden willst (z.B.), dann addierst du alle diese Werte und teilst die Summe durch #Pointerwertigkeit. Im Prinzip genauso kannst du mit Zwischen-Werte verfahren (Abschnittsberechnung). Du mußt da halt nur wissen, wie weit ein Abschnitt geht ...

    Bei der Zwischenberechnung geht es dir (soweit ich mich da erinnere) doch um die aktuelle Geschwindigkeit. Das wäre dann v = ds / t also :
    Geschwindigkeit = (aktuelle Position - letzte Position) / Zeit (5 ms).

    Bitte um Ergänzung ...

    Gruß
    LL

  6. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    stift (05.03.2008)

  7. #65
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    die geschwindigkeit habe ich ja schon.
    jetzt gehts um die beschleunigung (ich hab weiter vorne im thread mal von geschwindigkeit geredet haber hab beschleunigung gemeint. Aber was kümmert mich mein dummes geschwätzt von gestern)
    Und jetzt hab ich die beschleunigung über b=-r*w²*sin(w*t)+(r²/a)*w²*cos(2*w*t) berechnet wobei r der kurbelwellenradius ist, w die winkelgeschwindigkeit, t der momentanzeitpunkt und a die pleuelstangenlänge.
    gibt es eigentlich irgendeinen tollen befehl mit dem ich alle werte aus meinem db auf einen schlag summieren kann oder muss ich so was ekliges programmieren:

    L DB11.DBD0
    L DB11.DBD4
    +R
    L DB11.DBD8
    +R
    .... usw bis DB11.dbd1192
    Geändert von stift (05.03.2008 um 09:53 Uhr)

  8. #66
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    ... wenn du da doch so eine wunderschöne (komplizierte) Formel hast, dann setzt die doch ein.
    Die Beschleunigung bezieht sich doch immer auch auf delta Strecke (oder delta Winkel) zu delta (verstrichene) Zeit ^2.

    Ich verstehe also die Frage im Augenblick nicht ...

  9. #67
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.398 Danke für 1.998 Beiträge

    Standard

    ... oh, du hast deinen Beitrag noch ergänzt ...

    Das Summieren kannst du über eine Schleife machen, die der she ähnlich ist, die du für das Reinschreiben der Werte in den DB nimmst :
    Code:
    Pointer = 0
    Summe = 0
     
    Loop: Pointer := Pointer +1
            wenn Pointer > Anzahl_Werte dann Ende
     
            Summe = Summe + Wert (Pointer)
            spa Loop
     
    Ende: Mittelwert = Summe / Anzahl_Werte
    Ich wollte das jetzt nicht in Step7-Code schreiben (der wäre dann warscheinlich auch fehlerhaft ), aber ich denke, damit kommst du trotzdem weiter ...

  10. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    stift (05.03.2008)

  11. #68
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    Alles klar. Danke.
    Ich wills versuchen

  12. #69
    Registriert seit
    15.01.2008
    Ort
    München
    Beiträge
    256
    Danke
    76
    Erhielt 17 Danke für 14 Beiträge

    Standard

    Also wie ich meine Berechnung noch im FC gefahren habe hat alles funktioniert.
    Nun hab ich alles in den ob35 eingefügt und jetzt geht die cpu nach einer belibigen zeit (manchmal 10s manchmal 15s oder so) in stop.
    woran kann das denn liegen?
    Gibt es irgend ne möglichkeit genau herauszufinden wo der fehler ist?
    Im Diagnosepuffer steht ja nur dass es im OB35 ist.

  13. #70
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    da du ja wirklich viel rechnest, scheint die abarbeitungszeit deines OB35 deutlich höher als der aufruftakt zu sein und schon die step7-hilfe weiß

    Hinweis
    Sie müssen dafür sorgen, daß die Laufzeit jedes Weckalarm-OBs deutlich kleiner ist als sein Zeittakt. Falls ein Weckalarm-OB noch nicht beendet ist, aber wegen des abgelaufenen Zeittakts erneut zur Bearbeitung ansteht, wird der Zeitfehler-OB (OB 80) gestartet. Anschließend wird der fehlerverursachende Weckalarm nachgeholt.
    die zeit von 10-15s kann ich mir dadurch erklären, dass die zahl der zur mittelwert herangezogenen werte steigt und damit auch der rechenaufwand... ein anderer, möglicher fehlergrund wäre die zuletzt eingefügte schleife, die nicht beendet wird...

    zur genaueren fehlerdiagnose empfehle ich das betrachten des stacks und man möge mir gestatten, auch dafür die step7-hilfe zu zitieren:


    Anzeigen der Stacks der CPU
    Mit diesem Register können Sie für jede Zentralbaugruppe (CPU) online die Informationen über den Inhalt der Stacks anzeigen. Die CPU muss sich dabei im Betriebszustand STOP befinden oder einen Haltepunkt erreicht haben.
    Das Anzeigen der Stacks ist eine wichtige Hilfe zum Finden von Fehlern, z.B. beim Testen Ihrer Bausteine. Ist die CPU dabei in den Betriebszustand STOP gegangen, können Sie sich im Unterbrechungs-Stack (U-Stack) die Unterbrechungsstelle mit den dort aktuellen Anzeigen und Akku-Inhalten anzeigen lassen, um so die Ursache (z.B. Programmierfehler) herauszufinden.
    Voraussetzung ist eine bestehende Verbindung zur CPU.


    Gehen Sie folgendermaßen vor:
    1. Wählen Sie den Menübefehl Zielsystem > Baugruppenzustand.
    2. Wählen Sie im folgenden Dialogfeld das Register "Stacks".

    @larry: respekt für soviel geduld!
    Geändert von vierlagig (05.03.2008 um 11:21 Uhr)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  14. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    stift (05.03.2008)

Ähnliche Themen

  1. PCWorx Ergebnisse kürtzen
    Von dabotetz im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 15.03.2011, 21:24
  2. Taster verschiedene Wertigkeiten addieren
    Von blaupille29 im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 30.11.2010, 11:36
  3. Antworten: 4
    Letzter Beitrag: 18.06.2010, 20:35
  4. Antworten: 19
    Letzter Beitrag: 19.04.2010, 12:53
  5. Antworten: 1
    Letzter Beitrag: 07.10.2008, 11:43

Lesezeichen

Berechtigungen

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