F_iecLookupTableEntry

F_iecLookupTableEntry 1:

The function F_iecLookupTableEntry checks whether a table entry matching the key already exists.

Syntax

FUNCTION F_iecLookupTableEntry: UDINT
VAR_INPUT
    key    : ST_IEC870_5_101HashTableKey;
END_VAR
VAR_IN_OUT
    hTable : T_HAODBTable;
ENd_VAR

F_iecLookupTableEntry 2: Inputs

key: Lookup key.

Inputs/outputs

hTable: Application object database handle (hash table handle). The table handle must be initialized once with the function F_iecCreateTableHnd before it can be used.

F_iecLookupTableEntry 3: Return value

Return parameter

Description

0

No error. A table entry matching the key exists.

<> 0

No table entry was found. Error: IEC60870-5-10x error code

Sample in ST

The existence of data points in the application database is checked. The associated data points have already been configured as hash table entries. See function description: F_iecAddTableEntry.

eType

objAddr

asduAddr

group

M_SP_NA_1

100

11

IEC870_GRP_INRO1

M_SP_TB_1

101

11

IEC870_GRP_INRO1

M_DP_NA_1

200

11

IEC870_GRP_INROGEN

M_IT_NA_1

800

11

IEC870_GRP_REQCOGEN

PROGRAM P_iecLookupTableEntry
VAR_IN_OUT
    hTable  : T_HAODBTable;
END_VAR
VAR
    bLookup : BOOL := TRUE;
    key1    : ST_IEC870_5_101HashTableKey := ( eType := M_SP_NA_1, asduAddr := 11, objAddr := 100, group := IEC870_GRP_INRO1, lookup := IEC870_LOOKUP_KEY_ALL_ON );
    key2 : ST_IEC870_5_101HashTableKey := ( eType := M_SP_TB_1, asduAddr := 11, objAddr := 101, group := IEC870_GRP_INRO1, lookup := IEC870_LOOKUP_KEY_ALL_ON );
    key3 : ST_IEC870_5_101HashTableKey := ( eType := M_DP_NA_1, asduAddr := 11, objAddr := 200, group := IEC870_GRP_INROGEN, lookup := IEC870_LOOKUP_KEY_ALL_ON );
    key4 : ST_IEC870_5_101HashTableKey := ( eType := M_IT_NA_1, asduAddr := 11, objAddr := 800, group := IEC870_GRP_REQCOGEN, lookup := IEC870_LOOKUP_KEY_ALL_ON );
    
    nError  : UDINT;
END_VAR
IF bLookup THEN
    bLookup := FALSE;
    
    IF ( nError := F_iecLookupTableEntry( key := key1, hTable := hTable ) ) <> 0 THEN
        ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG, 'F_iecLookupTableEntry(key1) error: %s', 
                    DWORD_TO_HEXSTR( nError, 8, FALSE) );
    END_IF

    IF ( nError := F_iecLookupTableEntry( key := key2, hTable := hTable ) ) <> 0 THEN
        ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG, 'F_iecLookupTableEntry(key2) error: %s', 
                    DWORD_TO_HEXSTR( nError, 8, FALSE) );
    END_IF
    
    IF ( nError := F_iecLookupTableEntry( key := key3, hTable := hTable ) ) <> 0 THEN
        ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG, 'F_iecLookupTableEntry(key3) error: %s', 
                    DWORD_TO_HEXSTR( nError, 8, FALSE) );
    END_IF

    IF ( nError := F_iecLookupTableEntry( key := key4, hTable := hTable ) ) <> 0 THEN
        ADSLOGSTR( ADSLOG_MSGTYPE_ERROR OR ADSLOG_MSGTYPE_LOG, 'F_iecLookupTableEntry(key4) error: %s', 
                    DWORD_TO_HEXSTR( nError, 8, FALSE) );
    END_IF
END_IF

Requirements

Development environment

Target system type

PLC libraries to be linked (category group)

TwinCAT v3.1.4012.0

PC oder CX (x86, x64, ARM)

Tc2_IEC60870_5_10x (Communication->IEC60870)
Tc2_SerialCom (Communication->Serial)
Tc2_TcpIp (Communication->TcpIp)
Tc2_Utilities (System)