Cómo usar SnmpManager para administrar dispositivos/clientes en una red
Agente SNMP ejecutándose en un dispositivo/cliente que admite el protocolo versión v1 o v2c
oEstructura MIB con su OID (identificador del objeto).
oDirecciones IP y de puerto del dispositivo/cliente en las que el agente SNMP se está ejecutando.
oLos distintos nombres de comunidad configurados en el agente SNMP para lectura y escritura.
Cómo configurar un valor nuevo en un OID (ejemplo)
Declaración:
PROGRAM SetRequest
VAR
sNewSysName : STRING[60];
fbSnmpManager : SE_SNMP.FB_SnmpManager;
stRequestInfo : SE_SNMP.ST_RequestInformation;
etRequest : SE_SNMP.ET_SnmpRequest;
etProtocolVersion : SE_SNMP.ET_SnmpProtocolVersion;
xError : BOOL;
xDone : BOOL;
xBusy : BOOL;
xActive : BOOL;
xReady : BOOL;
etResult : SE_SNMP.ET_Result;
sResultMsg : STRING(255);
END_VAR
Implementación:
sNewSysName := 'SchneiderSystem';
stRequestInfo.i_stRequest.pbyValueBuffer := ADR(sNewSysName);
stRequestInfo.i_stRequest.dwNumBytesValue := 60;
stRequestInfo.i_stRequest.sAgentIp := '10.128.154.41';
stRequestInfo.i_stRequest.sOid := '1.3.6.1.2.1.1.5.0'; //SysName
stRequestInfo.i_stRequest.uiAgentSnmpPort := 161;
stRequestInfo.i_stRequest.etValueType := SE_SNMP.ET_SnmpTag.OctetString;
etRequest := SE_SNMP.ET_SnmpRequest.SetRequest;
etProtocolVersion := SE_SNMP.ET_SnmpProtocolVersion.Version2c
fbSnmpManager( i_xEnable := TRUE,
i_xExecute := TRUE,
i_etRequest := etRequest,
i_etVersion := etProtocolVersion
iq_stRequestInfo := stRequestInfo,
q_xActive => xActive,
q_xReady => xReady,
q_xBusy => xBusy,
q_xDone => xDone,
q_xError => xError,
q_etResult => etResult,
q_sResultMsg => sResultMsg
)
Paso |
Acción |
---|---|
1 |
En el parámetro stRequestInfo.i_stRequest, configure la dirección IP (sAgentIp) del dispositivo en el que el agente SNMP se está ejecutando. Por ejemplo, 10.128.154.47. |
2 |
En el parámetro stRequestInfo.i_stRequest, configure el puerto (uiAgentSnmpPort) del agente SNMP. El puerto estándar de SNMP y el puerto predeterminado de la biblioteca es 161. |
3 |
En el parámetro stRequestInfo.i_stRequest, configure el OID (sOid) del valor que desea modificar. Por ejemplo, 1.3.6.1.2.1.1.5.0 (SysName). |
4 |
En el parámetro stRequestInfo.i_stRequest, configure el puntero (pbyValueBuffer) que apunta al valor que desea configurar en el OID (en el caso de un parámetro GetRequest, configure el puntero en el búfer donde se almacena el valor recibido). |
5 |
En el parámetro stRequestInfo.i_stRequest, configure el tipo de valor (etValueType), por ejemplo, OctetString (en el caso de un parámetro GetRequest, este parámetro no se usa). |
6 |
En el parámetro stRequestInfo.i_stRequest, configure el tamaño del valor (dwNumBytesValue), por ejemplo, 60 (en el caso de un parámetro GetRequest, configure el tamaño del búfer de valor). NOTA: Para los tipos de cadena añada un byte adicional para el carácter de final de cadena. |
7 |
En el parámetro ET_SnmpProtocolVersion, configure el tipo de la versión del protocolo SNMP. La versión predeterminada de la biblioteca se configura a Version2c. |
8 |
En el parámetro ET_SnmpRequest, configure el tipo de petición. Por ejemplo, SetRequest. |
9 |
Llame a la función FB_SnmpManager con los ajustes/parámetros/variables anteriores. |