FB_GetSnmp
Der Funktionsblock ermöglicht es, auf SNMPv1 Get-Befehle zu reagieren. 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
VAR_INPUT
bEnable :BOOL;
bReceive :BOOL;
bSendTrap :BOOL;
bSendResponse :BOOL;
sLocalHostIp :STRING(15);
nLocalHostPort :UDINT;
sManagerIP :STRING(15);
sTcIpConnSvrAddr :T_AmsNetId :='';
sObjectID :T_MAXSTRING;
sCommunity :STRING(60);
iGenericTrapNumber :INT;
iSpecificTrapNumber :BYTE;
nVarBindings :USINT := 0;
pArrVarBinding :POINTER TO ARRAY[1..iMAX_TRAPBUF_SIZE] OF ST_SNMP_VariableBinding;
iError :INT;
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.
bReceive: Signalisiert eine eingehende Anfrage.
bSendTrap: Signalisiert einen zu versendenden Trap.
bSendResponse: Signalisiert eine zu versendende Antwort.
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.
nLocalHostPort(optional): Die zu verwendende 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 jede 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.
iSpecificTrapNumber: 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.
iError: Rückgabe von spezifischen SNMP Fehlercodes.
VAR_OUTPUT
bBusy :BOOL;
bError :BOOL;
bEnabled :BOOL;
bReceived :BOOL;
iRecSNMPVersion :INT; (* SNMP Version,sample SNMPv1 = 0 *)
sRecCommunity :STRING(60); (*Community Name *)
iRecPDUType :INT;(* SNMP PDU Type, sample GET = A0 *)
arrRecPDURequestID :ARRAY[0..3] OF BYTE; (* SNMP PDU Request ID *)
iRecPDUError :INT; (*SNMP PDU Error *)
iRecPDUErrorIndex :INT; (* SNMP PDU Error Index*)
sRecObjectID :T_MAXSTRING; (* Object Identifier *)
arrRecObjectID :ARRAY[0..128] OF UDINT;
nErrID :UDINT;
END_VAR
bBusy: Dieser Ausgang wird bei der Aktivierung des Funktionsbausteins gesetzt und bleibt gesetzt, bis eine Rückmeldung erfolgt.
bError: Dieser Ausgang wird, nachdem der bBusy-Ausgang zurückgesetzt wurde, gesetzt, sollte ein Fehler bei der Übertragung des Kommandos erfolgen.
bEnabled: Der Ausgang wird gesetzt, wenn ein Socket geöffnet wird.
bReceived: Der Ausgang wird gesetzt, wenn ein Get Befehl eingegangen ist.
iRecSNMPVersion: Angabe der SNMP Version. SNMPv1 = 0.
sRecCommunity: Angabe des Community Strings.
iRecPDUType: Angabe des PDU Types.
arrRecPDURequestID: Array mit den PDU Request IDs.
iRecPDUError: Ausgabe der PDU ErrorID.
iRecPDUErrorIndex: Ausgabe des Fehler Index.
sRecObjectID: String mit der ObejctID.
arrRecObjectID: Der Ausgang wird gesetzt, wenn ein Socket geöffnet wird.
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 ) |