Siemens S7 ISOTCP
Siemens S7 ISOTCP is a protocol developed by Siemens for communication with Siemens S7 series PLCs. This protocol is based on the TCP/IP protocol stack and uses the ISO-TSAP protocol for handling connections and data transmission. It enables read and write operations on various data types of the PLC, including bits, bytes, word, double word, timers and counters.
The implementation of S7 ISOTCP in Neuron is divided into two plugins. The Siemens S7 ISOTCP plugin is mainly used to connect to PLC modules such as Siemens S200, S200smart, S1200 and S1500. The Siemens S7 ISOTCP for 300/400 plugin is mainly used to connect to PLC modules such as Siemens S300 and S400 that have an Ethernet module.
Plugins
Plugin | Description |
---|---|
Siemens S7 ISOTCP | For Siemens S200, S200smart, S1200, S1500 PLC |
Siemens S7 ISOTCP for 300/400 | For Siemens S300, S400 PLC |
Parameters
Parameter | Description |
---|---|
PLC IP Address | Target PLC IPv4 Address |
PLC Port | Target PLC port, default 102 |
PDU Size | PDU size, default 960 |
PLC Module | Target PLC module, S7-200/300/400/1200/1500 |
Connection Type | Connection type, default PG |
CPU Rack | PLC CPU rack, default 0 |
CPU Slot | PLC CPU slot, default 1 |
Local TSAP | Local TSAP |
Remote TSAP | Remote TSAP |
TIP
When using the Siemens S7 ISOTCP plugin to access the S7 1200/1500 PLC, you need to use Siemens software(TIA16) to make some settings for the PLC.( For detailed settings, please refer to plc-settings. )
- The
optimized block access
must be turned off. - The
access level
must be full and the connection mechanism must allow GET/PUT.
Data types
- INT16
- UINT16
- INT32
- UINT32
- FLOAT
- DOUBLE
- BIT
- STRING
Address Format
AREA ADDRESS[.BIT][.LEN]
AREA ADDRESS
AREA | DATA TYPE | ATTRIBUTE | REMARK | PLC Area |
---|---|---|---|---|
I | int16/uint16/bit | read | input | Input I、E |
O | int16/uint16/bit | read/write | output | Output Q、A |
F | int16/uint16/bit | read/write | flag | FLAG Memory M |
T | int32/uint32/float | read/write | timer | Timer T |
C | int16/uint16 | read/write | counter | Counter C |
DB | int16/uint16/bit/int32/uint32/float/double/string | read/write | global DB block | Variable Memory V, DB index 1 |
Example:
Address | Data Type | Description |
---|---|---|
I0 | int16 | I area, address is 0 |
I1 | uint16 | I area, address is 1 |
O2 | int16 | O area, address is 2 |
O3 | uint16 | O area, address is 3 |
F4 | int16 | F area, address is 0 |
F5 | int16 | F area, address is 0 |
T6 | int32 | T area, address is 0 |
T7 | int32 | T area, address is 0 |
C8 | uint16 | C area, address is 0 |
C9 | uint16 | C area, address is 0 |
DB10.DBW10 | int16 | In a data block of 10 , the starting data word is 10 |
DB12.DBW10 | uint16 | In a data block of 12 , the starting data word is 10 |
DB10.DBW10 | float | In a data block of 10 , the starting data word is 10 |
DB11.DBW10 | double | In a data block of 11 , the starting data word is 10 |
.BIT
Optional, referring to a bit of an address.
.LEN
When the data type is a string type, it is required and indicates the length of the string.
Address Examples
Address | Data Type | Description |
---|---|---|
I0.0 | bit | I area, address 0, bit 0 |
I0.1 | bit | I area, address 0, bit 1 |
O1.0 | bit | O area, address 1, bit 0 |
O1.2 | bit | O area, address 1, bit 2 |
F2.1 | bit | F area, address 2, bit 1 |
F2.2 | bit | F area, address 2, bit 2 |
DB1.DBW10.1 | bit | In a data block of 1 , the starting data word is 10, bit 0 |
DB2.DBW1.15 | bit | In a data block of 2 , the starting data word is 1, bit 15 |
DB1.DBW12.20 | string | In a data block of 1 , the starting data word is 12, string length is 20 |