The Siemens S7 driver uses the native S7Comm protocol, allowing direct connection to controllers without requiring an intermediate OPC server.
Supported Models & Protocol Types
Select the correct ProtocolType matching your hardware generation:
| Protocol Type | Hardware | Notes |
|---|---|---|
SiemensS7_300 | S7-300 | Classic automation |
SiemensS7_400 | S7-400 | Process automation |
SiemensS7_1200 | S7-1200 | Requires PUT/GET access enabled |
SiemensS7_1500 | S7-1500 | Requires PUT/GET access enabled |
SiemensS7_200 | S7-200 | Legacy micro PLC |
SiemensS7_200_Smart | S7-200 Smart | Compact controller |
For S7-1200 and S7-1500, you must enable PUT/GET communication in TIA Portal:
- Open device properties → Protection & Security
- Enable "Permit access with PUT/GET communication"
Connection Parameters
Basic Settings
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| Host | string | Yes | - | PLC IP Address |
| Port | int | No | 102 | Standard S7 Port |
| PollingInterval | int | No | 1000 | Read cycle interval in milliseconds |
| ConnectTimeout | int | No | 3000 | Connection timeout (ms) |
| ReceiveTimeout | int | No | 3000 | Read timeout (ms) |
S7-Specific Settings
| Parameter | Type | Default | Description |
|---|---|---|---|
| Rack | byte | 0 | Rack number |
| Slot | byte | 2 | Slot number (1 for S7-1200/1500) |
| ConnectionType | byte | 1 | 1=PG, 2=OP, 3=S7Basic |
| LocalTSAP | int | - | Local Transport Service Access Point |
| DestTSAP | int | - | Destination TSAP |
| PDULength | int | 240 | Protocol Data Unit size |
Rack & Slot Settings
| PLC Type | Rack | Slot |
|---|---|---|
| S7-300/400 | 0 | 2 |
| S7-1200/1500 | 0 | 1 |
Address Syntax
Proxus supports the standard Siemens S7 addressing format. Addresses are case-insensitive.
Memory Areas
| Area | Prefix | Description | Example |
|---|---|---|---|
| Data Block | DB | User data blocks | DB1.0, DB100.50 |
| Input | I | Digital/Analog inputs | I0.0, IB10, IW20 |
| Output | Q | Digital/Analog outputs | Q0.0, QB10, QW20 |
| Memory (Merker) | M | Internal memory flags | M0.0, MB100, MW50 |
| Timer | T | S7 timers | T1, T50 |
| Counter | C | S7 counters | C1, C100 |
| Analog Input | AI | Analog inputs (PIW) | AI0, AIW10 |
| Analog Output | AQ | Analog outputs (PQW) | AQ0, AQW10 |
Data Block Addressing
The most common addressing format for Data Blocks:
DB{number}.{byte offset}[.{bit}]Examples
| Address | Description |
|---|---|
DB1.0 | DB1, Byte 0 (first byte) |
DB1.10 | DB1, Byte 10 |
DB1.10.0 | DB1, Byte 10, Bit 0 (Bool) |
DB1.10.7 | DB1, Byte 10, Bit 7 (Bool) |
DB100.50 | DB100, Byte 50 |
Extended Notation (Optional)
Proxus also supports explicit data type prefixes:
| Prefix | Size | Description |
|---|---|---|
DBX | 1 bit | Bit access |
DBB | 1 byte | Byte access |
DBW | 2 bytes | Word access |
DBD | 4 bytes | Double Word access |
DB1.DBX10.0 → Bit 0 of Byte 10
DB1.DBB10 → Byte 10
DB1.DBW10 → Word at Byte 10
DB1.DBD10 → DWord at Byte 10Input/Output/Memory Addressing
For I, Q, M areas:
| Address | Description |
|---|---|
I0.0 | Input Byte 0, Bit 0 |
I0.7 | Input Byte 0, Bit 7 |
IB0 | Input Byte 0 |
IW0 | Input Word at Byte 0 |
ID0 | Input DWord at Byte 0 |
Q1.0 | Output Byte 1, Bit 0 |
M100 | Memory Byte 100 |
MW50 | Memory Word at Byte 50 |
MD100 | Memory DWord at Byte 100 |
V Memory (S7-200 Only)
For S7-200 series, V memory is mapped to DB1:
| Address | Description |
|---|---|
V0 | V memory Byte 0 (maps to DB1.0) |
VB10 | V memory Byte 10 |
VW100 | V memory Word at Byte 100 |
VD200 | V memory DWord at Byte 200 |
Data Types
| Proxus Type | S7 Equivalent | Size | Notes |
|---|---|---|---|
| Bool | Bool | 1 bit | Requires bit address (e.g., DB1.10.0) |
| Short | Int | 2 bytes | Signed 16-bit |
| UShort | Word | 2 bytes | Unsigned 16-bit |
| Int | DInt | 4 bytes | Signed 32-bit |
| UInt | DWord | 4 bytes | Unsigned 32-bit |
| Float | Real | 4 bytes | IEEE 754 single precision |
| Double | LReal | 8 bytes | IEEE 754 double precision |
| Long | LInt | 8 bytes | Signed 64-bit |
| ULong | ULInt | 8 bytes | Unsigned 64-bit |
| String | String | Variable | S7 String format |
| Bytes | Array of Byte | Variable | Raw byte array |
Performance Features
PDU Optimization
The driver automatically handles PDU splitting. You can request large data blocks, and the driver will split requests into multiple packets based on the negotiated PDU size.
Batch Reading
For optimal performance, Proxus groups registers by address range and reads entire blocks in a single request:
- Registers in the same DB with adjacent addresses are read together
- Reduces network round-trips significantly
- Automatically handles S7 padding bytes in complex structures
Full DB Read Mode
When reading multiple tags from the same Data Block, Proxus can read the entire DB range in one request and parse individual values locally. This dramatically reduces communication overhead.
Industry Use Cases
The Siemens S7 driver is a cornerstone of Proxus Manufacturing Solutions. It is commonly used for:
- OEE Tracking: Real-time production counts and downtime reasons from S7-1500 controllers.
- Traceability: Collection of process parameters (temperatures, pressures) for quality assurance.
- Recipe Management: Synchronizing product configurations across multiple machine lines.
Troubleshooting
| Error | Cause | Solution |
|---|---|---|
| Connection refused | PUT/GET not enabled | Enable in TIA Portal |
| Timeout | Wrong IP/Port/Rack/Slot | Verify connection parameters |
| Address not found | Invalid DB address | Check DB exists and is not optimized |
| Access denied | DB access protection | Remove access protection in TIA Portal |
For address syntax help, see S7 Address Syntax. For common S7 errors, see S7 Error Codes.
Official Resources
- Siemens Docs: PUT/GET Instructions (S7 Connections)
- Snap7 Project: S7 Protocol Technical Reference