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

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

Thema: MB auffüllen...

  1. #1
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo,
    ich habe folgendes Problem, für das ich keine Lösung finde:

    Je nach Bedingung soll das Bit0, das Bit1, das Bit2, usw. bis Bit7 mit einer 1 beschrieben werden.

    Das würde mir durch folgenden Code (aufgezeigt bis Bit2) gelingen :

    Code:
          L 1
          UN E 0.0
          SPB M1
          L 2
          UN E 0.1
          SPB M1
          L 4
          UN E 0.2
          SPB M1
          BEA
    M1: T MB 3
    Sind aber z.B. die beiden Bedingungen (UN E0.0 und UN E0.1) erfüllt, so soll das Bit0 und das Bit 1 gesetzt werden - das klappt jedoch mit meinem Code nicht!

    Wie könnte ich das programmieren?

    Vielen Dank!
    Zitieren Zitieren MB auffüllen...  

  2. #2
    Registriert seit
    17.06.2004
    Ort
    Offenau
    Beiträge
    3.745
    Danke
    209
    Erhielt 421 Danke für 338 Beiträge

    Standard

    Warum keine direkte zuweisung???
    Code:
    UN E0.0
    =M3.0
    
    UN E0.1
    =M3.1
    
    usw...
    ---------------------------------------------
    Jochen Kühner
    https://github.com/jogibear9988/DotN...ToolBoxLibrary - Bibliothek zur Kommunikation mit PLCs und zum öffnen von Step 5/7 Projekten

  3. #3
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Jochen,

    ja das ginge natürlich auch.

    Aber ich hätte es gerne mal auf diese Art und Weise versucht - und am Ende dann das MB auf die Bits mit Status "1" abgefragt...

    pinolino

  4. #4
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Wenn das unbedingt nach dem Schema sein muss (warum auch immer), vielleicht so:
    Code:
          L     0
          UN    E      0.0
          SPB   m1
          L     1
          +I    
    m1:   UN    E      0.1
          SPB   m2
          L     2
          +I    
    m2:   UN    E      0.2
          SPB   m3
          L     4
          +I    
    m3:   UN    E      0.3
    .
    .
    .
    .

  5. #5
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Danke Thomas,

    aber hierbei wird doch nichts in ein MB geschrieben, oder?

    Und wenn keine Bedingung erfüllt ist, dann wird doch alles zusammenaddiert?
    Geändert von pinolino (28.05.2010 um 23:59 Uhr)

  6. #6
    Registriert seit
    29.03.2004
    Beiträge
    5.731
    Danke
    143
    Erhielt 1.685 Danke für 1.225 Beiträge

    Standard

    Zitat Zitat von pinolino Beitrag anzeigen
    aber hierbei wird doch nichts in ein MB geschrieben, oder?
    Nein, die Pünktchen musst du durch deinen restlichen Code ergänzen, das Prinzip dürfte doch klar sein wie es weitergeht oder?

  7. #7
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Thomas!

    Hm, na so ganz klar ist es mir nicht - es muss ja irgendwo eine Transferanweisung stehen, damit in das MB (alternativ auch MW) transferiert wird. An welcher Stelle kann das bewerkstelligt werden?

    UND:

    Ist z.B. E0.0 = 0 und E0.1/E0.2 = 1 so würde ja zunächst zu der Sprungmarke m1 gesprungen werden und anschließend nacheinander 0 + 2 + 4 (also 6) geladen werden. Oder sehe ich das falsch?

    Gewünscht wäre für diese Bedingung (E0.0=0) ja eine 1 in Bit 0 von MB3.

    Grüße pinolino

  8. #8
    Registriert seit
    02.08.2007
    Ort
    BW im Ostalbkreis
    Beiträge
    249
    Danke
    32
    Erhielt 27 Danke für 25 Beiträge

    Standard

    Hi,

    ich hab zwar deine Frage glaube ich zumindest nicht 100%ig verstanden... aber ich denke was du suchst geht so...

    Code:
    L     EB     0
    L     B#16#FF
    XOW   
    T     MB     3
    ???

    Gruß

    PhilippL

  9. #9
    pinolino ist offline Erfahrener Benutzer
    Themenstarter
    Registriert seit
    19.10.2007
    Beiträge
    261
    Danke
    1
    Erhielt 0 Danke für 0 Beiträge

    Standard

    Hallo Philipp,

    das wäre ja dann die Auswertung auf Bits mit Status 1, oder?

    Ich suche nach einem Code, um bei E0.0=0 das Bit 0 (eines MB oder MW) mit einer 1 zu belegen, bei E0.1=0 das Bit 1 mit einer 1 zu belegen, bei E0.2=0 das Bit 2 mit einer 1 zu belegen, usw.

    Dies klappt ja mit meinem Code aus dem 1. Thread recht gut - das Problem ist aber:

    Zusätzlich soll auch eine Kombination möglich sein, also z.B. E0.0 und E0.1 = 0, dann soll in Bit 0 und in Bit 1 eine 1 eingetragen werden...

  10. #10
    Registriert seit
    17.07.2009
    Ort
    Am Rande der Ostalb
    Beiträge
    5.478
    Danke
    1.141
    Erhielt 1.238 Danke für 971 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Zitat Zitat von pinolino Beitrag anzeigen
    das wäre ja dann die Auswertung auf Bits mit Status 1, oder?
    Schau dir mal die Wahrheitstabelle von einem XOR an.
    0 XOR 0 = 0
    1 XOR 0 = 1
    0 XOR 1 = 1
    1 XOR 1 = 0

    Die Lösung von Phillip stimmt schon.

    Gruß
    Dieter

    FB_Addon_TelNo{ height:15px !important; white-space: nowrap !important; background-color: #0ff0ff;}

Ähnliche Themen

  1. TargetVisu - Textfeld mit Nullen auffüllen ->GRRRRRRRRRRRR
    Von PLC-Gundel im Forum CODESYS und IEC61131
    Antworten: 2
    Letzter Beitrag: 15.12.2009, 14:05

Lesezeichen

Berechtigungen

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