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

Page 3 of 5 FirstFirst 12345 LastLast
Results 21 to 30 of 41

Thread: Einlesen eines Analogwertes über mehrere Sekunden, anschl. speichern und anzeigen

  1. #21
    Join Date
    08.11.2006
    Location
    Uckermark
    Posts
    913
    Danke
    201
    Erhielt 256 Danke für 208 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by DerPraktikant View Post
    Irgendwie sehe ich hier keine kritische Flanke , aber es ist noch früh am Morgen...
    vierlagig meinte nur, dass Du das Nullsetzen der MD's von einer Bedingung abhängig machen musst. Das könnte auch eine Flanke sein, muss es aber nicht.
    Code:
          U     E      0.5                  //neue Messreihe starten
          SPBN  sp01
          L     0.000000e+000               //wenn neue Messreihe
          T     MD     0                    // 0 in MD0 schreiben
          T     MD     4                    //und MD4 schreiben
          T     MD     8                    //und in MD8 schreiben
          T     MD    12                    //und in MD12 schreiben
          T     MD    16                    //und in MD16 schreiben
    sp01: NOP   0
    Neue Ideen begeistern jene am meisten, die auch mit den alten nichts anzufangen wussten.
    Karl Heinrich Waggerl (1897-1973)

  2. #22
    Join Date
    08.08.2007
    Location
    Dresden
    Posts
    9,882
    Danke
    1,064
    Erhielt 2,056 Danke für 1,632 Beiträge

    Default

    Quote Originally Posted by OHGN View Post
    Das könnte auch eine Flanke sein, muss es aber nicht.
    ich finde die lösung mit dem automatischen rücksetzen bei neuer messreihe eleganter ... aber natürlich kann da auch ein reset von einem HMI kommen ... oder man behält die werte um eine vergleichsmessung machen zu können ... oder man macht es so wie OHGN oder oder oder ... aber von die nullen per HMF* in die CPU zu kloppen würde ich abraten!


    *Hammer, Meißel, Flex
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  3. #23
    Join Date
    12.11.2008
    Posts
    65
    Danke
    43
    Erhielt 0 Danke für 0 Beiträge

    Default

    Ich nehme an, das mit der Flankenauswertung und dem überbügeln der 0 meinst Du in dem Kontext des Nullsetzens der 4 gespeicherten Werte am Ende des Prüfzyklus. Das müsste dann so behoben werden können, oder?

    Code:
    U     E       6.7                  //wenn am TP Schaltfläche für "Neuer Test" gedrückt
    FP   M       6.7                  //und dieses Signal hat eine steigende flanke 
    L     0.000000e+000           //dann lade 0
    T     MD     0                    // 0 in MD0 schreiben
    T     MD     4                    //und MD4 schreiben
    T     MD     8                    //und in MD8 schreiben
    T     MD    12                   //und in MD12 schreiben
    T     MD    16                   //und in MD16 schreiben
    Wenn Du das nicht gemeint hast, und Du eher an den Code um den FC 105 herum gedacht hast, dann musst Du mir aber erklären wie. Irgendwie sehe ich nämlich gerade so keine Stelle an der ich eine Flankenauswertung reinsetzen sollte.

  4. #24
    Join Date
    08.08.2007
    Location
    Dresden
    Posts
    9,882
    Danke
    1,064
    Erhielt 2,056 Danke für 1,632 Beiträge

    Default

    mach noch einen sprung "wenn VKE=0" hinter FP und alles wird gut
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #25
    Join Date
    08.08.2007
    Location
    Dresden
    Posts
    9,882
    Danke
    1,064
    Erhielt 2,056 Danke für 1,632 Beiträge

    Default

    achso, noch was ... du solltest im richtigen format nullen. nicht weil es sonst nicht funktioniert, nur weil es logischer ist und damit die nachvollziehbarkeit unterstützt wird ... also 0.00 in die MDs schreiben
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    DerPraktikant (05.12.2008)

  7. #26
    Join Date
    12.11.2008
    Posts
    65
    Danke
    43
    Erhielt 0 Danke für 0 Beiträge

    Default

    Thema Format: 0.000000e+000 müsste doch das Richtige sein für die MDs
    Die Maximal und Minimalwerte in dem FC105 werden ja auch in dem Format gegeben, also müsste der Ausgang des FC105 ja auch dem entsprechen.

    Die Geschichte mit der Flankenauswertung sollte dann in etwa so aussehen:

    Code:
    P602: U     E       6.7                  //wenn am TP Schaltfläche für "Neuer Test" gedrückt
          FP   M       6.7                  //und dieses Signal hat eine steigende flanke 
          SPBN P603 
          L     0.000000e+000           //dann lade 0
          T     MD     0                    // 0 in MD0 schreiben
          T     MD     4                    //und MD4 schreiben
          T     MD     8                    //und in MD8 schreiben
          T     MD    12                   //und in MD12 schreiben
          T     MD    16                   //und in MD16 schreiben
    P603: NOP
    Oder schmeiss ich wieder Sachen durcheinander?

  8. #27
    Join Date
    08.08.2007
    Location
    Dresden
    Posts
    9,882
    Danke
    1,064
    Erhielt 2,056 Danke für 1,632 Beiträge

    Default

    Quote Originally Posted by DerPraktikant View Post
    Oder schmeiss ich wieder Sachen durcheinander?
    nö, flanke paßt ... wo hab ich denn erst die INT 0 gesehen *grübel* ...anyway... 0.00 passt natürlich

    aber weeßte was, du mußt doch da vier mal das selbe machen, warum bauste dir da nicht einen FB für, den du dann nur noch vier mal aufrufen brauchst und entsprechend beschalten? das fänd ich viiiiieeeel eleganter
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    DerPraktikant (05.12.2008)

  10. #28
    Join Date
    12.11.2008
    Posts
    65
    Danke
    43
    Erhielt 0 Danke für 0 Beiträge

    Default

    Einen schönen Montag Morgen allen

    Ich habe mir den Code zum Einlesen noch einmal genauer angeschaut eben, so wie OHGN ihn vorgeschlagen hat:

    Code:
          U     E      0.4                  //Prüfen ob noch in Endlage
          SPBN  P401
          CALL  FC   105
           IN     :=PEW6                    //angenommen es wäre dieser Analog-Eingang
           HI_LIM :=2.000000e+001           //Maxwert ist 20kN
           LO_LIM :=0.000000e+000           //Minwert ist 0kN
           BIPOLAR:=FALSE
           RET_VAL:=MW50
           OUT    :=MD0                     //normierter Wert
          L     MD     0                    //normierter Wert
          L     MD     4                    //max Speicherwert
          <R                                //wenn neuer Wert grösser als alter wert
    SPB   P402
          TAK   
          T     MD     4                    //dann neuen Wert in MD 4 schreiben
          SPA   P402
    P401: L     0.000000e+000               //wenn nicht mehr in Endlage
          T     MD     0                    // 0 in MD0 schreiben
          T     MD     4                    //und MD4 schreiben
    P402: NOP   0
    Dabei ist mir allerdings etwas aufgefallen, so in etwa in der Mitte (fett geschrieben). Insgesamt würde diese Variante dann bedeuten dass er den Wert einliest, mit dem gespeicherten Maximalwert vergleicht, und wenn der aktuelle Wert grösser ist als der Maximalwert, dann Sprung zu P402 ohne vorher den aktuellen Wert als neuen Maximalwert zu speichern für den nächsten Zyklus.

    Da es mir aber darum geht, am Ende in MD 4 den höchsten Wert gespeichert zu haben, der während der ganzen Zeit gemessen wurde, wäre es da nicht sinnvoller das Fettgedruckte durch

    Code:
    SPBN P402
    zu ersetzen?

    Weil das <R vergleicht ja ob MD4 < MD0 und wenn ja (VKE=1) dann sollte er doch die nächsten beiden Zeilen

    Code:
          TAK   
          T     MD     4                    //dann neuen Wert in MD 4 schreiben
    auch gleich umsetzen, da diese ja dann den (höheren) Wert von MD0 in MD4 schreiben, und sich somit ein neuer Maximalwert ergibt für den nächsten Zyklus.

    Oder habe ich die <R Anweisung falsch verstanden?

  11. #29
    Join Date
    12.11.2008
    Posts
    65
    Danke
    43
    Erhielt 0 Danke für 0 Beiträge

    Default

    Ich glaube ich habe etwas verwechselt...

    Code:
    LD MD 0
    LD MD 4
    <R
    bedeutet an sich ja, dass wenn MD 4 < MD 0 dann kriegt man als VKE = 1, oder?

    Dann wäre meine Frage beantwortet

  12. #30
    Join Date
    24.10.2007
    Location
    USA
    Posts
    823
    Danke
    3
    Erhielt 73 Danke für 57 Beiträge

    Default


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Quote Originally Posted by DerPraktikant View Post
    Ich glaube ich habe etwas verwechselt...

    Code:
    LD MD 0
    LD MD 4
    <R
    bedeutet an sich ja, dass wenn MD 4 < MD 0 dann kriegt man als VKE = 1, oder?

    Dann wäre meine Frage beantwortet

    Code:
    L MD 0
    L MD 4
    <R
    bedeutet:
    Vergleiche, ob AKKU2 (MD 0) kleiner (<) als AKKU1 (MD 4)
    --> VKE=1 if MD 0< MD 4
    Last edited by johnij; 08.12.2008 at 09:33.
    Partys sind krass, am besten ist das Bier aus dem fränkischen Fass ...
    "Programming today is a race between the programmers and software engineers to create better
    and more idiot-proof programs, and the universe, creating bigger and better idiots. So far,
    the universe is winning". - Rich Cook

  13. Folgender Benutzer sagt Danke zu johnij für den nützlichen Beitrag:

    DerPraktikant (08.12.2008)

Similar Threads

  1. Glättung eines Analogwertes
    By hank12 in forum Simatic
    Replies: 23
    Last Post: 27.11.2014, 21:49
  2. Replies: 25
    Last Post: 05.11.2014, 13:55
  3. Replies: 11
    Last Post: 19.05.2014, 10:35
  4. Suche Tool zur Darstellung eines Analogwertes
    By bludie in forum Suche - Biete
    Replies: 4
    Last Post: 22.08.2012, 15:06
  5. REAL Wert einlesen und speichern
    By Franzmann in forum Simatic
    Replies: 70
    Last Post: 19.06.2008, 10:41

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •