Overview
Bringing a Siemens SIMATIC S7-1200 controller online with AVEVA Wonderware InTouch requires three coordinated components: a tag source on the PLC, a runtime I/O service (an OPC UA server, an OPC DA bridge, or a native SuiteLink driver), and a populated InTouch Tagname Dictionary. A raw CSV export from TIA Portal will not load into InTouch directly; InTouch tags are owned by the application and must be created with valid Access Names, Item references, and types. The most reliable path in 2024-2026 deployments is OPC UA from the S7-1200 to an OPC client such as AVEVA DAServer for Siemens TCP/IP, KEPware Siemens Plus, or the Matrikon Siemens OPC Server, terminated by InTouch through a SuiteLink topic.
This reference walks through the full commissioning path: defining an HMI-facing Data Block on the S7-1200, activating the integrated OPC UA server on firmware V4.4 and higher, configuring the OPC/IO bridge, and finally creating or importing tags in the InTouch Tagname Dictionary.
Architecture and Connectivity Options
Three viable connection paths exist between an S7-1200 and InTouch. The selection depends on firmware version, license budget, and IT/OT network policy.
| Path | PLC side | SCADA side | Tag transfer mechanism | Notes |
|---|---|---|---|---|
| OPC UA (recommended) | OPC UA server embedded in S7-1200 firmware ≥ V4.4 | OPC UA client in DAServer or KEPware, surfaced as SuiteLink topic | Browse OPC UA address space or import CSV of node IDs | No additional S7-1200 hardware required; certificate-based security available |
| S7 TCP/IP native driver | S7-1200 built-in PROFINET interface, no extra config | AVEVA DAServer for Siemens TCP/IP or KEPware Siemens Plus | Manual address entry or DB browse | Lowest latency, no security, no firmware minimum |
| Modbus TCP | S7-1200 with MB_SERVER instruction block (no server before V4.0) | DAServer Modbus TCP or InTouch Modbus I/O driver | Register map (4x holding registers) | Use only when retrofitting legacy Modbus tooling |
Prerequisites
- TIA Portal V16 or later (V17/V18/V19 recommended) for OPC UA server configuration and project symbol export.
- SIMATIC S7-1200 CPU with firmware V4.4 or higher. Supported CPUs include 6ES7211-1AE40-0XB0 (CPU 1211C), 6ES7212-1AE40-0XB0 (CPU 1212C), 6ES7214-1AG40-0XB0 (CPU 1214C), 6ES7215-1AG40-0XB0 (CPU 1215C), and 6ES7217-1AG40-0XB0 (CPU 1217C). Verify against the SIMATIC S7-1200 Programmable Controller System Manual.
- AVEVA InTouch 2020 R2 / 2023 or Schneider Electric InTouch 2017 with the latest cumulative patch installed. See the AVEVA InTouch Tagname Dictionary documentation.
- IO / OPC Server: either AVEVA DAServer for Siemens TCP/IP (catalog DAS-SVR-SIEMENS), KEPware Siemens Plus, or Matrikon OPC Server for Siemens.
- Ethernet connectivity between the engineering station and the S7-1200 PROFINET port on the same subnet (e.g. 192.168.0.x/24).
- Administrator rights on the engineering PC for installing SuiteLink and OPC Core Components.
Step 1: Build an HMI-Facing Data Block on the S7-1200
Create a single global Data Block dedicated to the SCADA interface. Keeping all exchanged variables in one DB simplifies browsing, exports, and version tracking.
- In TIA Portal, expand Program Blocks, double-click Add new block, choose Data block, name it
DB_HMI(e.g. number 100), and uncheck Optimized block access only if your IO server requires absolute addressing. With OPC UA, optimized block access is permitted. - Declare the structure. Use consistent naming with prefixes that map to engineering discipline:
HMI_TankLevel,HMI_MotorCmd,HMI_AlarmWord. - For each variable, set Accessible from HMI/OPC UA = true (visible in the Properties > Attributes tab).
- Compile the project (Project > Compile > Software (rebuild all)). Resolve all warnings before download.
Recommended Data Block conventions:
| Name | Type | Initial value | Comment |
|---|---|---|---|
| HMI_TankLevel_PV | REAL | 0.0 | Process value, % fill |
| HMI_TankLevel_SP | REAL | 50.0 | Setpoint, % |
| HMI_Pump1_Cmd | BOOL | FALSE | Start/Stop command |
| HMI_Pump1_Status | BOOL | FALSE | Running feedback |
| HMI_Alarm_Word | DWORD | 16#0 | Bit-packed alarms |
| HMI_Heartbeat | INT | 0 | 1 s toggle for comms watchdog |
Step 2: Enable and Configure the OPC UA Server on the S7-1200
- In the TIA project tree, select the S7-1200 CPU and open Properties > OPC UA > Server.
- Check Activate OPC UA Server.
- Confirm the port: default
4840. Change only if the OT firewall mandates a non-standard port. - Set the Endpoint security policy: None for lab, Basic128Rsa15 or Basic256Sha256 for production.
- Under Server certificates, accept either Anonymous or Username/Password authentication. For production, use Certificate-based client authentication.
- Under Security > Server interface > Address space, verify that SIMATIC standard symbol set is enabled. This is the namespace that exposes DB tags.
- Apply the project to the PLC (Project > Download to device > All). Confirm the PLC restarts; OPC UA configuration changes require a STOP-to-RUN transition.
After restart, validate the server with a generic client such as UaExpert from the OPC Foundation. Browse the address space for ns=4;s=|var|STANDARD::DB_HMI.HMI_TankLevel_PV. If the node resolves with a current value, the server is correctly configured.
Step 3: Configure the OPC Server / IO Server
The following procedure uses AVEVA DAServer for Siemens TCP/IP (DAS-SVR-SIEMENS). The KEPware workflow is functionally identical at the Access Name boundary.
- Launch DAServer Manager from the Wonderware program group.
- Select Configuration > DAServer for Siemens TCP/IP.
- Create a new Channel: name it
S71200_PLANT1, device driver Siemens TCP/IP, link type TCP/IP. - Under Devices, add a device with the S7-1200 IP (e.g.
192.168.0.10), Rack0, Slot1. - Save and right-click DAServer > Activate Server. Status should report Running.
- Click DAServer > OPC DA Browser or use the ArchestrA IDE Quick Browser to confirm that
DB100.HMI_TankLevel_PV(or the OPC UA node ID path) is visible.
Note the SuiteLink Topic Name defined in the DAServer channel (default TOPIC_S71200). This topic is what InTouch Access Names will reference.
Step 4: Build the InTouch Access Name
- Open InTouch WindowMaker with the target application loaded.
- From the menu bar select Special > Access Names.
- Click Add and configure:
| Field | Value |
|---|---|
| Access Name | PLC_S71200 |
| Node Name | Localhost (when DAServer runs on the same machine) or remote DAServer hostname |
| Application Name | DAServer |
| Topic Name | TOPIC_S71200 |
| Protocol | SuiteLink |
| Use Advise | Checked (recommended for > 200 tags) |
Click Save. Confirm in the DAServer Status dialog that the InTouch node appears as a connected client.
Step 5: Populate the InTouch Tagname Dictionary
Tags must be created in the InTouch Tagname Dictionary before they can be referenced in animations, scripts, or I/O fields. Use the Tagname Dictionary workflow documented by AVEVA.
- In WindowMaker select Special > Tagname Dictionary.
- Click New and add an entry per S7-1200 tag. Example row:
| Tag | Type | Access | Item |
|---|---|---|---|
| TankLevel_PV | Float (32-bit IEEE) | PLC_S71200 | DB100,HMI_TankLevel_PV |
| TankLevel_SP | Float (32-bit IEEE) | PLC_S71200 | DB100,HMI_TankLevel_SP |
| Pump1_Cmd | Discrete | PLC_S71200 | DB100,HMI_Pump1_Cmd |
| Pump1_Status | Discrete | PLC_S71200 | DB100,HMI_Pump1_Status |
| AlarmWord | Integer (32-bit) | PLC_S71200 | DB100,HMI_Alarm_Word |
The Item field format depends on the IO server driver. For DAServer for Siemens TCP/IP, the syntax is DB<number>,<symbolname>. For KEPware Siemens Plus the syntax is typically <symbolname> or DB<n>,<offset>,<type>.
Step 6: Bulk Import via the Tag Import / Export Utility
For projects with hundreds of tags, manual entry is impractical. AVEVA provides the TagImport CLI utility, and InTouch 2020+ exposes a CSV import in the Tagname Dictionary Import dialog. The expected CSV schema is:
Tagname,Type,AccessName,Item,Comment,EngUnits,Min,Max TankLevel_PV,Real,PLC_S71200,DB100,HMI_TankLevel_PV,"Tank level %",0,100 Pump1_Cmd,Boolean,PLC_S71200,DB100,HMI_Pump1_Cmd,"Pump 1 start",0,1 AlarmWord,Integer,PLC_S71200,DB100,HMI_Alarm_Word,"Bit-packed alarms",0,4294967295
- Generate the CSV from the TIA Portal Symbol table: Project > Export > Symbol table (CSV UTF-8).
- Open in a spreadsheet and map TIA columns (Name, Data type, Address) to the InTouch schema. The mapping table below covers the common conversions.
- Save as
intouch_tags.csvand import through WindowMaker Special > Tagname Dictionary > Import.
| TIA Portal Data Type | InTouch Type | Item example |
|---|---|---|
| BOOL | Discrete (Boolean) | DB100,HMI_Pump1_Cmd |
| INT | Integer | DB100,HMI_Counter |
| DINT | Integer (32-bit) | DB100,HMI_LongVal |
| REAL | Real (Float) | DB100,HMI_TankLevel_PV |
| STRING | Message | DB100,HMI_OperatorMsg |
| WORD | Integer (16-bit) | DB100,HMI_StatusWord |
| DWORD | Integer (32-bit) | DB100,HMI_AlarmWord |
Step 7: Verification
- Confirm the DAServer status is Running with the InTouch node listed.
- In WindowMaker open View > Tag Viewer. Filter for the imported tags; the Quality column must show Good.
- From WindowViewer, right-click an animated object bound to
TankLevel_PVand select Force Value. The PLC value should respond within one OPC polling cycle (typically 250 ms with SuiteLink). - In TIA Portal, run Monitor & Modify on
DB100.HMI_TankLevel_PV. Change the value and confirm it updates in the InTouch Tag Viewer. - Validate alarms by forcing
HMI_Alarm_Wordbits via TIA Portal; InTouch alarm subforms should populate.
Troubleshooting Matrix
| Symptom | Likely cause | Corrective action |
|---|---|---|
| All tags show Quality = Bad - Configuration Error | Access Name Node Name or Topic Name mismatch | Verify Access Name Node Name resolves to the DAServer host and Topic Name matches the DAServer channel topic |
| OPC UA browser returns no nodes | OPC UA server not active or certificate trust not established | Confirm firmware V4.4+, port 4840 reachable, OPC UA server activated, certificate trusted in the client trust list |
| Tag shows Bad - Out of Service | DAServer runtime stopped | Open DAServer Manager, activate the runtime, set startup to Automatic in the SMC |
| Discrete tags read as 0 / 1, but Real tags show 0.0 | Type mismatch between InTouch and PLC; REAL values stored as 32-bit but accessed as 16-bit | Set InTouch tag type to Real (not Integer), verify Item path uses the symbolic name not a DB offset |
| Imported CSV produces 0 tags | Missing header row or wrong column separator | Ensure header row present, comma-separated, fields with commas quoted, file saved as UTF-8 |
| InTouch loses connection after PLC restart | OPC UA session not re-establishing automatically | Enable OPC UA reconnection in DAServer, increase the OPC keep-alive time, configure Suitelink redundancy if needed |
| Tag values oscillate between two stale values | PLC Accessible from HMI/OPC UA attribute disabled | Open DB properties > Attributes > ensure Accessible from HMI/OPC UA = true |
Performance and Capacity Notes
- The S7-1200 OPC UA server typically supports 1,000 published tags and 4 concurrent sessions. For larger tag counts, segment by CPU or move to an S7-1500.
- SuiteLink throughput comfortably supports 10,000 tags per topic at 1 second update rate; DDE/SuiteLink polling default is 1,000 ms but is configurable down to 100 ms for critical loops.
- Set Use Advise = true on the InTouch Access Name whenever the tag count exceeds 200; advised subscriptions minimize network chatter versus polled reads.
- For deterministic I/O, prefer the S7 TCP/IP native driver over OPC UA; OPC UA adds serialization overhead that is irrelevant for HMI but matters for high-speed polling.
Security and Hardening
- Replace Anonymous OPC UA authentication with certificate-based client auth in production.
- Deploy the OPC UA endpoint on a dedicated OT VLAN; do not expose port 4840 outside the cell.
- On the S7-1200, set the access level of DB_HMI to Full for the OPC UA read/write user; restrict other DBs to Read via the Protection > Access Level properties.
- Lock the InTouch application with user authentication so that operators cannot modify tag values that bypass PLC write-protection.
FAQ
What firmware version does the S7-1200 require for OPC UA server?
Firmware V4.4 or later. V4.4 introduced the integrated OPC UA server in the SIMATIC standard symbol set. Earlier firmware versions support OPC UA client only and cannot expose tags to a SCADA client. Confirm with TIA Portal under Online > CPU Information.
Can I import a TIA Portal symbol-table CSV directly into InTouch?
No. InTouch requires its own CSV schema with Tagname, Type, AccessName, and Item columns. The TIA export must be transformed: map TIA Data Type (BOOL, INT, REAL, etc.) to InTouch types and build the Item string from the DB number and symbolic name.
Which InTouch Item syntax should I use for a DAServer for Siemens TCP/IP tag?
Use the symbolic format DB<number>,<SymbolName> such as DB100,HMI_TankLevel_PV. This requires the Data Block to be non-optimized or the OPC UA symbol path to be exposed. Optimize the DB symbol set in TIA Portal under Properties > OPC UA > Symbol set.
Why are all InTouch tags showing Bad quality after I enable OPC UA?
Most often the Access Name Node Name or Topic Name does not match the running DAServer. Verify in Access Names that Node Name resolves to the DAServer host and the Topic Name matches the configured DAServer channel. Confirm the DAServer runtime is in the Running state from the System Management Console.
How many tags can the S7-1200 OPC UA server expose to InTouch?
Approximately 1,000 published tags with up to 4 concurrent client sessions on a typical S7-1214C or S7-1215C. For larger applications segment the tag set across multiple S7-1200 CPUs or upgrade to an S7-1500 which exposes a larger address space and higher session count.