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

Ergebnis 1 bis 6 von 6

Thema: Funktionen die länger brauchen...

  1. #1
    Registriert seit
    30.09.2005
    Beiträge
    33
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    blöder Titel, aber mir fiel nichts besseres ein.
    Mein Problem ist, dass wir unseren Kunden Funktionsbausteine liefern wollen, damit die schneller ihre Anlage mit unseren Komponenten in Betrieb nehmen können. Die SPS steuert ein Profibus Gateway, dass wiederum eine Anzeige von uns anspricht(RS485).
    Das Problem, vor dem ich jetzt stehe ist, dass die Anzeige ca. 80ms benötigt, bis sie mir bspw. den aktuellen Wert liefert***. Bislang habe ich in der Funktion mit SFC "Wait" gearbeitet, aber das kann es ja nicht wirklich sein, oder ist sowas wider Erwarten üblich? Das bremst dann doch das ganze System aus, oder? Ich meine, der OB1 wartet doch auf die FC?
    Wie würdet ihr sowas lösen? Geht das überhaupt, oder müsste man sowas quasi lieber aus dem OB1 heraus programmieren?
    Also dass er die Anzeige abfragt und wenn noch kein neuer Wert, dann hat er halt noch den alten und bei einem neuen Wert setzt er einen Merker, dass es sich um einen neuen Wert handelt?
    Kann mir halt schwer vorstellen, wie ein komplexes Programm so aussieht. Programmiere auf einer S7-300 Step 5 in AWL.

    *** siehe bitte 3. Posting in diesem Thread
    Zitieren Zitieren Funktionen die länger brauchen...  

  2. #2
    Anonymous Gast

    Standard

    Was ist das für eine Anzeige ???? Hersteller????

    Wenn ich das richtig verstehe braucht Deine Anzeige 80ms bis ein angezeigter Wert im Display aktuallisiert wird??????
    12,5 x in einer Sekunde ???

    Was passiert wenn Du den SFC 47 nicht benutzt????

  3. #3
    Registriert seit
    30.09.2005
    Beiträge
    33
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Nein, war doof beschrieben von mir. Es handelt sich um eine Spindelpositionsanzeige. Die 80ms sind quasi die Zeit, die vergehen,ab Senden des Befehles bis diese Spindelpositionsanzeige über das Gateway der SPS die Befehlsbestätigung mitteilt, dass bspq. ein neuer Sollwert eingestellt wurde. So verständlicher?
    Wenn ich nicht den SFC47 benutze und nicht warte, lese ich noch den alten Wert ein.

  4. #4
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    Zitat Zitat von Sh4gr4th
    ...Wenn ich nicht den SFC47 benutze und nicht warte, lese ich noch den alten Wert ein.
    Was ist daran verkehrt? Wenn du wartest verbleibt dein Programm schließlich auch in dem Zustand, der dem bisherigen Sollwert entspricht. Da dein Programm aber wahrscheinlich noch andere Dinge tut, die nicht von diesem Sollwert abhängen, wäre es besser, nicht zu warten.
    Lösungsmöglichkeiten:
    1. Du setzt in einem Zyklus den Befehl zum Lesen des Sollwertes ab und liest den Sollwert in einem späteren Zyklus ein. Bestimmte Aktionen führst du nur aus, wenn ein neuer Wert vorliegt. Falls du keine Möglichkeit hast, zu erkennen, ob das Lesen fertig ist, startest du einen Timer nach dem Absetzen des Befehls und liest nach Ablauf des Timers.
    2. Du wartest im OB1 wie bisher und packst alle Steuerungsaufgaben, die nicht verzögert werden sollen in einen Zeit-OB, z.B. OB35.
    3. Du packst die Abfrage in den Hintergrund-OB OB90 und setzt einen Merker, wenn sie fertig ist. Im OB1 fragst du diesen Merker ab, übernimmst den neuen Wert und setzt den Merker zurück.

  5. #5
    Registriert seit
    30.09.2005
    Beiträge
    33
    Danke
    0
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Was ist daran verkehrt?
    Verkehrt ist es nicht, aber ich meine ursprüngliche Idee war es, dass ich innerhalb meiner aufgerufenen Funktion auch gleich abfrage, ob der neue Sollwert wirklich einwandfrei akzeptiert wurde, was ich bislang nur durch das Warten realisieren konnte.

    Habe bis vor 2 Monaten quasi nicht gewusst, was eine SPS überhaupt ist und mir alles (das wenige...) mit Hilfe der Step5 Doku und des Forums angelesen und zwar immer das, was ich gerade gebrauchen konnte. Daher hatte ich bislang auch über die OBs35 & 90 bis gerade noch nichts gehört. Werde mich jetzt mal in die Richtung OB 35&90 einlesen.

    Vielen Dank für die Hilfe.

  6. #6
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.260
    Danke
    537
    Erhielt 2.707 Danke für 1.956 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Deine Funktion kann ja ein Busy-Signal und wenn nötig auch ein Done-Signal ausgeben. Solange die 80ms nach Absetzen des Befehls noch nicht um sind, wird Busy ausgegeben, Done ist False. Erst ein Done zeigt an, daß alle ok ist.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

Ähnliche Themen

  1. 32-Zoll-Fernseher als Monitor ge("miss")brauchen
    Von Perfektionist im Forum PC- und Netzwerktechnik
    Antworten: 18
    Letzter Beitrag: 27.10.2011, 20:55
  2. Problem mit S5 Netzwerk länger 256 Zeilen
    Von Wilhelm im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 05.05.2010, 22:08
  3. Funktionen in Funktionen aufrufen
    Von Baldaro im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 21.06.2009, 16:17
  4. Antworten: 8
    Letzter Beitrag: 06.04.2009, 11:43
  5. Antworten: 6
    Letzter Beitrag: 24.11.2008, 07:40

Lesezeichen

Berechtigungen

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