Siemens Recipe Distribution Across S7-1200 PLC Networks

David Krause13 min read
Batch ProcessingSiemensTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

1. Problem Statement and Engineering Scope

Distributing a single set of manufacturing recipe parameters (setpoints, ramp times, dwell durations, alarm thresholds, motion profiles) across a population of identical or near-identical SIMATIC S7-1200 controllers is a recurring requirement on multi-machine lines, parallel packaging cells, and skid-mounted process skids. Although the source content frames this as a master/follower question, the real engineering scope is broader: it spans PLC-to-PLC communication, HMI recipe objects, network-attached storage, and—where regulatory traceability applies—SIMATIC Batch and MES layers.

For sites running more than a handful of identical machines, the naive approach of editing recipes on each panel introduces non-conformance risk: drift between controllers, version confusion, and lost audit trail. This document compares the four production-grade architectures that Siemens tooling supports natively (iSlave, OPC UA, master PLC with remote racks, and CSV exchange via a network share) and aligns each with the matching software stack in TIA Portal, WinCC Unified, and SIMATIC Batch.

Scope clarification: Even when machines are "identical," real installations drift over time. Different firmware versions, replacement VFDs, alternate encoder scaling, and field-side modifications mean a recipe that runs cleanly on machine A may fault on machine B. Treat any cross-machine recipe push as a parameter distribution problem, not a configuration cloning problem.

2. Architecture Options Comparison

The table below summarizes the four primary Siemens-native recipes distribution topologies. Selection should be driven by cell count, tolerance for PLC-to-PLC traffic, and whether the recipe must be versioned at the batch/MES layer.

Architecture Recommended cell count Network Versioning TIA Portal blocks Key constraint
Master PLC + iSlave (PUT/GET via ISO-on-TCP) 2 – 16 Profinet or Industrial Ethernet Single DB on master PUT / GET, TSEND / TRCV Master S7-1200 must be firmware V4.0+ for iSlave (CPU 1212C – 1215C and 1217C)
Master PLC + ET 200SP remote I/O rack 2 – 8 Profinet IRT Single DB on master Standard I/O access All motion/HMI stops when master CPU is in STOP
OPC UA server/client (S7-1500 ↔ S7-1200) 4 – 64+ Profinet or standard Ethernet Read-only clients, write-on-master model OPC_UA_Server, OPC_UA_Client S7-1200 OPC UA server requires firmware V4.4+ and a separate license; client is V4.5+
CSV export/import via SMB share 2 – 100+ Any routable Ethernet File timestamp + checksum FileDB, FileReadC / FileWriteC (S7-1500) or FTP_DB (S7-1200 V4.3+) Requires non-volatile storage (memory card) and S7-1200 firmware V4.3+ for FileWriteC
SIMATIC Batch + WinCC Unified recipes 8 – 1000+ Plant backbone to MES Database (SQL/Oracle) with full audit trail External; integrated via BATCH interface Requires SIMATIC Batch V9.x license and PCS 7 or WinCC Unified V18+

3. Option A — Master PLC with iSlave S7-1200 Controllers

The iSlave role allows an S7-1200 to be configured as an I/O device on a Profinet IRT network where a master S7-1500 (or another S7-1200) reads/writes its process image. In recipe terms, the master CPU holds the Recipe_DB in a single retentive data block; iSlaves consume those tags as remote I/O and never host the recipe themselves.

Activation in TIA Portal:

  1. Open the iSlave CPU's device configuration and enable Operating mode → I-device in the Properties > General tab.
  2. In the I-device area, add a transfer area (for example, Recipe_to_Slave_1) mapped to %ID100..%ID131 (16 words / 32 bytes covers a 32-recipe setpoint block of REAL values).
  3. Compile and download. The iSlave project may remain on a separate TIA Portal instance, or you may deploy the GSD file from the master project.

Update rate vs. recipe size:

Profinet send clock Transfer area size Effective recipe refresh CPU 1215C scan impact
1 ms (IRT) 32 bytes ≤ 1 ms ~5–8 % additional OB1 time
2 ms (IRT) 128 bytes ≤ 2 ms ~3 %
4 ms (RT) 256 bytes ≤ 4 ms ~1 %

Formula for transfer sizing:

Transfer_area_bytes = N_recipes × (N_real_setpoints × 4 + N_int_setpoints × 2 + N_bool_setpoints × 1) + 16 (header / status word)

For a 50-recipe / 24-REAL / 8-INT / 16-BOOL payload, this evaluates to 50 × (96 + 16 + 16) + 16 = 6416 bytes—well within the iSlave 1024-byte-per-area limit when split across multiple transfer areas.

An iSlave S7-1200 will not boot its application (OB1) until the Profinet connection to the master is established. If the master CPU is in STOP, all iSlaves enter a substitute-value state for their assigned outputs. Plan a last-known-good recipe fallback for safety-rated outputs.

4. Option B — Master PLC with ET 200SP Remote Rack

If the follower machines are pure remote I/O (no local logic, no HMI of their own), the simplest pattern is to keep one master S7-1500 (or S7-1516 Profinet) and connect the follower machine's sensors and drives as ET 200SP heads. The recipe is then a single DB on the master.

Use this architecture when:

  • All follower machines run the same firmware, hardware layout, and Profinet device list.
  • The follower's HMI is centralized on the master line HMI (WinCC Unified Comfort Panel or PC).
  • Failure of the master CPU should stop all followers simultaneously (single fault domain).

5. Option C — OPC UA Server/Client on S7-1200

OPC UA is the recommended pattern when machines are physically distributed (different panels, different cabinets) and each follower must run its own local OB1, HMI, and motion. Each follower S7-1200 acts as an OPC UA server exposing a read-only recipe namespace; the master (or a dedicated recipe server) pushes values via an OPC UA client call.

Firmware prerequisites (per Siemens manual "S7-1200 OPC UA Server" entry ID 109771175):

  • S7-1200 OPC UA server: firmware V4.4 or higher, plus a 6ES7 672-0AA08-0YA0 or current OPC UA runtime license.
  • S7-1200 OPC UA client: firmware V4.5 or higher, with the OPC UA client block set (FB 10000+ template in TIA Portal V17+).
  • Recommended: TIA Portal V18 with the OPC UA configurator in the device view's "OPC UA" editor pane.

Example SCL function block (recipe push to one follower):

FUNCTION_BLOCK "FB_PushRecipeToFollower"
VAR
    uaClient : "OPC_UA_Client_DB";     // TIA Portal V18 instance DB
    recipe   : ARRAY[1..50] OF "UDT_RecipeRow";
    iState   : INT;                    // 0=idle, 1=connecting, 2=writing, 3=done, 99=error
END_VAR

BEGIN
    CASE iState OF
        0:  // Idle — request connection
            "uaSessionReq".SessionEndpoint := 'opc.tcp://192.168.10.42:4840';
            "uaSessionReq".SessionTimeout  := T#30S;
            iState := 1;
        1:  // Connection established (handled inside the FB)
            IF uaClient.Done AND NOT uaClient.Error THEN
                iState := 2;
            ELSIF uaClient.Error THEN
                iState := 99;
            END_IF;
        2:  // Write recipe array to follower namespace
            "uaWriteReq".NamespaceIndex := 2;
            "uaWriteReq".NodeId        := 'ns=2;s=Recipe:Setpoints';
            "uaWriteReq".Value         := recipe;
            "uaWriteReq".Execute        := TRUE;
            IF "uaWriteReq".Done THEN iState := 3; END_IF;
            IF "uaWriteReq".Error THEN iState := 99; END_IF;
        3:  // Done
            iState := 0;
        99: // Error handler — log to diagnostic DB and reset after 5 s
            "diagDB".LastError := uaClient.Status;
            iState := 0;
    END_CASE;
END_FUNCTION_BLOCK

Performance budget: a 50-row, 96-byte recipe payload over OPC UA on a 100 Mbit/s Profinet segment typically completes the write in 80 – 150 ms with security policy None, and 200 – 350 ms with Basic256Sha256 signing+encryption. For recipes that change less than once per shift, this is negligible; for recipes changed every 30 s on 30 machines, expect ~3 % bandwidth utilization and design for a dedicated recipe VLAN.

6. Option D — CSV / File Exchange via SMB or SFTP Share

The simplest and oldest pattern: a centralized Windows file share (or SFTP target on a SCADA server) holds Recipe_001.csv … Recipe_999.csv. Each panel exports the currently active recipe, and a scheduled task on a recipe server pushes the new file to \RecipeServer\share\<line>\. S7-1200 firmware V4.3+ supports FTP_DB and the FileWriteC / FileReadC family of instructions for direct transfer of recipe rows to a SIMATIC memory card or external FTP server.

Recommended file schema:

recipe_id,recipe_version,setpoint_temp_c,ramptime_s,dwell_s,tollerance_pct,checksum_crc32
REC_0501,2025-11-04.1,82.5,180,600,1.5,0xA1B2C3D4
REC_0502,2025-11-04.1,76.0,240,900,2.0,0x55AA12FE

Engineering checklist for CSV push:

  1. Define a single recipe of record schema with a 32-bit CRC32 trailer; the follower S7-1200 rejects any row whose CRC fails.
  2. Use a write-then-rename pattern: FTP server writes REC_0501.csv.tmp and renames to .csv atomically to prevent followers from reading a half-written file.
  3. On the S7-1200, poll the file modification time; only re-import if the timestamp or CRC differs from the cached version.
  4. Persist the last-good recipe in a retain DB so a follower survives an FTP server outage.
SIMATIC memory cards have a finite write endurance (~100 000 cycles for the 4 MB and 24 MB cards per Siemens specification 6ES7 954-8…). Restrict the recipe push frequency to ≤ 1 write/minute and never use the recipe directory for trending data.

7. WinCC Unified Recipe System

For new TIA Portal V18+ projects, the Unified Recipe object in WinCC Unified Comfort Panels and WinCC Unified PC is the recommended HMI-side recipe engine. It provides a structured recipe (parameter list with min/max/engineering units), data record management, and export/import to .csv or .xml.

WinCC Unified variant Max recipes Max data records per recipe Online change External storage path
Comfort Panel (MTP700 – MTP2200) 1000 1000 No \Storage Card\Recipes\
WinCC Unified PC (V18.1+) 5000 5000 Yes (with engineering station) C:\ProgramData\Siemens\Automation\Recipes\
WinCC Unified Station (V19+) 10000 10000 Yes SQL Server, SQLite, or local file

Recipe tags are mapped by symbolic name to PLC DB members, not by absolute address. This decoupling is what enables a single WinCC Unified screen to drive recipe selection on any of the follower S7-1200 CPUs by simply pointing the connection at a different IP address — see the Siemens MAVAL automatic recipe control page for a reference dosing-system implementation.

8. SIMATIC Batch for Regulated Industries

When recipes must be electronically signed, versioned, and traced to a finished-goods lot (food & beverage, pharma, fine chemicals), Siemens layers SIMATIC Batch and an MES (such as Opcenter Execution) above the PLC layer. The MES holds the master recipe, SIMATIC Batch holds the control recipe, and the S7-1200 / S7-1500 executes the working recipe.

Layer Owner Storage Approval Communication
Master recipe (MES) Process engineer SQL/Oracle Electronic signature (21 CFR Part 11) OPC UA or BATCH API
Control recipe (SIMATIC Batch) Batch operator BSM database Operator ID + password WinCC Unified BATCH interface
Working recipe (PLC) Automation Recipe_DB (retentive) None — runtime copy Direct DB mapping

For a discussion of the Batch Control Center failure mode where recipes fail to open in the editor, see the Siemens Support entry "Simatic Batch - Unable to open any recipes on Batch Control Center" for the canonical remediation steps (BCC service account reset, BSM database re-attach, and recipe folder NTFS re-permissioning).

9. Network and Security Considerations

Recipe push traffic is low-volume but can be high-fan-out. On a 100 Mbit/s Profinet segment:

  • OPC UA Basic256Sha256 to 30 followers, 50 recipes each, 96 bytes: 30 × 50 × 96 × 8 bits ≈ 11.5 Mbit/s burst; with TLS handshake overhead, allocate 5 % sustained utilization headroom.
  • CSV via FTP: 1 Mbit/s sustained for 5-minute push window on 50 machines, peak 8 Mbit/s.
  • iSlave: deterministic 1 ms cycle, no IP/TCP overhead — preferred for hard real-time motion cells.
Restrict recipe push to a dedicated VLAN and disable TIA Portal download on follower CPUs in production. A "live" engineering download on a follower S7-1200 will momentarily interrupt the Profinet I/O update and may trigger a recipe-validation fault in the master.

10. Implementation Procedure

  1. Inventory the cells. Capture firmware version, hardware layout, and any field-modifications for each follower S7-1200. Anything older than the master CPU's firmware must be upgraded (or quarantined from recipe push) before step 4.
  2. Lock the recipe schema. Define a single UDT_RecipeRow with engineering units, min/max, and a CRC32 trailer. Deploy it to all TIA Portal projects via a master library.
  3. Pick the architecture. Use the comparison table in section 2. Default to Option C (OPC UA) for > 4 distributed cells, Option A (iSlave) for tightly-coupled motion cells, Option D (CSV) for > 20 cells with infrequent recipe changes.
  4. Deploy the recipe server. For OPC UA: install the OPC UA client FB into the master S7-1500 and provision security certificates on every follower S7-1200.
  5. Commission one follower first. Validate CRC, end-to-end timing, and HMI round-trip before turning on fan-out to the remaining cells.
  6. Enable the audit trail. Log every recipe push (timestamp, user, CRC, source) to a non-volatile DB or to WinCC Unified's alarm log.
  7. Schedule the rollback path. Define the operator action that reverts to the last-good recipe if a follower rejects the push.

11. Verification and Acceptance Tests

Run these FAT checks on the first cell before scaling to the rest of the line:

Test Procedure Pass criterion
Recipe push round-trip Write 50-row recipe from master, read back from follower Byte-identical, CRC matches
Loss-of-commissioning Pull the Ethernet cable during push, observe follower behavior Follower retains last-good recipe, alarms, no uncontrolled output change
HMI refresh Select recipe 25 on HMI, observe follower setpoint update ≤ 2 s end-to-end (OPC UA) / ≤ 100 ms (iSlave)
Version increment Modify one setpoint, re-push, verify only that row updates Audit log shows one row version bump, CRC delta matches modified cells only
Master CPU STOP Stop master, observe follower state iSlaves enter substitute-value state; OPC UA followers continue running on last-good
Throughput Time a full recipe set download (50 recipes × 96 bytes) to 30 followers ≤ 30 s for OPC UA; ≤ 5 s for iSlave; ≤ 120 s for CSV

12. Troubleshooting Matrix

Symptom Likely root cause First check Remediation
Follower recipe does not load CRC mismatch from partial FTP write Re-read the file on the S7-1200 and compare CRC Switch to write-then-rename pattern; verify SMB share latency
OPC UA write returns Bad_NotWritable Server namespace marked read-only Inspect the OPC UA namespace in TIA Portal > OPC UA > Node access Grant write access to the client certificate; re-import certificate to server trust list
iSlave drops out intermittently Profinet name or IP conflict Check the device's "PROFINET diagnostics" buffer Set unique Profinet device names per follower; disable DCP on follower ports
WinCC Unified "Recipe not found" Storage card full or file path changed Check panel storage under System > Storage Management Clear trend archives; remap the recipe path to the network share
SIMATIC Batch recipes fail to open BCC service account or BSM database issue Event log on BSM server Reattach BSM database, reapply service account permissions, restart BATCH service
Setpoint drifts after each recipe change Local code overrides recipe value after push Trace with PLCSIM or HMI tag trace Move the override behind a "Manual mode" qualifier; ensure recipe is written last in the OB1 cycle

13. Frequently Asked Questions

What is the minimum S7-1200 firmware version to act as an OPC UA server?

Firmware V4.4 is required for the OPC UA server role on S7-1200 CPUs (CPU 1211C through 1217C), and the OPC UA runtime license (e.g., 6ES7 672-0AA08-0YA0) must be installed. The OPC UA client role requires firmware V4.5 or higher.

Can I push a recipe to an S7-1200 follower that is currently in RUN without stopping the line?

Yes. Recipe writes via OPC UA, CSV/FTP, or iSlave transfer area all run in the background and do not stop OB1. Avoid using TIA Portal "Download to device" in production, as that interrupts the Profinet cycle and may briefly stop I/O updates on follower CPUs.

How do I version recipes for FDA 21 CFR Part 11 compliance?

Use SIMATIC Batch with a BSM database and the WinCC Unified BATCH interface. Master and control recipes carry electronic signatures; working recipes on the PLC are runtime copies only. See the Siemens automated recipe control page for a reference food & beverage deployment.

What is the maximum number of recipes I can store in a WinCC Unified Comfort Panel?

Up to 1000 recipes with 1000 data records each in TIA Portal V18. For larger libraries, migrate to a WinCC Unified PC station (5000 recipes / 5000 records) or to a Unified Station V19+ backed by SQL Server (10000 recipes / 10000 records).

Why does my SIMATIC Batch Control Center refuse to open any recipes?

The most common cause is a stalled BSM database connection or a service-account permissions issue. Verify the BSM service account on the BSM server, reattach the database, and confirm NTFS read/write access on the recipe folder as documented in the Siemens Support post on Batch Control Center.

Back to blog