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

Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 20 von 20

Thema: wo liegt meine feller?

  1. #11
    Avatar von waldy
    waldy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2003
    Beiträge
    1.425
    Danke
    297
    Erhielt 104 Danke für 69 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo, zusammen,wie immer - Danke für antwort
    erlich gesagt, bei diesem Forum habe ich viles Info bekommen, als ich die Bücher gelesen habe.
    Weil nicht in jedem Buch steht klares Beschreibung über jedes Funktions.

    Und wie imer habe ich ein paar Frage

    1) " ich denke ins DW0 wird immer DW2 geladen und nicht DW1, oder"-ich habe gedacht oder richtig gesagt jetzt, ich weiss nicht, wie läuft Ablauf in FB

    wenn habe ich geschrieben
    "UN E1.1
    SPB =M001

    dann denke ich, das nur M001 wird ausgefürt, und M002 nicht, weil E1.1 ist "0" und es muss nur nach M001 springen und M002 soll nicht ausgefürt werden.
    könnten Sie bitte erklären, wie läft richtige ablauf .

    2) bei zweiten Beispiel ist nur einmal Transferbefehl ausgefürt wurde. nur die Frage. Diese Beispil pass zum bei nur bei zwei Position, und wenn brauche mehr (z.B. 4 schaltpunkten) - wie muss ich dann machen / realisieren

    gruß waldemar
    Zitieren Zitieren wie immer , eine Frage  

  2. #12
    Registriert seit
    12.09.2003
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Waldy,

    zuerst zu Deiner Frage: "wie läuft Ablauf in FB wenn habe ich geschrieben UN E1.1 SPB =M001"

    Wenn der E1.1 = "0" ist dann wird der FB folgendermassen durchlaufen:
    Code:
    FB1 
    Name hhhhh 
    
    A DB1 
    
    UN E1.1              ; Wenn E1.1 = '0' ist, dann
    SPB =M001            ; springe zur Marke M001
    
    M001:L DW1           ; Lade das DW1
    T DW0                ; Transferiere ins DW0
    BEA                  ; Bausteinende Absolut
    Wenn der E1.1 = "1" ist, dann wird der FB folgendermassen durchlaufen:
    Code:
    FB1 
    Name hhhhh 
    
    A DB1 
    
    UN E1.1              ; Wenn E1.1 = '0' ist, dann
    SPB =M001            ; springe zur Marke M001
    
    U E1.1               ; Wenn E1.1 = '1' ist, dann
    SPB =M002            ; springe zur Marke M002
    
    M002: L DW2          ; Lade das DW2
    T DW0                ; Transferiere ins DW0
    BE                   ; Bausteinende
    Zu Deiner zweiten Frage: "Bei zweiten Beispiel ist nur einmal Transferbefehl ausgefürt wurde. nur die Frage. Diese Beispiel pass zum bei nur bei zwei Position, und wenn brauche mehr (z.B. 4 schaltpunkten) - wie muss ich dann machen / realisieren

    Ganz einfach (Schalter mit 4 Stellungen über E1.1/E1.2)":
    Code:
    Schalterstellung '1'    E1.2 =' 0' + E1.1 = '0'      DB1/DW1
    Schalterstellung '2'    E1.2 =' 0' + E1.1 = '1'      DB1/DW2
    Schalterstellung '3'    E1.2 =' 1' + E1.1 = '0'      DB1/DW3
    Schalterstellung '4'    E1.2 =' 1' + E1.1 = '1'      DB1/DW4
    Code:
    FB1 
    Name hhhhh 
    
    A DB1 
    
    U E1.1              ; Schalterstellung '4' eingestellt ?
    U E1.2
    L DW4               ; Lade DW4
    SPB =M001       
    
    UN E1.1             ; Schalterstellung '3' eingestellt ?
    U  E1.2
    L DW3               ; Lade DW3
    SPB =M001
    
    U  E1.1             ; Schalterstellung '2' eingestellt ?
    UN E1.2
    L DW2               ; Lade DW2
    SPB =M001
    
                        ; Wenn nichts zutrifft ist Schalterstellung '1' eingestellt !
    L DW1               ; Lade DW1
    M001: T DW0         ; Transferiere ins DW0
    BE
    Greetz GonZO

  3. #13
    Avatar von waldy
    waldy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2003
    Beiträge
    1.425
    Danke
    297
    Erhielt 104 Danke für 69 Beiträge

    Standard

    hallo Greetz!
    eigentlich bei Dir mit 4 Schaltpunkten finde ich ganz gut,
    weil ich habe in ganz andere Richtung ausgedacht z.B.

    U E0.0
    SPB=M001

    U E0.1
    SPB=M002

    E E0.2
    SPB=M003

    U E0.3
    SPB=M004


    M001:L DW1
    T DW0
    BEA

    M002:L DW2
    T DW0
    BEA

    M003: L DW3
    T DW0
    BEA

    M004:LDW4
    T DW0
    BE

    wie meinst Du, ist das richtig bei mir vorgestelt diese Programm?

    also, habe heute "BEA" in meine alte rogramm nachgeschrieben und die läuft jetzt richtig, dann habe mit deine optimierente Programm ausprobiert- funktionier ohne Problem!!!

    und wie immer habe noch ein paar Frage:

    1) wenn schreibe ich neue DB in Programmiergerät und da kommt zuerst "0"
    ich wolte es mit Leertaste igninorieren, aber geht nicht, ich solte zuerst z.B. eine null rein schreiben und dann Programme abgespielt, habe dann noch mal rein in DB gekommen, und diese null position war Weg, nur ab1 DW, warum ist es?

    2) noch eine frage, z.B. ich schreibe in programm
    U E1.1
    S M1

    und wenn jetzt schreiben ich z.B.
    U E0.0
    SPA=M001

    die Frage: sind das gleiche Märker oder das ist verschiede Merker mit verschiedene Funktion?

    3) früher habe ich gedacht, wenn schreibe ich in FB:
    U E0.0
    SPB=M001
    U E1.1
    SPB=M002

    M001:L DW1
    M002:L DW2

    also, wenn E0.0 ist 1, dann solte nur Sprung M001 aktivvieren und M002 solte unaktiviert bleiben, tja Falsche gedanke bei mir.
    Kannst du mitte sagen, warum M002 wird ausgeführt, obwohl hat keine Befehl von SPB=M002.

    gruß waldy
    Zitieren Zitieren frage über kleinichkeit  

  4. #14
    Registriert seit
    12.09.2003
    Beiträge
    10
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi Waldy,

    Bravo Du hast es verstanden. An Deinem Programm-Code gibt es nicht's zu korrigieren. Bestenfalls noch optimieren. Aber das kommt mit der Zeit.

    Code:
    U E0.0 
    SPB=M001 
    
    U E0.1 
    SPB=M002 
    
    E E0.2 
    SPB=M003 
    
    U E0.3 
    SPB=M004 
    
    
    M001:L DW1 
    T DW0 
    BEA 
    
    M002:L DW2 
    T DW0 
    BEA 
    
    M003: L DW3 
    T DW0 
    BEA 
    
    M004:LDW4 
    T DW0 
    BE
    Zu Deiner Frage:
    noch eine frage, z.B. ich schreibe in programm
    U E1.1
    S M1
    und wenn jetzt schreiben ich z.B.
    U E0.0
    SPA=M001
    die Frage: sind das gleiche Märker oder das ist verschiede Merker mit verschiedene Funktion?
    Das sind zwei grundverschiedene Funktionen.
    Bei dem einen handelt sich um einen Merker (z.B. M1.0 -> M x.y x Byteadresse y Bit). Dieser dient zur Speicherung eines Signalzustandes.

    Das andere wird Marke oder auch Label (=M001) genannt. Diese wird verwendet bestimmte Adressen im Programmspeicher zu markieren und den Programmcode über Sprungbefehle an diesen Adressen fortzusetzen. Die Marke muss nicht unbedingt M001 heissen. Man kann auch eine beliebige 4-stellige Buchstaben/Zahlen Kombination bilden.

    z.B.
    U E0.0
    SPB =TST1

    U E1.0
    SPB =TST2

    Nachteil ist aber, das beim Auslesen des Programmes aus dem AG Speicher die Buchstaben/Zahlen verloren gehen und durch die altbekannten Marken/Labels M001 M002 etc. ersetzt werden.

    Zu Deiner Frage:
    U E0.0
    SPB=M001
    U E1.1
    SPB=M002

    M001:L DW1
    M002:L DW2

    also, wenn E0.0 ist 1, dann solte nur Sprung M001 aktivvieren und M002 solte unaktiviert bleiben, tja Falsche gedanke bei mir.
    Kannst du mitte sagen, warum M002 wird ausgeführt, obwohl hat keine Befehl von SPB=M002.
    Zum Verständnis sei dazu gesagt, das Lade- und Transferbefehle keinerlei Auswirkungen auf das Verknüpfungsergebnis haben.
    Ich möchte dies in Deinem Beispiel verdeutlichen und dazu den VKE und den AKKU1 mitbetrachten.
    Ich gehe in Deinem Beispiel davon aus das der E0.0 = "1" ist. Im DW1 steht 2005 im DW2 steht 2001.
    Du kannst erkennen das immer DW2 ins DW0 übertragen wird.
    Code:
    Anweisung            VKE       AKKU1
    U E0.0                1        0000 
    SPB=M001              1        0000
    U E1.1 
    SPB=M002 
    
    M001:L DW1            1        2005
    M002:L DW2            1        2001
    T DW0                 1        2001
    Im nächsten Beispiel gehe ich davon aus das der E1.1 = "1" ist.
    In diesem Fall würde das Programm trotz des Fehlers korrekt ablaufen.

    Code:
    Anweisung            VKE       AKKU1
    U E0.0                0        0000 
    SPB=M001              0        0000
    U E1.1                1        0000
    SPB=M002              1        0000
    
    M001:L DW1                              
    M002:L DW2            1        2001
    T DW0                 1        2001
    Ich hoffe ich konnte Deine Fragen soweit es geht beantworten.

    Greetz GonZO

  5. #15
    Avatar von waldy
    waldy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2003
    Beiträge
    1.425
    Danke
    297
    Erhielt 104 Danke für 69 Beiträge

    Standard

    hallo alle zusammen,
    ich möchte vielen Dank sagen an alle, Ihre Antworten hat mir gut geholfen und jetzt es klappt bei mir gut (na ja , bis Profi mir noch zu lange weg machen muss man, aber hauptsache es klappt bei mir)

    gruß waldy
    Zitieren Zitieren es ist geschaft  

  6. #16
    Registriert seit
    19.06.2003
    Beiträge
    2.200
    Danke
    85
    Erhielt 259 Danke für 175 Beiträge

    Standard

    ...Bestenfalls noch optimieren. Aber das kommt mit der Zeit.

    [code]
    L DW 1
    U E0.0
    SPB=M001
    L DW2
    U E0.1
    SPB=M001
    L DW 3
    E E0.2
    SPB=M001
    L DW 4
    U E0.3
    SPB=M001
    BEA

    T DW0
    BE
    [code]
    ist eine Optimierung auf kurzen Code. Die Ausführungszeit ist allerdings für E0.3 (4 x laden) ein bisschen länger als für E0.0 (1 x laden). Für die Praxis ist manchmal auch noch interessant, was passiert wenn mehr als ein Eingang gleichzeitig 1 ist. Hier hat E0.0 Vorrang, wahrscheinlich ohne dass das ausdrücklich gewollt ist

  7. #17
    Avatar von waldy
    waldy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2003
    Beiträge
    1.425
    Danke
    297
    Erhielt 104 Danke für 69 Beiträge

    Standard

    hallo alle zusammen,
    also, wenn habe ich richtig DB gelernt, dann in lätzte vorschlag würde ich kleine korrektur machen,
    z.B.:

    ich denke so muss sein

    L DW 1 L DW 1
    U E0.0 U E0.0
    SPB=M001 SPB=M001
    L DW2 L DW 2
    U E0.1 U E0.1
    SPB=M001 SPB=M001
    L DW 3 L DW 3
    E E0.2 U E0.2
    SPB=M001 SPB=M001
    L DW 4 L DW4
    U E0.3 ich denke, das diese sätze brauchen wir nicht,
    SPB=M001 es wird sowieso geladen
    BEA

    T DW0 M001: T DW0
    BE BE
    [code]

    rechts steht meine vorschlag

    kann sein, dass ich auch ein paar feller habe

    gruß waldy
    Zitieren Zitieren kleine korrektiur  

  8. #18
    Avatar von waldy
    waldy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2003
    Beiträge
    1.425
    Danke
    297
    Erhielt 104 Danke für 69 Beiträge

    Standard

    hallo, da oben habe ich etwas nicht richtig gemacht, deswegen schreibe ich noch mal,
    ich denke so muss Programme nach korrektierung aussehen

    L DW 1
    U E0.0
    SPB=M001
    L DW 2
    U E0.1
    SPB=M001
    L DW 3
    U E0.2
    SPB=M001
    L DW4


    M001: T DW0
    BE




    gruß waldy
    Zitieren Zitieren widerholung  

  9. #19
    Anonymous Gast

    Standard

    Hi waldy
    ich habe lange Zeit mit S5 nicht gearbeitet. aber habe ich in Erinnerung dass
    bei S5 DB1 ist ein Systemdatenbaustein, und nur mit Vorsicht zum Genießen.
    Herby
    Zitieren Zitieren DB1 ???  

  10. #20
    Avatar von waldy
    waldy ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    25.10.2003
    Beiträge
    1.425
    Danke
    297
    Erhielt 104 Danke für 69 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    hallo herby,
    danke für antwort,
    na ja, über mich kann ich noch nicht so viel erzähle, ich begienne nur SPS lernen, und wenn darf ich fragen, wie weit bist du schon gekommen.
    ich interesiere mich noch weiter in S7.
    z.B. ich weiss nicht, wie kann man mit Analogbaugruppe spannung am eingang messen und bearbeiten

    gruß waldy
    Zitieren Zitieren ich mache nur erfahrung  

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 28.09.2011, 16:14
  2. Wo liegt der Unterschied
    Von Techniker1907 im Forum Simatic
    Antworten: 11
    Letzter Beitrag: 23.09.2011, 17:13
  3. Wo liegt mein Denkfehler?
    Von rs-plc-aa im Forum Programmierstrategien
    Antworten: 6
    Letzter Beitrag: 13.11.2009, 11:25
  4. Wo liegt der Unterschied ??..
    Von mega_ohm im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 29.08.2007, 00:31
  5. liegt außerhalb des Anwenderbareiche
    Von bluside im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 04.03.2007, 13:21

Lesezeichen

Berechtigungen

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