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.
FUNCTIONSNMP_SEND_TRAP_SIMPLE : DINT(*
  ThisfunctioncopiesthemessageintoOID=1.3.6.1.4.1.13576.10.1.40.4.5.10
  andsendenterprisetrap(No. 255)togetherwiththisOID.
  Returns:     1   Success
          -1  Notrapreceiverconfigured(checkinWBM->Snmp)
          -2  SNMPdisabled(checkinWBM->Ports)*)VAR_INPUT
  psUserMsg    :  POINTERTOSTRING(255);  (* String of attached Value *)END_VARVAREND_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?
Funktion:
FUNCTIONSNMP_SEND_TRAP_ADVANCED:DINT(*  ThisfunctionsendsanenterprisespecifictraptogetherwithauserdefinedlistofOIDs.  TheOIDscanbeanyimplementedobject,like:  -'1.3.6.1.2.1.1.6':sysLocation(MIB2);ConfigurableinWBM"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;FirstuserdefinedTrapmessagetext(Havetobeassignedbeforeusing)  -'1.3.6.1.4.1.13576.10.1.100.1.1.3.1':wioPlcDataWriteArea;Firstuserdefinedmemory(Havetobeassignedbeforeusing)  Returns:    1  Success          -1  Notrapreceiverconfigured(checkinWBM->Snmp)          -2  SNMPdisabled(checkinWBM->Ports)          -3  uiOidCountoutofrange          -4  illegalOIDinlist          -5  illegalenterprisetrapnumber*)VAR_INPUT  dwTrap    :  DWORD;                      (*EnterprisetrapNumber;Admissiblerange: 25to255*)  pasOid    :  POINTERTOARRAY[0..14]OFSTRING(80);  (*OIDsofattachedValue*)  uiOidCount  :  UINT;                        (*NumberofattachedOIDs;range0to14*)END_VARVAREND_VAR
Hier wäre ich für ein ausführliches Beispiel ebenfalls sehr sehr dankbar.
Grüße
Sebastian
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
globalfestgelegthabeichfolgendes:
VAR_GLOBAL
  asOIDs : ARRAY [0..14] OF STRING(80);
  diRet : DINT;
  sRet : STRING;
END_VAR
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.
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?
Hier wäre ich für ein ausführliches Beispiel ebenfalls sehr sehr dankbar.
Grüße
Sebastian
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
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