Integrating Siemens PLCs with NMS via OPC Server and SNMP

David Krause13 min read
OPC / OPC UASiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Integrating Siemens PLCs with NMS via OPC Server and SNMP

Network Management Systems (NMS) in IT-centric monitoring environments almost universally expect SNMP as the southbound protocol. Siemens SIMATIC PLCs, however, do not expose a native SNMP agent for process tags, so an OPC server must be inserted as the protocol converter between the S7/PROFINET fieldbus and the NMS. This reference covers the architecture, the SIMATIC NET OPC option, third-party bridges such as KEPServerEX with its SNMP Agent plug-in and Matrikon's OPC SNMP Agent, the SIMATIC IPC hardware targets (notably the IPC227D), and the commissioning steps that produce a stable SNMP-visible tag set.

1. Architecture Overview

The data path has four logical layers:

  1. Field layer – SIMATIC S7-300/400/1200/1500 (or ET 200SP) controllers with PROFINET or classic MPI/PROFIBUS.
  2. Edge layer – SIMATIC IPC (IPC227D, IPC227G, IPC847E or IPC BX-39A) running Windows Embedded or Windows 10 IoT. The OPC server and the SNMP agent co-reside on this box.
  3. Translation layer – OPC DA/UA server (Siemens SIMATIC NET, KEPServerEX or Matrikon) speaking S7, S7-Plus, SEND/RECEIVE, PROFINET IO or OPC UA to the controller.
  4. Northbound layer – SNMP Agent (KEPServerEX SNMP Agent, Matrikon OPC SNMP Agent or SIMATIC NET SNMP plug-in) that publishes tag values as OIDs to the NMS via UDP/161 (poll) and UDP/162 (trap).
S7-1200/1500PROFINET S7-300/400MPI/PROFIBUS SIMATIC IPC227DWindows EmbeddedSIMATIC NET OPCS7 / PROFINET /SEND-RECEIVESNMP Agent(KEPServerEX /Matrikon) NMS / SNMPManager PROFINET / Industrial Ethernet backbone

2. SIMATIC NET OPC Server – Native Siemens Path

The SIMATIC NET OPC server is the native Siemens product line and ships with the SIMATIC NET PC software suite. It provides a single S7- or PROFINET-facing interface on the IPC and exposes data through multiple OPC specifications:

Interface Version Purpose
OPC Data Access (DA) 2.0, 2.05a, 3.0 Read/write of process tags
OPC Alarms & Events (AE) 1.1 Event subscription for state changes
OPC XML DA 1.0 SOAP/HTTP for cross-platform clients
OPC UA 1.0+ (SIMATIC NET V14+) Modern binary transport with security

Underlying S7 transport options for Industrial Ethernet are:

  • S7 communication – Optimised, connection-oriented access to DBs, Merkers, Inputs/Outputs (PUT/GET).
  • Open communication (SEND/RECEIVE) – Datagram-based, used for TSAP-based custom protocols.
  • PROFINET – Real-time IO and supervisory PN-IO controller mode.

SIMATIC NET also embeds an SNMP option in the OPC server. According to the Siemens Industry Online Support documentation, after selecting the OPC server in the configuration tool and opening Properties, the SNMP Protocol tab is exposed with a dedicated Configuration button for defining read communities, trap destinations and the OID space that maps each OPC tag. The behaviour is described in the Siemens support whitepaper "Diagnostics and configuration with SNMP" – the SNMP OPC server can poll any SNMP-capable device on the Industrial Ethernet, including managed switches, and exchange diagnostics with the SIMATIC controllers.

Notice: The SNMP-OPC option from Siemens Building Automation is documented in North America. In Europe the option is generally supplied as part of the SIMATIC NET PC Software DVD and is licensed under a separate article number. Always verify the regional catalog entry under SIMATIC NET OPC Servers for the current order code.

3. KEPServerEX with SNMP Agent Plug-in

When licensing, multi-vendor support or installation footprint are the priority, KEPServerEX from Kepware (now PTC Kepware) is the de-facto third-party choice. It consists of two cooperating components:

  1. Server Core – Connects to SIMATIC S7-300/400/1200/1500 controllers through the Siemens TCP/IP Ethernet driver or the newer Siemens S7 Plus driver, which provides optimised symbol browsing via the TIA Portal export.
  2. SNMP Agent – Plug-in that maps KEPServerEX tag values into an in-process SNMP agent, exposing them on UDP/161 to the NMS and emitting traps on UDP/162.

Key configuration fields in the SNMP Agent plug-in:

Parameter Typical value Notes
Listen Address 0.0.0.0 Bind to all NICs or restrict to PROFINET IP
Read Community public Must match NMS policy
Write Community private Disable if NMS is read-only
SNMP Version v2c (default) / v3 v3 required for authPriv
Trap Destination NMS IP : 162 v2c with community string
Scan Rate 1000 ms Align with NMS polling interval
Tag OID Root 1.3.6.1.4.1.XXXXX Private enterprise OID assigned to the agent

A trial build is available from the Kepware download portal and the help file is bundled with the install. For ~10 process tags per site, a runtime licence is in the lowest price tier, making it attractive for multi-site NMS rollouts.

4. Matrikon OPC SNMP Agent

Matrikon (now part of Honeywell Forge) supplies an OPC to SNMP Agent that performs the same function as the Kepware plug-in. It reads tags from any registered OPC DA 2.0/3.0 server on the same host and re-publishes them via SNMP. The advantage is interoperability: it can attach to SIMATIC NET OPC, KEPServerEX or any third-party OPC DA server, which simplifies mixed estates. The architectural caveat is identical to KEPServerEX – only OID-mapped scalar values are exposed; array and string tags require a custom OID mapping table.

5. SIMATIC IPC Hardware Targets

The IPC is the consolidating edge node. For ~10 tags the smaller form factors are adequate:

Model CPU RAM OS support Notes
SIMATIC IPC227D Intel Atom E620 / E660 1–2 GB DDR2 Windows XP Embedded SP3, WES7 Fanless, 24 V DC
SIMATIC IPC227G Intel Celeron N2800 / N2930 2–8 GB DDR3L Windows 7/10 IoT Replaces 227D, recommended for new builds
SIMATIC IPC BX-39A Intel Core i (6th–8th gen) 4–32 GB DDR4 Windows 10 IoT LTSC / Server Higher tag counts, virtualisation host
SIMATIC IPC847E Xeon E3 / Core i 4–64 GB Server 2016/2019 Rack-mount, plant-floor aggregator
Caution: Windows XP Embedded SP3 reached end-of-life on 12 April 2016 and no longer receives security patches. For new deployments choose IPC227G with Windows 10 IoT Enterprise LTSC 2019/2021, which is supported by SIMATIC NET V16+. The IPC227D is only valid for retrofit and existing installations where the OPC server and KEPServerEX are already validated on that image.

6. Installation Order on the IPC

Field commissioning consistently shows a clean install order is required. The sequence on a Windows Embedded image is:

  1. Update the legacy InstallShield runtime. XP Embedded SP3 ships a pre-WPF version that fails on the OPC server installer; a current InstallShield 2012 R2 (or newer) is a prerequisite for SIMATIC NET V14 and KEPServerEX V6.x.
  2. Install the SIMATIC NET PC software (or skip if using KEPServerEX only).
  3. Install KEPServerEX core. Apply a runtime licence (it is hardware-bound to the IPC MAC).
  4. Install the Siemens TCP/IP Ethernet driver inside KEPServerEX. Add a channel with the PROFINET interface address and create devices for each PLC.
  5. Import the TIA Portal symbol table (XML export) or hand-map the DB addresses (e.g., DB100.DBD0 for a REAL, DB100.DBX4.0 for a BOOL).
  6. Install the SNMP Agent plug-in. Configure listen address, community strings, and trap destination.
  7. Install the OPC Core Components Redistributable (x86/x64) matching the OPC server architecture.
  8. Set Windows services to Automatic (Delayed Start) and configure the firewall to allow UDP/161 inbound (poll) and UDP/162 outbound (trap).

7. S7-1200/1500 Connectivity Requirements

S7-1200/1500 controllers enforce PUT/GET protection and optimised block access. To allow KEPServerEX or SIMATIC NET to read process data:

  1. In TIA Portal, open the PLC Properties → Protection & Security → Connection mechanisms.
  2. Enable Permit access with PUT/GET communication from remote partner.
  3. For data-block access, in the DB properties uncheck Optimised block access for any DB that must be read by an external OPC server (or, preferred, expose the data via the S7 Plus driver which understands optimised blocks and symbol names).
  4. Open the ISO-on-TCP port 102 in the Windows Firewall on the IPC.

For S7-300/400 the steps above are reduced to enabling the S7 connection in NetPro and ensuring the rack/slot pair is correctly entered in the OPC channel configuration (rack 0, slot 2 for S7-300; rack 0, slot 3 for S7-400).

8. SNMP Mapping Details

Each process tag is exposed under a private enterprise OID. A clean OID tree is:

1.3.6.1.4.1.<enterprise>.<siteId>.<plcId>.<tagId>

Example for site 10, PLC 1, tag 3:
1.3.6.1.4.1.99999.10.1.3.0  -- scalar instance

SNMP data types are limited to INTEGER, Counter32/64, Gauge32, OctetString and TimeTicks. Booleans are mapped to INTEGER {0,1}, REAL to INTEGER with implied scaling, and strings to OctetString. Document the conversion in a lookup table attached to the NMS dashboard so that on-call engineers can decode values without re-deriving them.

Trap templates are typically defined in the SNMP Agent plug-in. The trap OID root is the same enterprise number, with a sub-identifier for severity (1=info, 2=warning, 3=critical). KEPServerEX and Matrikon both allow per-tag thresholding to trigger a trap when the value crosses a configured high/low limit.

9. Verification Procedure

After the install, run the following checks before going to site:

  1. From the NMS host, execute snmpwalk -v2c -c public <IPC_IP> 1.3.6.1.4.1.<enterprise> and confirm the expected tag count.
  2. Use snmpget -v2c -c public <IPC_IP> 1.3.6.1.4.1.<enterprise>.10.1.3.0 against a known tag and compare with the value shown in TIA Portal online watch.
  3. Force a value change in the PLC (set/reset a bit) and re-query within one scan interval to verify the SNMP agent is updating.
  4. Configure a test trap destination (e.g., a free SNMP trap receiver on the engineering laptop) and cross the threshold; confirm the trap arrives with the correct varbind list.
  5. Restart the IPC and confirm the KEPServerEX Windows service restarts automatically, the SNMP agent re-binds to UDP/161 and the NMS can poll within 30 s of boot.
Tip: snmpwalk returns the full subtree. Use the OID as the second argument to limit the walk to the site's branch. A scheduled GetBulk request with non-repeaters=0, max-repetitions=25 is the recommended NMS polling pattern for ~10 tags.

10. Troubleshooting Matrix

Symptom Likely cause Remediation
SNMP timeout, no response on UDP/161 Windows Firewall blocking inbound, SNMP Agent not started Add firewall rule for UDP/161, check service status, set to Automatic
Partial OID tree returned Tag not auto-created in plug-in, scalar instance missing Re-scan device, ensure each tag is mapped and active in KEPServerEX quick client
Values stuck at 0 PUT/GET disabled on S7-1200/1500, optimised block, wrong TSAP Enable PUT/GET, de-optimise DB or use S7 Plus driver, verify TSAP 01.01 / 02.01
Trap not received Trap destination unreachable, v3 auth failure Ping NMS, validate auth/priv keys, check UDP/162 outbound rule
IPC boot slow, OPC not ready before NMS first poll Delayed start not configured, services start at parallel Set KEPServerEX + SNMP Agent to Automatic (Delayed Start), increase NMS first-poll timer
OPC server disappears after Windows update DCOM permission reset, OPC Core Components overwritten Reinstall OPC Core Components redistributable, re-apply DCOMCNFG ACLs
CPU saturated on IPC227D Simatic NET + KEPServerEX + Matrikon co-resident on Atom E620 Drop one product, move to IPC227G with N2800/N2930, or migrate to single-vendor stack
SNMP v3 authPriv fails on KEPServerEX plug-in Engine ID mismatch with NMS, SHA key length wrong Match Engine ID, use 20-byte SHA-1 key and 16-byte AES key, regenerate keys per site

11. Performance and Sizing Notes

For ~10 tags per site the data volume is trivial: a full 10-tag poll at 30 s intervals is approximately 0.5 kbit/s per direction. The bottleneck is the OPC server scan rate, not the network. On an IPC227G the recommended KEPServerEX scan rate is 1000 ms, which gives a worst-case 10 ms CPU load for the channel. Reducing to 100 ms is possible but typically unnecessary when the NMS itself polls at multi-second intervals.

On IPC227D, co-resident SIMATIC NET, KEPServerEX and Matrikon produce noticeable boot-time CPU saturation (Atom E620, 1 GB RAM). Field installations report the system stabilises within 3–5 minutes after boot, but the SNMP service may be late to bind to UDP/161. Configure the NMS for a 60 s warm-up after any IPC restart and increase the initial poll retries to 5.

12. Security Considerations

Default deployments use SNMP v2c with community string public. For an internet-facing NMS this is unacceptable. Recommended hardening:

  • SNMP v3 with authPriv: SHA-1 for authentication, AES-128 for privacy.
  • Unique Engine ID per IPC, generated at install time and stored in the agent's configuration file.
  • Windows Firewall restricted to NMS source IP range (e.g., 10.20.0.0/24).
  • Disable the public community and any write community.
  • For multi-tenant NMS, deploy a separate SNMP Agent instance per customer with a private OID branch.

Where the customer is bound by IEC 62443, run the OPC/SNMP stack on a dedicated VLAN, isolate the IPC from the IT network with a stateful firewall, and require signed firmware on the IPC (SIMATIC IPC supports TPM 2.0 on IPC227G and newer).

13. SNMP Activation on the SIMATIC ET 200 and S7 Side

The S7/ET 200 station itself can also be an SNMP agent for its own diagnostic data, independent of the OPC server. The activation procedure is documented in the SIMATIC ET 200SP / ET 200clean communication function manuals: under Communications Services → SNMP the user activates the SNMP service, defines the read community and the trap targets, and reloads the device configuration. The same procedure applies to SCALANCE switches, which can be polled by SIMATIC NET to surface network diagnostics inside the same OPC tree. See Activating and deactivating SNMP for the parameter set.

14. Reference Paths and Official Documentation

When commissioning a multi-site rollout, the typical OID enterprise number is registered as a private enterprise number with IANA (e.g., 1.3.6.1.4.1.99999). Reserve 10 sub-IDs per site (site, PLC, tag group) and document the assignment in a master spreadsheet before the first install.

Do Siemens S7-1200 and S7-1500 controllers have a built-in SNMP agent for process tags?

No. S7-1200/1500 expose process data only via S7 PUT/GET or OPC UA. To publish tag values to an SNMP-based NMS, an external OPC server (SIMATIC NET or KEPServerEX) plus an SNMP Agent plug-in is required on a SIMATIC IPC. The S7 station can, however, expose its own diagnostic data through SNMP independently via TIA Portal Communications Services → SNMP.

Which Siemens hardware is recommended for the OPC-to-SNMP edge node?

For new builds, use the SIMATIC IPC227G with Windows 10 IoT Enterprise LTSC and SIMATIC NET V16+ or KEPServerEX V6.5+. The IPC227D with Windows XP Embedded SP3 remains supported for existing sites but is end-of-life and should be replaced at the next opportunity.

What is the minimum licence footprint for ~10 tags per site on KEPServerEX?

KEPServerEX V6.5+ offers a 10-tag runtime licence tier that includes the SNMP Agent plug-in. The licence is hardware-locked to the IPC MAC address. For multi-site rollouts, a floating licence server on a central VM is the cost-effective option, with the IPC running the local SNMP agent against a 10-tag locked runtime.

Which SNMP version should the NMS use?

SNMP v2c is acceptable on isolated OT VLANs with unique community strings per site. For any deployment crossing a security boundary, or where NMS is shared between customers, use SNMP v3 with authPriv (SHA-1 + AES-128) and a unique Engine ID per IPC. Disable write community entirely.

Why are polled values stuck at zero after commissioning?

The most common cause on S7-1200/1500 is that PUT/GET access is disabled under PLC Properties → Protection & Security. The second most common is an optimised DB – the OPC driver can only read non-optimised DBs unless the newer S7 Plus driver is used, which understands symbols. Verify both settings and confirm the ISO-on-TCP port 102 is open in the Windows Firewall on the IPC.

Can the SIMATIC NET OPC server itself act as an SNMP agent?

Yes. The SIMATIC NET OPC server includes an SNMP protocol tab in its properties. The configuration button exposes read community, trap destinations, and the OID mapping. This option is the native Siemens path and is described in the Siemens support document Diagnostics and configuration with SNMP (PDF). Verify the regional catalog entry on the Siemens mall for the current European article number.

Back to blog