Step 7 Eingangswort

Frank2728

Level-1
Beiträge
27
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

nur mal eine kleine Verständnisfrage: Ein "Wort" hat ja 16 bit. Wenn ich nun mehrere Eingangswörter einlesen lassen will, heißt das dann, daß wenn ich z.B. EW20 definiere, dann als nächstes EW22 nehmen muß und dann EW24? Also EW21 und EW23 existieren dann nicht, weil der Platz als Teil von EW20 und EW22 gebraucht wird?
 
Japp das hast du richtig verstanden. Stell dir vor du hast mehrere digitale Eingangskarten mit je 16 digitalen Eingängen. Dann macht das ja unter Umständen Sinn, diese als ganzes Word einzulesen (zB EW20). Aber die letzten 8 Digis von einer und die ersten 8 Digis von der nächsten Karte, ist wohl eher unüblich.
Lange Rede kurzer Sinn: Laden kannst du natürlich auch das EW21 oder so, das ist in meinen Augen aber nicht gerade ein schöner Stil.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
EW21 würde dann eben aus EB21 und EB22 bestehen.
Geht auf jeden Fall, würde es aber auch nicht unbedingt so machen.

Man muss sich einfach nur merken das Siemens da immer Byteweise zählt.
ED20 wäre dann eben EB20 bis EB23
Dann käme ED24 usw...
 
Würde eher sagen, es kommt auf den Anwendungsfalls darauf an.
Wenn die HW'ler bei der Auslegung zB auf EB21 und EB22 alle Sicherungsautomaten / Motorschutzschalter legen, und du zB nur prüfen möchtest ob alle OK sind,
dann könnte es schon Sinn machen hier mal das EW21 zu laden und zu vergleichen ... Geht natürlich auch über EB21 und EB22 ...
 
Hallo,

wie Boxy schon schreibt, kommt es auf den Anwendungsfall an. Z.B. wenn man ein Touch Panel in der Hardware einfügt und es hat 5 Bytes Input.
EB100 Byte 1 = Status
EB101 Byte 2 = Tasten 1-8
EB102 Byte 3 = Tasten 9-16
EB103 Byte 4 = Status irgendwas
EB104 Byte 5 = Status irgendwas

Möchte ich nun alle Tasten ( 16 St. ) auf einmal lesen, muss oder kann ich EW101 laden.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
... Wenn ich nun mehrere Eingangswörter einlesen lassen will, heißt das dann, daß wenn ich z.B. EW20 definiere, dann als nächstes EW22 nehmen muß und dann EW24? Also EW21 und EW23 existieren dann nicht, weil der Platz als Teil von EW20 und EW22 gebraucht wird?
"... existieren dann nicht, weil der Platz als Teil von ... gebraucht wird" kann man so nicht sagen. Die EingangsBytes existieren im ProzessAbbild und sie sind fortlaufend durchnummeriert.
Wenn Du sie in ZweierGruppen (EW) lesen willst oder in ViererGruppen (ED), kannst und darfst Du das natürlich. Und Du musst dabei auch nicht berücksichtigen, ob "mittendrin" die Grenze zwischen der einen und der nächsten EingangsKarte liegt. Inwieweit es sinnvoll ist, mehrere Bytes in einem Rutsch zu adressieren, das liegt in Deinem Ermessen (und im Ermessen der anderen ForumsTeilnehmer hier in der Runde - wobei natürlich jeder wieder seine eigenen Massstäbe und "musts" und "no gos" anlegt ;o).
Du musst Dir nur darüber im Klaren sein, dass
- die Bytes fortlaufend durchnummeriert sind
- die Worte 2 aufeinander folgende Bytes enthalten und Du als WortNr die kleinste in der Gruppe enthaltene ByteNr angibst
- die DoppelWorte 4 aufeinander folgende Bytes enthalten und Du als DoppelWortNr die kleinste in der Gruppe enthaltene ByteNr angibst
- die grösste in der Gruppe enthaltene ByteNr existieren muss (WortNr + 1 bzw. DoppelWortNr + 3 dürfen nicht grösser sein als die maximal zulässige ByteNr).
Die Worte und DoppelWorte beanspruchen keinen zusätzlichen Speicherplatz und nehmen sich nicht gegenseitig etwas weg - sie sind nur unterschiedliche Gruppierungen der ohnehin vorhandenen Bytes.
Dies gilt gleichermassen für die Daten in (Instanz-)DatenBausteinen (DI, DB) unter S7.
BytesWorte.jpg
Dies gilt aber ausdrücklich nicht für die Daten in DatenBausteinen (DB, DX) unter S5, weil hier nämlich die Worte fortlaufend durchnummeriert sind.

Gruss, Heinileini
 
Zuletzt bearbeitet:
Zurück
Oben