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

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

Thema: Wie aus EB0=12 und EB1=4 ... X1=E12.4 machen?

  1. #1
    Registriert seit
    04.10.2008
    Ort
    Dresden
    Beiträge
    13
    Danke
    10
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Leider komme ich mit meinen C++ Kenntnissen im Step7 V5.3 nicht weit und hier habe ich eine Aufgabe bekommen, für die ich keine Hilfe in meinen SPS-Büchern finde.
    Es soll eine Eingangsadresse aus 2 Eingangsbytes ermittelt werden:
    EB0=12 und EB1=4 ... X1=E12.4
    und nochmal:
    EB2=16 und EB3=0 ... X2=E16.0

    Dann sollen diese beiden Eingänge wahlweise durch ein Und, Oder bzw. Exkl.Oder verknüpft werden und das Ergebnis auf Y1 gelegt werden:
    EB4=19 und EB5=7 ... Y1=A19.7

    Wie kann man das lösen?
    Danke und Gruß
    Zitieren Zitieren Wie aus EB0=12 und EB1=4 ... X1=E12.4 machen?  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.716
    Danke
    398
    Erhielt 2.399 Danke für 1.999 Beiträge

    Standard

    Hallo,
    ich verstehe dein Problem nicht so ganz.
    Du liest das Eingangsbyte 12 ein. Aus diesem maskierst du in eine deiner internen Variablen das Bit 2^4 aus. Also etwas so :
    Code:
    Bit := (Eingangsbyte and 2^4)
    In gleicher Weise verfährst du mit dem anderen Bit.
    Zum Setzen des Ausgangs veroderst du das Ausgangsbyte mit dem Wert des zu setzenden Bits.
    Code:
    if Bit then Ausgangsbyte := Ausgangsbyte or 2^7
    Hilft dir das weiter ?

    Gruß
    LL

  3. #3
    Registriert seit
    11.09.2007
    Ort
    Suedwestpfalz
    Beiträge
    917
    Danke
    81
    Erhielt 209 Danke für 192 Beiträge

    Standard

    Auf der SPS würde ich das einfach halten:
    Mach Dir doch für jeden Eingang einen Zeiger und verwende es indirekt.

    Also Byteadresse drei Bits nach links schieben, Bitadresse dazuaddieren, das ganze meinetewegen zwei mal. Oder jeweils neu.

    Dann die E-Bits aufrufen und gut ist es.

    Klingt doch gar nicht so schwer.

    dtsclipper
    Das Grauen lauert in der Zwischenablage !!

  4. Folgender Benutzer sagt Danke zu dtsclipper für den nützlichen Beitrag:

    NW-Trader (05.03.2009)

  5. #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

    Code:
    *
          L     EB     0
          SLD   3
          L     EB     1
          +D    
          LAR1  
          U     E [AR1,P#0.0]
          =     M     10.0
          L     EB     2
          SLD   3
          L     EB     3
          +D    
          LAR1  
          U     E [AR1,P#0.0]
          =     M     10.1
          L     EB     4
          SLD   3
          L     EB     5
          +D    
          LAR1  
          L     EB     6                    //funktionsauswahl
          SPL   noth
          SPA   und
          SPA   oder
          SPA   exod
    noth: SPA   end
    und:  U     M     10.0
          U     M     10.1
          =     A [AR1,P#0.0]
          SPA   end
    oder: U     M     10.0
          O     M     10.1
          =     A [AR1,P#0.0]
          SPA   end
    exod: U     M     10.0
          X     M     10.1
          =     A [AR1,P#0.0]
          SPA   end
    end:  NOP   0
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

  6. Folgender Benutzer sagt Danke zu vierlagig für den nützlichen Beitrag:

    NW-Trader (05.03.2009)

  7. #5
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    War mal wieder einer schneller,

    mein Code ist bei den ersten 14Zeilen genau gleich
    inclusive M10.0 und M10.1... bemerkenswert, oder?

  8. Folgender Benutzer sagt Danke zu jabba für den nützlichen Beitrag:

    NW-Trader (05.03.2009)

  9. #6
    Registriert seit
    22.09.2006
    Ort
    Bodenseeraum
    Beiträge
    1.022
    Danke
    61
    Erhielt 136 Danke für 122 Beiträge

    Beitrag

    Zitat Zitat von jabba Beitrag anzeigen
    War mal wieder einer schneller,

    mein Code ist bei den ersten 14Zeilen genau gleich
    inclusive M10.0 und M10.1... bemerkenswert, oder?
    Nach einer so langen Ausbildung durch 4L für uns alle hier werden wir auch mal gut

    Gruss: Vladi
    ______________________________________
    relax, take it easy

  10. #7
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard

    Ich fand eigentlich den M10.x komisch, ich wollte das eigentlich in eine Tempvariable schreiben, da ich aber nicht wusste was NW-Trader für einen kenntnisstand hat, wollte ich der einfachheit halt nur einen Merker nehmen. Das 4L das dann auch noch mit einem Merker macht , hatte mich dann gewundert.
    Aber sonst geb ich dir voll Recht, die Beispiele haben auch bei mir nach 12 Jahren S7 noch so einiges bewirkt .

  11. #8
    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 jabba Beitrag anzeigen
    Das 4L das dann auch noch mit einem Merker macht , hatte mich dann gewundert.
    wenn du es nur schnell runterschreiben willst, ohne viel zu klicken, ist sone globale variable wesentlich einfacher zu benutzen ... einfach adressieren und gut - da siegte die faulheit ...außerdem sind die bytes, die die bits vorgeben, ja auch global ... natürlich könnte man das in ne kleine funktion packen, aber da kommt der angesprochene kenntnisstand zum tragen

    und die 10er? naja, irgendein bereich muß doch die hure mimen
    [SIGNATUR]
    Ironie setzt Intelligenz beim Empfänger voraus.
    [/SIGNATUR]

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

    Standard

    Ich hätte ja nicht damit gerechnet, daß ihr beide hier mit Merkern anfangt. Und wenn schon, hätte ich jetzt 200-er Merker erwartet, wie in den guten alten S5-Zeiten, aber dafür ist der 4L einfach zu jung.
    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

  13. #10
    Registriert seit
    04.02.2007
    Beiträge
    2.544
    Danke
    167
    Erhielt 731 Danke für 528 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Aber nach 12 Jahren S7 , hab ich mir die 200'er schon lange aus dem Gedächtnis gestrichen.
    Aber damals war es ja wirklich ein Gesetz , alles über 200 ist ein "Schmiermerker", alleine deshalb weil Siemens mit ihren eigenen FB's da ziemlich rumhantiert hatte.

    Und ich muss gestehen , das so manche S5-Krücken noch heute in mir schlummern, weil .."das hab ich immer so gemacht, und funktioniert",
    ist aber nicht für S7 optimiert .

    Naja, aber teils durch das Forum und durch neue Kunden muss ich sagen, das ich in den letzten 2 jahren mehr über die S7 erfahren habe, als in den 10 Jahren davor.

    Deshalb auch wenn ein wenig OT:
    Einen herzlichen Dank an das Forum,
    auch wenn ich manchmal Pickel an den Fingerspitzen kriege beim beantworten von dubiosen Treads. Aber ich bin halt ein "HB-Männchen", und bin immer wieder über die Geduld von einigen erstaunt.

    Deshalb noch mal an alle, DANKE... weiter so.

Ähnliche Themen

  1. Schalter unnützlich machen?
    Von TechnikFreak10 im Forum Simatic
    Antworten: 6
    Letzter Beitrag: 11.03.2010, 15:08
  2. Bus z.B. Profibus steckbar machen?
    Von Anaconda55 im Forum Schaltschrankbau
    Antworten: 10
    Letzter Beitrag: 25.08.2009, 12:32
  3. Wer kann mir das machen ??
    Von Tomi200 im Forum Stammtisch
    Antworten: 11
    Letzter Beitrag: 15.07.2008, 22:01
  4. nun machen`s mal mit die ELAU Dinger...
    Von Tenlegs im Forum CODESYS und IEC61131
    Antworten: 6
    Letzter Beitrag: 12.11.2007, 15:22
  5. Aus 12V 5V machen
    Von Lars123 im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 07.12.2006, 21:29

Lesezeichen

Berechtigungen

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