-> Hier kostenlos registrieren
Hallo,
ich versuche seit geraumer Zeit eine Datenstruktur auf ein Ausgangsbereich zu kopieren.
Leider werden diese Daten nicht auf den Ausgangsbereich geschrieben und ich kann mir nicht recht erklären warum.
Hier mein Code:
Ich habe jetzt nicht den ganzen Code kopiert, deswegen soltle klar sein, das meine outputstorage1 Daten enthält.
Die Ausgänge liegen innerhalb des Prozessabildes.
Was mich sehr wundert ist auch, dass es überhaubt kein Problem ist die Daten zb. per BLKMOV in einen DB zu kopieren aber nicht auf die Ausgänge...
Wäre toll wenn jemand von euch eine Lösung hätte.
Danke im vorraus.
Florian
ich versuche seit geraumer Zeit eine Datenstruktur auf ein Ausgangsbereich zu kopieren.
Leider werden diese Daten nicht auf den Ausgangsbereich geschrieben und ich kann mir nicht recht erklären warum.
Hier mein Code:
Code:
FUNCTION_BLOCK scanner
...
...
...
VAR
outputstorage1 : STRUCT
//Ctrl Bits
plc_o1 : BOOL; // PLC Out 08 ?
plc_o2 : BOOL; // PLC Out 08 ?
plc_o3 : BOOL; // PLC Out 08 ?
plc_o4 : BOOL; // PLC Out 08 ?
dista1 : BOOL; // Distanceconfiguration 1
dista2 : BOOL; // Distanceconfiguration 2
dista3 : BOOL; // Distanceconfiguration 3
dista4 : BOOL; // Distanceconfiguration 4
start : BOOL; // Objecttrigger for the barcodescanner
sidle : BOOL; // Sensor idle
teach1 : BOOL; // Controller Teach-in 1
teach2 : BOOL; // Controller Teach-in 1
extout1 : BOOL; // Status External Output 1 (Fieldbus)
extout2 : BOOL; // Status External Output 2 (Fieldbus)
result1 : BOOL; // Status Result 1 (Barcodescanner)
result2 : BOOL; // Status Result 1 (Barcodescanner)
END_STRUCT ;
outputstorage2 : STRUCT
//Outputbytes (HS)
binout : BYTE; // Binary Outputs
serial : BYTE; // Serial number recieve counter back
transc : BYTE; // Transmitcounter
tlength : WORD; // Total length of protocol
transd1 : BYTE; // TransmitData Byte1
transd2 : BYTE; // TransmitData Byte2
transd3 : BYTE; // TransmitData Byte3
END_STRUCT ;
END_VAR
Var_Temp
// Outputbitmanipulation of the Any-Pointer
outputp : ANY;
outputbits AT outputp : STRUCT
datatype : WORD; // Define ANY DataType eg. 16#1002; to work with bits
repeatf : INT; // Repeatingfactor
source : INT; // Source Area eg. EB 10
pntr : DWORD; // Byte pointer eg 16#8100_0000; for Inputs
END_STRUCT;
BEGIN
// Initialize Outputsbits
outputbits.datatype := 16#1002; //Bytes
outputbits.repeatf := 16#2;
outputbits.pntr := 16#8200_0000; //Inputs
outputbits.source := 16#30;
ret := BLKMOV(SRCBLK := outputstorage1 ,DSTBLK := outputp );
...
...
...
Ich habe jetzt nicht den ganzen Code kopiert, deswegen soltle klar sein, das meine outputstorage1 Daten enthält.
Die Ausgänge liegen innerhalb des Prozessabildes.
Was mich sehr wundert ist auch, dass es überhaubt kein Problem ist die Daten zb. per BLKMOV in einen DB zu kopieren aber nicht auf die Ausgänge...
Wäre toll wenn jemand von euch eine Lösung hätte.
Danke im vorraus.
Florian