F_iecLookupTableEntry
Ab der Produktversion: TwinCAT PLC Library IEC60870-5-104 Zentralstation v1.0.0 und höher.
Die Funktion F_iecLookupTableEntry prüft ob ein zum Schlüssel passender Tabelleneintrag bereits vorhanden ist.
FUNCTION F_iecLookupTableEntry: UDINT
VAR_INPUT
key : ST_IEC870_5_101HashTableKey;
END_VAR
VAR_IN_OUT
hTable : T_HAODBTable;
ENd_VAR
key: Lookup-Schlüssel.
hTable: Applikationsobjekt-Datenbankhandle (Hash-Tabellenhandle). Das Tabellenhandle muss vor der Benutzung einmalig mit der Funktion F_iecCreateTableHnd initialisiert werden.
Rückgabeparameter | Beschreibung |
---|---|
0 | Kein Fehler. Es existiert ein zum Schlüssel passender Tabelleneintrag. |
<> 0 | Es wurde kein Tabelleneintrag gefunden. Fehler: IEC60870-5-10x Fehlercode |
Beispiel in ST:
Es wird die Existenz von drei Datenpunkten in der Applikationsdatenbank überprüft. Die gesuchten Datenpunkte sind bereits als Hash-Tabelleneinträge konfiguriert worden. Siehe in der Beschreibung der Funktion: F_iecAddTableEntry.
eType | objAddr | asduAddr | group |
---|---|---|---|
M_SP_NA_1 | 100 | 11 | IEC870_GRP_INRO1 |
M_DP_NA_1 | 200 | 11 | IEC870_GRP_INROGEN |
M_IT_NA_1 | 800 | 11 | IEC870_GRP_REQCOGEN |
PROGRAM P_LookupEntry
VAR_IN_OUT
hTable : T_HAODBTable;
END_VAR
VAR
key : ST_IEC870_5_101HashTableKey;
bLookup : BOOL;
nFound : BYTE;
nError : UDINT;
END_VAR
IF bLookup THEN
bLookup := FALSE;
key.eType := M_SP_NA_1;
key.asduAddr := 11;
key.objAddr := 100;
key.group := IEC870_GRP_INRO1;
key.lookup := IEC870_LOOKUP_KEY_ALL_ON;
nError := F_iecLookupTableEntry( key := key, hTable := hTable );
IF nError <> 0 THEN
RETURN;
ELSE
nFound := nFound + 1;
END_IF
key.eType := M_DP_NA_1;
key.asduAddr := 11;
key.objAddr := 200;
key.group := IEC870_GRP_INROGEN;
key.lookup := IEC870_LOOKUP_KEY_ALL_ON;
nError := F_iecLookupTableEntry( key := key, hTable := hTable );
IF nError <> 0 THEN
RETURN;
ELSE
nFound := nFound + 1;
END_IF
key.eType := M_IT_NA_1;
key.asduAddr := 11;
key.objAddr := 800;
key.group := IEC870_GRP_REQCOGEN;
key.lookup := IEC870_LOOKUP_KEY_ALL_ON;
nError := F_iecLookupTableEntry( key := key, hTable := hTable );
IF nError <> 0 THEN
RETURN;
ELSE
nFound := nFound + 1;
END_IF
END_IF
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
TwinCAT v2.10.0 Build >= 1301 | PC oder CX (x86, ARM) | TcIEC870_5_101.Lib |