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

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

Thema: Andere Bezeichnung für LIMIT

  1. #1
    Registriert seit
    08.03.2014
    Beiträge
    501
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute.

    Ich habe im Simatic Manager STEP 7 ein Stellglied programmiert. Diese siehr so aus:

    FUNCTION_BLOCK STGRAD
    VAR_INPUT
    YA: REAL; (* analoges Eingangssignal *)
    Yneg: REAL; (* Y-Wert für STGneg = 0 *)
    Ypos: REAL; (* Y-Wert für STGpos = 0 *)
    END_VAR
    VAR_OUTPUT
    STGneg: REAL; (* negativer Stellgrad *)
    STGpos: REAL; (* positiver Stellgrad *)
    END_VAR

    STGpos := (YA - Ypos) / (100 - Ypos);
    STGpos := LIMIT(MN:=0.0, IN:=STGpos, MX:=1.0);
    IF Yneg > 0.001 THEN
    STGneg := (Yneg - YA) / Yneg;
    ELSE
    STGneg := 0.0;
    END_IF;
    STGneg := LIMIT(MN:=0.0, IN:=STGneg, MX:=1.0);

    END_FUNCTION_BLOCK


    Das Ganze möchte ich nun im TIA POrtal machen, bekomme nach dem Übersetzten folgenden Fehler angezeigt:

    Parameter der Funktion oder des Funktionsbausteins stimmen nicht mit den übergebenen formalen Parametern überein.

    In der Hilfe habe ich schon nachgeschaut, kann aber nicht so richtig was mit anfangen.
    Vor einiger Zeit hatte ich schon einmal ein ähnliches Problem. Dort mußte ich anstatt einer Buchstabenkombi das Zeichen für größer / kleiner eingeben. In dem Fall hier geht das aber nicht.

    Gibt es eine alternative für die Eingabe LIMIT?

    Limit steht ohne alles da. Keine ".." oder #

    Velen Dank schonmal für Eure Hilfe

    MfG
    Zitieren Zitieren Andere Bezeichnung für LIMIT  

  2. #2
    Registriert seit
    09.12.2011
    Ort
    Tor zum Harz
    Beiträge
    189
    Danke
    31
    Erhielt 28 Danke für 27 Beiträge

    Standard

    Moin,

    Kenne mich mit SCL nicht so richtig aus, aber in der Zeile
    Code:
    LIMIT(MN:=0.0, IN:=STGpos, MX:=1.0)
    liest Du den Wert. Da Du aber STGpos als Output deklariert hast, kannst Du diesen nur schreiben.
    Wenn Du diesen und natürlich den STGneg als Var In_out schreibst , sollte die Fehlermeldung weg sein.

    Raik

  3. #3
    Registriert seit
    23.10.2009
    Beiträge
    392
    Danke
    58
    Erhielt 113 Danke für 87 Beiträge

    Standard

    Mach mal aus den beiden Output-Parametern In/Out-Parameter.
    Gruß
    Erich

  4. #4
    chipchap ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.03.2014
    Beiträge
    501
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Der Fehler ist noch immer da.

  5. #5
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.358
    Danke
    456
    Erhielt 695 Danke für 520 Beiträge

    Standard

    Punkt 1: Du hast Glück das deine Funktion überhaupt in Step7 funktioniert hat. Lese bei einem FC niemals nie die Ausgänge zurück.

    Der FC bekommt nämlich nur einen Pointer auf einen TEMP-Wert des aufrufenden Bausteins übergeben. Das bedeutet das du im FC keinen Zugriff auf
    die tatsächlich Variable hast, sondern nur diesen TEMP-Wert liest oder schreibst.
    Nachdem der FC beendet und verlassen wurde werden die TEMP-Werte, die der FC bearbeitet hat, auf die tatsächlichen Variablen geschrieben.

    Dein Code funktioniert nur da du STGpos/STGneg zuerst beschreibst und dann wieder liest.
    Du arbeitest aber immer im TEMP des aufrufenden Bausteins, aber nie mit der Variable (außer es der Merkerbereich) die am OUT des FC dran geschrieben hast.
    Beim FC-Aufruf wird der Istwert der Variable die du am Ausgang hast nämlich nicht in diesen TEMP-kopiert.
    Das bedeutet: Wenn du zum Beispiel als ersten Befehl STGpos liest, dann bekommst du ne Zufallszahl.

    Gewöhne dir das dringend ab, auf so was drauf zu kommen wenn man es nicht weiß kann schwer sein.
    Verwende als IN/OUT oder TEMP-Zwischenwerte.

    Punkt 2: IN TIA wird die Schnittstelle im Menü oben definiert.
    TIA-SCL-Parameter.jpg
    Ich habe mir übrigens die Freiheit genommen ein paar Korrekturen einzutragen um dem Rücklesen der OUT-Parameter entgegen zu wirken.
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  6. #6
    chipchap ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.03.2014
    Beiträge
    501
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Ich muß mich mal wieder sehr für solch eine super Beschreibung bedanken.
    Ich werde es mir morgen anschaun. Bin noch unterwegs.
    Meld mich dann nochmal ob es funktionirt hat.

  7. #7
    Registriert seit
    22.06.2009
    Ort
    Sassnitz
    Beiträge
    11.205
    Danke
    926
    Erhielt 3.293 Danke für 2.662 Beiträge

    Standard

    Chipchap hat doch einen FB (FUNCTION_BLOCK) und keinen FC, da darf man OUTPUTs eigentlich auch lesen.
    Ist das von TIA eine Warnung oder eine Fehlermeldung?

    Harald
    Es ist immer wieder überraschend, wie etwas plötzlich funktioniert, sobald man alles richtig macht.

    FAQ: Linkliste SIMATIC-Kommunikation über Ethernet

  8. #8
    chipchap ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.03.2014
    Beiträge
    501
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard

    Diser angezeigte Text oben ist aus dem Simatic Manager. Jetzt soll im Tia erstellt werden. Dort wird natürlich nicht mit Function Block gearbeitet.

    Es ist eine Fehlermeldung

  9. #9
    chipchap ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    08.03.2014
    Beiträge
    501
    Danke
    11
    Erhielt 2 Danke für 2 Beiträge

    Standard

    So, habe jetzt mal die Änderung eingegeben. Die 2 Fehler sind immernoch da.

    LIMIT wird nach dem Übersetzen immer rot unterstrichen.
    Angehängte Grafiken Angehängte Grafiken

  10. #10
    Registriert seit
    03.04.2008
    Beiträge
    6.200
    Danke
    237
    Erhielt 815 Danke für 689 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Limit ist doch bei Step 7 ein Baustein aus der Bibliothek. Dann darfst du unter TIA schauen, ob es solch einen Baustein dort auch gibt. bike
    "Any fool can write code that a computer can understand.
    Good programmers write code that humans can understand."
    --Martin Fowler

Ähnliche Themen

  1. Andere Normen für Prüfstände?
    Von Zersch im Forum Maschinensicherheit - Normen und Richtlinien
    Antworten: 5
    Letzter Beitrag: 03.04.2012, 07:21
  2. Bezeichnung von Abdeckkaben für Schrauben
    Von Jumper im Forum Schaltschrankbau
    Antworten: 5
    Letzter Beitrag: 16.05.2011, 10:44
  3. CPU-Zeit für andere Zeitzone verschieben
    Von Fuji im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 02.02.2010, 05:15
  4. Antworten: 7
    Letzter Beitrag: 07.11.2006, 14:03
  5. Normen für die Bezeichnung von Geräten
    Von guevara im Forum Schaltschrankbau
    Antworten: 2
    Letzter Beitrag: 23.02.2005, 09:37

Lesezeichen

Berechtigungen

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