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

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: s7 Anfänger code erweitert aber falsch

  1. #1
    Registriert seit
    24.07.2016
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    moin allerseits

    Anfänger mal wieder hier.
    Kann mir evtl jemand erklären wieso die Erweiterung des Codes das Ganze dazu bringt das nichts mehr ordentlich funktioniert?

    Kurze Erklärung.
    3 Silos die man anwählen kann
    2 Taster , einer zum Auffüllen einer zum Entleeren
    Resetmöglichkeit
    Das ganze ist noch im aufbau und es fehlen noch einige Funktionen aber das sollte erstmal für das Problem nicht hinderlich sein.

    Verändert habe ich nur den Teil bei Silo 2
    Da habe ich einen Rückwärtszähler mit der Taste 2 einbauen wollen. Mit sprüngen. Also Taster 1 springe zu Vorwärtszählen, Taster 2 springe zu Rückwärts
    Vorher war der Aufbau ( silo 1 silo 2 silo 3) identisch und alles ging wie gewollt.

    Offensichtlich hat es was mit den Sprungpunkten zu tun bzw mit dem zyklischen Ablauf der sich gerade selber beisst...aber ich seh das nicht..
    Code:
    // es darf nur ein Silo angewählt werden
    // sind mehr als eins oder keins angewählt passiert nix
    
          U     "U09SpID".SchulA9T19.Sig    // Anwahl Silo 1
          UN    "U09SpID".SchulA9T20.Sig
          UN    "U09SpID".SchulA9T21.Sig
          =     "U09SeqD".Seq.User.Bit1
          SPB   sil1                        // springe Silo 1
    
          UN    "U09SpID".SchulA9T19.Sig
          U     "U09SpID".SchulA9T20.Sig    // Anwahl Silo 2
          UN    "U09SpID".SchulA9T21.Sig
          =     "U09SeqD".Seq.User.Bit2
          SPB   sil2                        // springe Silo 2
    
          UN    "U09SpID".SchulA9T19.Sig
          UN    "U09SpID".SchulA9T20.Sig
          U     "U09SpID".SchulA9T21.Sig    // Anwahl Silo 3
          =     "U09SeqD".Seq.User.Bit3
          SPB   sil3                        // springe Silo 3
    
    // Silo 1
    sil1: SET   
    // Zähler vorwärts Silo 1
          U     "U09SeqD".Seq.User.Bit1     // nötig da sonst mehrere MW´s mitzählen
          U     "U09SpID".SchulA9T17.Sig
          UN    "U09SeqD".Seq.User.Bit4
          SPBN  e01
    
          L     MW    10
          L     1
          +I    
          T     MW    10
    
    e01:  U     "U09SpID".SchulA9T17.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
          =     "U09SeqD".Seq.User.Bit4
    
    // Silo 2
    sil2: SET   
    // Auswahl vorwärts oder rückwärts zählen
          U     "U09SeqD".Seq.User.Bit2     // nötig da sonst mehrere MW´s mitzählen
          U     "U09SpID".SchulA9T17.Sig    // Taster vorwärtszählen 
          SPB   vzs2                        // springe zu Vorwärtszähler Silo 2
    
          U     "U09SeqD".Seq.User.Bit2     // nötig da sonst mehrere MW´s mitzählen
          U     "U09SpID".SchulA9T18.Sig    // Taster rückwärtszählen
          SPB   rzs2                        // springe zu Rückwärtszähler Silo 2
    
    // Zähler vorwärts Silo 2
    vzs2: UN    "U09SeqD".Seq.User.Bit5
          SPBN  e02
    
          L     MW    20
          L     1
          +I    
          T     MW    20
    
    e02:  U     "U09SpID".SchulA9T17.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
          =     "U09SeqD".Seq.User.Bit5
    
    
    // Zähler rückwärts Silo 2
    rzs2: UN    "U09SeqD".Seq.User.Bit8
          SPBN  e05
    
          L     MW    20
          L     1
          -I    
          T     MW    20
    
    e05:  U     "U09SpID".SchulA9T18.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
          =     "U09SeqD".Seq.User.Bit8
    
    
    
    // Silo 3
    sil3: SET   
    // Zähler vorwärts Silo 3
          U     "U09SeqD".Seq.User.Bit3     // nötig da sonst mehrere MW´s mitzählen
          U     "U09SpID".SchulA9T17.Sig
          UN    "U09SeqD".Seq.User.Bit6
          SPBN  e03
    
          L     MW    30
          L     1
          +I    
          T     MW    30
    
    e03:  U     "U09SpID".SchulA9T17.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
          =     "U09SeqD".Seq.User.Bit6
    
    // reset Silo 1 2 oder 3
          U     "U09SpID".SchulA9T17.Sig    // sig 17 und sig 18 gleichzeitig = reset
          U     "U09SpID".SchulA9T18.Sig
          U     "U09SeqD".Seq.User.Bit1     // Silozuordnung (Silo 1)
          SPB   res1                        //Sprung zu Reset Silo 1
    
          U     "U09SpID".SchulA9T17.Sig    // sig 17 und sig 18 gleichzeitig = reset
          U     "U09SpID".SchulA9T18.Sig
          U     "U09SeqD".Seq.User.Bit2     // Silozuordnung (Silo 2)
          SPB   res2                        // Sprung zu Reset Silo 2
    
          U     "U09SpID".SchulA9T17.Sig    // sig 17 und sig 18 gleichzeitig = reset
          U     "U09SpID".SchulA9T18.Sig
          U     "U09SeqD".Seq.User.Bit3     // Silozuordnung (Silo 3)
          SPB   res3                        // Sprung zu Reset Silo 3
    
          SPA   ende
    // Rücksetzten der jeweiligen Silos auf Stand null
    res1: SET   
          L     0
          T     MW    10
          SPB   ende
    
    res2: SET   
          L     0
          T     MW    20
          SPB   ende
    
    res3: SET   
          L     0
          T     MW    30
          SPB   ende
    
    ende: CLR   
          =     "U09ActD".SchulA9L17.ACo
          =     "U09ActD".SchulA9L18.ACo
          =     "U09ActD".SchulA9L19.ACo
    Zitieren Zitieren s7 Anfänger code erweitert aber falsch  

  2. #2
    Registriert seit
    14.01.2015
    Beiträge
    1.342
    Danke
    368
    Erhielt 226 Danke für 200 Beiträge

    Standard

    Darf man denn erfahren, was genau das Problem ist?

  3. #3
    sRobert ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.07.2016
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    na klar.
    also das sind einige....

    mw 20 ist daueraktiv
    insofern zählt wenn silo 1 angewählt ist silo 2 auch mit
    ist silo 2 angewählt dann zählt der vorwärtszähler rückwärts und vice versa
    noch dazu nicht nur um 1 pro signal sondern dauerhaft solange aktiv

    silo 3 geht noch wie vorher, reset ist dort möglich

    silo 1 geht kein reset mehr

    uvm...

  4. #4
    sRobert ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.07.2016
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    also das eigentliche Ziel war einen Rückwärtszähler per Silo dazuzubasteln der per Taster gesteuert wird. Erreicht habe ich offensichtlich etwas ganz anderes

  5. #5
    Registriert seit
    27.07.2007
    Beiträge
    223
    Danke
    17
    Erhielt 42 Danke für 40 Beiträge

    Standard

    Was mir so auffält ist, dass wenn kein Silo angewählt ist werden die Zähler trotzdem abgearbeitet.

  6. #6
    sRobert ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.07.2016
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    das ist richtig aber nicht alle sondern nur MW 20

  7. #7
    Registriert seit
    30.04.2005
    Beiträge
    904
    Danke
    57
    Erhielt 161 Danke für 147 Beiträge

    Standard

    Ich denke du musst nach jedem Silo auch einen SPA ans Ende machen, sonst werden die anderen Siloteile ja auch bearbeitet
    Krieg ist Gottes Art den Amerikanern Geographie beizubringen

  8. #8
    sRobert ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    24.07.2016
    Beiträge
    13
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    und das ist auch genau das was ich nicht verstehe. MW10 bzw MW 30 wird nur nach Bedarf angesteuert, MW 20 jedoch immer, obwohl der code ja "identisch" ist, also von der Fallunterscheidung mal abgesehen

  9. #9
    Registriert seit
    08.02.2007
    Ort
    A-2320
    Beiträge
    2.251
    Danke
    244
    Erhielt 332 Danke für 303 Beiträge

    Standard

    Also Fehler 1:
    Code:
    sil2: SET   
    // Auswahl vorwärts oder rückwärts zählen
          U     "U09SeqD".Seq.User.Bit2     // nötig da sonst mehrere MW´s mitzählen  NICHT ERFÜLLT
          U     "U09SpID".SchulA9T17.Sig    // Taster vorwärtszählen 
          SPB   vzs2                        // springe zu Vorwärtszähler Silo 2 KEIN SPRUNG
    
          U     "U09SeqD".Seq.User.Bit2     // nötig da sonst mehrere MW´s mitzählen  NICHT ERFÜLLT
          U     "U09SpID".SchulA9T18.Sig    // Taster rückwärtszählen
          SPB   rzs2                        // springe zu Rückwärtszähler Silo 2 KEIN SPRUNG
    
    // Zähler vorwärts Silo 2
    vzs2: UN    "U09SeqD".Seq.User.Bit5
          SPBN  e02
    
          L     MW    20  TROTZDEM BEARBEITET
          L     1
          +I    
          T     MW    20
    
    e02:  U     "U09SpID".SchulA9T17.Sig    // nötig damit er nur eine Operation durchführt, sonst zählt er wie ein Wilder
          =     "U09SeqD".Seq.User.Bit5

  10. #10
    Registriert seit
    27.07.2007
    Beiträge
    223
    Danke
    17
    Erhielt 42 Danke für 40 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zu langsam gewesen.....

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 30.03.2016, 23:04
  2. Antworten: 1
    Letzter Beitrag: 06.08.2013, 19:24
  3. Antworten: 0
    Letzter Beitrag: 18.05.2011, 09:34
  4. SPS mit PC Steuern aber wie, bin Anfänger?
    Von sonic_229 im Forum CODESYS und IEC61131
    Antworten: 12
    Letzter Beitrag: 24.11.2010, 13:53
  5. Antworten: 15
    Letzter Beitrag: 01.03.2005, 22:25

Lesezeichen

Berechtigungen

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