Servicios de comunicación
4.7 SNMP
Abra el OB de ciclo del programa (OB1). Con el siguiente código de programa ejecute dos
instrucciones "WRREC" con el fin de transferir el juego de datos a la respectiva interfaz
PROFINET direccionada de las dos CPU:
//-----------------------------------------
// Start writing SNMP settings
//-----------------------------------------
IF "ActivateSnmp".snmpWrite THEN
IF (NOT "ActivateSnmp".plcLeft.snmpWrDone)
AND (NOT "ActivateSnmp".plcLeft.snmpWrError) THEN
// write SNMP settings for the left PLC
"instWrrec_1"(REQ := "ActivateSnmp".snmpWrite,
ID := "Local1~PROFINET_interface_1",
INDEX := 16#B071,
DONE => "ActivateSnmp".plcLeft.snmpWrDone,
ERROR => "ActivateSnmp".plcLeft.snmpWrError,
STATUS => "ActivateSnmp".plcLeft.snmpWrStatus,
RECORD := "ActivateSnmp".snmpRecord);
END_IF;
IF "ActivateSnmp".plcLeft.snmpWrError THEN
; // add error handling for left plc
END_IF;
IF (NOT "ActivateSnmp".plcRight.snmpWrDone)
AND (NOT "ActivateSnmp".plcRight.snmpWrError) THEN
// write SNMP settings for the right PLC
"instWrrec_2"(REQ := "ActivateSnmp".snmpWrite,
ID := "Local2~PROFINET_interface_1",
INDEX := 16#B071,
DONE => "ActivateSnmp".plcRight.snmpWrDone,
ERROR => "ActivateSnmp".plcRight.snmpWrError,
STATUS =>
"ActivateSnmp".plcRight.snmpWrStatus,
RECORD := "ActivateSnmp".snmpRecord);
END_IF;
IF "ActivateSnmp".plcRight.snmpWrError THEN
; // add error handling for right plc
END_IF;
IF "ActivateSnmp".plcLeft.snmpWrDone
AND "ActivateSnmp".plcRight.snmpWrDone THEN
"ActivateSnmp".snmpWrite := FALSE;
END_IF;
END_IF;
Desactivar SNMP de nuevo
Si los cambios son pequeños, es posible utilizar el código del programa usado anteriormente
para desactivar SNMP. En el programa de usuario, asigne el valor "0" a la variable
"ActivateSnmp".snmpRecord.snmpControl:
"ActivateSnmp".snmpRecord.snmpControl := 0;
En la próxima llamada de las instrucciones "WRREC", se vuelve a desactivar SNMP.
114
Manual de funciones, 11/2022, A5E03735817-AK
Comunicación