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

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: Fehler im Programm

  1. #1
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,

    ich habe folgendes Problem:

    Ich benutze eine CPU 318-2 zusammen mit Step 7 V5.4 SP3 und habe folgendes programmiert:

    U A 2.2
    SPBN a
    L 1
    SPA d
    a: U A 2.3
    SPBN b
    L 2
    SPA d
    b: U A 2.4
    SPBN c
    L 3
    SPA d
    c: L 0
    d: T "DB_OP25_Anzeige".Anforderung_Hochdruckpum

    Funktionieren sollte es wie folgt:
    Wenn z.B. A 2.2 = 1 ist soll im DB eine 1 stehen, wenn A 2.3 = 1 eine 2, bei A2.3 eine 3 und wenn keiner der Ausgänge 1 ist soll dort eine 0 stehen. Da die Ausgänge an anderer Stelle verrigelt sind, ist es nicht möglch, daß mehr als einer 1 ist.
    Problem ist folgendes: z.B. A2.2 = 1, CPU lädt 1, springt zu d und transferiert die 1 in den DB. So weit so gut. Wird der Ausgang aber nun wieder 0, bleibt die 1 im DB stehen, weil er nicht nach a springt, sondern weiter die 1 lädt und nach d springt.

    Ich verstehe das nicht. Wahrscheinlich habe ich aber gerade so ein Brett vor dem Kopf und die Sache ist so einfach.

    Die Sprungmarken sind übrigens nur einmal verwandt!

    Wäre super, wenn mir einer da eine Erklärung für geben könnte.
    Geändert von Tompson (29.05.2008 um 10:02 Uhr)
    Zitieren Zitieren Fehler im Programm  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.848
    Danke
    402
    Erhielt 2.430 Danke für 2.025 Beiträge

    Standard

    wenn du es so programmiert hast, wie in deinem Beispiel, dann sollte es auch so funktionieren, wie von dir beschrieben ...

    Code:
    U A 2.2
    SPBN a
    Das Beispiel bewirkt, dass gesprungen wird, wenn der Ausgang NICHT da ist. Ist der Aiusgang da, so wird der Sprúngbefehl nicht ausgeführt ... Aber das ist ja auch das, was du willst ...

    Gruß
    LL

  3. #3
    Registriert seit
    07.09.2007
    Ort
    Kaarst
    Beiträge
    117
    Danke
    19
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Wenn die Ausgänge sowieso verriegelt sind warum machst du nicht einfach ne Abfrage ob alle Ausgänge = 0 und schiebst dann ne "0" in den DB, und dann halt einfach die Schiebe-Funktion um abhängig von dem Status der Ausgänge 1,2 oder 3 in den DB zu laden...

  4. #4
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von IceBear Beitrag anzeigen
    Wenn die Ausgänge sowieso verriegelt sind warum machst du nicht einfach ne Abfrage ob alle Ausgänge = 0 und schiebst dann ne "0" in den DB, und dann halt einfach die Schiebe-Funktion um abhängig von dem Status der Ausgänge 1,2 oder 3 in den DB zu laden...
    haha, schöne idee, hatte ich auch ABER: die 3 stört! wäre das ne vier

    Code:
    *
          L     AB     2
          SRW   2
          L     W#16#7
          UW    
          T     "DB_OP25_Anzeige".Anforderung_Hochdruckpum
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  5. #5
    Registriert seit
    11.10.2006
    Ort
    Verden (Aller)
    Beiträge
    534
    Danke
    31
    Erhielt 58 Danke für 49 Beiträge

    Standard

    So tät's ich machen:

    Code:
    L 1
    U A 2.2
    SPB d
    L 2
    U A 2.3
    SPB d
    L 3
    U A 2.4
    SPB d
    L 0
    d: T "DB_OP25_Anzeige".Anforderung_Hochdruckpum
    "Ein lahmer Drecksplanet ist das, ich habe nicht das geringste Mitleid" (Prostetnik Vogon Jeltz)

  6. #6
    Registriert seit
    07.09.2007
    Ort
    Kaarst
    Beiträge
    117
    Danke
    19
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Zitat Zitat von vierlagig Beitrag anzeigen
    haha, schöne idee, hatte ich auch ABER: die 3 stört! wäre das ne vier

    Code:
    *
          L     AB     2
          SRW   2
          L     W#16#7
          UW    
          T     "DB_OP25_Anzeige".Anforderung_Hochdruckpum
    vier

    [code]*
    UN A 2.2
    UN A 2.3
    UN A 2.4
    L 0
    T DB0815.DW4711
    U A 2.2
    L 1
    T DB0815.DW4711
    U A 2.3
    L 2
    T DB0815.DW4711
    U A 2.4
    L 3
    T DB0815.DW4711

    so hatt ich mir das gedacht...

  7. #7
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von IceBear Beitrag anzeigen
    vier

    Code:
    *
    UN A 2.2
    UN A 2.3
    UN A 2.4
    L 0
    T DB0815.DW4711
    U A 2.2
    L 1
    T DB0815.DW4711
    U A 2.3
    L 2
    T DB0815.DW4711
    U A 2.4
    L 3
    T DB0815.DW4711
    so hatt ich mir das gedacht...
    so wird das nicht funktionieren, die sprünge machen schon sinn ... lade und transferbefehle sind VKE-unabhängig, werden also immer bearbeitet...

    4 weil 1 0 0 (dual) eine 4 ist, 3 wäre 1 1, bei 2 und 1 passt es ja...

    btw: mit [/code] abschließen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  8. #8
    Registriert seit
    07.09.2007
    Ort
    Kaarst
    Beiträge
    117
    Danke
    19
    Erhielt 0 Danke für 0 Beiträge

    Standard

    hmm... Da ich hauptsächlich (auch vom Kunden aus) in KOP programmiere kann man da doch den Transferbefehl VKE-Abhängig machen, habe dies auch schon gemacht und es funzt...

  9. #9
    Registriert seit
    08.08.2007
    Ort
    Dresden
    Beiträge
    9.648
    Danke
    1.059
    Erhielt 2.046 Danke für 1.627 Beiträge

    Standard

    Zitat Zitat von IceBear Beitrag anzeigen
    hmm... Da ich hauptsächlich (auch vom Kunden aus) in KOP programmiere kann man da doch den Transferbefehl VKE-Abhängig machen, habe dies auch schon gemacht und es funzt...
    hast du dir das kop dann mal in awl angeguckt?
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  10. #10
    Registriert seit
    28.05.2008
    Beiträge
    40
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Vielen Dank für Eure Antworten.
    Wenn ich jetzt, wo ich die Lösung des Problems weiß, noch mal darüber nachdenke, hätte ich glaube ich den ganzen Baustein einfügen sollen.

    Also der Baustein besteht aus 3 dieser Netzwerke. Und das Problem liegt darin, daß er das bei der Bildung des VKE´s für den Sprung auch noch die Zeile davor aus dem anderen NW berücksichtigt wird.

    Also habe ich zu Beginn des NW einfach ein CLR eingefügt und jetzt sollte es gehen.

    CLR
    U A 2.2
    SPBN a
    L 1
    SPA d
    usw......

    Gruß Tompson

Ähnliche Themen

  1. kleines SCL Programm - finde Fehler nicht
    Von FrankTheTank im Forum Simatic
    Antworten: 12
    Letzter Beitrag: 25.08.2011, 10:35
  2. S7-300 / Wo ist der Fehler im Programm?
    Von Jan im Forum Programmierstrategien
    Antworten: 4
    Letzter Beitrag: 31.08.2009, 21:30
  3. Fehler in S7-Programm
    Von Earny im Forum Simatic
    Antworten: 20
    Letzter Beitrag: 18.03.2009, 23:18
  4. Antworten: 0
    Letzter Beitrag: 17.08.2006, 22:19
  5. Fehler S5-Programm??
    Von INST im Forum Simatic
    Antworten: 1
    Letzter Beitrag: 16.03.2006, 08:56

Lesezeichen

Berechtigungen

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