FB_SEND_TRAP

Der Funktionsblock erlaubt SNMPv1 Traps zu verschicken. Sie können eine variable Anzahl an Variablen Bindings hinzufügen, um sie an einen SNMP Manager via Traps zu verschicken. Folgende Datentypen werden vom Funktionsblock unterstützt: OCTET_STRING, INTEGER32, COUNTER32, GAUGE32, TIMETICKS, OBJECT_ID

Die maximale Paketgröße ist begrenzt auf 2000 Bytes. Wenn mehr Bytes übertragen werden, erhält der Funktionsblock einen Fehler zurück.

Der Funktionsblock FB_SEND_TRAP sollte in jedem Zyklus aufgerufen werden, um ordnungsgemäß zu funktionieren.

VAR_INPUT
    bEnable               :BOOL;
    bExecute              :BOOL;
    sLocalHostIp          :STRING(15);
    sLocalHostPort        :UDINT;
    sManagerIP            :STRING(15);
    sTcIpConnSvrAddr      :T_AmsNetId;
    sObjectID             :T_MAXSTRING;
    sCommunity            :STRING(60);
    iGenericTrapNumber    :INT;
    bySpecificTrapNumber  :BYTE;
    nVarBindings          :USINT;
    pArrVarBinding        :POINTER TO ARRAY[1..iMAX_TRAPBUF_SIZE] OF ST_SNMP_VariableBinding;
END_VAR

bEnable: Mit der steigenden Flanke am Eingang versucht das System einen Socket zu erzeugen. Wenn dieser erstellt wurde, wird bEnabled auf TRUE gesetzt. Der Socket kann mit einer fallende Flanke wieder geschlossen werden.

bExecute: Sendet einen Trap mit einer steigenden Flanke an bExecute. Eine steigende Flanke setzt die Ausgänge nErrID und bError zurück. Es wird ein offener Socket benötigt.

sLocalHostIP: String der die IP-Adresse (v4) des lokalen Host (z.B. '172.33.5.1') beinhaltet. Wenn mehr als ein Netzwerkadapter auf dem Rechner vorhanden sind, erlaubt der Parameter den spezifischen Adapter zu verwenden.

sLocalHostPort(optional): Die Port Nr.

sManagerIP: IP Adresse (IPv4) des SNMP Managers.

sTcIpConnSvrAddr: nicht unterstützt.

sObjectID: Beinhaltet den numerischen Wert der die MIB (Management Information Base)  des Gerätes repräsentiert. Maximale Länge des Strings ist 255. Der gültige Wertebereich für jeden Nummer ist 0...65535 (e.g. '1.3.1.3.2555.3')

sCommunity:  Beinhaltet den SNMP Community String (e.g. public)

iGenericTrapNumber: Die SNMP Generic Trap Nummer definiert in E_SNMP_GenericTrapNumber.

bySpecificTrapNumber: Die SNMP Specific Trap Nummer wird automatisch auf 0 gesetzt, wenn iGenericTrapNumber nicht 0x06(E_SNMP_EnterpriseSpecific) ist. Gültiger Wertebereich ist 1...255.

nVarBindings (optional):  Anzahl der Elemente von pArrVarBinding. Maximum ist iMAX_TRAPBUF_SIZE (definiert in den globalen Variablen).

pArrVarBinding (optional): Pointer auf ein Array des  SNMP_ST_VariableBinding.

VAR_OUTPUT
    bBusy         :BOOL;
    bEnabled      :BOOL;
    bError        :BOOL;
    nErrID        :DINT;
END_VAR

bBusy: Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.

bEnabled: Der Ausgang wird gesetzt, wenn ein Socket geöffnet wird.

bError: Dieser Ausgang wird, nachdem der bBusy-Ausgang zurückgesetzt wurde, gesetzt, sollte ein Fehler bei der Übertragung des Kommandos erfolgen.

nErrID: Liefert bei einem bError-Ausgang die TwinCAT TCP/IP Connection Server errorFehlernummer zurück.

Der Funktionsblock wurde mit folgender Software getestet:

SNMP Trap Watcher  (BTT Software)

Wireshark 1.2.5

iReasoning MIB Browser Personal Edition 7.0

Voraussetzungen

Development environment

Target system type

PLC libraries to be linked

TwinCAT version 2.8.0 or higher

PC or CX (x86)

TcpIp.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib are included automatically )