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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: BR-Studio und Strukturierter Text - Problem

  1. #11
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi!

    Zitat Zitat von Kirpitsch Beitrag anzeigen
    Hi, habe den Code gleich mal in mein PowerPanel übertragen und es tut perfekt. Und dass ich damit sogar den Startzyklus gewollt verzögern kann ist natürlich eine tolle Sache. An dieser Stelle vielen Dank
    Freut mich

    [QUOTE=Kirpitsch;338499]..Kurz nachdem du prüfst ob beide DO's = 0 sind, kommt der folgende Quelltext:
    Code:
    TON_01 (IN:= TON_01.IN, PT:= TON_01.PT);
            IF (TON_01.Q = 1) THEN
                 TON_01.Q := 0;
                 input_1 : = 1;
            END_IF
    Das ist falsch, ich setzte nicht .Q auf := 0 sondern .IN, hast du falsch abgeschrieben.

    Ich habe aber im ganzen Quelltext keine einzige Zeile mit TON_01.Q := TRUE gesehen
    Du hast recht, es handelt sich hier um ein TON() Zeitglied, wo .Q = 1 wird nach Ablauf der parametrierten Zeit. Mit "input_1" wird ja dann dein Puls-Zeitglied gestartet...
    Heist das jetzt, dass wenn ich den Funktionsaufruf TON_01 (IN:= TON_01.IN, PT:= TON_01.PT); mit Parameterübergabe mache, dass dann automatisch mein Ausgang TON_01.Q auf TRUE gesetzt wird?
    Ja genau! Diese Schreibweise ist etwas komisch für mich, da ich normalerweise Automation Basic verwende. In Automation Basic würde ich das so schreiben
    Code:
    TON_01 FUB TON()
    if (TON_01.Q = 1) then
    ...
    ...
    Du hast ja die Variable TON_01 als TON Zeitglied definiert, oder nicht ?


    Und noch eine Frage zum InitCode, wird dieser, wenn meine Taskklasse alle 10ms neu durchläuft, auch alle 10ms neu aufgerufen?
    Nein, der wird nur nach dem Einschalten ausgeführt. Während der Programmerstellung nach dem Download, nach einem Kalt- oder Warmstart....

    bg
    bb

  2. Folgender Benutzer sagt Danke zu bits'bytes für den nützlichen Beitrag:

    Kirpitsch (27.06.2011)

  3. #12
    Kirpitsch ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.02.2011
    Beiträge
    16
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Daumen hoch

    Du hast ja die Variable TON_01 als TON Zeitglied definiert, oder nicht ?
    Natürlich, sonst würde glaube ich auch der Compiler gleich schimpfen. Also ich denke hiermit ist eigentlich alles was ich so wissen wollte geklärt worden. Danke nochmal

  4. #13
    Kirpitsch ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    25.02.2011
    Beiträge
    16
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    So es hat sich doch wieder ein Problem aufgetan.

    Ich möchte zählen wie oft mein Zylinder eine bestimmte Position durchfährt. So sieht mein Code aus:


    IF (druckregelvenil_druck = 0) THEN // Bei jedem Neustart oder
    // Programmabruch der Fall
    wegmitte := sensor_weg;
    zeit_wegmitte := 0;
    n := 0;
    END_IF

    IF (sensor_weg = wegmitte) AND (n = 1) THEN
    n := 0;
    zeit_wegmitte := 0;
    IF(startbutton = TRUE) THEN
    zyklenzahl := zyklenzahl + 1;
    END_IF
    END_IF

    IF (sensor_weg <> wegmitte) THEN
    zeit_wegmitte := zeit_wegmitte + 1;
    n := 1;
    END_IF

    IF (startbutton = FALSE) THEN
    zyklenzahl := 0;
    END_IF



    So und eigentlich tut das auch (hoffe ich hab beim schreiben keinen Fehler im Code) aber wenn ich einen Neustart des Systems (Stromausfall ^^) mache, dann zählt er die Zyklen zwar auch, aber fängt dann z.B. gleich bei 10 an, dannach zählt er normal weiter. Wie könnte ich den Fehler drin haben?

  5. #14
    Registriert seit
    12.04.2010
    Beiträge
    300
    Danke
    22
    Erhielt 54 Danke für 52 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo ,

    kurz einige Punkte

    a) du solltest den Code mittels # des Editors hier einfügen, dann kann man in auch leichter (eventuell lesen

    b) du solltest Copy/Paste verwenden, dann kannst du dich auch nicht verschreiben


    c) zu deinem Code

    - ist kein Code-Fragment sondern der gesamte Code, oder ?
    - wozu ist die Variable "zeit_wegmitte", wird nicht verwendet

    - "zyklenzahl" wird beim INIT nicht gelöscht, (da kein INIT ?)

    - ist "startbutton" eine IO-Variable oder ein Merker ?

    - du solltest keine Variablen verwenden wie "n" oder "i"


    Code:
     
    
    
    IF (druckregelvenil_druck = 0) THEN // Bei jedem Neustart oder // Programmabruch der Fall
        wegmitte := sensor_weg;
        zeit_wegmitte := 0;
        n := 0;
    END_IF
    
    IF (sensor_weg = wegmitte) AND (n = 1) THEN
        n := 0;
        zeit_wegmitte := 0;
        IF(startbutton = TRUE) THEN
            zyklenzahl := zyklenzahl + 1;
        END_IF
    END_IF
    
    IF (sensor_weg <> wegmitte) THEN
        zeit_wegmitte := zeit_wegmitte + 1;
        n := 1;
    END_IF
    
    IF (startbutton = FALSE) THEN
        zyklenzahl := 0;
    END_IF
    so kommts mir ein bisschen übersichtlicher vor (achtung: syntax ist nicht structured text, sondern misch-masch)

    Code:
    if (EDGEPOS(startbutton)) then
         zyklenzahl = 0
    endif
    
    if (sensor_weg = wegmitte) then   // ist wieder auf Position die geprüft werden soll
        zyklenzahl = zyklenzahl + war_weg and startbutton
        war_weg = 0
    else
        war_weg = 1    // ist weg von prüfposition, wenn er wieder drauf fährt, zählen
    endif

Ähnliche Themen

  1. Aufgaben Strukturierter Text
    Von Jumpinjack im Forum CODESYS und IEC61131
    Antworten: 1
    Letzter Beitrag: 27.01.2011, 23:27
  2. Strukturierter Text ????HÄ?????
    Von Pinky im Forum Programmierstrategien
    Antworten: 3
    Letzter Beitrag: 22.04.2010, 14:26
  3. Mitsubishi FX3U und Strukturierter Text
    Von Jorge im Forum Sonstige Steuerungen
    Antworten: 2
    Letzter Beitrag: 10.02.2010, 20:38
  4. For Schleif Strukturierter Text
    Von bluebird277 im Forum CODESYS und IEC61131
    Antworten: 7
    Letzter Beitrag: 28.01.2010, 20:45
  5. Strukturierter Text
    Von bluebird277 im Forum CODESYS und IEC61131
    Antworten: 3
    Letzter Beitrag: 21.01.2010, 15:54

Lesezeichen

Berechtigungen

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