Zottel
Level-3
- Beiträge
- 2.299
- Reaktionspunkte
- 278
-> Hier kostenlos registrieren
Mit readBytes() werden 16 bytes gelesen, beginnend mit MB0.
Es werden also MB0 bis MB15 gelesen.
Die von der SPS gelesenen Bytes werden in einen Puffer geschrieben. Der Puffer wird von daveConnection verwaltet. Nach der Ausführung von readBytes() wird ein interner Zeiger auf das erste gelesene Byte gerichtet.
Dem Testprogramm liegt die (fiktionale) Annahme zugrunde, daß MB0 bis MB15 wie folgt verwendet werden:
MD0 DINT
MD4 DINT
MD8 DINT
MD12 REAL
a = dc.getS32();
holt 4 Bytes aus dem internen Puffer, bringt sie in die richtige Reihenfolge und weist den Wert der Variablen a zu. Die 4 Bytes stammen aus MB0,MB1,MB2 und MB3. Als "Nebenwirkung" steht der besagte Zeiger jetzt auf dem Byte, das aus MB4 gelesen wurde.
b = dc.getS32();
holt 4 Bytes aus dem internen Puffer, bringt sie in die richtige Reihenfolge und weist den Wert der Variablen b zu. Die 4 Bytes stammen aus MB4,MB5,MB6 und MB7. Als "Nebenwirkung" steht der besagte Zeiger jetzt auf dem Byte, das aus MB8 gelesen wurde.
usw.
Nota bene:
Du kannst mehr Bytes aus dem Puffer holen als gelesen wurden oder auch als der Puffer lang ist. Dann erhälst du unsinnige Werte oder einen Absturz wegen Speicher-Schutzverletzung.
Es werden also MB0 bis MB15 gelesen.
Die von der SPS gelesenen Bytes werden in einen Puffer geschrieben. Der Puffer wird von daveConnection verwaltet. Nach der Ausführung von readBytes() wird ein interner Zeiger auf das erste gelesene Byte gerichtet.
Dem Testprogramm liegt die (fiktionale) Annahme zugrunde, daß MB0 bis MB15 wie folgt verwendet werden:
MD0 DINT
MD4 DINT
MD8 DINT
MD12 REAL
a = dc.getS32();
holt 4 Bytes aus dem internen Puffer, bringt sie in die richtige Reihenfolge und weist den Wert der Variablen a zu. Die 4 Bytes stammen aus MB0,MB1,MB2 und MB3. Als "Nebenwirkung" steht der besagte Zeiger jetzt auf dem Byte, das aus MB4 gelesen wurde.
b = dc.getS32();
holt 4 Bytes aus dem internen Puffer, bringt sie in die richtige Reihenfolge und weist den Wert der Variablen b zu. Die 4 Bytes stammen aus MB4,MB5,MB6 und MB7. Als "Nebenwirkung" steht der besagte Zeiger jetzt auf dem Byte, das aus MB8 gelesen wurde.
usw.
Nota bene:
Du kannst mehr Bytes aus dem Puffer holen als gelesen wurden oder auch als der Puffer lang ist. Dann erhälst du unsinnige Werte oder einen Absturz wegen Speicher-Schutzverletzung.