Quantcast
Channel: SPS-Forum - Automatisierung und Elektrotechnik
Viewing all articles
Browse latest Browse all 46411

Step 7 s7 Anfänger code erweitert aber falsch

$
0
0
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


Viewing all articles
Browse latest Browse all 46411


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>