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

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

Thema: Bei negativem Ergebnis mit CC Funktionsbaustein aufrufen?

  1. #1
    Registriert seit
    21.07.2009
    Beiträge
    19
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Leute,

    wie bekomme ich bei negativem Ergebnis das VKE = 1?

    Hintergrund ist das ich eine Korekturfunktion für den SFC64 in einen extra Funktionsbaustein schreiben und dann immer bei negativen Ergebnis aufrufen will. Ungefähr so:

    Code:
     CALL  "Systemzeit"
          L     "System-Zeit"
          L     "alte_Systemzeit"
          -D
    jetzt VKE irgendwie 1 setzen wenn Ergebnis negativ
          CC   "Korrekturfunktion"
          T     "ein_Doppelword"
    und die Korrekturfunktion hab ich mir dann so vorgestellt:

    Code:
    L     2147483647
    +D

    Wenn also das Ergebnis negativ ist, den Maximalwert addieren und danach weiter im Programm.
    Zitieren Zitieren Bei negativem Ergebnis mit CC Funktionsbaustein aufrufen?  

  2. #2
    Registriert seit
    28.02.2006
    Ort
    Ostsee 5 min zum Strand
    Beiträge
    780
    Danke
    92
    Erhielt 110 Danke für 98 Beiträge

    Standard

    Vielleicht mit Vergleiche <0
    Gruß von der Ostsee

    Nordischerjung
    _____________________

    Wenn man seinem Paßbild ähnlich zu sehen beginnt, sollte man schleunigst Urlaub machen. (Vico Torriani, schw. Entertainer)

    Ich habe eine Diät gemacht und fettem Essen und Alkohol abgeschworen - in zwei Wochen verlor ich 14 Tage. (Joe E. Lewis)

  3. Folgender Benutzer sagt Danke zu Nordischerjung für den nützlichen Beitrag:

    Scoby (07.02.2011)

  4. #3
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Ganz einfach:
    Code:
     
    U <0
    Gruß
    Michael

  5. Folgender Benutzer sagt Danke zu M-Ott für den nützlichen Beitrag:

    Scoby (07.02.2011)

  6. #4
    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

    @M-Ott: schön!

    ich hatte
    Code:
     SPP
    vorgeschlagen, aber dadurch wird das VKE ja nicht eins, aber ein
    Code:
     CALL
    würde dann funktionieren
    Geändert von vierlagig (07.02.2011 um 14:54 Uhr)
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  7. Folgende 2 Benutzer sagen Danke zu vierlagig für den nützlichen Beitrag:

    M-Ott (07.02.2011),Scoby (07.02.2011)

  8. #5
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    @4L
    Danke!
    Gruß
    Michael

  9. #6
    Registriert seit
    06.10.2003
    Beiträge
    3.412
    Danke
    451
    Erhielt 506 Danke für 408 Beiträge

    Standard

    Für die Korrektur würde ich nicht extra eine Funktion schreiben.

    Code:
    //*** Aufrufzyklus bestimmen
          L     "SYS_TIME"
          L     #SYSTIME_ALT
          -D                                // Zykluszeit
          SPPZ  M012                        // Korrektur bei Überlauf
          L     T#24D20H31M23S647MS         // der Systemzeit
          +D    
    M012: NOP   0
          T     #ZYKLUS
    Es gibt viel mehr Leute, die freiwillig aufgeben, als solche, die echt scheitern.
    Henry Ford

  10. #7
    Scoby ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.07.2009
    Beiträge
    19
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    @ Dagobert
    Wenn ich das so mache, müsste ich diese 8 Zeilen doch aber an jede Stelle kopieren, an der die Systemzeitzeit gespeichert wird.

    Bei meiner Variante sinds nur 2 Zeilen an jeder Stelle und 2 Zeilen in der Funktion.


    Oder verstehe ich irgendwas falsch?

  11. #8
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Zitat Zitat von Scoby Beitrag anzeigen
    ... Oder verstehe ich irgendwas falsch?
    Das verstehst Du richtig, aber wenn Du die gesamte Funktion mehrmals im Programm brauchst, dann mach doch aus dem Code von Dagobert einen FC, dann brauchst Du sogar nur noch eine Zeile pro Anwendung!
    Gruß
    Michael

  12. #9
    Scoby ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.07.2009
    Beiträge
    19
    Danke
    7
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hm ... aber #Systemzeit_Alt ist bei jedem Aufruf eine andere.
    Und #Zyklus auch

  13. #10
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dann mach doch aus Systemzeit_ALT einen IN-Parameter und aus Zyklus eine OUT-Parameter! So kannst Du sie bei jedem Aufruf aktuell übergeben.
    Gruß
    Michael

Ähnliche Themen

  1. Ergebnis aus 2 PT1-Gliedern?
    Von Poldi007 im Forum Simatic
    Antworten: 0
    Letzter Beitrag: 01.08.2011, 09:01
  2. Antworten: 3
    Letzter Beitrag: 13.02.2011, 22:33
  3. Antworten: 3
    Letzter Beitrag: 11.08.2010, 22:09
  4. Ergebnis CDT von SFC1 in DB ablegen
    Von rapser im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 17.02.2010, 15:02
  5. Funktionsbaustein aufrufen
    Von Spoon im Forum CODESYS und IEC61131
    Antworten: 9
    Letzter Beitrag: 06.02.2010, 22:04

Lesezeichen

Berechtigungen

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