Wago 750-841 SNMP Trap mit WagoLibsnmp.lib verschicken

2010-07-13
2010-07-19
  • KBW-Sebastian - 2010-07-13

    Hallo,

    ich will SNMP traps verschicken. Habe die WagoLibSNMP.lib eingebunden. Komme aber mit den Funktionen nicht ganz klar. Könnte mir jemand jeweils ein Beispiel zu den folgenden beiden Funktionen geben? Danke.

    FUNCTION SNMP_SEND_TRAP_SIMPLE : DINT
    (*
       This function copies the message into OID=1.3.6.1.4.1.13576.10.1.40.4.5.10
       and send enterprise trap (No. 255) together with this OID. 
       Returns:       1    Success
                   -1   No trap receiver configured (check in WBM->Snmp)
                   -2   SNMP disabled (check in WBM->Ports)
    *)
    VAR_INPUT
       psUserMsg      :   POINTER TO STRING(255);   (* String of attached Value *)
    END_VAR
    VAR
    END_VAR
    

    Die Zahl welche an die Funktion übergeben wird ist doch ein Pointer zu einem String, welcher die eigentliche Nachricht sein soll oder? Nur wo ist der String und wie definiere ich Ihn?

    1. Funktion:
    FUNCTION SNMP_SEND_TRAP_ADVANCED : DINT
    (*
       This function sends an enterprise specific trap together with a userdefined list of OIDs.
       The OIDs can be any implemented object, like: 
       - '1.3.6.1.2.1.1.6' : sysLocation(MIB2); Configurable in WBM "Physical location"
       - '1.3.6.1.4.1.13576.10.1.10.1' : wioFirmwareindex
       - '1.3.6.1.4.1.13576.10.1.40.4.5.1' : wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) 
       - '1.3.6.1.4.1.13576.10.1.100.1.1.3.1' : wioPlcDataWriteArea; First userdefined memory (Have to be assigned before using)
       Returns:       1    Success
                   -1   No trap receiver configured (check in WBM->Snmp)
                   -2   SNMP disabled (check in WBM->Ports)
                   -3   uiOidCount out of range
                   -4   illegal OID in list
                   -5   illegal enterprise trap number
    *)
    VAR_INPUT
       dwTrap      :   DWORD;                                 (* Enterprise trap Number; Admissible range:  25 to 255 *)
       pasOid       :   POINTER TO ARRAY [0..14] OF STRING(80);   (* OIDs of attached Value *)
       uiOidCount   :    UINT;                                    (* Number of attached OIDs; range 0 to 14 *)
    END_VAR
    VAR
    END_VAR
    

    Hier wäre ich für ein ausführliches Beispiel ebenfalls sehr sehr dankbar.

    Grüße
    Sebastian

     
  • KBW-Sebastian - 2010-07-19

    habe es mittlerweile selbst hinbekommen. habe es wie folgt gemacht:```

    ( Init OID-List )
       asOIDs[0] := '1.3.6.1.2.1.1.6'; ( sysLocation(MIB2); Configurable in WBM "Physical location" )
       asOIDs[1] := '1.3.6.1.4.1.13576.10.1.10.1'; ( wioFirmwareindex )
       asOIDs[2] := '1.3.6.1.4.1.13576.10.1.40.4.5.1'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
       asOIDs[3] := '1.3.6.1.4.1.13576.10.1.40.4.5.2'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
       asOIDs[4] := '1.3.6.1.4.1.13576.10.1.40.4.5.3'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
       asOIDs[5] := '1.3.6.1.4.1.13576.10.1.40.4.5.4'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
       asOIDs[6] := '1.3.6.1.4.1.13576.10.1.40.4.5.5'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
       asOIDs[7] := '1.3.6.1.4.1.13576.10.1.40.4.5.6'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
       asOIDs[8] := '1.3.6.1.4.1.13576.10.1.40.4.5.7'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
       asOIDs[9] := '1.3.6.1.4.1.13576.10.1.40.4.5.8'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
       asOIDs[10] := '1.3.6.1.4.1.13576.10.1.40.4.5.9'; ( wioUserTrapMsg1; First userdefined Trap message text (Have to be assigned before using) )
    IF detect_error_out1 THEN ( Wenn ein Input eine steigende Flanke bekommt wird hier reingesprungen und der dazugehörige Alarm generiert )
       ( Generierung der Trap-Nachricht für positiven Alarm )
       SNMP_SET_USERTRAP_MSG(1, ADR(PLC_NAME));
       SNMP_SET_USERTRAP_MSG(2, ADR(Modultyp));                
       SNMP_SET_USERTRAP_MSG(3, ADR(Modulslot));
       SNMP_SET_USERTRAP_MSG(4, ADR(Inputports));
       SNMP_SET_USERTRAP_MSG(5, ADR(DeviceName));
       SNMP_SET_USERTRAP_MSG(6, ADR(AlarmOn));
       SNMP_SET_USERTRAP_MSG(7, ADR(severity1));
       SNMP_SET_USERTRAP_MSG(8, ADR(AAlarm));
       SNMP_SET_USERTRAP_MSG(9, ADR(THText));
       ( Send Trap )
       diRet := SNMP_SEND_TRAP_ADVANCED(25, ADR(asOIDs), 11);
    CASE diRet OF
       1: ( Success )
          sRet := 'Successful executed';
       -1:   ( ERROR )
          sRet := 'No trap receiver configured (check in WebGUI->Snmp)';
       -2: ( ERROR )
          sRet := 'SNMP disabled (check in WebGUI->Ports)';
       -3: ( ERROR )
          sRet := 'uiOidCount out of range';
       -4: ( ERROR )
          sRet := 'Illegal OID in list';
       -5: ( ERROR )
          sRet := 'Illegal enterprise trap number';
       END_CASE
    END_IF

    global festgelegt habe ich folgendes:
    

    VAR_GLOBAL
       asOIDs : ARRAY [0..14] OF STRING(80);
       diRet : DINT;
       sRet : STRING;
    END_VAR

    ```

     

    Related

    Talk.ru: 1
    Talk.ru: 2
    Talk.ru: 3
    Talk.ru: 5
    Talk.ru: 7
    Talk.ru: 8


Log in to post a comment.