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

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

Thema: Word und Byteverarbeitung

  1. #1
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hallo bin neu hier und suche Antworten zum Thema Word und Byteverarbeitung.

    also ich weiss dass 1 wort ......2 Byte oder 16 Bit sind...

    so jetzt mein Problem ....wie verwende ich jetzt das Eingangsbyte....
    Also es gibt ein befehl zb.
    LD EB1
    heisst das jetzt das ich meine 8 sensoren die jetzt Signal haben etwas zuweisen kann?
    kann ich damit in der awl mein Programm verkürzen in dem ich einByte benutze statt mehrere UND -oder Glieder?

    Wäre cool wenn mir das einer erklären kann
    Zitieren Zitieren Word und Byteverarbeitung  

  2. #2
    Registriert seit
    22.03.2007
    Ort
    Detmold (im Lipperland)
    Beiträge
    11.708
    Danke
    398
    Erhielt 2.397 Danke für 1.997 Beiträge

    Standard

    Nein ... zuweisen kannst du da so nichts - wäre auch nicht sinnvoll ...
    Diese Operation wäre interessant, wenn du z.B. ein bestimmtest Bit-Muster abfragen / vergleichen möchtest ...

    Was hast du denn vor / worum geht es dir ?

    Gruß
    Larry

  3. Folgender Benutzer sagt Danke zu Larry Laffer für den nützlichen Beitrag:

    woody (08.05.2015)

  4. #3
    woody ist offline Benutzer
    Themenstarter
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard

    ja also Mach ja den Techniker bei der sgd ....

    Zum Thema SPS klappt das eigentlich ganz gut mit dem programmieren in awl und FUP
    Das verarbeiten von Binären Signalen klappt auch ganz gut sowie Speicherverhalten usw ...


    Das Thema mit der Wortverarbeitung oder Byte ist so schlecht erklärt das man da nichts kapiert. Ich weiss nicht wie man das so verwendet.

    grüsse

  5. #4
    woody ist offline Benutzer
    Themenstarter
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Ich muss nachher in der Firma Künftig Die Umgebung der Step 7 anwenden ...Dort haben wir Simatic 300.

    Ich dachte ich frage mal nach den Profis

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

    Wie Larry schon sagte, du kannst Eingängen natürlich nichts zuweisen.
    Aber du kannst Eingänge natürlich als Byte, Word oder auch Doppelwort abfragen.

    L EB1 lädt dir also die Bit 1.0 bis 1.7 als Byte in den Akku.
    Sind alle 8 Bit True, steht im Akku dann

    2#1111_1111

    Ist Bit 0 ud Bit 1 True steht dort

    2#0000_0011

    Das wäre dann Dezimal eine 3.

    Also könntest du einen Vergleicher haben:

    L EB1
    L 3
    ==I
    = M100.0

    M100.0 wäre nur True, wenn E1.0 und E1.1 True, sowie E1.2-E1.7 False ist.

    Gleiches Ergebnis wäre:

    U E1.0
    U E1.1
    UN E1.2
    UN E1.3
    UN E1.4
    UN E1.5
    UN E1.6
    UN E1.7
    = M100.0

    Aber Achtung:

    U E1.0
    U E1.1
    = M100.0

    liefert ein anderes Ergebnis, denn hier sind die
    E1.2-E1.7 egal, also auch wenn diese True sind, würde M100.0 True werden.

    Bei Ausgängen kann man so auch mehrer Bits gleichzeitig zuweisen.

    L 3
    T AB1

    ergibt:
    A1.0 = True
    A1.1 = True
    A1.2 = False
    A1.3 = False
    A1.4 = False
    A1.5 = False
    A1.6 = False
    A1.7 = False

    Hier ist darauf zu achten, dass, wenn irgendwo vor dieser Anweisung z.B. der A 1.7 True gesetzt wurde, er hier wieder überschrieben wird, mit False!!!
    Also würdest du an der Ausgangsbaugruppe niemals ein True an A1.7 sehen.

    PS: Beachte, bei Word- und DWord-Zugriffen, die Reihenfolge der Bytes, dazu gibt es hier im Forum schon etliche Beiträge.
    Geändert von Ralle (06.05.2015 um 19:43 Uhr) Grund: C&P
    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

  7. Folgender Benutzer sagt Danke zu Ralle für den nützlichen Beitrag:

    woody (08.05.2015)

  8. #6
    woody ist offline Benutzer
    Themenstarter
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard

    Guter Beitrag ralle damit kann ich schon mal was anfangen...

    Der Vergleich von dir dient aber nur für zähl Operationen wegen L3 oder?
    Ich mein der Vergleicht dann später den Eb1 im akku1 mit Akku 2?!

    Wenn ich denn eine signalabfrage mach mit meinen Aktoren so dass alle Zylinder in Grundstellung sind dann hab ich doch ein bitmuster 1111_1111
    Kann ich jetzt den ladebefehl
    LD EB 1
    =M1.0

    Anwenden?

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

    Nein, nicht ganz.

    wenn alle Bits 1 sind:

    L EB1
    L 2#1111_1111
    ==I
    = M100.0

    oder in Hex

    L EB1
    L B#16#FF
    ==I
    = M100.0

    oder in Dez

    L EB1
    L 255
    ==I
    = M100.0

    Alle 3 Vergleiche sind identisch und liefern nur dann M100.0 = True, wenn alle Bits 1 sind.

    Es gibt noch andere Varianten und Befehle zur Wortverarbeitung (wortweise verunden, verodern, schieben, rotieren).
    Auch tricky Varianten, bei denen man dann über Registerflags betimmte Ergebnisse von Operationen ohne einen Vergleicher abfragen kann, aber o.g. Methoden und besonders die verschiedenen Datenformate für ein und die selbe Zahl sollte man zuerst einmal verinnerlichen.

    Du kannst grundsätzlich vergleichen, was immer du willst, wenn du dir über die Formate im Klaren bist.
    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

  10. #8
    Registriert seit
    27.06.2009
    Ort
    am Nordharz
    Beiträge
    3.713
    Danke
    443
    Erhielt 914 Danke für 739 Beiträge

    Standard

    Zitat Zitat von Ralle Beitrag anzeigen
    L 3
    T AB1

    ergibt:
    E1.0 = True
    E1.1 = True
    E1.2 = False
    E1.3 = False
    E1.4 = False
    E1.5 = False
    E1.6 = False
    E1.7 = False

    Hier ist darauf zu achten, dass ...
    ... natürlich nicht die E1.x sondern die A1.x beeinflußt werden.
    Was dem Ralle natürlich vollkommen klar ist (bestimmt nur ein Coppy & Paste-Fehler) und hoffentlich auch der woody bemerkt hat.

  11. Folgende 2 Benutzer sagen Danke zu hucki für den nützlichen Beitrag:

    Ralle (06.05.2015),woody (08.05.2015)

  12. #9
    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 hucki Beitrag anzeigen
    ... natürlich nicht die E1.x sondern die A1.x beeinflußt werden.
    Was dem Ralle natürlich vollkommen klar ist (bestimmt nur ein Coppy & Paste-Fehler) und hoffentlich auch der woody bemerkt hat.
    Klar C&P, ich verbesser das mal!
    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
    woody ist offline Benutzer
    Themenstarter
    Registriert seit
    03.05.2015
    Beiträge
    68
    Danke
    11
    Erhielt 3 Danke für 3 Beiträge

    Standard


    Zuviel Werbung?
    -> Hier kostenlos registrieren
    Hi...
    auf den ersten blick ist es mir nicht aufgefallen...aber nachdem du es gesagt hattest dann ja

    so nochmal eine Kurzfassung....
    zu dem angegebenen Beispiel oben mit den Zylindern....

    LD EB0
    L255 --------> entspricht dem Bitmuster 1111_1111
    ==I
    =M1.0

    Sind alle Eingänge True ist M1.0 auch True.....soweit klar.
    Ist einer der Bits False ist M1.0 auch false ....soweit klar.

    Zum Verständnis sagt mir das jetzt das wenn die Grundstellungsfahrt der Zylinder erfolgt ist dem Merker 1.0 True zugewiesen wird.
    Wenn ein Zylinder zb klemmt oder ähnlich hätte einer der Bits den wert 0 somit false und der Merker 1.0 auch false.
    Da man mit M1.0 weiterarbeiten kann könnte man somit eine Störmeldung ausgeben sobald M1.0 false wird.

    Ist das so zu Verstehen?

    Wenn ich damit richtig liege würde ich gerne wissen was der genau vergleicht ?????
    Also wenn der EB0 geladen wird mit dem muster 255 -----> 1111_1111 beginnt ja die abfrage oder?
    Vergleicht er dann ob das muster tatsächlich anliegt ? dem entsprechend ist M1.0 True / false

    grüsse

Ähnliche Themen

  1. unterschied zw. word und int
    Von prinz1978 im Forum Simatic
    Antworten: 35
    Letzter Beitrag: 20.07.2017, 21:52
  2. Antworten: 3
    Letzter Beitrag: 07.06.2013, 17:37
  3. WinCC Word und DWord
    Von maniac im Forum HMI
    Antworten: 1
    Letzter Beitrag: 12.08.2009, 11:30
  4. VBA und Word zerlegen
    Von Ralle im Forum Hochsprachen - OPC
    Antworten: 2
    Letzter Beitrag: 12.12.2007, 22:00
  5. Unterschied Word und Int
    Von plc_tippser im Forum Simatic
    Antworten: 8
    Letzter Beitrag: 27.07.2004, 17:10

Lesezeichen

Berechtigungen

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