Configuring Siemens S7-300 to Honeywell DCS Ethernet CP 343-1

David Krause15 min read
S7-300SiemensTutorial / How-to
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. Integration Scenario Overview

Engineers integrating a legacy SIMATIC S7-300 station - specifically a CPU 315-2DP combined with a CP 343-1 (catalog number 6GK7 343-1CX10-0XE0) communications processor - with a Honeywell Experion DCS most often do so through a SIMATIC NET software stack running on the DCS server. The CP1613 PCI card installed in the Experion station is a Siemens industrial Ethernet adapter (6GK1 161-3AA00), not a Honeywell-native card. The card exposes Siemens S7 Communication, ISO-on-TCP, TCP and UDP transports to the host PC, where SIMATIC NET v6.4 or v7.1 SPx presents the data through an OPC Data Access 2.0/3.0 server that Experion reads as a foreign channel.

This reference walks through the entire integration stack: assigning the CP 343-1 IP address, selecting a transport, configuring the S7 connection in NetPro, calling FB14/FB15 or AG_SEND/AG_RECV in the S7 program, building the PC station with CP1613 in STEP 7, and binding the resulting OPC items to Experion parameters. The same configuration applies to deployment over a VSAT or VPN bridged Ethernet segment with one caveat: S7 Communication is sensitive to round-trip latency and works best below approximately 250 ms; for higher latency prefer ISO-on-TCP or raw TCP with application-level acks.

S7-300 Station CPU 315-2DP CP 343-1 Industrial Ethernet Switch / VSAT link Experion Server CP1613 (PCI) SIMATIC NET OPC DA Server Experion Channel

2. Hardware and Software Prerequisites

Item Catalog Number / Version Function
S7-300 CPU 6ES7 315-2AF03-0AB0 (or newer 6ES7 315-2EH14-0AB0) Executes user program, holds data blocks
CP 343-1 Lean 6GK7 343-1CX10-0XE0 Industrial Ethernet CP, ISO/TCP/UDP/S7, 10/100 Mbit, 16 connections
CP1613 6GK1 161-3AA00 PCI Ethernet card for PC station, 10/100 Mbit
SIMATIC NET PC V6.4 SP3 or V7.1 SP6 Drivers, OPC Scout, Configuration Console, S7-1613 IE
STEP 7 V5.5 + SP4 (or V5.6) HW Config, NetPro, S7 program, PC Station configurator
Honeywell Experion R410.x or R500.x OPC DA client channel (ChannelType = OPCDA)
Industrial switch SCALANCE XB or XC series recommended QoS, port mirroring for diagnostics
The CP 343-1 Lean (6GK7 343-1CX10-0XE0) is the original 2002 release. Replacement part numbers 6GK7 343-1CX10-0XE1 and 6GK7 343-1EX30-0XE0 (Advanced) are drop-in compatible at the configuration level but allow more concurrent connections and add PROFINET CBA. Keep the part number consistent between HW Config and the physical module to avoid a diagnostic "module type mismatch" entry.

Verify each item with the latest Siemens and Honeywell release notes:

3. CP 343-1 Hardware Configuration in STEP 7

  1. Open the S7 project in STEP 7 and double-click Hardware.
  2. In HW Config, drag the CP 343-1 Lean from the catalog (SIMATIC 300 > CP-300 > Industrial Ethernet > CP 343-1 Lean) into slot 4 of the S7-300 rail. The slot assignment is fixed: slot 4 for the CP.
  3. Double-click the CP module to open Properties - Ethernet Interface.
  4. Click Properties next to the IP address and assign a static address in the engineering subnet (for example 192.168.10.10 / 255.255.255.0). Avoid DHCP unless the SIMATIC NET station also uses a DHCP reservation.
  5. If the link must traverse a router, enter the Router Address field. Set the Use Router flag for the S7 connection in NetPro.
  6. Open the Options tab of the CP. Set the maximum number of S7/ISO/TCP/UDP connections according to the Lean limit of 16 total.
  7. Compile and download the hardware configuration to the CPU (PLC > Download to Target).
Firmware mismatch is a common cause of an SF (system fault) LED on the CP 343-1. The Lean accepts firmware V1.0 through V2.2. After a firmware update you must power-cycle the CPU or run PLC > Ethernet > Edit Ethernet Node > Browse to refresh the topology.

4. Protocol Selection Matrix

Pick the transport first - the rest of the configuration, the function blocks, and the SIMATIC NET connection object all derive from this choice.

Transport PLC Function Blocks SIMATIC NET Object Pros Cons Recommended Use
S7 Communication (PUT/GET) FB14 PUT, FB15 GET S7 Connection No code on partner; integrated diagnostics; multi-variable with one call Siemens-proprietary; latency-sensitive above 250 ms RTT Default for Experion/CP1613 integration
ISO-on-TCP (RFC 1006) FC5 AG_SEND, FC6 AG_RECV ISO-on-TCP Connection Standard TCP with length prefix; works over routed IP Must handle fragmentation and ack in user code WAN/VSAT links, multi-vendor partners
TCP FC5 AG_SEND, FC6 AG_RECV TCP Connection Universal, stream semantics No message boundaries; partner must frame data Custom higher-layer protocol stacks
UDP FC5 AG_SEND, FC6 AG_RECV (different IDB) UDP Connection Connectionless, broadcast, low overhead Unreliable; must add sequence and retransmission High-frequency telemetry that tolerates loss

5. STEP 7 NetPro Connection Configuration

  1. Open NetPro from the STEP 7 project.
  2. Right-click the CP 343-1 and choose Insert New Connection.
  3. For the partner select Unspecified if the SIMATIC NET station has not yet been added, or browse to the PC station once it is configured.
  4. For connection type choose S7 connection (recommended) or ISO/TCP/UDP per Section 4.
  5. In the Addresses tab, enter the partner IP address (192.168.10.20 for the Experion server) and the TSAP. For S7 Communication the partner TSAP is typically 03.01 (slot 1, rack 0) or 10.01 for the S7-1613 OPC server. The local TSAP defaults to 10.02 and does not normally need to be changed.
  6. Tick Establish an active connection on the PLC side for the S7-1613 server (which is always passive in the SIMATIC NET stack).
  7. Click OK, compile, and download the connection table to the CPU.
TSAP encoding: the first byte is the connection resource on the partner. For an S7-300 CPU in slot 1, rack 0 use 01.01. For an S7-400 CPU in slot 3, rack 0 use 03.01. For the SIMATIC NET OPC server the default TSAP is 10.01 and is hard-coded in the S7-1613 driver.

6. S7 Communication: FB14 PUT and FB15 GET

With an S7 connection in NetPro, the PLC exchanges data with the partner CPU by calling FB14 (PUT) and FB15 (GET). The blocks are part of the Standard Library that ships with STEP 7 and reside in Library > SIMATIC_NET_CP > CP 300. Drop the type FB14 and FB15 into the S7 program as multi-instances or as standalone instance DBs.

FB14 PUT input/output (excerpt):

  • REQ BOOL - rising edge triggers a write
  • ID WORD - connection ID from NetPro (e.g., W#16#0001)
  • DONE BOOL - set when the transfer completes
  • ERROR BOOL - set on error
  • STATUS WORD - return code
  • ADDR_1..ADDR_4 ANY - destination pointers in partner (e.g., P#DB100.DBX0.0 BYTE 20)
  • SD_1..SD_4 ANY - source pointers in local PLC (e.g., P#DB200.DBX0.0 BYTE 20)

FB15 GET input/output (excerpt):

  • REQ BOOL - rising edge triggers a read
  • ID WORD - same connection ID
  • NDR BOOL - new data received
  • ADDR_1..ADDR_4 ANY - source pointers in partner
  • RD_1..RD_4 ANY - destination pointers in local PLC

Sample SCL call (S7-300/400 compatible) that periodically pushes DB200 into the partner DB100:

// Trigger PUT every 1 s
IF "Clock_1Hz" THEN
    "iDB_PUT".REQ := TRUE;
    "iDB_PUT".ID := W#16#0001;
    "iDB_PUT".ADDR_1 := P#DB100.DBX0.0 BYTE 20;
    "iDB_PUT".SD_1 := P#DB200.DBX0.0 BYTE 20;
END_IF;

"PUT_FB14"(REQ := "iDB_PUT".REQ,
           ID  := "iDB_PUT".ID,
           DONE => "iDB_PUT".DONE,
           ERROR => "iDB_PUT".ERROR,
           STATUS => "iDB_PUT".STATUS,
           ADDR_1 := "iDB_PUT".ADDR_1,
           SD_1 := "iDB_PUT".SD_1);
IF "iDB_PUT".DONE OR "iDB_PUT".ERROR THEN
    "iDB_PUT".REQ := FALSE;
END_IF;
IF "iDB_PUT".ERROR THEN
    "Last_Status" := "iDB_PUT".STATUS;
END_IF;
Each PUT/GET call can transfer up to 4 areas totalling 222 bytes (S7-300) or 462 bytes (S7-400). For larger payloads use multiple calls or split the data over several S7 connections. Always reset REQ after DONE or ERROR, otherwise the block will not retrigger.

7. Open User Communication: AG_SEND and AG_RECV

For ISO-on-TCP, TCP, or UDP, drop FC5 (AG_SEND) and FC6 (AG_RECV) from Library > SIMATIC_NET_CP > CP 300. Both blocks take a connection ID and an ANY pointer; the difference is in the call pattern - AG_SEND is triggered with REQ while AG_RECV is called cyclically and completes when NDR rises.

STL example for ISO-on-TCP on connection ID W#16#0002:

CALL "AG_SEND"  // FC5
REQ    := M 10.0          // trigger bit
ID     := W#16#0002       // NetPro connection ID
LADDER := P#M 100.0 BYTE 50
DONE   := M 14.0
ERROR  := M 14.1
STATUS := MW 16

CALL "AG_RECV"  // FC6
ID     := W#16#0002
LADDER := P#M 200.0 BYTE 50
NDR    := M 18.0          // new data received
ERROR  := M 18.1
STATUS := MW 20
LEN    := MW 22           // actual bytes received

The CP 343-1 buffers up to 8 send and 8 receive jobs per connection. The NDR/ERROR bits on AG_RECV must be evaluated and reset in the user program to avoid job overruns. For UDP the call pattern is identical but you can broadcast by setting the partner address to 255.255.255.255 in NetPro.

8. SIMATIC NET PC Station with CP1613

  1. On the Experion server, install the SIMATIC NET PC software (V6.4 or V7.1). Reboot when prompted.
  2. Physically seat the CP1613 into a free PCI slot and start the Configuration Console (Start > SIMATIC > SIMATIC NET > Configuration Console).
  3. In the Configuration Console, the CP1613 should appear as a IE General module. Click Properties and assign a static IP address (for example 192.168.10.20 / 255.255.255.0). The CP1613 MAC address is printed on the bracket and on the module label.
  4. Open STEP 7 on the engineering station and add a SIMATIC PC Station to the project. Drag a CP1613 into the PC station's slot and an OPC Server (S7-1613 IE) into slot 1 of the software interface.
  5. In NetPro, drag a connection from the OPC Server to the S7-300 CPU and select S7 connection. The TSAP on the OPC server side is fixed at 10.01. The PLC side TSAP is set to 10.02 automatically.
  6. Compile the PC station (Station > Compile and Check Consistency) and download it via the PC Internal or TCP/IP download path to the Experion server's hard disk (target file %programfiles%\Siemens\Automation\S7dat\xdb\<station>.xdb).
  7. Restart the SIMATIC NET service: net stop s7oiehsx then net start s7oiehsx, or use the Commissioning Wizard.
A failed Compile and Check Consistency on the PC station usually means the OPC server and CP1613 are in different subnets in the PC station configuration, or the OPC server index does not match the slot in HW Config. Re-seat the OPC server as index 1 (default) and the CP1613 as the only Ethernet adapter.

9. S7-1613 OPC Server and Tag Browsing

  1. On the Experion server, open the OPC Scout (Start > SIMATIC > SIMATIC NET > OPC Scout).
  2. Create a new group (e.g., S7_to_Experion) and add a server definition pointing to OPC.SimaticNET.
  3. Browse the server namespace. The path is S7 > [connection name] > [CPU] > S7 > DB100 > DB[100].Byte 0 for a data block. Drag the desired items into the group.
  4. Click Read and verify that values appear. Trigger a write to confirm the round-trip latency is acceptable.

The OPC Scout also exposes the connection status under S7 > [connection] > Status. A red X means the S7 connection is down; the most common reason is a TSAP or IP mismatch. The OPC item address syntax is S7:[connection name]DB<number>,BYTE <offset>,<type> (e.g., S7:[S7_to_PLC]DB100,BYTE 0,REAL).

10. Honeywell Experion OPC DA Channel

  1. Open Quick Builder on the Experion Engineering station and create a new Channel of type OPCDA.
  2. Point the channel at the local OPC server: OPC.SimaticNET on host localhost.
  3. Define a Device for the S7-300 with a scan class of 1 second (default) or 250 ms for high-speed data.
  4. Map Experion parameters to OPC items using the syntax S7:[S7_to_PLC]DB100,BYTE 0,REAL. The mapping editor supports import/export to CSV.
  5. Download the channel to the Experion server and verify that parameters show good quality (Good in the station detail display).

For redundancy, configure two OPC channels and use the ChannelType = OPCDA_RED to load-balance reads; SIMATIC NET's OPC server runs as a Windows service and supports hot failover when the S7 connection is mirrored in NetPro.

11. Data Format, Byte Order, and DB Layout

The CP 343-1 transmits data in big-endian on the wire regardless of the byte order of the source DB. S7-300 CPUs store INT, DINT, and REAL in little-endian; the S7 Communication and AG_SEND drivers handle the byte swap automatically. ISO-on-TCP and raw TCP do not perform this swap - the user program must.

Standard layout for a 20-byte interface DB on the S7-300 side:

Offset Type Name Description
0.0 REAL PV_1 Process value 1 (engineering units)
4.0 REAL PV_2 Process value 2
8.0 REAL SP_1 Setpoint 1
12.0 BOOL PUMP_RUN Pump status
14.0 INT MOTOR_RPM Motor speed
16.0 WORD ALARM_BITS Alarm bitmap

For a multi-block PUT, place related variables contiguously to avoid split areas - the CP 343-1 will reject a PUT whose ADDR_1 and ADDR_2 areas overlap or are non-contiguous in the same DB.

12. WAN / VSAT Deployment Considerations

VSAT links add 500-1500 ms of one-way latency and 1-5% packet loss. S7 Communication is a request/response protocol with a default 3 s timeout and will time out repeatedly above 1 s RTT. Use the following mitigations:

  • Switch the transport to ISO-on-TCP and increase the S7-300 Connection Timeout in NetPro from 3 s to 10 s.
  • Apply a VPN tunnel (IPsec) on top of the VSAT link to keep the CP 343-1 stack off the public network. Disable PAT and forward only UDP 500 / ESP 50/51 or TCP 1723 depending on the tunnel type.
  • Set the SCALANCE switch's QoS Priority to DSCP 46 (EF) for the S7 frames; VSAT modems often drop VoIP-marked traffic first.
  • Reduce the polling rate on the Experion side to 2-5 s and use a small number of large PUT/GET calls rather than many small ones - the S7 protocol overhead is roughly 50 bytes per call.
  • Enable IGMP snooping only if the OPC server is also multicasting; otherwise disable it to prevent the CP1613 from missing ACKs.
S7 Communication uses a single TPDU size negotiated at connection setup. If the path MTU drops below the negotiated TPDU (typical on a VSAT link capped at 1400 bytes), you must lower the TPDU size in NetPro under the connection's Properties > Block Parameters > Maximum PDU Length from the default 480 bytes to 240 bytes.

13. Diagnostic LEDs and Online Verification

The CP 343-1 has four front-panel LEDs:

LED Color Meaning
SF Red System fault - diagnostic buffer has an entry
BF Red Bus fault - physical link or partner unreachable
RUN Green CP is in RUN state
STOP Yellow CP is in STOP - no communication

For a complete verification pass:

  1. In NetPro, right-click the S7 connection and choose Connection Status. The status should be Established for all enabled connections.
  2. In STEP 7, open PLC > Ethernet > Diagnostics and read the CP 343-1 diagnostic buffer. Look for event IDs 0x8A01 (connection established), 0x8A02 (connection terminated), and 0x8A04 (connection rejected - usually a TSAP conflict).
  3. In OPC Scout, add a status tag for the S7 connection. The Status item returns 0 = OK, non-zero = error code matching the Siemens manual.
  4. From the Experion station detail display, force a small value and observe the change in the PLC using a watch table in STEP 7.

14. Troubleshooting Matrix

Symptom Likely Cause Action
CP 343-1 BF LED steady red Physical link down, wrong cable, wrong port Verify green Link LED on the SCALANCE port; use a crossover if connecting CP1613 directly to CP 343-1
SF LED on CP 343-1 Firmware mismatch or wrong part number in HW Config Compare module article number to HW Config; reflash firmware if needed
OPC Scout shows red X on connection TSAP mismatch, S7 connection not downloaded to PC station Re-download xdb file; verify TSAPs on both sides of NetPro
PUT returns STATUS = 0x0001 Partner resource busy (max 32 jobs per S7 connection) Reduce call rate or split data over multiple connections
PUT returns STATUS = 0x0007 Object does not exist on partner (bad DB number or wrong TSAP) Confirm partner DB exists and is unlinked; recheck TSAP
Experion shows Bad quality on all tags OPC server not registered with Windows DCOM Run dcomcnfg and add anonymous logon to OPCENUM and OPC.SimaticNET permissions
Intermittent timeouts on VSAT link PDU size too large for path MTU Reduce Max PDU Length to 240 bytes in NetPro
PUT DONE never sets, ERROR toggles REQ not reset after DONE; instance DB overwritten Always evaluate DONE/ERROR and reset REQ; use a single instance DB per FB
Connection in NetPro shows Established but no data Wrong ANY pointer syntax in ADDR_1 / SD_1 Use the P#DBxxx.DBXy.z BYTE n format; never use bit pointers for PUT/GET

15. Migration Path to ControlEdge PLC

For new installations or end-of-life replacements, the Honeywell ControlEdge PLC (C300, ControlEdge HC900, or ControlEdge 900 platform) provides built-in EtherNet/IP and Modbus TCP without requiring a CP1613 card or SIMATIC NET. This eliminates the PC-based OPC layer and reduces the integration surface. The ControlEdge PLC EtherNet/IP Product Information Note documents the topology support (DLR, Star, Line, Mixed) and the scan class timings. Existing S7-300 tag DBs can be re-mapped to ControlEdge tag databases and exposed to Experion via the native channel - no third-party OPC server required.

16. Frequently Asked Questions

Which is the recommended protocol to a CP1613 + SIMATIC NET station: S7 Communication or ISO-on-TCP?

S7 Communication (FB14 PUT / FB15 GET) is recommended for all LAN deployments. It requires the least code, supports multi-area transfers, and provides native diagnostics. Switch to ISO-on-TCP only when the link crosses a WAN with more than 250 ms of RTT, or when the partner is not a SIMATIC NET station.

Do I need to program anything on the CP1613 (Experion server) side?

No application code is required. The CP1613 runs the S7-1613 driver and exposes the OPC DA server. You must, however, configure the PC station in STEP 7 (with CP1613 + OPC Server), compile, and download the .xdb file to the Experion server. Without the xdb, the OPC server has no S7 connection to bind to.

What TSAP should I use for the S7 connection between CP 343-1 and the SIMATIC NET OPC server?

Use 10.01 on the OPC server side (this is hard-coded in the S7-1613 driver) and 10.02 on the CP 343-1 side. The connection must be initiated actively from the CP 343-1; the OPC server is always passive.

How do I scale a S7-300 to Honeywell DCS integration to a VSAT link?

Use ISO-on-TCP, lower the maximum PDU size to 240 bytes, raise the connection timeout to 10 s, and place a VPN tunnel on top of the VSAT carrier. Run a 2-5 s scan class on the Experion channel and avoid high-frequency alarms over the link.

Can I migrate an existing S7-300 + CP 343-1 integration to a Honeywell ControlEdge PLC?

Yes. The ControlEdge PLC exposes EtherNet/IP and Modbus TCP natively, removing the CP1613 and SIMATIC NET layer entirely. Use the ControlEdge EtherNet/IP PIN to map the existing S7-300 DBs to ControlEdge tags and re-bind them in Experion's native channel.

Back to blog