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

Ergebnis 1 bis 10 von 10

Thema: Mein erster ST-Gehversuch, Hilfe erwünscht

  1. #1
    Registriert seit
    24.03.2016
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo alle zusammen,
    ich habe angefangen mit ST zu programmieren. Bisher hab ich Übung in KOP/FUP/AWL. Leider will mein Code nicht so wie ich. Hardware ist ein Raspberry 2B mit der Pixtend-SPS von Qube Solutions. Obwohl die Bedingungen im IF bzw. IFELS-Zweig erfüllt sind, wird die Variable Pumpe_EIN nicht auf TRUE gesetzt. Hab das Programm bisher nur simuliert und entsprechen fehlende Eingangswerte simuliert. Über Hilfe würde ich mich freuen. Das Programm soll einmal Pflanzen bewässern, wobei der obere Zweig für Pflanzen gedacht ist, die einen kleinen Wasserspeicher haben und der untere für Pflanzen, bei denen ein Bodenfeuchtewert gehalten werden soll.

    FUNCTION_BLOCK Pumpe
    VAR_INPUT
    AE_REALN: REAL; //Bodenfeuchte
    AE_MAX: REAL; //Bodenfeuchte MAX
    AE_MIN: REAL; //Bodenfeuchte MIN
    Time_Pause: TIME; //Pause zwischen Pumptakten
    Time_Takt: TIME; // Pumptaktlänge
    Pflanze_Leer: BOOL; //Blumenkübelspeicher alle, bzw. Boden trocken. Wenn Umsch_Dig_Ana=False, dann False.
    Fass_Leer: BOOL; // Wasserfass leer
    Umsch_Dig_Ana: BOOL; //Umschaltung: Digital (1) oder Analogeingabe(0)
    END_VAR
    VAR_OUTPUT
    Pumpe_EIN: BOOL; //Pumpe EIN
    END_VAR
    VAR
    Pumptakt: BLINK;
    Start_BLINK: BOOL := TRUE; //startet Blinker Pumptakt
    Blink_Takt:BOOL; // Blinkttakt für Pumpensteuerung
    END_VAR

    Pumptakt(ENABLE:=NOT Umsch_Dig_Ana , TIMELOW:=Time_Pause , TIMEHIGH:=Time_Takt , OUT=>Blink_Takt);
    IF (Pflanze_Leer AND Umsch_Dig_Ana AND NOT Fass_Leer) THEN
    Pumpe_EIN:=TRUE;
    ELSIF (NOT Umsch_Dig_Ana AND NOT Fass_Leer) AND (AE_REALN <= AE_MIN) THEN
    REPEAT Pumpe_EIN:=Blink_Takt;
    UNTIL AE_REALN >= AE_MAX
    END_REPEAT;
    END_IF;
    Zitieren Zitieren Mein erster ST-Gehversuch, Hilfe erwünscht  

  2. #2
    Registriert seit
    13.01.2013
    Beiträge
    627
    Danke
    26
    Erhielt 64 Danke für 59 Beiträge

    Standard

    Kommt ein Fehler beim Übersetzten ?
    Was passiert denn überhaupt ? Wie simulierst du deine Eingänge ?
    Wie sind diese adressiert ?
    Der ändert sich etwas wenn du statt den Zuweisungen Var_in, Var_out... Alles in eine Var Tabelle schreibst ?

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

    Kakaotrinker (22.04.2016)

  4. #3
    Registriert seit
    24.02.2009
    Beiträge
    1.242
    Danke
    23
    Erhielt 276 Danke für 235 Beiträge

    Standard

    Oha eine Repeatschleife im Code, ganz ganz böse.

    Normalerweise sollte sich deine SPS hier in Störung gehen wegen Zykluszeitüberschreitung.

    Ob das jetzt direkt mit deinem Problem zu tun hat, weiss ich nicht, aber ganz du solltest dir ganz dick hinter die Ohren schreiben:
    REPEAT und WHILE Schleifen in der SPS-Welt vermeiden, oder nur dann verwenden wenn du 100% sicher bist, das die Abbruchbedingung innerhalb eines SPS-Zykluses erfüllt wird.
    Das ist bei dir nicht der Fall. Wenn AE_REALN < AE_MIN wird sich dein Programm aufhängen, weil die Schleife im Dauerlauf rödelt.

    Du brauchst die Schleife auch garnicht, weil dein SPS-Programm sowieso zyklisch abläuft.
    Sänd from mei Kombjudder mitse Dastadurr.

  5. Folgende 2 Benutzer sagen Danke zu MasterOhh für den nützlichen Beitrag:

    Kakaotrinker (22.04.2016),ostermann (23.04.2016)

  6. #4
    Kakaotrinker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.03.2016
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke für die Antworten. Hab die Schleifen rausgenommen und dann noch einen Fehler gefunden. Vergessen der Variable Fass_leer einen Eingang zuzuweisen. Jetzt geht es. "Simuliere" gerade relativ stumpf Eingänge mit Draht da eh noch nichts dran hängt. Das mach ich dann ab Morgen geschickter.

    Wünsche eine Gute Nacht

  7. #5
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    Ich empfehle zur Simulation die VAR_INPUT Variablen temporär als VAR zu deklarieren und sie dann über STRG +F7 bzw. F7 zu setzen/forcen.
    Habe festgestellt, dass das Forcen von Eingangsvariablen die direkt auf Eingangsadressen zugewiesen sind (beispiel "Taster1 AT %IX0.1"), nicht richtig geforced werden können in einer Simulation.

    Vielleicht mache ich hier selbst immer etwas falsch, habe es mir aber angewöhnt, das eben durch die Temporäre Deklaration als VAR anstatt VAR_INPUT zu umgehen.

    Gruß,
    Flo

  8. Folgender Benutzer sagt Danke zu KingHelmer für den nützlichen Beitrag:

    Kakaotrinker (22.04.2016)

  9. #6
    Kakaotrinker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.03.2016
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Nachdem mein Programm jetzt Form angenommen hat, arbeite ich gerade an der WebVisu. Dazu hätte ich noch eine Frage. Hat jemand eine Erläuterung parat, wie die Syntax für das Initiale Darstellungsformat von Texteingabefeldern ist? Die Hilfe gibt zwar ein paar Beispiele an, aber keine richtige Erläuterung.

    Grüße
    Kakaotrinker

  10. #7
    Registriert seit
    21.02.2011
    Ort
    Deutschland, Baden-Würtemberg
    Beiträge
    990
    Danke
    115
    Erhielt 125 Danke für 100 Beiträge

    Standard

    Hi Kakaotrinker,

    schau mal hier auf Seite 20 und 21:

    http://www.wago.com/wagoweb/document...000000_2de.pdf

    Gruß,
    Flo


  11. Folgender Benutzer sagt Danke zu KingHelmer für den nützlichen Beitrag:

    Kakaotrinker (22.04.2016)

  12. #8
    Kakaotrinker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.03.2016
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke, das sieht doch gut aus.

  13. #9
    Kakaotrinker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.03.2016
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard

    EIngabe von Integern und REAL-Werten klappt jetzt. Werden auch schön im Programm verarbeitNur die Zeiten wollen nicht so wie ich. Wenn ich als Initiales Darstellungsformat %t[s] oder %t[ss] angebe, wird mit im Texteingabefeld immer t[s oder t[ss angezeigt und ich kann keine eigegebene Zahl mit Enter bestätigen. Hat einer eine Idee?

  14. #10
    Kakaotrinker ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.03.2016
    Beiträge
    8
    Danke
    4
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hab den Fehler gefunden. Muss die Formatierungsangabe bei "Text" eintragen und nicht bei "Initiales Darstellungsformat". Wobei ich mich frage, welchen SInn zweiteres dann hat.

Ähnliche Themen

  1. Bitte um hilfe für mein Projekt
    Von Dominique Wiemann im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 28.08.2011, 10:58
  2. Anfängerfrage: Erster Gehversuch mit Ausgang:=Eingang
    Von forellengarten im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 12.03.2010, 10:37
  3. Hilfe, kann mein Projekt nicht mehr öffnen
    Von chris_sch im Forum HMI
    Antworten: 7
    Letzter Beitrag: 31.03.2009, 09:49
  4. Mein erster FB
    Von WL7001 im Forum Simatic
    Antworten: 16
    Letzter Beitrag: 15.03.2008, 15:44
  5. AB erster Zyklus, oder erster Aufruf des Task nach RUN
    Von MSB im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 22.02.2008, 10:09

Lesezeichen

Berechtigungen

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