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

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

Thema: B Bearbeite? Was soll das???

  1. #1
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo Leute!

    Ich sitz hier grad vor dem Zählerprogramm und da wird gleich dreimal dieses komische B aufgeführt. Also die Bücher geben nichts so richtig her oder ich hab schlechte Bücher. Ich kann mir jedenfalls unter indizierter Bearbeitung oder Referenzierung nichts vorstellen. Was macht denn nun der Befehl B???

    Teile aus dem Programm... ist ein FB

    ;
    NAME: ZW-ERF
    BEZ : DBZW B
    BEZ : DWNR DKF
    BEZ : Z-EI EBI
    BEZ : HIBI EBI

    UN =Z-EI
    S =HIBI

    U =HIBI
    U =Z-EI
    SPB =M001
    BEA

    M001: RB =HIBI
    B =DBZW
    LW =DWNR
    T MW 200
    B MW 200
    L DW 0
    L KF +1
    +F
    B MW 200
    T DW 0
    BE

    Wie das ding jetzt zählt kann ich mir denken, aber das B stört mich unwahrscheinlich... was ist denn wenn ichs weglasse???

    Gruß mclear
    Zitieren Zitieren Gelöst: B Bearbeite? Was soll das???  

  2. "Das Programm sieht korrekt aus. Bist du sicher, dass dein DB10 mindestens DREI Datenworte (DW0,DW1,DW2) hat? Datenworte werden in der S5 nicht byteweise gezählt.

    Kürzere Version:
    A DB 10
    L DW0
    L Kf0
    <>f
    BEB // bedingt beenden statt Ende überspringen

    // Das A DB 10 must du nicht wiederholen
    L DW1 // wenn du keinen besonderen Grund hast, das übernächste Wort zu nehmen...
    lkf1
    +F
    T DW1"


  3. #2
    Registriert seit
    23.06.2003
    Beiträge
    79
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hi mclear,

    hihi, weglassen ist auch 'ne Idee
    Im günstigsten Fall zählt er einfach nicht, im ungünstigeren, jedoch wahrscheinlicheren Fall schmiert Deine Maschine ab !

    Spaß beiseite, es gibt 2 Varianten vom B - Befehl

    1. B =(Bezeichnername), hier also B =DBZW

    Es wird derjenige Datenbaustein geöffnet, der beim Aufruf des FB's am Bezeichner DBZW angegeben wurde.

    2. die zweite Variante verbindet den B-Befehl mit dem Befehl in der folgenden Zeile.

    also:

    B MW200
    L DW0

    bedeutet: es wird mit dem L-Befehl dasjenige Datenwort in den AKKU geladen, dessen Nummer im MW200 steht.

    Umgekehrt geht's natürlich auch

    B MW200
    T DW0

    schreibt folglich den AKKU1 in das Datenwort, dessen Nummer im MW200 steht.

    Gruß Jörg

  4. #3
    Registriert seit
    21.07.2003
    Ort
    Bangkok / Thailand
    Beiträge
    98
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Hallo mclear,

    Das "B" steht wie du auch schon gesehen hast für "Bearbeite" und wird für
    die Indirekte Adressierung in S5 gebraucht.

    Code:
    NAME&#58; ZW-ERF 
    BEZ &#58; DBZW B 
    BEZ &#58; DWNR DKF 
    BEZ &#58; Z-EI EBI 
    BEZ &#58; HIBI EBI 
    
    UN =Z-EI 
    S =HIBI 
    
    U =HIBI 
    U =Z-EI 
    SPB =M001 
    BEA 
    
    M001&#58; RB =HIBI 
    B =DBZW   // Öffnet den DatenBaustein der ZählWerte
    LW =DWNR  // Lädt die DatenWortNummeR in Akku 1
    T MW 200  // Schreibt den Inhalt aus Akku 1 in MW 200
    B MW 200  // Bearbeitet die in MW 200 stehende Adresse
    L DW 0    // Lädt den Wert aus DatenWort &#91;MW200&#93; in Akku 1
    L KF +1   // Lädt die Zahl "1" in Akku 1
    +F        // Addiert Akku 1 und Akku 2
    B MW 200  // Bearbeitet MW200 nochmals
    T DW 0    // Schreibt das Resultat der Addition in DatenWort &#91;MW200&#93;
    BE
    Frage: Geht es sich bei diesem Problem immer noch um den Zähler der bei 65535 wieder auf "0" springt ?
    http://www.sps-forum.de/phpBB2/viewtopic.php?t=1159

    Gruss
    Guido

  5. #4
    Registriert seit
    19.06.2003
    Beiträge
    2.203
    Danke
    85
    Erhielt 262 Danke für 178 Beiträge

    Standard

    Zitat Zitat von mclear
    Hallo Leute!

    Ich sitz hier grad vor dem Zählerprogramm und da wird gleich dreimal dieses komische B aufgeführt. Also die Bücher geben nichts so richtig her oder ich hab schlechte Bücher. Ich kann mir jedenfalls unter indizierter Bearbeitung oder Referenzierung nichts vorstellen. Was macht denn nun der Befehl B???
    Er "ersetzt" die angegebene Adresse durch die die in dem Wort hinter B steht:

    Code:
    	L	KF42	// ich habe hier eine Konstante genommen, weil
    				// es einfacher zu erklären ist
    
    	T	MW 200	// MW200 enthält jetzt 42
    	B	MW 200	// bei der nächsten Operation wird der Inhalt von MW 200
    				// als Adresse verwendet
    	L	DW 0	// nämlich hier&#58; statt DW0 wird DW42 benutzt
    	L	KF +1
    	+F
    	B	MW 200
    	T	DW 0	// und hier auch
    	BE
    Zitieren Zitieren Re: B Bearbeite? Was soll das???  

  6. #5
    Registriert seit
    07.05.2004
    Ort
    Campbelltown
    Beiträge
    2.437
    Danke
    131
    Erhielt 282 Danke für 86 Beiträge

    Standard

    Hi,
    gilt das nur für S5? Habe ich noch nie gesehen. Und in der Topicüberschrift steht ja nichts drin .

    Gruß pt
    Zitieren Zitieren Topic Steuerung????????????????  

  7. #6
    Anonymous Gast

    Standard

    Danke für die superschnellen Antworten! Ich bin immernoch an dem Problem mit dem Zähler bei der S5. Also mit dem komischen B verhält es sich ja fast wie mit Zeigern in C. Deshalb war da auch was von Referenz zu lesen. Waren die bei Siemens früher echt schon so schlau? Das hat ja Microsoft bei Visual Basic heute noch nicht hinbekommen...

    Aber jetz nochma zum Zähler... Ich hab mir gedacht ich lade einfach den Zählwert aus dem DB und vergleiche ihn mit 0. Wenn er 0 ist dan sll ein anderes DW um 1 inkrementiert werden. Es ist also fast so wie Guido mir das vorgeschlagen hatte.

    Leider funzt es nicht:

    ;
    A DB 10
    L DW 0
    L KF +0
    !=F
    SPB =M001
    BEA

    M001: A DB 10
    L DW 2
    L KF +1
    +F
    T DW 2

    BE

    CPU geht in STOP und der USTACK sagt der Betriebsschalter wäre angeblich auf STOP geschalten. Den hab ich natürlich nicht auf STOP. Es geht solange bis der Wert erreicht ist wo um eins inkrementiert werden soll, dann wars das. Und ich weiß nicht warum???
    Zitieren Zitieren cool  

  8. #7
    Registriert seit
    19.06.2003
    Beiträge
    2.203
    Danke
    85
    Erhielt 262 Danke für 178 Beiträge

    Standard

    Das Programm sieht korrekt aus. Bist du sicher, dass dein DB10 mindestens DREI Datenworte (DW0,DW1,DW2) hat? Datenworte werden in der S5 nicht byteweise gezählt.

    Kürzere Version:
    A DB 10
    L DW0
    L Kf0
    <>f
    BEB // bedingt beenden statt Ende überspringen

    // Das A DB 10 must du nicht wiederholen
    L DW1 // wenn du keinen besonderen Grund hast, das übernächste Wort zu nehmen...
    lkf1
    +F
    T DW1

  9. #8
    Anonymous Gast

    Standard

    Hmmm, langsam werd ich aber sauer... Eigentlich müsste es so gehen, aber jetzt schreibt er gleich garnichts mehr ins DW. Wahrscheinlich kann er BEB nicht leiden
    Aber mal im ernst, er geht nicht mehr in den STOP, dafür schreibt er aber auch nicht in das Datenwort. Ich hab mir auch übelegt das ja hier noch ein ganz großer Denkfheler drin ist. Wie oft bzw. wie lange führt er denn diese Inkrementieraktion aus? Doch bestimmt so oft und lange wie DW0 0 ist. Und das kann schonmal ne halbe Stunde dauern...
    Vielleicht sollte ich doch diesen FB benutzen und mir ein neues Hilfsbit suchen.

  10. #9
    Registriert seit
    21.07.2003
    Ort
    Bangkok / Thailand
    Beiträge
    98
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Standard

    Hallo mclear,

    hier ein Vorschalg wie du deinen FB ändern kannst
    um den Zähler auf zwei Datenwörter zu erweitern.
    Code:
    NAME&#58; ZW-ERF 
    BEZ &#58; DBZW B 
    BEZ &#58; DWNR DKF 
    BEZ &#58; Z-EI EBI 
    BEZ &#58; HIBI EBI 
    
    UN =Z-EI 
    S =HIBI 
    
    U =HIBI 
    U =Z-EI 
    SPB =M001 
    BEA 
    
    M001&#58; RB =HIBI 
    B =DBZW   // Öffnet den DatenBaustein der ZählWerte 
    LW =DWNR  // Lädt die DatenWortNummeR in Akku 1 
    T MW 200  // Schreibt den Inhalt aus Akku 1 in MW 200
    L KF +1   // Lade Wert "1" in Akku 1
    +F        // Addiere Akku 1 & Akku 2
    T MW 202  // Legt den Neuen Wert in MW202 &#40;Ist also ein Zeiger auf das nächste DW&#41;
    
    B MW 200  // Bearbeitet die in MW 200 stehende Adresse 
    L DW 0    // Lädt den Wert aus DatenWort&#91;MW200&#93; in Akku 1 
    L KF +1   // Lädt die Zahl "1" in Akku 1 
    +F        // Addiert Akku 1 und Akku 2 
    B MW 200  // Bearbeitet MW200 nochmals 
    T DW 0    // Schreibt das Resultat der Addition in DatenWort &#91;MW200&#93; 
    
    B MW 200  // Bearbeitet die in MW 200 stehende Adresse 
    L DW 0    // Lädt den Wert aus DatenWort&#91;MW200&#93; in Akku 1 
    L KF +1000
    <F 
    BEB
    
    L KF +0   // Lädt die Zahl "0" in Akku 1 
    B MW 200  // Bearbeitet MW200
    T DW 0    // Schreibt "0" in DatenWort&#91;MW200&#93; 
    
    B MW 202  // Bearbeitet die in MW 202 stehende Adresse 
    L DW 0    // Lädt den Wert aus DatenWort&#91;MW202&#93; in Akku 1 
    L KF +1   // Lädt die Zahl "1" in Akku 1 
    +F        // Addiert Akku 1 & Akku 2 
    B MW 202  // Bearbeitet MW202 nochmals 
    T DW 0    // Schreibt das Resultat der Addition in DatenWort&#91;MW202&#93;
    BE

    OK ok....ich weiss... das sieht kompliziert aus... ist es auch
    Im Beispiel wird hier das "B" sogar 7X gebraucht, aber so bleibt der FB
    im ursprünglichen Style und dein Zähler ist auf zwei Datenworte aufgeteilt.
    DW 'X' zählt immer von "0" bis "999" und DW 'X+1' zählt die 1000er....
    Du must allerdings darauf achten dass das zweit (neue) Datenwort noch frei ist.

    Gruss
    Guido

  11. #10
    Anonymous Gast

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    @plc_tippser,

    ja, das gilt nur für die S5. Beim Konvertieren von STEP5 auf STEP7 muss man da ein bisschen Handarbeit machen.

    Gruss
    Question_mark
    Zitieren Zitieren B Bearbeite  

Ähnliche Themen

  1. Kiste soll anhalten?
    Von TechnikFreak10 im Forum Simatic
    Antworten: 7
    Letzter Beitrag: 02.05.2010, 08:37
  2. Zähler soll nur bis 11 zählen
    Von Benno1989 im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 12.11.2009, 08:34
  3. S7-300 soll mit SAP reden
    Von peter(R) im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 13.01.2009, 10:22
  4. Was soll das ?
    Von Unregistrierter gast im Forum Stammtisch
    Antworten: 4
    Letzter Beitrag: 12.04.2007, 20:18
  5. wie soll das funktionieren?
    Von Praktikant ohne Ahnung! im Forum Simatic
    Antworten: 29
    Letzter Beitrag: 28.03.2006, 09:31

Lesezeichen

Berechtigungen

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