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.
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:
- Open the iSlave CPU's device configuration and enable
Operating mode → I-devicein the Properties > General tab. - 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). - 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.
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:
- Define a single recipe of record schema with a 32-bit CRC32 trailer; the follower S7-1200 rejects any row whose CRC fails.
- Use a write-then-rename pattern: FTP server writes
REC_0501.csv.tmpand renames to.csvatomically to prevent followers from reading a half-written file. - On the S7-1200, poll the file modification time; only re-import if the timestamp or CRC differs from the cached version.
- Persist the last-good recipe in a retain DB so a follower survives an FTP server outage.
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/sburst; 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.
10. Implementation Procedure
- 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.
-
Lock the recipe schema. Define a single
UDT_RecipeRowwith engineering units, min/max, and a CRC32 trailer. Deploy it to all TIA Portal projects via a master library. - 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.
- 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.
- Commission one follower first. Validate CRC, end-to-end timing, and HMI round-trip before turning on fan-out to the remaining cells.
- Enable the audit trail. Log every recipe push (timestamp, user, CRC, source) to a non-volatile DB or to WinCC Unified's alarm log.
- 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?
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.