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

Seite 1 von 5 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 49

Thema: Addierer

  1. #1
    Registriert seit
    14.08.2007
    Ort
    FH
    Beiträge
    8
    Danke
    3
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo erstmal an alle,

    ich habe vor kurzem mein Praktikum in einer SPS-Abteilung begonnen und
    meine Vorkenntnisse sind eher gering
    Zur Einübung soll ich 2 (32bit) Dualzahlen addieren, aber ohne die vorhandene Add.funktion.
    Die bisherigen Beiträge zur indirekten Adressierung haben mir auch noch nicht die Erleuchtung gebracht (ich hoffe hier auf Hilfe zur Aufgabe).
    Mein vorläufiger Ansatz (für die Schleife):

    Code:
                      // Laden der 
                      beiden Doppelwörter      
    
                      L 32
              loop:   T #Schleifenzähler
                      
                      X L 0.0              //summand1
                      X L 2.0              //summand2
                      X #übertrag
                      = L 4.0              //ergebnis
    
    
    
                      L #schleifenzähler
                      LOOP loop
    
                      //Ergebnis speichern
    Mir gehts jetzt egtl. auch nur um die Schleife und v.a. um die Verarbeitung/
    Verknüpfung des Übertrags (mit ind. Adr.), hab noch keine laufende Lösung?!
    Für Tipps/Hilfen wär ich sehr dankbar
    Gruß _Praktikant_
    Geändert von _Praktikant_ (20.08.2007 um 18:28 Uhr)
    Zitieren Zitieren Addierer  

  2. #2
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    Hi

    Zur Einübung soll ich 2 (32bit) Dualzahlen addieren, aber ohne die vorhandene Add.funktion.
    Würde sagen:

    Wandle eine Zahl in eine Negative Zahl um ( Zahl *-1)

    Subtrahiere dann die Beiden Zahlen.

    Reihenfolge der Subtraktion beachten !


    Zahl = Zahl_1 + Zahl_2

    identisch mit

    Zahl = Zahl_1 - (Zahl_2 *-1)


    Wo ist das Problem.


    Irgenwie DOOF die Aufgabenstellung

    Sollst du Progen oder Grundlagen Mathematik machen
    Karl

  3. #3
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Na prima, da haben sie dir ja gleich ne tolle Aufgabe gestellt, ob die wissen das da mindestens eine Stolperfalle lauert?

    Also deine Schleife ist schon mal im Ansatz richtig.
    Denk daran, daß deine Schleife rückwärts zählt. Wenn du also indirekt
    adressieren willst, mußt du dir noch eine Variable haben die hochläuft.
    Z.Bsp.

    Code:
    L 32
    L #Schleifenzaehler
    -I
    T #Zaehlvar
    Da ist dann natürlich eine echte Addition drin, aber das ist ja hoffentlich nicht verboten.

    Summand_1, Summand_2 und das Ergebnis legst du im Tempbereich des Bausteins hintereinander als DINT an.
    Am Anfang, vor der Schleife werden Summand_1, Summand_2 in diese Temp-Var hineinkopiert. Das Ergebnis auf 0.
    Innerhalb der Schleife kannst du dann wie folgt indirekt zugreifen:

    Code:
          L     P##Summand_1_Temp; //die Adresse von Summand_1_Temp wird geladen
          LAR1  ; 
    
          L     32; 
          L     #Schleifenzaehler; 
          -I    ; 
          +AR1  ; //das bewirkt, daß z.bsp. bei +8, das AR1 um 8 Bit erhöht wird!
    
    //Ergebnisbit berechnen  
          X      [AR1,P#0.0]; //summand1
          X      [AR1,P#4.0]; //summand2
          X     #Uebertrag_Temp; //übertrag
          =      [AR1,P#8.0]; //ergebnis
    Nach der Schleife, das Ergebnis in die Autput-Variable schreiben.

    Ich stell mal bewußt nicht den kompletten FC ein, du sollst ja was lernen.
    Wenn du nicht weiterkommst stelle hier die Fragen, ich helf dir weiter, bis es läuft, danach weißt du hoffentlich auch warum, das läuft.

    Noch ein paar wichtige Links, die solltest du zuerst mal lesen:

    http://www.sps-forum.de/showthread.php?t=8887
    http://de.wikipedia.org/wiki/XOR
    http://de.wikipedia.org/wiki/Dualsys...liche_Addition hier vor allem die Ergebnistabelle, wegen der Berechnung des neuen Übertrags !

    Zu der schicken Siemens-Stolperfalle kommen wir dann auch noch .
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  4. #4
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Zitat Zitat von gravieren Beitrag anzeigen
    Hi

    Würde sagen:

    Wandle eine Zahl in eine Negative Zahl um ( Zahl *-1)

    Subtrahiere dann die Beiden Zahlen.

    Reihenfolge der Subtraktion beachten !


    Zahl = Zahl_1 + Zahl_2

    identisch mit

    Zahl = Zahl_1 - (Zahl_2 *-1)


    Wo ist das Problem.


    Irgenwie DOOF die Aufgabenstellung

    Sollst du Progen oder Grundlagen Mathematik machen
    Ich denk mal, er soll das wirklich binär machen.
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  5. #5
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    Hi Ralle

    Ich denk mal, er soll das wirklich binär machen.
    Warum, ist die Lösung von mir falsch.

    In der Frage stand NIX von Schleifen UND Indirekter Adressierung.


    @Ralle
    Da ist dann natürlich eine echte Addition drin, aber das ist ja hoffentlich nicht verboten.
    Addition ist Addition.

    Verboten

    Will auch mal Recht haben.
    Geändert von gravieren (15.08.2007 um 10:23 Uhr)
    Karl

  6. #6
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    @gravieren
    Deine Lösung ist bestimmt nicht falsch, wird aber wohl das Thema verfehlen.

    Also entweder Note 1 für den einfachsten Weg zur Lösung oder Note 6 für Thema verfehlt.

    Ich denke schon dass der Lösungsansatz von Ralle schon eher an das hin kommt was der Aufgabensteller haben will!

  7. #7
    Registriert seit
    27.05.2004
    Ort
    Thüringen/Berlin
    Beiträge
    12.218
    Danke
    533
    Erhielt 2.696 Danke für 1.948 Beiträge

    Standard

    Zitat Zitat von gravieren Beitrag anzeigen
    Hi Ralle


    Warum, ist die Lösung von mir falsch.

    In der Frage stand NIX von Schleifen UND Indirekter Adressierung.


    @Ralle
    Addition ist Addition.

    Verboten

    Will auch mal Recht haben.
    Gut, gut, hast recht . Falsch hab ich gar nicht behauptet, grins.

    Er sprach von indirekter Adressierung, daher kam ich darauf.
    Man kann das Ganze auch komplett zu Fuß machen, und 32 Mal die XOR-Verknüpfungen etc. hintereinander weg schreiben. Das geht bestimmt sogar in KOP/FUP !
    Gruß
    Ralle

    ... there\'re 10 kinds of people ... those who understand binaries and those who don\'t …
    and the third kinds of people … those who love TIA-Portal

  8. #8
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard

    Hi Steve81


    Zur Einübung soll ich 2 (32bit) Dualzahlen addieren, aber ohne die vorhandene Add.funktion.
    Klare Ansage


    Ich denke schon dass der Lösungsansatz von Ralle schon eher an das hin kommt was der Aufgabensteller haben will!
    Kennt du den Konrad (Aufgabensteller)
    Nebenbei bemerkt.
    Bei meinen Progs (Habe schon einige Dutzend geschrieben (810D,840D)
    gibt es selten Konstrukte mit mehr als 8 Zeilen.

    Habe schon nach 10 Jahren meine Logiken Problemlos noch lesen können.
    (Kann jedoch auch an meinen vielen Kommentaren im Prog liegen)
    (Werde nach KB-Anweisungen bezahlt, und Kommentare zählen auch dazu )
    Karl

  9. #9
    Registriert seit
    30.06.2007
    Ort
    In der Pfalz
    Beiträge
    503
    Danke
    72
    Erhielt 77 Danke für 65 Beiträge

    Standard

    Zitat Zitat von gravieren Beitrag anzeigen
    Kennt du den Konrad (Aufgabensteller)
    Nein kenne ich nicht.
    Deine lösung finde ich ja an sich auch super, da sie die Aufgabenstellung wie wir sie kennen erfüllt und absolut einfach zu verstehen ist.

    @_Praktikant_
    Ich denke du solltest dich noch mal zu den Lösungsansätzen äusern, schließlich kannst du am besten abschätzen was der Aufgabensteller von dir will.

  10. #10
    Registriert seit
    10.05.2005
    Beiträge
    1.996
    Danke
    219
    Erhielt 232 Danke für 204 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi Steve81

    @_Praktikant_
    Ich denke du solltest dich noch mal zu den Lösungsansätzen äusern, schließlich kannst du am besten abschätzen was der Aufgabensteller von dir will.
    Komisch, ich bin bald 20 Jahre Verheiratet und weis NICHT einmal was meine Frau "will"
    Karl

Ähnliche Themen

  1. Addierer
    Von Xorron im Forum Simatic
    Antworten: 2
    Letzter Beitrag: 17.02.2009, 07:33

Lesezeichen

Berechtigungen

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