Overview
The Siemens LOGO! 8 (FS4) Base Module supports Modbus TCP client and server functionality through its on-board Ethernet port. When you configure a LOGO! as a Modbus client to poll a Fronius inverter, you must control how often the LOGO! issues requests on the wire. In LOGO! Soft Comfort (System Manual), that cadence is governed by the Synchronization Interval, which is exposed only inside the Network Project view under Tools > Ethernet Connections. The interval is intentionally hidden from the Diagram-mode block properties because the block-level remote read/write logic depends on the connection-wide cadence set at the network layer.
This reference explains the difference between Diagram-mode configuration and Network-mode configuration, walks through the correct path to set a 1 s poll rate, and provides field-tested integration notes for Fronius Symo, Fronius Primo, and Fronius GEN24 inverters.
Prerequisites
Confirm the following before changing the poll rate:
- LOGO! 8 Base Module, hardware revision FS4 (6ED1052-1xx08-0BA1 or later), running firmware V1.81.x or newer. Earlier firmware revisions do not expose a user-settable Synchronization Interval for Modbus connections.
- LOGO! Soft Comfort V8.4 (6ED1058-0BA08-0YA1) or newer installed on the engineering PC.
- An Ethernet-connected Fronius inverter configured with Modbus TCP enabled and a fixed IP address. The default port is
502. - Knowledge of the Fronius SunSpec register map for the values you need (current, voltage, power, energy).
- PC and LOGO! on the same IP subnet, or routable via L1/L2 LAN.
LOGO! Architecture: Diagram Mode vs. Network Mode
LOGO! Soft Comfort separates user programs into two cooperating views:
| View | Menu Path | Purpose | Configurable Items |
|---|---|---|---|
| Diagram Mode | Edit > Diagram | Logic programming. Ladder/FBD programs, function blocks, I/O mapping. | Block parameters, thresholds, block-to-block wiring, remote I/O block target connection. |
| Network Project / Network Mode | Tools > Ethernet Connections | Communications setup. Ethernet nodes, S7 connections, Modbus client/server. | Connection endpoints, request frames, response mapping, Synchronization Interval. |
A Modbus client read cycle is built from three objects:
- A Connection in Network Mode that pairs a remote IP, port, and unit ID with a request/response table.
- A Function Code block in the request table (FC 3 read holding, FC 4 read input, FC 6 write single, FC 16 write multiple).
- A Remote I/O block in Diagram Mode (B<link>) that reads the latest cached value into your program.
The remote I/O block is a consumer only. It does not initiate requests; the connection engine does. That is why the block's property sheet has no Interval field.
Step-by-Step: Configure the Synchronization Interval
The procedure below configures a 1000 ms (1 s) poll rate for a Modbus client connection between a LOGO! 8 BM and a Fronius inverter.
Step 1 - Open the Network Project View
In LOGO! Soft Comfort, choose File > Open Network Project (or press Ctrl+Shift+N) to switch from the Diagram to the Network Project tree. If your project was created from a single-diagram template, the network project is auto-created; otherwise, right-click Network Project in the project tree and select Add.
Step 2 - Create an Ethernet Connection
From the menu, choose Tools > Ethernet Connections. The Ethernet Connections dialog opens with two columns: Client Connections (LOGO! as master) and Server Connections (LOGO! as slave). Add a new client connection by clicking Add Client Connection.
Step 3 - Configure Connection Endpoints
| Field | Value (Fronius example) |
|---|---|
| Remote IP Address | 192.168.1.51 (your Fronius datamanager IP) |
| Remote Port | 502 |
| Unit ID | 1 (Fronius default) |
| Protocol | Modbus TCP |
| Connection Type | Client (LOGO! initiates requests) |
| Keep Alive | Enabled (recommended) |
Step 4 - Set the Synchronization Interval
Double-click the new row to open the connection detail table. Locate the Synchronization Interval field (units: milliseconds).
Synchronization Interval = 1000 ; 1.000 s poll cadence
Click Apply and close the dialog. The interval value is now bound to the connection, not to any individual block.
Step 5 - Build the Modbus Request Table
In the same connection editor, build the request table. Each row defines one polled register group:
| # | Function Code | Start Address (offset) | Quantity | Target Variable | Poll Period |
|---|---|---|---|---|---|
| 1 | FC 3 (Read Holding) | 40069 | 2 regs | VW100 (AC Power, W) | 1000 ms (connection) |
| 2 | FC 3 (Read Holding) | 40083 | 2 regs | VW102 (Energy exported, kWh) | 1000 ms (connection) |
| 3 | FC 3 (Read Holding) | 40071 | 2 regs | VW104 (AC Voltage, V) | 1000 ms (connection) |
All rows in the table are polled on the connection's Synchronization Interval. There is no per-row interval in V1.81 firmware; if you need different cadences for different registers, create additional connections with different intervals.
Step 6 - Bind the Remote Block in Diagram Mode
Return to Diagram Mode (Diagram tree). Drag a Network Input block (B<link>) onto the canvas and configure it:
Block: Network Input (NI)
Source: Connection 1, Row 1 (AC Power)
Target: DB or VM word address (e.g., VW200)
The remote block has no Poll Rate property. The poll cadence remains 1000 ms because it is governed by the connection defined in Step 4.
Step 7 - Download and Verify
- Connect LOGO! Soft Comfort to the LOGO! over Ethernet (Tools > Transfer > PC ↔ LOGO!).
- Transfer the program (PC → LOGO!).
- Switch the LOGO! to Run.
- Open Online > Modbus Connections to inspect the connection state. The connection should show
Connectedand increment a frame counter at roughly 1 Hz.
Modbus Register Map: Fronius Inverters
Modern Fronius inverters expose the SunSpec standard register map. The table below lists common values and their SunSpec model 101/103 offsets (1-based holding register numbers):
| Quantity | Unit | SunSpec Block | Holding Register | Scale | Function Code |
|---|---|---|---|---|---|
| AC Total Current | A | 101/103 | 40070 | SF @ 40085 | FC 4 or FC 3 |
| AC Voltage L-L | V | 101/103 | 40071-40072 | SF @ 40085 | FC 4 or FC 3 |
| AC Power | W | 101/103 | 40073-40074 | SF @ 40085 | FC 4 or FC 3 |
| AC Frequency | Hz | 101/103 | 40075 | SF @ 40085 | FC 4 or FC 3 |
| Energy Exported | kWh | 101/103 | 40083-40084 | SF @ 40085 | FC 4 or FC 3 |
| DC Power | W | 101 | 40087-40088 | SF @ 40089 | FC 3 |
| Operating State | enum | 120 | 40121 | 1 | FC 3 |
When reading floating-point values stored as two 16-bit words (e.g., AC Power at 40073-40074), LOGO! reassembles them into a 32-bit IEEE-754 float in a VW (word) address. Apply the SunSpec scale factor (SF) register by multiplying the raw value by 10^SF. The Fronius web interface shows the same values; cross-check against the inverter's web UI when commissioning.
Polling Rate Considerations
Cadence choice has consequences for the network, the inverter, and the LOGO! scan budget:
- LOGO! scan budget. Each Modbus request consumes time on the LOGO! communication engine. With a 1000 ms interval and three register groups, the engine completes all reads well inside a single sync tick on V1.81 firmware. Going below 200 ms with more than 8 register groups risks overrun.
- Inverter tolerance. Fronius Symo/Primo datamanagers respond cleanly at 100 ms cadence but do not benefit from faster polling; values update internally at ~1 Hz. 1 s is the practical floor.
- TCP keep-alive. Some Modbus TCP stacks drop idle sockets after roughly 10 s. A 1 s poll exceeds that window comfortably. If you must use a longer interval (e.g., 30 s), enable TCP keep-alive in the LOGO! connection settings (firmware V1.81+) and configure a keep-alive time of 5 s.
- Network contention. When the LOGO! also serves a web page, has an HMI panel, or runs an S7 connection, the shared Ethernet bandwidth can back-pressure Modbus requests. Keep the interval at or above 500 ms in mixed-traffic installations.
Verification
After applying the configuration, perform these checks:
- In LOGO! Soft Comfort, choose Online > Modbus Connections. The connection row should display
State = Connected,Requests Sent > 0, andResponses Received > 0with the request counter incrementing once per interval. - Open Online > Watch Table and add the target VM words (VW100, VW102, VW104). Confirm values change over a 30 s window as the inverter produces or idles.
- From a PC on the same network, run Modbus Poll as a sanity check against the inverter; values should match the LOGO! watch table within one update cycle.
- In the LOGO! display (onboard or LOGO! TDE), navigate to Diagnostics > Ethernet. The error counter should remain at 0.
- Trigger a power-down of the inverter; after recovery the LOGO! should auto-reconnect within the first interval. If it does not, check the connection timeout parameter (default 3000 ms).
Troubleshooting Matrix
| Symptom | Likely Cause | Remedy |
|---|---|---|
| No Synchronization Interval field visible | Block-level (Diagram Mode) view instead of Network Mode | Open Tools > Ethernet Connections, double-click the connection row |
| Interval field greyed out | Connection is configured as Server (LOGO! is slave) | Delete the row, add a Client connection instead |
Connection state stays Connecting
|
Wrong IP, port, or unit ID; firewall on the inverter LAN | Use Modbus Poll to validate; check Fronius Web UI under Settings > Modbus for enabled status and unit ID |
| Connection drops after ~10 s | TCP idle timeout on the slave | Reduce interval below 10 s or enable TCP keep-alive with 5 s period |
| Values jump or hold stale | Wrong register offset (0-based vs. 1-based) | Fronius uses 1-based holding registers; subtract 40001 from the holding-register number to get the protocol offset |
| Negative or huge numbers in VW | Byte order swap on 32-bit values | Set the LOGO! byte order to Big Endian (default) and check the SunSpec SF register |
| Slow response under 200 ms interval | Excessive register count or scan budget overrun | Raise the interval to 500 ms or split reads across two connections |
| LOGO! display shows "No connection" | Firmware < V1.81 | Update LOGO! BM firmware to V1.81.x via the Siemens support site |
Alternative Controllers and Cross-Platform Notes
Engineers often compare LOGO! against other small PLCs for Modbus TCP client duty. The configuration ergonomics differ:
| Controller | Where Poll Rate Lives | Minimum Practical Interval |
|---|---|---|
| Siemens LOGO! 8 FS4 | Tools > Ethernet Connections → Synchronization Interval | 50 ms (firmware-limited) |
| Siemens S7-1200 (CPU 1214C DC/DC/DC) | MB_CLIENT instruction: REQ triggers one transaction per scan |
10 ms (scan-limited) |
| Schneider Modicon M340 | Unity Pro: READ_VAR / WRITE_VAR with periodic task trigger | 5 ms (task-limited) |
| Allen-Bradley CompactLogix | MSG instruction triggered by periodic task | 10 ms (RPI-limited) |
| WAGO PFC200 | e!COCKPIT: Modbus TCP master cycle time on the device | 10 ms |
The LOGO! pattern (connection-wide interval) is unusual. Most controllers put the cadence on the instruction, not the connection. If you migrate a project from LOGO! to S7-1200, replicate the cadence by triggering MB_CLIENT from a 1 s cyclic interrupt OB.
Field-Commissioning Checklist
- Confirm Fronius datamanager IP, gateway, subnet mask via the inverter's web UI (Settings > Network).
- Confirm Modbus TCP is enabled on the Fronius (Settings > Modbus > TCP Server toggle = on).
- Note the Fronius unit ID (default 1; some installations use 2 to coexist with a third-party meter).
- Reserve a fixed IP for the LOGO! BM (e.g., 192.168.1.20) outside the DHCP range.
- Document the Synchronization Interval (ms), each polled register, and the scale factor on the project's wiring diagram.
- During SAT, capture a 60 s Wireshark trace of port 502 traffic to confirm request/response pairing and cadence.
Why does the Diagram Mode block have no poll rate field?
The remote I/O block in Diagram Mode is a read-only consumer of the most recent cached value. It does not initiate Modbus requests; the connection defined under Tools > Ethernet Connections does. The Synchronization Interval is therefore a property of the connection, not the block.
What is the minimum Synchronization Interval I can set on LOGO! 8 FS4?
On firmware V1.81.01 and newer, the lowest accepted value is 50 ms. The dialog rejects entries below that threshold. Values below 200 ms are not recommended when more than eight register groups are configured because the request queue can overrun.
How do I avoid TCP socket timeouts when polling at long intervals?
Either keep the Synchronization Interval below the slave's idle timeout (typically 10 s for Fronius datamanagers) or enable TCP keep-alive on the LOGO! connection with a 5 s period. Without either, a 30 s interval will appear to disconnect after the first idle window.
Can I poll different registers at different rates from one LOGO!?
No. All rows in a single connection's request table share the same Synchronization Interval on V1.81 firmware. To read register group A at 1 s and group B at 5 s, define two separate client connections, each with its own interval and IP target.
How do I read 32-bit float values from a Fronius SunSpec register pair?
Read the 16-bit register pair with function code FC 3 or FC 4 and store it into a 32-bit word (VW) address. The LOGO! reassembles the pair as a 32-bit IEEE-754 float in big-endian byte order. Then multiply by 10^SF where SF is the scale-factor register published alongside the value (for AC Power at registers 40073-40074, read SF from 40085).
Will a 1 s poll rate overload the Fronius inverter?
No. Fronius datamanagers comfortably sustain 1 Hz Modbus TCP polling. Internal measurement cadence is already approximately 1 Hz, so polling faster yields no additional resolution and only adds network traffic.