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

Page 1 of 2 12 LastLast
Results 1 to 10 of 13

Thread: B Bearbeite? Was soll das???

  1. #1
    Anonymous Gast

    Default


    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
    Reply With Quote Reply With Quote Answered: 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
    Join Date
    23.06.2003
    Posts
    81
    Danke
    0
    Erhielt 0 Danke für 0 Beiträge

    Default

    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
    Join Date
    21.07.2003
    Location
    Bangkok / Thailand
    Posts
    104
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Default

    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
    Join Date
    19.06.2003
    Posts
    2,299
    Danke
    85
    Erhielt 274 Danke für 179 Beiträge

    Default

    Quote Originally Posted by 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
    Reply With Quote Reply With Quote Re: B Bearbeite? Was soll das???  

  6. #5
    Join Date
    07.05.2004
    Location
    Campbelltown
    Posts
    2,500
    Danke
    131
    Erhielt 294 Danke für 86 Beiträge

    Default

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

    Gruß pt
    Reply With Quote Reply With Quote Topic Steuerung????????????????  

  7. #6
    Anonymous Gast

    Default

    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???

  8. #7
    Join Date
    19.06.2003
    Posts
    2,299
    Danke
    85
    Erhielt 274 Danke für 179 Beiträge

    Default

    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

    Default

    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
    Join Date
    21.07.2003
    Location
    Bangkok / Thailand
    Posts
    104
    Danke
    24
    Erhielt 7 Danke für 7 Beiträge

    Default

    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

    Default


    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
    Reply With Quote Reply With Quote B Bearbeite  

Similar Threads

  1. Sonstiges LOGO 8 - Bei Stromausfall soll das Display rot leuchten
    By BorKey in forum Simatic
    Replies: 1
    Last Post: 26.05.2016, 14:46
  2. Replies: 48
    Last Post: 08.08.2013, 23:07
  3. CPU 313C-2DP macht nicht das was sie soll.
    By sepp1986 in forum Simatic
    Replies: 2
    Last Post: 26.04.2012, 13:12
  4. Was soll das ?
    By Unregistrierter gast in forum Stammtisch
    Replies: 4
    Last Post: 12.04.2007, 20:18
  5. wie soll das funktionieren?
    By Praktikant ohne Ahnung! in forum Simatic
    Replies: 29
    Last Post: 28.03.2006, 09:31

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •