ASi-Master
Level-1
- Beiträge
- 21
- Reaktionspunkte
- 0
OSSD_On := E[Adresse,0] or E[Adresse,1] or E[Adresse,2] or E[Adresse,3] ;
Indizierter Zugriff auf Speicherbereiche der CPU
Die Indizierung muss den folgenden Regeln entsprechen:
- Jeder Index muss dabei ein arithmetischer Ausdruck vom Datentyp INT sein
- Bei einem Zugriff, der vom Datentyp BYTE, WORD oder DWORD ist, müssen Sie genau einen Index verwenden. Der Index wird als Byteadresse interpretiert. Die Zugriffsbreite wird durch das Größen-Präfix festgelegt.
Beispiel
- Bei einem Zugriff, der vom Datentyp BOOL ist, müssen Sie zwei Indizes benutzen. Der erste Index spezifiziert die Byteadresse, der zweite Index die Bitposition innerhalb des Bytes.
MESSWERT := EW[ZAHELER];
AUSMARKE := E[BYTENR, BITNR];
Indizierter Zugriff auf Datenbausteine
Die Indizierung muss den folgenden Regeln entsprechen:
- Bei einem Zugriff, der vom Datentyp BYTE, WORD oder DWORD ist, müssen Sie genau einen Index verwenden. Der Index wird als Byteadresse interpretiert. Die Zugriffsbreite wird durch das Größen-Präfix festgelegt.
- Bei einem Zugriff, der vom Datentyp BOOL ist, müssen Sie zwei Indizes benutzen. Der erste Index spezifiziert die Byteadresse, der zweite Index die Bitposition innerhalb des Bytes.
Beispiel
- Jeder Index muss dabei ein arithmetischer Ausdruck vom Datentyp INT (0 - 32767) sein
STATUS_1 := DB11.DW[ZAEHLER];
STATUS_2 := DB12.DX[WNR, BITNR];
STATUS_1 := Datenbasis1.DW[ZAEHLER];
STATUS_2 := Datenbasis2.DX[WNR, BITNR];
STATUS_1 := WORD_TO_BLOCK_DB(INDEX).DW[ZAEHLER];
SpannungL1 := PED[Startadresse + 0];
#SpannungL1adr := #Startadr + 0;
#SpannungL2adr := #Startadr + 4;
#SpannungL3adr := #Startadr + 8;
#SpannungL1_out := DWORD_TO_REAL(PEEK_DWORD(area := 16#1, dbNumber := 0, byteOffset := #SpannungL1adr));
#SpannungL1_out := DWORD_TO_REAL(PEEK_DWORD(area := 16#1, dbNumber := 0, byteOffset := #SpannungL2adr));
#SpannungL3_out := DWORD_TO_REAL(PEEK_DWORD(area := 16#1, dbNumber := 0, byteOffset := #SpannungL3adr));
#KeyCodeByte1 := #KC_StartAdr + 0;
#KeyCodeByte2 := #KC_StartAdr + 1;
#KeyCodeByte3 := #KC_StartAdr + 2;
#KeyCode[0] := PEEK_BYTE(area := 16#1, dbNumber := 0, byteOffset := #KeyCodeByte1);
#KeyCode[1] := PEEK_BYTE(area := 16#1, dbNumber := 0, byteOffset := #KeyCodeByte2);
#KeyCode[2] := PEEK_BYTE(area := 16#1, dbNumber := 0, byteOffset := #KeyCodeByte3);
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?