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

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

Thema: Temporäre Variablen und bedingte Sprünge.. keine Funktion

  1. #1
    Registriert seit
    07.08.2013
    Ort
    Kiel
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Jungs und Mädels...

    ich habe da ein kleines Problem mit meinen Temp Variablen und bedingten Sprüngen....

    Den AWL Code habe ich leider hier jetzt nicht zur Hand.... aber ich versuch es mal schematisch darzustellen...

    FC53 NW1:

    u M1.0
    FP M 10.0
    = #Temp_schr_Anf

    u M1.1
    FP M10.1
    = #Temp_schr_ende

    o #Temp_schr_anf
    o #Temp_schr_ende
    o
    u(
    l db5.dbw10
    l 10
    ==i
    )
    u(
    ldb5.dbw12
    l 0
    ==i
    )
    Fp M10.2
    = #D_schr

    u #D-schr
    spb aus1
    be

    NW2:
    aus1: nop 0
    . weitere Befehle
    .
    .

    NW3:
    .
    .
    .

    ee01: nop 0

    ----- Ende des Bausteins


    So ungefähr sieht der Quelltext aus. Es sind noch einige andere Abfrage mit enthalten....
    Den bedingten Sprung führt die CPU 315/2DP nicht korekkt aus. Scheinbar ist die Temp Var immer auf null für den SPB.... Jedenfals wenn ich vor dem Sprung mir ein Kontrollmerker setze, um zu sehen ob D_schr überhaupt auf high gegangen ist, sehe ich das der Merker gesetzt wurde....
    Wenn die Temp Var kurzfristig ein High Sig hat, warum wird der SPB nicht ausgeführt?
    Kann mir jemand dazu eine Antwort geben?

    Vielleicht sehe ich auch vor lauter einsen nichts mehr......
    Gruß
    Andreas
    Zitieren Zitieren Temporäre Variablen und bedingte Sprünge.. keine Funktion  

  2. #2
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    das mit temp-var als flanke ist kritisch. du hast mehrere bedingungen für das bilden von d_schr. die müssen alle im selben zyklus erfüllt sein damit d_schr high wird. nimm globale variablen.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  3. #3
    Registriert seit
    30.10.2009
    Ort
    10 km vom Herzen der Natur
    Beiträge
    1.626
    Danke
    120
    Erhielt 340 Danke für 255 Beiträge

    Standard

    Zitat Zitat von volker Beitrag anzeigen
    nimm globale variablen.
    Was soll das in diesem Fall gegenüber TEMP ändern?
    Gruß
    Michael

  4. #4
    Registriert seit
    20.06.2003
    Ort
    Sauerland.NRW.Deutschland
    Beiträge
    4.850
    Danke
    78
    Erhielt 800 Danke für 543 Beiträge

    Standard

    du hast recht. ich habe das mit dem kontrollmerker nicht richtig gelesen.
    .
    mfg Volker .......... .. alles wird gut ..

    =>Meine Homepage .. direkt zum Download

    Meine Definition von TIA: Total Inakzeptable Applikation

  5. #5
    Kapitaen31 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.08.2013
    Ort
    Kiel
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hallo,

    ich habe ja ein Oder zwischen den verschiedenen Abfragen...

    Ich werde gleich nochmal den Quellcode hochladen.... den hatte ich gestern abend nicht mehr im Kopf... Der sieht ein bischen anders aus...

    Ich realisiere damit einen Temperatur schreiber, der zu bestimmten Zeiten die Temperaturen in einen DB speichert. Am Anfang wird alles im DB zu null geschrieben und dann am Anfang und am Ende einmal.... dazwischen wird alle 15min geschrieben...

  6. #6
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    Hallo Kapitän

    Die Flankenmerker sind nur 1 Zyklus lang aktiv, also auf "high". Ich schätze mal, dass das dein Problem ist, warum die Schrittkette nicht weiterschaltet und dein SPB auf "0" ist.

    Du könntest dein #Schritt_Temp_Anf mit Setzen auf "high" halten und im Schritt 2 wieder rücksetzen.

    mfg
    Kapo

  7. #7
    Kapitaen31 ist offline Neuer Benutzer
    Themenstarter
    Registriert seit
    07.08.2013
    Ort
    Kiel
    Beiträge
    17
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo,

    ich habe hier erst mal den Quellcode eingestellt, sowie ich ihn im FC habe.

    Hallo Kapo,

    ja, das war mir schon klar, das die Flanke auch nur genau einen Zyklus high hat. Ich brauche dieses Bit auch nur genau für einen Zyklus, daher hatte ich diese Variante gewählt.... Trotz dem habe ich es nicht verstanden, warum es nicht geht.

    Das komische daran ist, das ich mir hinter dem "=#Schritt_Temp_Anf" schon mal einen Hilfsmerker "u #Schritt_Temp_Anf s M2.0 " gestzt habe, um zu sehen, ob die Var gesetzt wird. Und immer war der Merker gesetzt. Ich habe dann heute morgen halt, die DB´s gesetzt und im Netzwerk drei habe ich dann das Bit wieder zurückgesetzt.

    Vielleicht weiß jemand warum das mit TempVar nicht geht.
    Gruß
    Andi



    Code:
    Netzwerk1:
    
        U     DB20.DBX  101.2
          UN    DB20.DBX  101.4
          FP    M    103.0
          S     DB55.DBX    1.0             // = #D_schr_Anf_0
    
          U     M     86.3
          FP    M    103.1
          S     DB55.DBX    1.1             // = #D_schr_Anf
    
          U     M     86.3
          FN    M    103.2
          S     DB55.DBX    1.2             // =     #D_schr_End
    
          U     DB55.DBX    1.1             // #D_schr_Anf
          O     
          U(    
          L     DB22.DBW   54               
          L     15
          ==I   
          )     
          U(    
          L     DB22.DBW   56
          L     0
          ==I   
          )     
          FP    M    103.3                 
          O     
          U(    
          L     DB22.DBW   54
          L     30
          ==I                               
          )     
          U(    
          L     DB22.DBW   56
          L     0
          ==I   
          )     
          FP    M    103.4
          O     
          U(    
          L     DB22.DBW   54
          L     45
          ==I   
          )     
          U(    
          L     DB22.DBW   56
          L     0
          ==I   
          )     
          FP    M    103.5
          O     
          U     DB55.DBX    1.2             //  #D_schr_End
          =     #D_schr
          UN    #D_schr
          BEB   
    
    
    Netzwerk 2:
      L     MW    82
          T     #Drehzahl
          L     DB20.DBW  102
          T     #Anz_Temp
          S     DB55.DBX    0.3
    
          UN    DB55.DBX    1.0
          SPB   aus2
          AUF   DB    55
          L     P#10.0
          T     #Zeiger
          L     DBLG
          L     10
          -I    
    sch:  T     #Anzahl                     // DB50 alles auf null schreiben
          L     0
          T     DBB [#Zeiger]
          L     #Zeiger
          L     P#1.0
          +D    
          T     #Zeiger
          L     #Anzahl
          LOOP  sch
          L     P#10.0                      // Startstellung im DB 55
          T     DBD    2
          L     P#2426.0
          T     DBD    6
          R     DB55.DBX    1.0
    aus2: AUF   DB    55                    // bei zu wenig Platz im DB 55 beenden
          L     DBD    2
          SRD   3
          L     14
          +I    
          L     DBLG
          >I    
          SPB   ee03
          L     DBD    6
          T     #Zeiger_Zeit
          L     DBD    2
          T     #Zeiger
          L     P#14.0                      // Diff. zwischen 1. Datensatz und Drehzahldatensatz im DB55
          +D    
          T     #Zeiger_Drehz
          L     P#2.0
          T     #Zeiger2
    scl:  T     #Anzahl2
          AUF   DB    40
          L     #Anzahl2
          L     9
          >=I   
          SPB   aus3
          L     DBW [#Zeiger2]
          AUF   DB    55
          T     DBW [#Zeiger]
          L     P#2.0
          L     #Zeiger
          +D    
          T     #Zeiger
          L     P#2.0
          L     #Zeiger2
          +D    
          T     #Zeiger2
    aus3: L     #Anzahl2
          LOOP  scl
          L     #Drehzahl
          T     DBW [#Zeiger_Drehz]
    Geändert von Kapitaen31 (08.08.2013 um 21:39 Uhr)

  8. #8
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard

    sorry...ich wollte dir nicht zu nahe treten.

    Ich habe dein Problem gerade selbst probiert. Ich weiß leider auch nicht warum das nicht geht, werde aber mal recherchieren.
    Wenn du für deinen Flankenmerker eine Lokalvariable benutzt, funktionierts.

    Habe es selber mal bei einer Schrittkette so programmiert gehabt und dadurch hat die Anlage ihren eigenen Kopf entwickelt. Seit dem bin ich mit Lokalvariablen vorsichtiger.

    Code:
    //geht nicht
          U     M    400.0
          FP    M    400.1
          =     #m1
    
    //funktioniert
          U     M    400.0
          =     #m1
    
          U     #m1
          FP    #m2
           =     #m3
    mfg
    Kapo

  9. #9
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.717
    Danke
    443
    Erhielt 918 Danke für 740 Beiträge

    Standard

    Zitat Zitat von kapo666 Beitrag anzeigen
    Code:
    //geht nicht
          U     M    400.0
          FP    M    400.1
          =     #m1


    Also in meiner Simu funktioniert auch das! Wüßte jetzt auch nicht, warum das nicht funktionieren soll.

    Dagegen dürfte die 2. Variante in einem FC (wie von Kapitaen31 verwendet) nicht funktionieren, da Flankenmerker statisch sein müssen. Aber das sind sie mit den Merkern bei Kapitaen31 ja.

  10. #10
    Registriert seit
    23.11.2012
    Ort
    Österreich
    Beiträge
    147
    Danke
    48
    Erhielt 19 Danke für 19 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Wirklich? Auf meiner CPU 315-2 DP/PN funzt es nicht.

    Neu Windows Bitmap Bild.GIF

    Ich habe auch keinen Fehler in seiner Anweisung gesehen und dachte mir ich probiers mal schnell.

Ähnliche Themen

  1. Temporäre Variablen im OB1
    Von BadTaste im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 21.03.2012, 20:26
  2. Antworten: 2
    Letzter Beitrag: 29.11.2011, 07:12
  3. Antworten: 1
    Letzter Beitrag: 19.09.2009, 13:07
  4. Zugriff auf Temporäre Variablen eines FC
    Von Fluffi im Forum Simatic
    Antworten: 9
    Letzter Beitrag: 13.05.2009, 07:52
  5. Temporäre Variablen in einem FB
    Von CanYouHelpMe im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 20.10.2008, 11:24

Lesezeichen

Berechtigungen

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