Overview: PC-to-PLC Communication Without a Dedicated HMI
Many small automation cells need real-time visibility into process variables, I/O states, and alarms but cannot justify the cost of a dedicated panel HMI. A standard engineering PC or shop-floor workstation can serve the same role when paired with the right combination of PLC firmware features and supervisory software. Siemens targets this exact use case twice in its product line: the LOGO! 8 logic module ships with two integrated web servers and native Modbus TCP, while the S7-1200 controller adds full PROFINET, S7 Communication, optional OPC UA, and a configurable web server that can expose user-defined web pages.
This guide walks through the engineering decisions, configuration steps, and verification checks required to retire a physical HMI in favor of a PC-based view. It also covers the SNAP7 open-source path for custom .NET applications and shows where the AutomationDirect CLICK PLC fits if the application outgrows LOGO! but does not yet justify a full S7-1200 deployment.
Prerequisites and Hardware Selection
Before configuring any protocol, verify the following prerequisites are met:
- LOGO! 8 base module with Ethernet — part numbers in the 6ED1052-2XX08-0BA1 (LOGO! 8.3) or 6ED1052-2XX08-0BA2 (LOGO! 8.4) family. Only 8-series modules expose an RJ45 port for Ethernet networking.
- LOGO! Soft Comfort V8.4 (or later) installed on the engineering PC. The matching firmware on the LOGO! is required to unlock the extended web server features described later.
- S7-1200 CPU if migrating to a more capable controller. Common choices are 6ES7211-1AE40-0XB0 (CPU 1211C DC/DC/DC), 6ES7214-1AG40-0XB0 (CPU 1214C DC/DC/DC), and 6ES7215-1AG40-0XB0 (CPU 1215C with two PROFINET ports). F-variant CPUs (e.g., 6ES7214-1AF40-0XB0) are required for safety applications.
- TIA Portal V16 or later for S7-1200 programming, web server configuration, and OPC UA setup (OPC UA requires CPU firmware V4.4 or higher).
- Ethernet switch or crossover cable — both LOGO! 8 and S7-1200 support Auto-MDI/MDIX, so a straight-through Cat5e/Cat6 cable is sufficient for point-to-point links.
- Static IP addressing plan — both devices default to DHCP. Assign fixed addresses before commissioning to avoid link loss when the DHCP server is offline.
Selecting the Communication Protocol
Four protocol paths dominate PC-to-PLC links in this product class. The choice is driven by the SCADA software already on the plant floor, not by the PLC.
| Protocol | Default TCP Port | LOGO! 8 Support | S7-1200 Support | Typical Client Software |
|---|---|---|---|---|
| Modbus TCP | 502 | Yes (server, 8 inputs + 8 outputs + 32 flags) | Yes via MB_CLIENT/MB_SERVER instructions | LabVIEW, My Open Lab, NI Measurement Studio, Ignition, AdvancedHMI |
| S7 Communication (ISO-on-TCP / RFC1006) | 102 | Yes (read/write of up to 32 variables per call) | Yes (PUT/GET, BSEND/BRCV) | SNAP7 library, libnodave, WinCC, third-party OPC servers |
| HTTP Web Server | 80 | Yes (simple + extended via LWE) | Yes (user pages from TIA Portal fragment DBs) | Any modern browser, no SCADA required |
| OPC UA (TCP) | 4840 | No | Yes (CPU firmware V4.4+, server role) | UaExpert, Ignition, WinCC Unified, Kepware |
If the PC already runs a SCADA package, pick the protocol that the SCADA natively speaks. If no SCADA is installed and the goal is read-only monitoring of a small I/O count, the LOGO! 8 web server is the lowest-effort path because it requires zero client software.
Siemens LOGO! 8 Integrated Web Server Approach
Starting with firmware 8.0, every LOGO! 8 with an Ethernet port exposes two independent web servers. Both are activated from LOGO! Soft Comfort > Tools > Transfer > Web Server Settings, or directly on the device via the menu path Network > Web Server Access on a LOGO! with display.
Simple Web Server
The simple web server mirrors the on-device display and the LOGO! TDE (text display) if attached. From any browser pointed at http://<LOGO! IP address>, an operator sees:
- The current message text configured in the LOGO! program (up to four lines of 24 characters).
- The state of digital inputs, digital outputs, analog inputs, and the four cursor keys for navigation.
- A virtual keypad that mirrors the LOGO! front-panel buttons. Password protection is enforced using the same program password as the on-device menu.
This is the minimum viable PC view. No HTML authoring is required; the LOGO! renders the page internally. Default credentials are blank for read access and the program password for write access.
Extended Web Server
The extended web server hosts user-authored pages served by the LOGO! itself. Pages are built in the free LOGO! Web Editor (LWE) utility, which installs alongside LOGO! Soft Comfort 8.4. LWE generates a project folder containing HTML, CSS, JavaScript, and SVG assets, and uploads them to the LOGO! over HTTP. Once enabled, the extended server is reachable at http://<LOGO! IP address>/<project name>.
LWE supports the following LOGO! tag bindings out of the box:
| LWE Element | LOGO! Address Space | Notes |
|---|---|---|
| Digital input | I1 to I24 | Read-only |
| Digital output | Q1 to Q20 | Read-only |
| Digital flag | M1 to M64 (LOGO! 8.4) | Read/Write |
| Analog input | AI1 to AI8 | Word value, scaling handled in the program |
| Analog output | AQ1 to AQ2 | Word value, read/write |
| Network input (S7/Modbus) | NI1 to NI64 | Read-only (mapped from peer) |
| Network output (S7/Modbus) | NQ1 to NQ64 | Read/Write |
Use LWE when the simple server's four-line display is insufficient but a full SCADA is overkill — typical applications are tank-level dashboards, motor status panels, and energy counters.
Configuring the LOGO! Extended Web Server with LWE
- Install LOGO! Soft Comfort V8.4 and launch Tools > LWE.
- Create a new project, name it (the name becomes the URL suffix), and add a page sized for the target browser (1920 x 1080 is a common shop-floor workstation resolution).
- Drop widgets onto the page and bind each one to a LOGO! tag using the Properties > Data Connection dialog. The dialog accepts the symbolic name as written in the LOGO! program.
- Optionally embed JavaScript variables for client-side math (e.g., converting an AI1 raw count of 0-1000 into 0.0-10.0 bar). The script runs in the browser; the LOGO! only ships raw tag values.
- Compile the project. LWE produces a ZIP file under
%USERPROFILE%\Documents\LWE\<project>\build. - In LOGO! Soft Comfort, open Tools > Transfer > Web Server Settings. Tick Enable extended Web server and select the compiled ZIP.
- Transfer the configuration to the LOGO! via Ethernet. The transfer progress dialog reports Web server project transferred successfully on success.
- Verify from any browser on the same subnet by navigating to
http://<LOGO! IP>/<project>. The page should render and tag values should update at the configured refresh interval (default 1 s).
Migrating to S7-1200 for Greater I/O and Protocol Support
The LOGO! 8 platform is limited to 24 digital inputs, 20 digital outputs, 8 analog inputs, and 64 flags. When the application exceeds that envelope, the S7-1200 is the natural next step. The migration preserves the engineering workflow because the S7-1200 is programmed in TIA Portal — a different toolchain from LOGO! Soft Comfort, but the concept of function blocks, timers, and counters carries over directly.
S7-1200 Web Server
The S7-1200 web server is configured in TIA Portal under Device Configuration > Web server. TIA Portal generates the HTML pages from HTML fragments stored in the project. Each fragment can reference the value of a PLC tag, and AWP (Automation Web Programming) commands such as :=<tagname>: inject the live value into the page at request time.
To enable user-defined pages:
- In the TIA Portal project tree, right-click the CPU and choose Web server > User-defined pages.
- Create an HTML entry. TIA Portal allocates it a default name such as
overview.html. - Inside the HTML body, write AWP markup. Example fragment reading an integer tag named
TankLevel_mm:<p>Tank level: <span>:=TankLevel_mm:</span> mm</p> - Compile and download the project to the CPU. The web server is reachable at
http://<CPU IP>/<page>.htmlon the default port 80. Port is configurable under Device Configuration > Web server > HTTP port.
Modbus TCP on S7-1200
S7-1200 does not natively expose Modbus TCP as it does PROFINET. Instead, the MB_CLIENT and MB_SERVER instructions from the TIA Portal library (path: Instructions > Communication > Communication processor > Modbus TCP) implement the protocol in user code. A single MB_SERVER instance binds to TCP port 502 and exposes a configured data block as holding registers, input registers, coils, or discrete inputs.
OPC UA on S7-1200
CPU firmware V4.4 (released 2018) and later activates an OPC UA server. Configuration is performed under Device Configuration > OPC UA > Server. The server exposes the same tags visible to the HMI, including the PLC tags, DB tags, and standard system tags. A security policy of None is acceptable on an isolated plant network; production deployments should use Basic256Sha256 with client certificates.
SCADA and HMI Software Options for PC-Based Monitoring
If a true SCADA system is needed for trending, alarming, or recipe management, the following packages are commonly paired with LOGO! 8 or S7-1200 deployments.
| Software | License Model | Protocol Support | Notes |
|---|---|---|---|
| Siemens WinCC V7 / WinCC Unified | Commercial (per tag) | S7 Communication, OPC UA, Modbus TCP | Native integration with TIA Portal; tag export from STEP 7 project. |
| National Instruments LabVIEW + DSC | Commercial | Modbus TCP, OPC, S7 (with add-on) | Strong fit when the PC already runs LabVIEW for test or measurement. |
| Inductive Automation Ignition | Subscription (free for <100 tags on one server) | Modbus TCP, S7 via Siemens driver, OPC UA | Web-launched clients run on any PC without local install. |
| My Open Lab | Free / open source | Modbus TCP | Suitable for LOGO! deployments; runs on Windows and Linux. |
| AdvancedHMI | Free | Modbus TCP, S7 via driver | Active community; written in C#/.NET, source available. |
| Custom .NET application | Internal development | S7 via SNAP7, Modbus via NModbus | Most flexible, requires development resources. |
Modbus TCP Polling with Third-Party Tools
Modbus TCP is the lowest common denominator and the recommended first choice when the SCADA software is undecided. From the LOGO! side, no configuration beyond enabling Network > Modbus TCP > Server is required. The server is always listening on port 502 once enabled, and exposes a fixed register map documented in the LOGO! 8.4 system manual.
A useful diagnostic for verifying the link before any SCADA is installed is Modbus Poll or the open-source QModMaster. Configure a new connection with the LOGO!'s IP, port 502, and a poll rate of 500 ms. Poll function code 0x04 (read input registers) at address 0 to read AI1 through AI8 as 16-bit signed integers.
S7 Communication Using the SNAP7 Library
For custom C# or VB.NET applications, the open-source SNAP7 library by Davide Nardella implements the S7 Communication protocol client side and runs against both LOGO! 8 and S7-1200. SNAP7 is not vendor software; it is an independent implementation that has been validated against Siemens controllers for over a decade. Always verify protocol compatibility against the specific CPU firmware version before deployment.
A minimal C# example to read a single DB word from an S7-1200:
using Snap7;
var client = new S7Client();
int rc = client.ConnectTo("192.168.0.10", 0, 1); // IP, rack, slot
if (rc != 0) { /* handle error code */ }
byte[] buffer = new byte[2];
client.DBRead(1, 0, 2, buffer); // DB1 starting at byte 0, length 2
ushort value = (ushort)((buffer[0] << 8) | buffer[1]);
client.Disconnect();
For the LOGO!, the equivalent function is client.ReadSZL or client.ASRead using the variable services. The latest SNAP7 release notes describe the supported variable access functions for LOGO! 8 in detail.
AutomationDirect CLICK PLC as an Alternative Path
Some plants standardize on the AutomationDirect CLICK series because of its low list price, free CLICK programming software, and built-in Ethernet port on every C-series CPU. The CLICK PLC does not run LOGO! Soft Comfort projects, so a migration involves a complete program rewrite, but the protocol toolchain is similar.
CLICK CPUs from C0-12DRE-1-D and newer ship with a 10/100 Ethernet port that supports both Modbus TCP server and a proprietary AutomationDirect protocol called EREG (element registration). A practical walk-through of the PC-to-CLICK communication setup is published in the AutomationDirect video library:
CLICK PLC — Establishing PC-to-PLC Communications (Part 6)
The CLICK series is worth considering when the budget does not allow TIA Portal licensing but the I/O count has outgrown LOGO!.
Network Topology and IP Addressing
A robust PC-to-PLC network follows these rules:
- Assign fixed IP addresses. Use DHCP reservations only as a fallback when static configuration is impractical.
- Keep the PLC, PC, and any switches on a dedicated VLAN when the office network shares the same physical switches. The default LOGO! 8 and S7-1200 do not authenticate traffic, so isolation is the primary defense.
- Use the same subnet mask across all devices. A common scheme is
192.168.1.0/24with the PC at.10, LOGO! at.20, and S7-1200 at.30. - Block inbound traffic from the plant network at the firewall. PC-to-PLC links do not require inbound internet exposure.
Verification and Diagnostics
After configuration, run the following verification sequence to confirm the link is healthy:
- Ping test. From the PC, ping the PLC's IP address. A response time below 1 ms on a switched Ethernet segment indicates a healthy link.
-
Port reachability. Use
Test-NetConnection -ComputerName <PLC IP> -Port 502(PowerShell) ortelnet <PLC IP> 502to verify the Modbus TCP port is open. Repeat with port 102 for S7 Communication and port 80 for the web server. - Live tag read. Force a known state on a digital output from the LOGO! program (or TIA Portal watch table) and confirm the value reaches the SCADA within one poll cycle.
- Browser refresh. For web server deployments, refresh the page and confirm tag values update at the configured interval. Stale values indicate an HTTP session timeout or a missing AWP tag reference.
- Wireshark capture (optional). Capture port 102 or 502 traffic for 30 seconds and confirm the expected request/response frames are present. Wireshark includes dissectors for both protocols under Decode As.
Troubleshooting Matrix
| Symptom | Likely Cause | Resolution |
|---|---|---|
| Browser shows "site cannot be reached" on LOGO! web server URL | Extended web server disabled or LWE project not transferred | Open LOGO! Soft Comfort, navigate to Tools > Transfer > Web Server Settings, enable, and re-transfer the LWE build. |
| Modbus TCP poll returns timeout | Port 502 blocked by Windows Firewall on PC | Add inbound rule for %SystemRoot%\System32\svchost.exe or the specific SCADA executable. |
| S7 Communication client returns error W#16#80A1 | CPU in STOP, or rack/slot mismatch in client config | Confirm CPU is in RUN via the mode selector; verify the client connects to rack 0, slot 1 (S7-1200) or the LOGO!'s TSAP 02.00 / 02.01. |
| S7-1200 web page shows ":<tagname>:" literal text | AWP fragment not compiled into the project | Confirm the page is listed under Web server > User-defined pages and recompile the TIA Portal project. |
| OPC UA client cannot browse server tags | Security policy mismatch or expired server certificate | Set the OPC UA server policy to None for testing; in production, regenerate the server certificate from the CPU's OPC UA > Certificate menu. |
| PC loses connection after a few hours | DHCP lease expiry on PLC | Set the PLC IP address statically under Network > IP address. |
| SCADA receives stale data (no updates) | Poll rate too high for network bandwidth, or symbol resolution failed | Reduce poll rate to 1 s and verify all tag addresses are spelled correctly in the SCADA tag database. |
| LOGO! 8 program password prompt appears unexpectedly on web server | Read/write privilege required for write operation | Enter the program password in the browser; for read-only views, do not bind output tags. |
Field-Commissioning Checklist
Before handing the system to operations, confirm the following items are signed off:
- Static IP addresses documented in the plant network register.
- Backup of the LOGO! program (LSC file) and the S7-1200 project (TIA Portal archive) stored in the engineering repository.
- SCADA tag database exported and version-controlled alongside the PLC program.
- E-stop circuit validated independently of the PC link.
- Operator training covers what to do when the PC screen is frozen or the link is lost (the PLC continues to run; only the view is affected).
A PC-based view is a powerful and cost-effective way to expose plant data, but the engineering discipline is the same as for a physical HMI: plan the network, choose the protocol deliberately, verify the link with concrete tests, and document the architecture so the next engineer can maintain it.
Can a Siemens LOGO! 8 connect to a PC without any additional hardware?
Yes. Every LOGO! 8 module with an Ethernet port (part numbers ending in 8.3 or 8.4) exposes two web servers on port 80 and a Modbus TCP server on port 502. Point any browser at the LOGO!'s IP address to view the simple or extended (LWE) web server.
Do I need TIA Portal to read values from a LOGO! 8 over Modbus TCP?
No. Modbus TCP is an open standard; any client such as LabVIEW, Ignition, AdvancedHMI, or a custom NModbus/.NET application can read the LOGO!'s holding registers directly. TIA Portal is only required when you migrate to an S7-1200.
What is the difference between the LOGO! simple web server and the extended web server?
The simple web server mirrors the on-device display and exposes a virtual keypad for operator input. The extended web server hosts HTML pages that you author in the free LOGO! Web Editor (LWE) utility and supports up to 64 digital flags, 8 analog inputs, and 64 network inputs/outputs.
Which S7-1200 firmware version adds OPC UA support?
OPC UA server support was introduced in CPU firmware V4.4 (released 2018). Earlier firmware versions must be updated through TIA Portal before OPC UA can be enabled. Configuration lives under Device Configuration > OPC UA > Server.
Is the SNAP7 library officially supported by Siemens?
No. SNAP7 is an independent open-source implementation of the S7 Communication protocol. It is widely deployed and validated against Siemens controllers, but it is not vendor-supported. For vendor-supported connectivity, use WinCC, the S7-1200 OPC UA server, or a licensed OPC tunnel such as Kepware.