1. Overview: S7-1200 Peer-to-Peer Architectures for AGV Applications
Automated Guided Vehicles (AGVs) typically use a two-controller architecture: a stationary "master" controller that aggregates environmental sensor data (LiDAR, RFID, line-track photoeyes, zone beacons) and a "vehicle" or "slave" controller mounted on the AGV chassis that handles motor control, steering, and safety I/O. The two controllers must exchange orders, setpoints, and status frames over a wireless link — most commonly an Industrial Wireless LAN (IWLAN) backbone built on the SCALANCE W product family.
For the S7-1200 platform, three PROFINET/Ethernet-based methods can carry peer-to-peer traffic between two CPUs:
- PUT/GET – asymmetric, single-sided configuration, up to 160 bytes per call. Available on all S7-1200 CPUs; remote access must be explicitly enabled in TIA Portal from firmware V4.0 onwards.
- PROFINET I-Device – the vehicle CPU is configured as an I-Device (intelligent device) and the master acts as IO-Controller. Symmetric configuration, up to 1440 bytes of process data, and the I-Device transfer areas are mapped like distributed I/O on the controller side.
-
Open User Communication (OUC) – connection-oriented via
TSEND_C/TRCV_C(orTCON,TSEND,TRCV) over TCP, UDP, or ISO-on-TCP. Fully flexible payload size; requires structured DB programming and is the most portable across firmware versions.
The choice of method depends on payload size, latency budget, deterministic I/O behaviour, and whether the AGV PLC needs to expose its data to the master as if it were a remote I/O station (I-Device) or as a true peer (PUT/GET / OUC).
2. Prerequisites: Hardware, Firmware, and Software
Confirm the following before starting the configuration:
| Component | Minimum / Recommended | Notes |
|---|---|---|
| Master CPU | S7-1200 CPU 1215C DC/DC/DC or 1217C | FW V4.2 or higher recommended for large I-Device transfer areas |
| Vehicle (I-Device) CPU | S7-1200 CPU 1214C DC/DC/DC | FW V4.0+ required for I-Device; FW V4.2+ recommended for >240 byte transfer areas |
| TIA Portal | V15.1 or higher (V16/V17/V18 supported) | HSP for CPU FW V4.4/V4.5 must be installed; TIA Portal HSP download portal |
| SCALANCE W Access Point (warehouse side) | SCALANCE W786-2 IA or W1788-2 M12 | Operates as IWLAN AP, supports iPCF for deterministic handover |
| SCALANCE W Client (AGV side) | SCALANCE W721-1 RJ45 or W722-1 M12 | Client mode, iPCF enabled, fast roaming |
| Antenna | Dual-band omni directional, ANT792-6MN | Diversity mode for moving vehicles |
| PoE Switch / Power | SCALANCE XC206-2G PoE or SITOP PSU8200 | 24 V DC for AGV cabinet; PoE+ for APs |
Verify firmware version in TIA Portal under Online > Accessible devices or via the CPU display: Diagnostics > General > Firmware version. The I-Device role is supported in CPU firmware V4.0 and above; PUT/GET to a remote partner (across a router) was added in V4.0 with the "Permit access with PUT/GET communication from remote partner" option.
3. Communication Method Comparison
| Criterion | PUT/GET | PROFINET I-Device | Open User Communication |
|---|---|---|---|
| Configuration effort | Low — only one side configured | Medium — both sides configured, transfer areas defined | Medium-High — connection DB, TSEND_C/TRCV_C blocks |
| Max user payload per call | 160 bytes (max 4 calls = 640 bytes practical) | 1440 bytes (split across input/output areas) | Up to 65534 bytes (TCP) / 1472 bytes (UDP typical) |
| Connection type | S7 connection (unilateral) | PN IO real-time, RT or IRT | TCP / UDP / ISO-on-TCP |
| Determinism | Best-effort, depends on IWLAN jitter | RT cycle time-bounded; IRT isochronous | Best-effort, application-controlled |
| CPU firmware | Any S7-1200 FW | FW V4.0+ | Any S7-1200 FW |
| Connection resource usage | 1 S7 connection per partner | 1 PN IO connection per I-Device | 1 TCP connection per call (system resource) |
| Best for AGV use case | Small status/command sets (≤160 B) | Drive setpoints + status + safety (≤1440 B) | Large telemetry, log streaming, diagnostics |
4. IWLAN Network Architecture with SCALANCE W
A typical AGV deployment uses SCALANCE W access points mounted at ceiling height in a grid that fully covers the AGV's travel path. The vehicle-mounted SCALANCE W client (in client mode) associates to the strongest AP and "roams" between cells as the vehicle moves. The PROFINET traffic between the two S7-1200 CPUs travels through this wireless bridge exactly as if it were wired copper.
Key settings on the SCALANCE W devices (configured via Web-Based Management or TIA Portal topology):
- SSID: AGV_BACKBONE (broadcast disabled for security; pre-shared key WPA2/AES-CCMP).
- Channel: fixed 5 GHz channel, e.g. channel 52 (DFS-clear in EU), or use iREF for automatic channel selection.
- DTIM interval: 1 beacon (low latency for control frames).
- iPCF (industrial Point Coordination Function): enabled on both AP and client — gives <1 ms deterministic handover and 0 ms handoff time when crossing cell boundaries. Required for PROFINET RT traffic on moving vehicles.
- Max client roam time: <50 ms. SCALANCE W1788 supports <30 ms with iPCF-master.
- RSTP disabled on the wireless side; use iPRP for parallel radio redundancy if dual-radio SCALANCE W788 is used.
Refer to the SCALANCE W700/W1700 Configuration Manual (Entry ID 90880063) for the full parameter set, country-specific DFS tables, and iPCF cell planning rules.
5. I-Device Method — Step-by-Step Configuration
The I-Device approach is the recommended method when the master must read the AGV's drive state, battery state, safety diagnostics, and write setpoints (target speed, target steering, job ID) with PROFINET RT semantics. Detailed application example: "I-Device Function in Standard PN Communication" (Entry ID 109478798).
5.1 Configure the Vehicle (I-Device) CPU
- Open the vehicle PLC project in TIA Portal. Select the CPU, then in the inspector go to Properties > PROFINET interface > Operating mode.
- Set the interface role to "I-Device" (not "IO-Device"). Tick "IO-Controller" if the vehicle also has local distributed I/O to control (typical for an AGV chassis with SINAMICS V90 or SIMATIC ET 200 I/O).
- Under Real time settings, set the send clock to 1 ms and the update time to 1×R (1 ms) for RT. If you need isochronous mode, set the same values on the master.
- Under Transfer areas, click Add new and create:
- Slot 0: Input area (AGV → Master), 64 bytes, starting at IB 100. Name:
iDev_Inputs_to_Master. - Slot 1: Output area (Master → AGV), 32 bytes, starting at QB 100. Name:
iDev_Outputs_from_Master.
- Slot 0: Input area (AGV → Master), 64 bytes, starting at IB 100. Name:
- Assign a unique PROFINET device name (e.g.
agv-vehicle-01) and IP address (e.g.192.168.10.51/24). The vehicle will be identified by this name on the master's PROFINET topology. - Compile and download to the vehicle CPU.
5.2 Configure the Master (IO-Controller) CPU
- In the master project, open Devices & networks and add the vehicle PLC as a device. Use the GSD file or the partner project reference.
- Drag the I-Device from the catalog into the network view. The connection is established automatically as an RT IO link.
- Assign the master's PROFINET interface IP (e.g.
192.168.10.1/24). - Open the device view of the master and click on the I-Device slots — you will see the transfer areas you defined on the vehicle CPU now appear as inputs and outputs in the master's I/O map. The starting addresses are negotiated automatically; you can override them (e.g. map to IB 200 / QB 200 in the master).
- Compile the master project and download.
5.3 Verify the I-Device Link
From the master PLC, open a watch table and add the I-Device input address. If the link is up, the first byte (IB 200) will show the PROFINET IO status. The PROFINET diagnostics can also be read in Online & diagnostics > PROFINET diagnostics. The PNIO_SEND / PNIO_RECV blocks are not used on the S7-1200 — those are S7-300/400 legacy blocks. S7-1200 I-Device data is consumed directly via process image or via DPRD_DAT / DPWR_DAT instructions if the addresses are outside the process image.
6. PUT/GET Method — Step-by-Step Configuration
PUT/GET is the simplest method for small payloads and is fully supported on the S7-1200. The full procedure is documented in the S7-1200 System Manual and in the application example "Open User Communication with S7-1200" (Entry ID 109747710).
6.1 Enable PUT/GET Access
- On the master CPU, open Properties > Communication > Access to the CPU.
- Tick "Permit access with PUT/GET communication from remote partner". This option is required because the vehicle PLC is on a different IP subnet reached through the SCALANCE W AP (a router). Without this, the master rejects remote PUT/GET calls.
- Compile and download.
6.2 Create DBs and Call PUT/GET on the Master
- Create DB 100 (master send data) and DB 200 (master receive data) in the master PLC. Each holds the data to be exchanged (max 160 bytes per call, 160-byte boundary alignment recommended).
- Call
PUTin OB1:PUT(REQ := M10.0, ID := 1, ADDR_1 := P#DB200.DBX0.0 BYTE 100, RD_1 := P#DB100.DBX0.0 BYTE 100)— this writes master DB 100 → vehicle DB 200. - Call
GETin OB1:GET(REQ := M10.1, ID := 2, ADDR_1 := P#DB300.DBX0.0 BYTE 100, RD_1 := P#DB200.DBX0.0 BYTE 100)— this reads vehicle DB 300 → master DB 200. - The
IDparameter is a free connection ID (1..255). TheADDR_1pointer is the remote partner's DB address; this is what is configured on the calling side only — nothing must be configured on the vehicle PLC itself.
6.3 No Configuration on the Vehicle PLC
This is a unique property of PUT/GET: the receiving CPU has zero knowledge of the connection. It does not need its own PUT/GET call, does not need a connection resource reservation, and does not need a configured partner. It just answers PUT/GET requests from authorized IP addresses. The vehicle CPU must, however, have its protection level set such that it will accept remote PUT/GET access (set to "Full access incl. fail-safe" or use a separate user with communication rights).
7. Open User Communication (TSEND_C / TRCV_C)
For larger or variable-length payloads (such as diagnostic logs, or an order list), OUC is the most flexible method. TIA Portal V15.1+ provides a wizard:
- Drag
TSEND_Cinto OB1 from Instructions > Communication > Open User Communication. - The wizard prompts for the connection type — choose TCP for AGV telemetry, UDP for one-way broadcast, or ISO-on-TCP for S7-compatible large payloads.
- Enter the partner IP (e.g.
192.168.10.51), the partner port (e.g.2000), and the local port (e.g.2001). - The wizard auto-generates the connection DB (DB 502) and a length / error status DB. Enable
CONTfor active connection establishment; the master can be the active side and the vehicle the passive side. - Repeat for
TRCV_Con the master to receive responses from the vehicle.
For broadcast telegrams (e.g. fleet-wide "all-stop" command), use UDP. A single TSEND_C with an ADHOC send length can address up to 1472 bytes per packet on a 1500-byte MTU wireless network. Lower MTU on 5 GHz is recommended to 1300 to avoid fragmentation during roaming.
8. Data Mapping and Tag Allocation
Define a clear data contract between the two PLCs. A typical AGV payload looks like this:
| Direction | Offset (bytes) | Length | Meaning | Data type |
|---|---|---|---|---|
| Master → AGV | 0 | 1 | Command (0=stop, 1=move, 2=charge, 3=dock) | BYTE |
| Master → AGV | 1 | 2 | Target velocity (mm/s) | INT |
| Master → AGV | 3 | 2 | Target steering angle (0.1° resolution) | INT |
| Master → AGV | 5 | 4 | Job ID | DWORD |
| AGV → Master | 0 | 1 | Status (0=idle, 1=run, 2=warn, 3=fault) | BYTE |
| AGV → Master | 1 | 2 | Current velocity (mm/s) | INT |
| AGV → Master | 3 | 2 | Battery state-of-charge (%) | INT |
| AGV → Master | 5 | 4 | Current X position (mm, int32) | DINT |
| AGV → Master | 9 | 4 | Current Y position (mm, int32) | DINT |
| AGV → Master | 13 | 2 | Active fault code | UINT |
For PUT/GET, the entire 100-byte payload fits in a single call. For I-Device, define two transfer areas (input and output) with the master offset starting at 0. For OUC, define a UDT that mirrors the above and serialise it into a DB of length LEN.
9. Diagnostics and Verification
Use the following diagnostic points to verify the link is healthy:
- Watch table — create a watch table on the master with the input process image, force a known pattern, and verify it lands in the vehicle's DB. The PROFINET status byte (bit 0 = "IO-Controller in RUN") tells you the cyclic link is up.
-
CPU diagnostic buffer — under Online & diagnostics > Diagnostic buffer, look for events with ID
0x001E(connection established) or0x001F(connection lost). Connection loss on IWLAN during handover is normal and should clear within 50 ms. - SCALANCE W Web-Based Management — check the W client's Information > WLAN > Clients page for RSSI, link quality, and association time. RSSI < -75 dBm triggers a roam attempt; -80 dBm is the typical cutover threshold.
- PROFINET diagnostics — Online & diagnostics > PROFINET diagnostics > Port statistics: discard count, CRC error count, late collision count. A healthy link has zero discards and zero CRC errors.
- PROFINET alarms — channel-diagnostic alarms from the I-Device carry the diagnosis in plain text. A common alarm is "station failure" if the I-Device loses its connection to the master.
10. Troubleshooting Matrix: Common Faults and Corrections
| Symptom | Likely cause | Corrective action |
|---|---|---|
| Watch table shows all zeros, no errors | Wrong PROFINET device name on I-Device | Use Online & diagnostics > Assign PROFINET device name to push the configured name to the vehicle CPU |
| "Permit access with PUT/GET communication from remote partner" missing | CPU firmware older than V4.0 | Update firmware via TIA Portal to V4.2 or V4.4 using the SIMATIC Automation Tool or SD card upgrade |
PUT returns error code 8090
|
Connection resource exhausted on remote CPU | Reduce number of simultaneous S7 connections, or use OUC to consolidate |
PUT/GET returns error code 80B1
|
DB on remote CPU does not exist or is too short | Verify DB number and length; the call's byte count must not exceed the actual DB length |
| I-Device link drops every 5–10 seconds | IWLAN roaming event not handled by AP | Enable iPCF, set iPCF-Master role, verify DFS channels, and check that all APs are in the same iPCF domain |
| High latency spikes (>200 ms) on PROFINET RT | Roaming handoff exceeding PROFINET watchdog | Increase PROFINET update time to 4 ms or 8 ms during commissioning, then tighten after handoff is confirmed <30 ms |
| SCALANCE W client associates but no IP traffic | VLAN tag mismatch between AP and S7-1200 | Set the SCALANCE W port PVID and the S7-1200 PROFINET interface to the same VLAN ID; disable VLAN on a flat layer-2 segment for first tests |
| Connection OK in TIA, no data on first cycle | Process image update not triggered | Read via DPRD_DAT on the first cycle or call SYNC_PI / SYNC_PO if using OUC to force an image refresh |
| CPU fault SF LED steady, BF LED blinking | No PROFINET partner or wrong IP | Use Online > Accessible devices to scan; correct IP/subnet mask; verify SCALANCE W has IP forwarding enabled (default) |
PUT/GET call returns 80C3
|
Short length (read fewer bytes than configured) | Verify the call's LEN parameter matches the actual data size; check DB boundaries |
11. Field Commissioning Checklist
- Flash both CPUs to identical or compatible firmware; back up the project to a TIA Portal archive.
- Verify PROFINET device names and IP addresses on each CPU display before powering the SCALANCE W radios.
- Use a wired connection for first commissioning: laptop on the master PROFINET port, S7-1200 directly to the master PROFINET port. Verify the I-Device link is stable for 30 minutes before introducing the wireless link.
- Connect the SCALANCE W AP, assign it an IP in the management VLAN, set the SSID and iPCF channel plan, and confirm a wired client can associate.
- Install the SCALANCE W client on the AGV, associate, and confirm the vehicle's PROFINET device name is still visible from the master.
- Run the AGV through the entire cell at slow speed. Capture RSSI logs from the SCALANCE W client and confirm no roams exceed 50 ms.
- Introduce PROFINET update time. Start at 8 ms, then drop to 4 ms and 2 ms as the cell plan stabilises.
- Inject a fault — pull power on the AGV — and verify the master's diagnostic buffer records the loss-of-station alarm with the correct timestamp.
- Document the cell map, channel assignments, RSSI thresholds, and PROFINET cycle times for the maintenance crew.
12. FAQ
What is the maximum data payload for I-Device vs PUT/GET on S7-1200?
I-Device supports up to 1440 bytes of process data per device (sum of input and output areas). PUT/GET is limited to 160 bytes per call; using multiple sequential calls you can reach more, but each call is a separate S7 message. For payloads above 160 bytes, prefer I-Device or Open User Communication (OUC) with TSEND_C / TRCV_C.
Does PUT/GET need to be configured on both S7-1200 CPUs?
No. PUT/GET is a unilateral connection — the calling CPU is configured with the partner's DB address, while the partner CPU only needs to have remote access permitted (from firmware V4.0 the option "Permit access with PUT/GET communication from remote partner" must be enabled). The partner does not call PUT or GET and does not reserve an S7 connection resource for it.
Can PNIO_SEND and PNIO_RECV be used on the S7-1200?
No. PNIO_SEND and PNIO_RECV are S7-300/400 PROFINET IO-Controller instructions and are not present in the S7-1200 instruction set. For an S7-1200 I-Device, data is consumed directly through the process image or via the DPRD_DAT and DPWR_DAT instructions when the addresses lie outside the process image.
Which SCALANCE W settings are required for PROFINET on a moving AGV?
Enable iPCF (industrial Point Coordination Function) on both the access point and the client. iPCF gives a deterministic, sub-millisecond cell handover and is required for PROFINET RT to survive the AGV crossing cell boundaries. Set the PROFINET update time to 4 ms or 8 ms during commissioning, and verify SCALANCE W Web-Based Management shows roam times under 50 ms.
What firmware version of the S7-1200 is required for I-Device?
The I-Device role on the S7-1200 PROFINET interface is supported from firmware V4.0. For the full 1440-byte transfer area and stable behavior on the I-Device side, firmware V4.2 or higher is recommended. PUT/GET to a remote partner across a router is also gated by the V4.0 "Permit PUT/GET access from remote partner" option; pre-V4.0 CPUs only allow local PUT/GET to direct partners.