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

Seite 3 von 5 ErsteErste 12345 LetzteLetzte
Ergebnis 21 bis 30 von 48

Thema: Nie mehr als zwei Ausgänge setzen können.

  1. #21
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Code:
    // ID Zuweissen 
    #Schalter_ID[1] := 101;
    #Schalter_ID[2] := 102;
    #Schalter_ID[3] := 103;
    #Schalter_ID[4] := 104;
    #Schalter_ID[5] := 105;
    
    
    // Schalter_Flanek abspeichern
    #Schalter_zustand[1] := #schalter_1;
    #Schalter_zustand[2] := #schalter_2;
    #Schalter_zustand[3] := #schalter_3;
    #Schalter_zustand[4] := #schalter_4;
    #Schalter_zustand[5] := #schalter_5;
    
    
    // Puffer eintrag abspeichern  
    FOR #i:=1 TO 5 BY 1 DO
      #Schalter_Flanke[#i] := #Schalter_zustand[#i] AND NOT #Schalter_flanke_speicher[#i]  ;
      #Schalter_flanke_speicher[#i] := #Schalter_zustand[#i] ;
      IF #Schalter_Flanke[#i] THEN
    // wird die Schalter_ID zu den ersten freien Ebene hingefügt.
        #Plaziert := FALSE ;
        FOR #j:=1 TO 5 BY 1 DO
          IF #Puffer[#j]=0 AND NOT #Plaziert THEN 
            #Puffer[#j] := #Schalter_ID[#i]  ;
            #Plaziert := TRUE ;
          END_IF ;
        END_FOR ;
      END_IF ;
    END_FOR ;
    
    
    // Puffer eintrag löschen
    FOR #x:=1 TO 5 BY 1 DO  
      #Schalter_Flanke[#x] := NOT #Schalter_zustand[#x] AND #Schalter_flanke_speicher[#x]  ;
      #Schalter_flanke_speicher[#x] := #Schalter_zustand[#x] ;  
      IF #Schalter_zustand[#x]  THEN
    // wird die Schalter_ID in der entsprechenden Zelle gelöscht und die eins höhere Zelle wird dann verschoben in die tiefste Zelle
        #Entfernt := false ;
        FOR #y:=1 TO 5 BY 1 DO
          IF #Puffer[#y] <> 0 AND NOT #Entfernt THEN 
            #Puffer[#y] := #Puffer[#y + 1]  ;
            #Entfernt := TRUE ;
          END_IF ;
        END_FOR ;
      END_IF ;
    END_FOR ;
    
    // reseten
    IF "reset" THEN
    FOR #k := 1 TO 5 BY 1 DO
      #Puffer[#k] := 0;
    END_FOR;
    END_IF;
    Jetzt geht gar nichts mehr
    hoffe du kannst mir weiter helfen

    gruss

  2. #22
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.624
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Aha.
    Du verwendest TIA.
    Dann kann ich nicht so einfach in mein STEP7 v5.5 laden.
    Jesper M. Pedersen

  3. #23
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    das füllen der array geht wieder

  4. #24
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.624
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Ich denke das wenn du damit mehr arbeitest, dann kriegst du es hin.
    Jesper M. Pedersen

  5. #25
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    wie würdest du es machen kannst du mir ein Beispielcode aufzeigen?

  6. #26
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Mein kopf sagt das die werte im array 0 annehmen müssen, aber im praktischen geht es nicht

  7. #27
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.624
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    Ich habe den übergeordnete Funktionalität wörtlich beschrieben.
    Und ich habe den grossanteil von eine Lösung gemacht.
    Das reicht von mir.
    Jesper M. Pedersen

  8. #28
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard

    Ich weiss schon aber deinen Teil hatte ich auch schon. Die Schwierigkeit von dieser Aufgabe ist es wenn man einen schalter deaktiviert dann halt der Wert im Array verschwindet und die restlichen werte im Array um eins verschoben werden, weil ich das noch nie so gemacht habe weiss ich nicht wie ich diesen Teil bewältigen kann. Das füllen der Array nach der Reihe ist es kein Problem weil das schon gemacht habe. Ich habe einmal ein 4 gewinnt programmiert dort ist das selbe gewesen nach der reihenfolge zu füllen. Deswegen hatte ich keine Probleme.

    Mein wesentliches Problem ist halt das entfernen und dem entsprechend zu verschiebe.

    Es tut mir leid das ich dich zu sehr gestresst habe, weil ich ja noch unerfahren bin, bin ich zu euch gekommen.


    Gruss

  9. #29
    Registriert seit
    06.10.2004
    Ort
    Kopenhagen.
    Beiträge
    4.624
    Danke
    377
    Erhielt 801 Danke für 642 Beiträge

    Standard

    In TIA kann man den SCL code in ein Quell-Text Datei exportieren.
    Wenn du diesen Datei hier anhängt kann andere das Program importieren und testen.
    Jesper M. Pedersen

  10. #30
    Registriert seit
    03.09.2013
    Beiträge
    93
    Danke
    1
    Erhielt 1 Danke für 1 Beitrag

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Es geht ja mir nicht um den Code-Verbesserung. Ich will ja nur einen Tipp oder besser einen kleine Spick. Ich arbeite nicht sehr will mit Array und ich finde es ist etwas tolles, deswegen wollte ich mein wissen vertiefen. Deswegen frage ich euch könnt ihr mir nicht einen kleinen Ansatz geben?
    Ich hoffe ich verlange nicht zu viel

    Gruss

Ähnliche Themen

  1. Step 5 Ausgänge setzen/rücksetzen
    Von hoffi im Forum Simatic
    Antworten: 4
    Letzter Beitrag: 07.01.2014, 12:22
  2. Antworten: 5
    Letzter Beitrag: 08.10.2013, 09:47
  3. Ausgänge im EG können nicht angesteuert werden
    Von antares24 im Forum Simatic
    Antworten: 14
    Letzter Beitrag: 07.05.2012, 20:27
  4. Antworten: 5
    Letzter Beitrag: 09.03.2010, 08:20
  5. Antworten: 10
    Letzter Beitrag: 28.04.2008, 22:17

Lesezeichen

Berechtigungen

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