Connecting Siemens LOGO! 8 (0BA8) to a Remote SCADA Over the Public Internet
This reference covers the engineering of a multi-site monitoring solution that aggregates 4 to 25 Siemens LOGO! 8 (0BA8) controllers, distributed across physically separate facilities, into a single central SCADA or HMI station. The reference design is built for slow-changing process variables (e.g. water salinity, level, temperature) where a polling interval of 1-10 s is acceptable and a small percentage of dropped samples is tolerable.
Three primary integration paths are documented: the LOGO! internal web server, the LOGO! Web Editor (LWE) extended web server, and direct S7 communication over a VPN tunnel. Each path is sized for cost, security, and engineering effort.
1. Network Architecture Overview
The base problem topology is N geographically separated sites, each containing one LOGO! 8, and one central site containing a SCADA server. The only path between the sites is the public internet (WAN). A direct LAN-to-LAN packet exchange is impossible because both endpoints sit behind NAT routers in private address space (RFC 1918: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16). To bridge two private networks across the public internet you must encapsulate the Ethernet/IP frames, which is exactly what a VPN or IP-tunnel does.
Key design rules:
- Use a unique private subnet at every site (e.g. 192.168.1.0/24, 192.168.2.0/24 …). This avoids IP collisions when the VPN brings every site into one virtual address space.
- The SCADA station needs a fixed, routable IP or a reliable DDNS hostname plus a port that the remote LOGO! can call back to (relevant for S7 keep-alive).
- Every site must terminate its internet connection on a router that supports either IPsec, OpenVPN, or WireGuard. Consumer "VPN-passthrough" routers are not the same as full VPN clients.
- Plan for the fact that WAN RTT typically ranges 30-300 ms; design your SCADA poll cycle for at least 3x the worst-case RTT before declaring a timeout.
2. LOGO! 8 Communication Capabilities (0BA8)
The 0BA8 generation (LOGO! 8) integrates an Ethernet interface and supports the protocols listed below. The firmware version of the LOGO! determines which options are available.
| Function | Minimum FW | Protocol / Port | Notes |
|---|---|---|---|
| Internal web server | 0BA8 (any) | HTTP / TCP 80 | Read-only display mirror, up to 8 monitored variables |
| Extended web server (LWE) | 0BA8 FS:04 (V8.2) | HTTP / TCP 80 (configurable) | Custom HTML pages, requires SD card |
| S7 client / server (PUT/GET) | 0BA8 (any) | ISO-on-TCP / TCP 102 | Bidirectional read/write of VM area |
| Modbus TCP server | 0BA8 (any) | Modbus TCP / TCP 502 | Read-only or read/write of VM area |
| SNMP | 0BA8 (any) | UDP 161 | Diagnostics only |
| LOGO! Soft Comfort download | 0BA8 (any) | Proprietary / TCP 8080 | Engineering access, not for runtime |
| NTP time sync | 0BA8 (any) | NTP / UDP 123 | Recommended for SCADA time-stamping |
The VM (Variable Memory) area of the LOGO! is the data block that all protocols expose to the outside world. External tags are addressed through a fixed offset mapping:
| VM range (byte offset) | Content | Typical tag type |
|---|---|---|
| VM 0 - VM 7 | Digital inputs I1-I8 | Bool |
| VM 8 - VM 15 | Digital outputs Q1-Q8 | Bool |
| VM 16 - VM 23 | Digital flags M1-M8 | Bool |
| VM 24 - VM 39 | Analog inputs AI1-AI8 | Word (signed 16-bit) |
| VM 40 - VM 55 | Analog outputs AQ1-AQ8 | Word (signed 16-bit) |
| VM 56 - VM 71 | Analog flags AM1-AM8 | Word (signed 16-bit) |
| VM 1000+ | User program data (Shift Register, etc.) | Bool / Word / DWord |
3. Prerequisites & Hardware Bill of Materials
| Item | Minimum spec | Recommended | Siemens part / alternative |
|---|---|---|---|
| LOGO! 8 base module | 0BA8 with Ethernet | 0BA8 FS:04 or later (V8.2+) | 6ED1052-1xx08-0BA1 / -0BA2 |
| SD card (extended web server only) | 2 GB FAT16 | Siemens-logo SD or SanDisk industrial | 6ED1057-1AA00-0BA0 |
| Site router (VPN client) | IPsec or OpenVPN client | Siemens SCALANCE S615 / M876 | 6GK5615-0AA00-2AA2 |
| Central SCADA PC | Win 10, i5, 8 GB RAM, SSD | Win Server 2019, RAID1 | — |
| SCADA software | Modbus TCP or S7 driver | WinCC Professional, Ignition, iFIX | 6AV2105-0xx05 / third-party |
| Static IP or DDNS | Public IP at central site | Dyndns / No-IP + static IP at SCADA | — |
Software tooling (downloads from Siemens support):
- LOGO! Soft Comfort V8.x (engineering, simulation, web editor)
- LOGO! Web Editor (LWE) project module (add-in to LSC)
- Current firmware for the LOGO! base module (free, via Siemens Industry Online Support)
- SCALANCE S615 Web Based Management (WBM) configuration pages
4. Option A - Internal Web Server (Lowest Cost, No VPN)
The internal web server is enabled by default in every 0BA8 and is sufficient when the SCADA operator only needs a browser view of display messages plus up to 8 variables. It is the lowest-cost entry point because no add-in software and no extra hardware are required.
4.1 Enable the internal web server
- In LOGO! Soft Comfort, open the project and go to Tools → Ethernet Connections → Web Server Access.
- Tick "Enable Web Server" and set the Web Server Password (default = LOGO).
- For each VM tag you want to expose, mark it as "accessible from web server" by right-clicking the block in the FBD editor and selecting the property.
- Download the program to the LOGO! via Ethernet.
4.2 Reach the LOGO! across the internet
- Configure the site router with a port-forwarding rule: external TCP 8080 → internal 192.168.1.10:80 (LOGO! HTTP port).
- Browse to
http://<public-ip>:8080from the SCADA PC. The default LOGO! welcome page lists the current display messages. - Click Variables in the menu - the 8 exposed tags appear as live read-only values.
4.3 Data exchange limit
Only the 8 web-server-enabled variables are reachable through the internal web server. The HTTP request returns plain text and is easily parsed by a SCADA or by a Python script:
import requests
r = requests.get('http://<public-ip>:8080', auth=('admin','LOGO'))
# r.text contains a list of <td> rows with VM values
Polling at 1 Hz from a 25-site installation generates 25 TCP connections/sec - well within the LOGO! capability but be aware that the LOGO! supports a limited number of simultaneous TCP sessions (typically 8-16 on 0BA8), so reuse HTTP keep-alive in your polling client.
5. Option B - Extended Web Server with LOGO! Web Editor (LWE)
The LOGO! Web Editor (LWE) is an add-in shipped with LOGO! Soft Comfort V8.2 and later. It lets you design custom HTML pages that read live values from the LOGO! VM area, display them as gauges or tables, and (optionally) write back to digital outputs. The generated project is pushed to the LOGO! SD card; the LOGO! then serves the pages on the same TCP 80 (or a custom port).
5.1 Requirements
- LOGO! 0BA8 with firmware V8.2 (FS:04) or later.
- A Siemens SD card inserted in the LOGO! card slot (the project lives on the card, not in internal flash).
- LOGO! Soft Comfort V8.2+ installed on the engineering PC.
5.2 Build a LWE project
- Open the LOGO! program in LSC and select Tools → Web Editor.
- Add a new web page, drag a "Variable" widget onto the canvas, and bind it to a VM tag from the LOGO! program.
- Add an "Input field" widget bound to a digital output VM tag if write-back is required.
- Save the project, then click LOGO! → Web Project → Transfer to SD card. The SD card must be plugged into the PC's card reader.
- Insert the SD card into the LOGO! and power-cycle the controller. The LOGO! boots, reads
/webproject/webproject.xmlfrom the card, and serves it on TCP 80.
5.3 Reach the LWE server across the internet
Same approach as Option A: port-forward external 8080 → internal 192.168.1.10:80. For a 25-site cluster, the SCADA PC opens 25 browser tabs or uses a small web-crawler script. If write-back is enabled, also rotate the web server password and limit source IPs on the router's firewall.
6. Option C - S7 Protocol over a VPN Tunnel (Recommended for SCADA)
The Siemens S7 protocol is the native PUT/GET mechanism that any S7-1200, S7-1500, or LOGO! 0BA8 speaks. It runs on top of ISO-on-TCP (port 102) and supports reading and writing the entire VM area, which is the only practical way to expose more than 8 tags to a SCADA. Because S7 is a binary protocol with no authentication, it must be wrapped in a VPN tunnel.
6.1 VPN topology
Two viable topologies exist:
| Topology | Central site device | Remote site device | Cost (per site) | When to choose |
|---|---|---|---|---|
| Hub-and-spoke (IPsec site-to-site) | SCALANCE S615 or firewall | SCALANCE S615 / M876 / M874 | €500-1200 | 4-25 sites, mixed vendors, must integrate with corporate firewall |
| Hub-and-spoke (OpenVPN) | Linux/Windows OpenVPN server | OpenWrt/DD-WRT/Mikrotik | €50-150 | Small budget, no Siemens router budget, IT-fluent staff |
| Spoke-to-cloud relay | Cloud VM running OpenVPN | SCALANCE M (cellular) | €600 + cellular data | No fixed IP available at remote site, cellular coverage |
6.2 S7 connection from SCADA
Once the VPN is up, the remote LOGO! 8 appears on the SCADA network as a local device. In WinCC Professional, the configuration is:
Connection name : LOGO_Site_03
Driver : SIMATIC S7 Protocol Suite
IP address : 192.168.3.10 (remote LOGO!, via VPN)
Slot / Rack : 0 / 0 (LOGO! 0BA8)
Partner (TSAP) : 03.01 (LOGO! default for server connection 1)
The VM area is read/written with the following function-code mapping:
| SCADA tag | LOGO! object | S7 area | DB / byte offset | Length |
|---|---|---|---|---|
| DI1 - DI8 | Digital inputs | DB | DB1.DBX0.0 - DB1.DBX0.7 | 1 byte |
| DQ1 - DQ8 | Digital outputs | DB | DB1.DBX1.0 - DB1.DBX1.7 | 1 byte |
| AI1 - AI8 | Analog inputs | DB | DB1.DBW24 - DB1.DBW38 | 8 words |
| AQ1 - AQ8 | Analog outputs | DB | DB1.DBW40 - DB1.DBW54 | 8 words |
| AM1 - AM8 | Analog flags | DB | DB1.DBW56 - DB1.DBW70 | 8 words |
01.00 for the engineering channel and 03.01 for the first S7 connection slot. Additional LOGO! S7 server connections shift the second byte (03.02, 03.03, …). Verify with the LOGO! menu Setup → Ethernet → Connections.6.3 Polling cycle and timeout design
Over a public internet VPN, a single S7 read of one DB1 of 32 bytes typically takes 80-250 ms. The recommended SCADA poll cycle for 25 sites is:
Poll interval = max(RTT_round_trip) x 3 + 50 ms safety
= 300 ms x 3 + 50 ms = 950 ms
Round up to 1.0 s / 1.5 s for production
Watch the LOGO! S7 connection count - a 0BA8 accepts up to 8 simultaneous S7 connections. A SCADA with 25 sites must therefore poll sequentially, not in parallel, or use a connection-pool pattern that re-uses one connection per site.
7. WAN & VPN Configuration Reference
7.1 SCALANCE S615 IPsec site-to-site (Siemens-native)
- Open the S615 WBM at
https://192.168.1.1, log in as admin with the default password. - Navigate to Layer 3 → VPN → IPsec and create a new connection. Set Mode = Tunnel, Authentication = PSK or Certificate.
- Enter the central S615 WAN IP as Remote Gateway, the central subnet as Remote Subnet (e.g. 192.168.100.0/24), and the local LOGO! subnet (192.168.1.0/24) as Local Subnet.
- Configure IKEv1 with AES-256 / SHA-2 / DH-14, lifetime 28800 s. Repeat on the central S615 with mirrored settings.
- Test: from the central SCADA PC, ping the remote LOGO! 8 (192.168.1.10) over the VPN.
7.2 OpenVPN (budget path)
Install OpenVPN on a small Linux box at the central site. Generate one client certificate per remote site, push the route route 192.168.1.0 255.255.255.0 to the central config, and configure each remote Mikrotik/OpenWrt router as an OpenVPN client. Authentication is by TLS certificates - one cert per site.
7.3 DDNS for dynamic public IPs
If the central SCADA site does not have a fixed public IP, register a hostname with a DDNS provider (e.g. DynDNS, No-IP, freedns.afraid.org). Most SCALANCE routers have a built-in DDNS client under System → DDNS that updates the record every 60 s. The remote site then dials the DDNS hostname instead of a numeric IP, but the underlying connection still requires a VPN to traverse the NAT.
8. SCADA Software Integration Paths
| SCADA | Internal web server | LWE extended server | S7 over VPN |
|---|---|---|---|
| WinCC Professional (TIA Portal) | Possible via custom HTTP driver | Possible via custom HTTP driver | Native SIMATIC S7 driver |
| WinCC Unified | HTTP/OPC UA gateway needed | HTTP/OPC UA gateway needed | Native S7 / OPC UA |
| Ignition by Inductive Automation | Web Browser / HTTP module | Web Browser / HTTP module | Siemens S7 driver (license) |
| iFIX / Citect | OPC DA tunnel | OPC DA tunnel | S7 OPC server (e.g. KEPware) |
| Open-source (ScadaBR, OpenSCADA) | Python / PHP parser | Python / PHP parser | python-snap7 library |
For an engineer who already owns TIA Portal, the native path is WinCC Professional + S7 driver over VPN. For a budget project, the lowest cost is the internal web server polled by a Python script and exposed to any SCADA through an OPC UA bridge.
9. Cost & Engineering Effort Comparison
| Option | Hardware per site | Software cost | Engineering hours (25 sites) | Cybersecurity posture |
|---|---|---|---|---|
| A - Internal web server, no VPN | €0 | €0 | 4 h | Poor (HTTP cleartext, password brute-forceable) |
| A - Internal web server + VPN | €500 (S615) | €0 | 20 h | Good (VPN + web password) |
| B - LWE extended web server | €30 (SD card) | €0 (LSC license) | 40 h (LWE design per site) | Acceptable with VPN |
| C - S7 over IPsec VPN | €600-1200 | €3000-6000 (WinCC Professional) | 60-100 h | Excellent (IPsec + private subnets) |
For the original use case (water-salinity monitoring, slow analog signals, 4-25 sites) the best engineering trade-off is Option A (internal web server) inside a SCALANCE S615 IPsec VPN. This gives encryption, requires no extra software, and exposes enough variables for typical 2-4 analog inputs and 2-4 digital flags per site.
10. Verification & Commissioning Checklist
After deployment, verify each link with the following steps:
- Layer-1 / 2: Link LED on the LOGO! Ethernet port is solid green; site-router LAN port shows 100/1000 link.
-
Local IP: From a laptop on the LOGO! subnet, browse to
http://192.168.1.10- welcome page appears. - VPN tunnel: From the central SCADA PC, ping the remote LOGO! 8. RTT < 300 ms on a healthy internet link; packet loss < 0.1 %.
-
Web server over VPN: Browse to
http://192.168.1.10via the tunnel. The LOGO! welcome page and the 8 monitored variables appear. - Write-back (if enabled): Force a digital output from the SCADA; confirm the LOGO! output LED changes state within 1 s.
- S7 driver diagnostics: In WinCC, the connection state shows "OK" and the tag status is "Good". A red status on any tag after 3 s indicates either a wrong TSAP or a saturated S7 connection counter.
- Long-term: Log the SCADA data for 24 h; check for gaps > 30 s. A few seconds of gap is expected during WAN re-keying; long gaps indicate VPN instability.
11. Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic step | Fix |
|---|---|---|---|
| Web server unreachable from public IP | Port-forwarding not active, or WAN IP changed | Check curl ifconfig.me against router WAN page |
Refresh DDNS or fix the port-forward rule |
| Web server reachable, no variables shown | Tags not marked "accessible from web server" | In LSC, re-export program with tag property enabled | Re-download program to LOGO! |
| S7 connection drops every 5-10 minutes | VPN SA lifetime too short, or ISP NAT timeout | Check VPN log for "phase 1 lifetime expired" | Increase IKE lifetime to 86400 s; add DPD keep-alive |
| SCADA tags show "Bad" after a few hours | LOGO! maxed out on S7 connections | Count active S7 sessions in WBM → Information → Connections | Reduce simultaneous SCADA clients; poll sequentially |
| High RTT (> 500 ms) on the tunnel | Geographic distance or congested ISP link | Run tracert <public-ip> from SCADA PC |
Switch to a closer SCADA cloud VM, or compress with WireGuard |
| LOGO! SD card project not served | Card not inserted at power-up, or wrong FS version | Check LOGO! display → Diagnostics → Web project | Insert card before power-up, upgrade to V8.2+ |
| VPN up, ICMP works, S7 fails | TCP 102 blocked by corporate firewall | Run telnet 192.168.1.10 102
|
Open TCP 102 in the site-router ACL, or switch to Modbus TCP 502 |
| Intermittent write of digital output | S7 partner TSAP mismatch | Compare LOGO! Setup → Ethernet → Connections with SCADA config | Set TSAP to 03.01 and rack/slot to 0/0 |
12. Field-Proven Caveats
- Real-time is not real-time over the internet. Even with a healthy VPN, WAN RTT is in tens of milliseconds. A SCADA polling at 1 Hz is fine for water salinity; it is not fine for high-speed interlocking. Add a local HMI at each site for any operator-level control that must be deterministic.
- Data loss during WAN re-keying. IPsec SA renegotiation typically drops packets for 0.5-3 s. For a forensic log, this is acceptable; for a control loop, it is not. Use a VPN with DPD and fast-reconnect (IKEv2) if reconnect matters.
- LOGO! 0BA8 connection limit. The 0BA8 supports a finite number of TCP connections (8 to 16 depending on firmware). A SCADA connecting in parallel from 25 sites can saturate this. Always poll sequentially, not in parallel, and reuse HTTP keep-alive.
- VM offset drift between firmware versions. The exact byte offset of AM/AQ blocks can change between firmware versions. Build the SCADA tag list from the actual firmware running on the controller, not from a generic table.
- Time stamping. Enable NTP on every LOGO! 8 and on the SCADA server. Without a synchronised clock, the historical log of a salinity excursion is not forensically usable.
- Cellular fallback. For remote sites without fixed-line internet, a SCALANCE M874/M876 with cellular SIM provides an IPsec client out of the box. Budget the cellular data plan: 1 Hz polling of 50 bytes per site = ~14 MB/day, well under most M2M plans.
FAQ
Can the LOGO! 8 connect to a SCADA over the internet without a VPN?
Technically yes - by port-forwarding the LOGO! web server (TCP 80) on the site router. The internal web server will then be reachable from the SCADA PC. This is not recommended for any production system: the web server has only password protection, no encryption, and exposes an engineering endpoint to the public internet. Use a VPN unless the network is fully isolated.
What is the minimum LOGO! 8 firmware for the extended web server?
The LOGO! Web Editor (LWE) requires firmware V8.2 (FS:04) on the 0BA8 base module. The 0BA8 Standard variant with older firmware only supports the internal web server with its 8-variable limit.
How many LOGO! 8 sites can one S7 SCADA connection handle?
The 0BA8 supports a limited number of simultaneous S7 sessions (8-16 depending on firmware). For more than ~8 sites, poll sequentially and reuse connections. With a hub-and-spoke VPN, a WinCC Professional SCADA comfortably handles 25 sites at a 1-1.5 s poll cycle.
Can DDNS replace a fixed public IP at the central SCADA site?
Yes. Register a hostname with a DDNS provider (DynDNS, No-IP, freedns.afraid.org) and configure the SCALANCE S615 to update it automatically. The remote site then dials the hostname. DDNS solves name resolution for a dynamic public IP; it does not solve the private-NAT problem, so a VPN is still required.
Is Modbus TCP an option if S7 is not available?
Yes. The LOGO! 0BA8 ships with a Modbus TCP server on TCP 502. Read/write access to the VM area is supported. Modbus TCP is often easier to integrate with third-party SCADA packages (Ignition, iFIX, open-source) than S7, and works through the same IPsec VPN tunnel as S7.
What happens to the data during an internet outage at a remote site?
The LOGO! 8 keeps running locally and continues to execute the program; only the SCADA visibility is lost. On WAN recovery, the SCADA re-polls the LOGO! and the gap in the historical record is visible. For gap-free trending, add a local data logger (LOGO! SD card CSV log) and synchronise the CSV files after the WAN is back.