STEP 7 V5.5 Remote Download: Configuring Internet IP in HW Config
Engineers maintaining a SIMATIC S7-300/S7-400 station across the public Internet frequently encounter a confusing asymmetry: the Upload station to PG action in SIMATIC Manager prompts for the remote IP address, but the Download action does not. When the operator clicks Download, STEP 7 attempts to reach a partner that "is not responding" and aborts with the dialog "Online: connection could not be established." This article documents the root cause, the exact hardware configuration change required, and the verification steps that confirm a successful remote download to a CPU such as the 416-3 DP with a CP 443-1 communications processor.
1. Problem Statement
Engineer A on a service laptop runs SIMATIC Manager Step 7 V5.5 SP4 with WinCC flexible 2008 SP5. The customer plant publishes a SIMATIC HMI (MP 377) and a SIMATIC S7-400 station on the public Internet through a static public IP. The engineer reports the following repeatable sequence:
- Menu
PLC > Upload Station to PG— a dialog appears requesting the partner IP. The engineer enters the customer's public WAN IP. Upload of the S7 program completes. - Menu
PLC > Download(or highlight blocks and select Download) — no partner IP dialog appears. After the default TCP timeout (default 10 s, configurable up to 60 s) the message "Online: connection could not be established. The connection partner is not responding." is shown. The progress dialog never indicates which IP it tried. - WinCC flexible 2008
Transferfrom the same laptop does prompt for a target IP and downloads the HMI image successfully.
The asymmetry between the S7 and the HMI download path is the diagnostic clue. WinCC flexible Transfer uses its own Ethernet channel configuration (PN/IE), so the IP is supplied by the operator at run time. STEP 7 V5.5 Download, by contrast, takes the partner address from the project's hardware configuration.
2. Root Cause Analysis
STEP 7 V5.5 Online operations use the ISO-on-TCP / TCP / PROFIBUS partner address stored against the CP object in the offline HW Config project. The Download action does not consult a runtime prompt; it consults the project. The Upload action uses a separate path (S7 routing / dynamic connection establishment) and that path is why the IP is requested at run time.
Concretely, the partner IP for a Download is taken from one of the following places inside HW Config:
- CP 443-1 / CP 343-1 — the IP address field of the Ethernet interface properties.
- PROFINET interface of the CPU (e.g. CPU 416-3 PN/DP) — the IP address assigned to the PN-IO subnet of the CPU.
- An S7 routing path through an additional CP that is reachable via the configured gateway.
If HW Config still holds the customer's private LAN IP (e.g. 192.168.0.10) the Download tries that address on the engineer's laptop. Because that address is not routable on the Internet and is not even on the engineer's local subnet, the TCP connection times out and STEP 7 reports the connection-partner error.
This is documented in the Siemens support entry "What you should watch out for with a remote access to a SIMATIC S7 with STEP 7 via the Internet" (entry ID 28810054). The same KB article notes that a permanent public IP on the remote partner simplifies the workflow considerably.
3. Prerequisites
- STEP 7 V5.5 + SPx installed on the engineering station, with the same project (or a freshly uploaded offline copy) used for the remote session.
- Customer station reachable from the engineering LAN: the customer's firewall must permit inbound TCP/UDP on the S7 ports, and the S7-400 must be at a known public static IP, or the public IP must be reachable through a 1:1 NAT on the customer's router.
- CP 443-1 (or equivalent) firmware that supports ISO-on-TCP / TCP S7 communication, typically firmware V2.x or V3.x. Compatible firmware is delivered with STEP 7 V5.5; cross-check the version with the Siemens product support pages.
- For S7-300 stations: CP 343-1 (6GK7 343-1EX30 / 6GK7 343-1CX10 / 6GK7 343-1GX30 families are typical). The same IP-from-HW-Config rule applies.
- The customer's online HW Config must be retained on the CPU: the engineer must not write the changed HW Config back to the PLC.
4. Step-by-Step Solution
The fix is a controlled, temporary edit of the offline project. The remote IP is entered into HW Config, the Download is executed, and HW Config is then restored so that the offline project continues to match the PLC.
4.1 Open HW Config in the offline project
- In SIMATIC Manager, open the S7 project that corresponds to the customer station.
- Select the
SIMATIC 400 Station(orSIMATIC 300 Station) object. - Double-click
Hardwareto launch HW Config.
4.2 Edit the IP of the relevant Ethernet interface
- Locate the Ethernet entry: for a CPU 416-3 DP, the PN interface of the CPU or, more commonly, the CP 443-1 in the rack. For a CPU 416-3 PN/DP, the PN-IO interface of the CPU is the active node.
- Double-click the interface object (for example,
CP 443-1> properties >Properties > Ethernet interface). - In the IP address field, replace the customer's private LAN IP with the customer's public Internet IP (or with the public IP that NATs 1:1 to the CP's private IP).
- Leave the subnet mask at the default class appropriate for the public address (typically
255.255.255.252or the customer's ISP-supplied value). Do not modify the router address unless the customer's router has a public address in the same subnet. - Click
OK. HW Config marks the station as "changed" (yellow icon).
4.3 Perform the block Download
- Close HW Config. SIMATIC Manager returns focus.
- In the project tree, select the
Blocksfolder (or the specific blocks to be loaded). - Menu
PLC > Download(or right-click >Download to Target System). - STEP 7 reads the (now public) IP from the offline project and establishes the S7 connection. The Connect to Target System dialog now shows the public IP as the partner.
- Confirm the download. Blocks transfer to the CPU.
4.4 Restore HW Config to the LAN IP
- Re-open HW Config.
- Re-enter the customer's private LAN IP and the original subnet mask / router address.
-
Station > Save and Compile(Ctrl+S). Do not download HW Config to the PLC. - Close HW Config.
The offline project now matches the live PLC again, and the engineer can continue local work without surprises.
5. Verification
- In SIMATIC Manager,
PLC > Accessible Nodes. The remote CPU should appear with the public IP and the correct module / firmware identifier. - Open the online block view (
Blocks> right-click >Monitor/Modifyor open online/offline comparison). The freshly downloaded blocks must show the new logic / new FC/FB numbers. - From a Windows command prompt on the engineering laptop,
ping <public IP>must return a reply (subject to the customer's firewall not dropping ICMP). If ICMP is filtered, a successful TCP connection from STEP 7 is itself the proof. - Check the S7 connection diagnostic on the CP: in HW Config on a session at the customer site, right-click the CP >
Diagnosticsshows the live connection list and confirms the engineering IP is registered as a partner.
6. Port and Protocol Requirements
For an S7-400 reachable directly over TCP, the customer's router must forward the following ports to the CP's private IP. Exact port list depends on the S7 services used.
| Port | Protocol | Service | Notes |
|---|---|---|---|
| 102 | TCP | ISO-on-TCP / S7 communication (PG function) | Mandatory for STEP 7 PG download / upload |
| 161 / 162 | UDP | SNMP | Optional; needed for S7 web server diagnostics and some HMI panels |
| 500 | UDP | IKE (IPsec VPN) | Recommended: terminate an IPsec tunnel at the customer router |
| 3389 | TCP | RDP (Windows Remote Desktop) | Alternative: drive STEP 7 from a jump host inside the customer LAN |
Exposing TCP/102 directly to the public Internet is supported by Siemens for engineering access, but is widely considered a security anti-pattern. A site-to-site IPsec VPN or an SSL-VPN concentrator that drops the engineer onto a private subnet that includes the S7 station is the recommended architecture. The Siemens KB 28810054 covers this trade-off in detail.
7. Firewall and NAT Caveats
Three failure modes account for almost every "connection partner is not responding" report on a public-IP setup:
- Stateful firewall dropping idle S7 connections. A 60-second idle timeout will close the TCP session. Raise the timeout to 30 minutes or more for the S7 source IP.
-
1:1 NAT mismatch. The customer router forwards
<public IP>:102to192.168.0.10:102on the CP. STEP 7 connects to the public IP; the CP replies from192.168.0.10. If the firewall is not in fast-path mode, return packets can be dropped. Force a static source NAT so the CP's reply exits with the public IP as source. -
Carrier-grade NAT / double NAT. The customer's ISP supplies a 100.64.x.x address (CGNAT) rather than a true public IP. STEP 7 then cannot reach the CP at all. Confirm with
tracertfrom the engineer side, or with the customer's ISP, that the public IP is a true global address.
8. Alternate Architecture: Remote Desktop to a Jump Host
For sites where opening TCP/102 to the Internet is not acceptable, drive STEP 7 from a Windows host that already lives inside the customer LAN. The engineer connects to that host with Remote Desktop and runs SIMATIC Manager locally; HW Config then holds the private IP and the Download works as it would on-site. Two well-supported clients exist:
- Microsoft Remote Desktop — native RDP client. Configure the jump host with a fixed LAN IP, enable Remote Desktop, and add a routable inbound rule on the customer's firewall to TCP/3389. Use Network Level Authentication and a certificate to avoid exposing NLA-less RDP to the Internet.
- Chrome Remote Desktop — browser-based relay that does not require inbound port forwarding on the customer side. The relay is operated by Google; the customer host initiates an outbound HTTPS connection, the engineer joins via a one-time access code. Latency is acceptable for STEP 7 transfer of medium-sized programs; large downloads are faster over RDP because the bandwidth is direct.
From a STEP 7 perspective, a remote-desktop session is the cleanest option: HW Config is unmodified, the IP is the local LAN IP, and the only change is the latency between the engineer's keystroke and the CPU's reaction.
9. WinCC Flexible 2008 — Why HMI Transfer Works Without This Trick
WinCC flexible 2008 transfer uses the PN/IE interface settings of the WinCC flexible project, which are independent of the STEP 7 project. The transfer dialog has its own field for target IP, populated by the operator at the moment of transfer. This is why the engineer sees a prompt for the HMI but not for the S7. The two products share an Ethernet medium but not a configuration model.
10. Firmware and CPU Compatibility Notes
| CPU | Typical PN/IE interface | Firmware range that supports S7 PG over TCP | Notes |
|---|---|---|---|
| CPU 412-1 / 412-2 PN | PN-IO of the CPU | V5.x and later | Single port, single IP, no CP required |
| CPU 414-3 PN/DP | PN-IO of the CPU | V5.x and later | PROFINET + PROFIBUS DP in one device |
| CPU 416-3 DP | CP 443-1 (6GK7 443-1EX20 / 1EX30 / 1GX30) | CP FW V2.x / V3.x | The IP is on the CP, not the CPU |
| CPU 416-3 PN/DP | PN-IO of the CPU + optional CP | V5.x and later | Watch for two interfaces; pick the right one in HW Config |
| CPU 319-3 PN/DP (S7-300) | PN-IO of the CPU | V3.x and later | Same procedure applies |
| CPU 315-2 PN/DP with CP 343-1 | CP 343-1 (6GK7 343-1EX30 / 1GX30) | CP FW V2.x / V3.x | Edit the CP's IP in HW Config, not the CPU's MPI |
For ordering and current firmware, consult the Siemens product support portal at support.industry.siemens.com. The order numbers above are the standard families; specific MLFBs (and the matching firmware files) must be taken from the customer's hardware inventory.
11. Troubleshooting Matrix
| Symptom | Likely cause | Diagnostic step | Fix |
|---|---|---|---|
| Download times out, no IP prompt | HW Config still holds the LAN IP | Open HW Config, read CP / PN interface IP | Edit IP to public address; do not upload HW Config |
| Download prompts wrong partner | Multiple CPs in HW Config; wrong one selected | Inspect rack view in HW Config | Edit the IP on the live Ethernet CP, not the standby |
| Download connects, blocks fail to write | CPU is in RUN with write protection | Online > Diagnostics > Operating Mode | Switch to STOP, or use password-protected object access (POU) |
| Download works once, then fails next session | Customer's public IP changed (DHCP / CGNAT) |
nslookup on the customer's DDNS name, or ask ISP |
Use static IP or DDNS client on the customer router |
| Upload works, Download fails, same IP entered | Upload uses ad-hoc path; Download uses project-bound path | Verify HW Config IP matches what was entered at upload | Edit HW Config; this article's procedure |
| CPU is reachable for HMI but not STEP 7 | TCP/102 not forwarded; only HMI ports open |
Test-NetConnection <public IP> -Port 102 from PowerShell |
Forward TCP/102 to the CP; better: deploy VPN |
| STEP 7 reports "Different firmware versions in the modules" | Offline project is older than the live CPU | Right-click station > Object Properties > compare |
Upload the live HW Config; reconcile; or do not download HW Config |
| Blocks written, but CPU stays in STOP with SF LED | Downloaded blocks reference symbols/FBs not in the live project | CPU diagnostic buffer (PLC > Diagnostics/Setting > Diagnostic Buffer) |
Download the full referenced block set; or correct the references and re-download |
12. Security and Operational Guidance
- Don't expose TCP/102 to the public Internet unless the customer's policy requires it. A VPN, jump host, or TLS-secured remote-maintenance gateway is the engineering recommendation.
- Use a dedicated service account on the S7 CPU (CPU password, know-how protection) so that a leaked STEP 7 project does not hand a stranger write access.
- Always restore HW Config after the remote session, otherwise the offline project silently diverges from the live PLC and the next on-site engineer will be confused.
- Audit the change: download events to a CPU are recorded in the CPU's diagnostic buffer with the source IP and the timestamp. Use this for an after-the-fact audit trail.
- Document the customer's public IP, the NAT port-forwarding, and the firewall rules in the project folder. The next engineer on rotation will need it.
13. Quick Procedure (Cheat Sheet)
- SIMATIC Manager > open the customer project.
- Open
Hardware. - Double-click the Ethernet CP or PN-IO interface.
- Replace the LAN IP with the customer's public IP.
- Save HW Config (Ctrl+S). Do not download HW Config to the PLC.
- Close HW Config.
- Select
Blocks>PLC > Download. - After the download completes, re-open HW Config and restore the LAN IP.
- Save HW Config (Ctrl+S). Do not download HW Config to the PLC.
- Run
PLC > Accessible Nodesto confirm connectivity.
14. Frequently Asked Questions
Why does "Upload station to PG" ask for an IP but "Download" does not?
Upload uses an ad-hoc S7 connection that the operator supplies at run time. Download uses the partner address stored in the offline HW Config for the Ethernet CP or PN-IO interface. To download, edit HW Config and put the public IP there — do not upload the changed HW Config to the PLC.
If I change the IP in HW Config, will it overwrite the live CP configuration?
Only if you also download HW Config to the PLC. For a pure block download, save HW Config offline (Ctrl+S) and skip the HW Config download step. The CP keeps its LAN IP; the offline project temporarily points to the public IP for the duration of the block transfer.
What ports must be open on the customer firewall for STEP 7 remote access?
TCP/102 (S7 communication / PG function) is mandatory. UDP/161-162 (SNMP) is optional for diagnostics and S7 web server. For a Remote-Desktop jump host, also TCP/3389. A site-to-site IPsec VPN uses UDP/500 and UDP/4500 (NAT-Traversal) plus ESP protocol 50.
Can the customer's public IP be dynamic?
Yes, but each time it changes the offline project must be re-edited. A Dynamic DNS (DDNS) client on the customer router, combined with editing HW Config for each session, removes the need for a static IP. The cleaner long-term answer is a VPN with a fixed endpoint on the customer side.
Is exposing TCP/102 to the public Internet safe?
It is technically supported by Siemens for engineering access, but the S7 protocol does not include transport encryption or strong authentication. A leaked STEP 7 project plus an open TCP/102 is sufficient for an attacker to issue downloads to the CPU. For any production-relevant system, terminate access through an IPsec VPN, an SSL-VPN concentrator, or a remote-maintenance gateway, and protect the CPU with a password and know-how protection.