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

Seite 2 von 3 ErsteErste 123 LetzteLetzte
Ergebnis 11 bis 20 von 22

Thema: Findet den Fehler:) IF THEN ELSE

  1. #11
    spsbenutzer1 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2015
    Beiträge
    11
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @schaible.r
    das hab ich gemacht damit m2 wieder frei für das nächste teil ist.mir wird aber grad selber klar dass das ja unötig ist weil wenn das nächste teil kommt muss ja auch m3 wieder frei sein oda?!

  2. #12
    spsbenutzer1 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2015
    Beiträge
    11
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    uff...aber das muss doch in einer einfachen Programmierung machbar sein das signal zu merken und das Teil abzublasen während schon das nächste geprüft wird.

  3. #13
    spsbenutzer1 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    21.05.2015
    Beiträge
    11
    Danke
    2
    Erhielt 0 Danke für 0 Beiträge

    Standard

    uff...aber das muss doch mit einer einfachen Programmierung über merker machbar sein ein Signal zu merken und dann das Teil wegzublasen während schon das nächste geprüft wird?!

  4. #14
    Registriert seit
    17.09.2014
    Ort
    BW
    Beiträge
    217
    Danke
    18
    Erhielt 28 Danke für 26 Beiträge

    Standard

    Nun ja so wie ich das lese schaltest Du ja m2 aus sobald m3 ein ist.
    Wenn man nun den Ablauf einer SPS drüber legt ist m2 nur zwischen den Zeilen mit nio/io und dem m3 rucksetzen auf 1 und somit kommt an derE/A immer nur 0 an.

    Und was m3 an geht ... hier schaltest Du zwar m3 mit m2 auf 1 aber das interessiert die E/A auch nicht, denn für die ist nur das Ergebniss von TOF.Q interessant.

    Als erstes würde ich die beiden Zuweisungen mal verschmelzen.

    Zur Übersicht erst mal m3 durch z.b. m3temp ersetzen in der IF abfrage. Also ber der Zuweisung.
    Beim Abfragen bleibt m3.
    Und dann solltest Du IF m2 umschreiben in IF (m2=1 or b3=1)

    Und am Eingang vom TOF den m3temp statt b3.

    Das mal die ersten Schritte, so ist dann auf jeden Fall besser nach zu vollziehen was passiert.

  5. #15
    Registriert seit
    17.09.2014
    Ort
    BW
    Beiträge
    217
    Danke
    18
    Erhielt 28 Danke für 26 Beiträge

    Standard

    Ach und das Rucksetzen von m2 würde ich raus nehmen, das sollten ja die IO/NIO Erledigen.

  6. #16
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Sind die Variablen eigentlich BOOLs oder (D)INTs?
    Von den Werten (0/1) her, sieht's ja eher nach Ersterem aus. Vom zugewiesenem Format allerdings nach Letzterem.

  7. #17
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.351
    Danke
    452
    Erhielt 692 Danke für 517 Beiträge

    Standard

    Zitat Zitat von spsbenutzer1 Beitrag anzeigen
    IF s1=1 THEN motor:=1;m1:=1;
    ELSE motor:=0;m1:=0;
    END_IF
    Um den guten MSB zu zitieren...
    Zitat Zitat von MSB Beitrag anzeigen
    Ah, wie ich dieses sinnfreie Konstrukt doch liebe ...
    Du könntest das wesentlich einfacher schreiben...
    Code:
    motor := s1; m1 := s1;
    also vollständig
    Code:
    s1=Start-Schalter
    motor=Bandmotor
    trigger=löst Kamera aus
    
    motor := s1;
    m1 := s1;
    trigger:= b2;
    
    IF io AND NOT nio THEN m2:=1;              //Hier muss das IF bleiben damit bei io=1 und nio=1 (oder beide 0) - 
    ELSEIF NOT io AND nio THEN m2:=0;       //m2 nicht zugewiesen wird
    END_IF
     
    IF m2 THEN m3:=TRUE;
    END_IF
     
    IF m3 THEN m2:=FALSE;
    END_IF
     
    v1 := b3 AND m3;
    
    TOFInst(IN := b3, PT:= T#50s);
    
    m3 :=TOFInst.Q;
    Das ändert zwar nichts am Grundproblem, aber ich glaube du versinkst ein wenig im IF-ELSE-Jungel...
    Geändert von RONIN (03.06.2015 um 20:30 Uhr)
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  8. #18
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard

    Zitat Zitat von RONIN Beitrag anzeigen
    Du könntest das wesentlich einfacher schreiben...
    Aber nur, wenn die ganzen Variablen tatsächlich BOOLs sind.
    Soll auch Leute geben, die lieber INTs nutzen, um ggf. mehr als zwei Zustände darstellen zu können.
    Allein aus dem Code des TE's kann man da m.M.n. nicht zweifelsfrei rückschließen. Daher zuerst meine Nachfrage.

    Wenn die Vermutung aber tatsächlich zutrifft, geb' ich Dir

  9. #19
    Registriert seit
    23.07.2009
    Ort
    Österreich
    Beiträge
    2.351
    Danke
    452
    Erhielt 692 Danke für 517 Beiträge

    Standard

    Ich hab einfach mal ganz frech angenommen das es BOOLS sind....
    If at first you don't succeed, you're not Van Damme!
    ... or maybe using TIA!

  10. #20
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 919 Danke für 740 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Dann wäre es vom TE schon allein ein bescheidener Programmierstil, die Variablen mit der impliziten Umwandlung von 0 und 1 anstatt mit FALSE oder TRUE zuzuweisen.

Ähnliche Themen

  1. Step 7 Finde den Fehler ?!?!?!?
    Von Hangasilly im Forum Simatic
    Antworten: 10
    Letzter Beitrag: 19.08.2014, 07:24
  2. Wer kennt den Fehler?
    Von bonatus im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 06.06.2009, 10:45
  3. Fehler in den internen Datenstrukturen
    Von seeba im Forum Simatic
    Antworten: 5
    Letzter Beitrag: 24.03.2007, 15:12
  4. Fehler in den internen Datenstrukturen...
    Von charlie im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 05.07.2006, 20:23
  5. Antworten: 0
    Letzter Beitrag: 04.10.2005, 20:53

Lesezeichen

Berechtigungen

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