Bitte kein BlockMov oder irgendwas mit AnyPointernmuss auch irgendwie anders gehen.
Hallo,
for i:= 0 TO länge DO
byte := BytePointer;
END_FOR;
so gehts nicht aber irgendwie so was in der art hätte ich gern.
Vielleicht stehe ich gerade auf dem Schlauch, aber habe gerade keine Idee wie es geht. Bitte kein BlockMov oder irgendwas mit AnyPointernmuss auch irgendwie anders gehen.
FUNCTION_BLOCK FB500
// Bausteinparameter
VAR_INPUT
PEW_Adr : POINTER ;
a_PEW_Adr AT PEW_Adr : STRUCT
DB_Nr : INT ;
Mem_Ptr : DWORD ;
END_STRUCT ;
END_VAR
VAR_IN_OUT
END_VAR
VAR_OUTPUT
Mem_Typ : BYTE ;
Mem_Adr : INT ;
END_VAR
VAR_TEMP
Mem_Ptr : DWORD ;
END_VAR
// Anweisungsteil
BEGIN
Mem_Typ := DWORD_TO_BYTE(SHR (IN:=a_PEW_Adr.Mem_Ptr , n:=24)) ;
Mem_Ptr := a_PEW_Adr.Mem_Ptr AND dw#16#00FF_FFFF ;
Mem_Adr := DWORD_TO_INT(SHR (IN:=Mem_Ptr , n:=3)) ;
END_FUNCTION_BLOCK
L DBB [#Pointer]
T DBB xy
@piloti:
Sprechen du und der TE von der gleichen Sache ?
val : POINTER;
val_REF AT val: STRUCT
temp1 : ARRAY[0..28] OF BOOL; //irgendwelche anderen sachen
byteAdr : INT;
bitAdr : ARRAY[0..2] OF BOOL;
END_STRUCT;
ja und wie mache ich aus der Byte Adresse einen Byte Wert der sich hinter der Adresse verbirgt???
myByte := Word_to_Block_DB(int_to_word(DB_Nr)).DB[Mem_Adr] ;
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?