XAVIER
Level-1
- Beiträge
- 7
- Reaktionspunkte
- 0
-> Hier kostenlos registrieren
Hallo zusammen.
Ich schreibe gerade einen Baustein in SCL für die Auswertung eines Eingangs der als Pointer an den Baustein übergeben wird. Somit kann ich im Baustein auswerten welcher Eingang anparametriert wurde.
Leider weiß ich nicht wie ich jetzt auch noch den Status "0/1" des Eingangs aus dem Pointer herauslesen kann.
Hier ein Auzug des bisherigen Programmcodes:
Ich schreibe gerade einen Baustein in SCL für die Auswertung eines Eingangs der als Pointer an den Baustein übergeben wird. Somit kann ich im Baustein auswerten welcher Eingang anparametriert wurde.
Leider weiß ich nicht wie ich jetzt auch noch den Status "0/1" des Eingangs aus dem Pointer herauslesen kann.
Hier ein Auzug des bisherigen Programmcodes:
Code:
FUNCTION_BLOCK FB109
TITLE = ''
VERSION : '1.0'
AUTHOR : BSM_MW
VAR_INPUT
i_dwMeldeNr1 { S7_a_type := 'alarm_s'; S7_server := 'alarm_archiv' }: DWORD ; //Meldungsnummer
i_bo1AST : POINTER;
ibo1AST AT i_bo1AST : //Pointer in seine Struktur auflösen.
STRUCT
DBNr: WORD;
Adr: DWORD; //Adresse des Eingangs
END_STRUCT;
END_VAR
VAR
dwBegleitwert1 : DWORD; //Begleitwert einer Meldung
END_VAR
VAR_TEMP
iRetvalue : ARRAY[1..8] OF INT; //Returnvariable
END_VAR
CONST
constID := W#16#EEEE;
constIAdr := DW#16#81000000;
constAAdr := DW#16#82000000;
constMAdr := DW#16#83000000;
END_CONST
//Fehlernummer Berechnen für Textliste
dwBegleitwert1:=DINT_TO_DWORD(DWORD_TO_DINT(ibo1AST.Adr)-DWORD_TO_DINT(constIAdr)+10000);
iretvalue[1] := ALARM_SQ(
SIG := M100.0,
ID := constID,
EV_ID := i_dwMeldeNr1,
SD := dwBegleitwert1);
//Status des Eingangs abfragen ???????????????
IF i_bo1AST THEN //So geht es nicht, da keine boolsche Variable
;
ELSE
;
END_IF;
END_FUNCTION_BLOCK