Configuring Siemens 6ES7 137-6AA00-0BA0 CM PtP in STEP 7 V5.5

David Krause15 min read
Serial CommunicationSiemensTutorial / 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

Module Identification: 6ES7 137-6AA00-0BA0

The Siemens article number 6ES7 137-6AA00-0BA0 identifies the CM PtP (Communication Module, Point-to-Point) for the SIMATIC ET 200S distributed I/O system in the RS232C variant. The module occupies one slot in an ET 200S terminal block (typically a TM-E15S24-01 or TM-P15S23-A1 terminal module) and presents an RS232C interface to the field through a 9-pin D-sub connector on the front of the module. The "137" prefix in the article number places the module in the ET 200S series. The "6AA00" segment distinguishes this specific variant:

Article Number Module Interface Notes
6ES7 137-6AA00-0BA0 CM PtP RS232C Original release
6ES7 137-6AA01-0BA0 CM PtP RS232C Successor with extended diagnostics
6ES7 137-6AB00-0BA0 CM PtP RS422/485 Half- and full-duplex modes
6ES7 137-6BA00-0BA0 CM PtP RS232C + Modbus RTU master support For Modbus RTU projects

The module supports the following character frames per the manufacturer's data sheet:

  • Baud rate: 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 76800, 115200 bit/s
  • Data bits: 7 or 8
  • Parity: None, Even, Odd, Force Even (mark), Force Odd (space)
  • Stop bits: 1 or 2
  • Flow control: None, XON/XOFF (software), RTS/CTS (hardware, RS232C only)
  • Free ASCII protocol (character-oriented) and 3964(R) protocol are available on this module class

The on-board receive buffer is 1024 bytes; the transmit buffer is 1024 bytes per direction. These buffers are not user-configurable in size on the ET 200S variant.

Prerequisites

Before configuring the CM PtP, verify the following items in your engineering environment:

  • STEP 7 V5.5 + SPx installed (SP2 or later recommended). The HSP (Hardware Support Package) for ET 200S PtP must be installed so the module appears in the HW Config catalog under Distributed I/O → ET 200S → PtP modules.
  • Appropriate HSP for 6ES7 137-6AA00-0BA0. The module is supported out-of-the-box on most STEP 7 V5.5 installations. If it does not appear, install the latest HSP from the Siemens Industry Online Support site.
  • The ET 200S IM 151-1 (PROFIBUS) or IM 151-3PN (PROFINET) interface module is configured and the bus connection to the S7-300/400 CPU is operational.
  • GSD (for PROFIBUS DP) or GSDML (for PROFINET IO) imported if using a third-party master or non-Siemens CPU.
  • The target RS232 device's communication specification is documented: baud rate, parity, data bits, stop bits, handshaking, telegram framing (terminator characters or length-based).
  • Siemens S7 CPU firmware that supports the ET 200S PtP FBs. CPU 31x-2 DP / PN and CPU 41x in STEP 7 V5.5 are all compatible.

Understanding the Configuration Layers

A common point of confusion when first integrating the 6ES7 137-6AA00-0BA0 is the distinction between module parameter assignment in HW Config and runtime configuration of the serial port. These are two separate mechanisms:

  1. HW Config "Parameter Assignment" dialog — limited to module-level diagnostics behavior, diagnostic interrupt enable, and slot properties. It does NOT configure the serial character frame (baud rate, parity, data bits, stop bits, flow control).
  2. Runtime FBs in the user program — the actual serial frame, send/receive buffers, and flow control are set using the PtP instruction library: PORT_CFG, SEND_CFG, RECV_CFG, plus runtime transfer blocks SEND_PTP and RECEIVE_PTP.
Critical: Setting parameters in HW Config alone will not activate the RS232 port. The user program must call the configuration FBs in OB100 (startup) and on demand for parameter changes. Without these calls, the module will report "Module OK" but no characters will be transmitted or accepted on the line.

The HW Config parameter assignment is also where you enable or disable the diagnostic interrupt OB82 generation. For most serial debug sessions, leaving it enabled helps surface faults (broken cable detection on the RS232 control lines, for example) into the CPU's diagnostic buffer.

Instruction Mapping: TIA Portal vs STEP 7 V5.5

The instruction names Port_Config, Send_Config, and Receive_Config used in TIA Portal are renamed and renumbered when the same physical interface is controlled from STEP 7 V5.5 via a distributed I/O module. For ET 200S PtP modules including the 6ES7 137-6AA00-0BA0, the Standard Library contains the following equivalents:

TIA Portal Instruction STEP 7 V5.5 FB (ET 200S PtP) Purpose
Port_Config FB 60 — PORT_CFG Configure port: baud, parity, data bits, stop bits, flow control
Send_Config FB 61 — SEND_CFG Configure transmitter: end-of-telegram delimiters, idle-line time
Receive_Config FB 62 — RECV_CFG Configure receiver: start conditions, end conditions, buffer behavior
Send_Ptp / PtP_Send FB 63 — SEND_PTP Transmit data buffer to serial port
Receive_Ptp / PtP_Receive FB 64 — RECEIVE_PTP Fetch received data from internal buffer
Receive_Reset / PtP_Receive_Reset FB 65 — RES_RECV Clear receive buffer
Note on FB numbering: The FB numbers 60-65 listed above are the standard ET 200S PtP library blocks. Some STEP 7 V5.5 installations expose them with different numbers if the user has manually renamed or copied from a custom library. Always verify the FB header (in the Standard Library → Communication Blocks → PtP path) before wiring these in your project. For ET 200MP and ET 200SP CM PtP modules in STEP 7 V5.5 the FBs are renumbered again (typically FB 190-195) — see the official Siemens manual at Siemens Industry Online Support.

The TIA Portal counterpart of Receive_Config is documented at TIA Portal: Receive_Config instruction reference; the input structure is similar enough that TIA-experienced engineers can cross-read both manuals when migrating.

The PORT Input Parameter — Hardware Identifier

The PORT input of FB 60 (PORT_CFG) does NOT take an SFB number or a DB number. It takes the hardware identifier (HWID) of the CM PtP module as seen from the CPU. This identifier is assigned automatically when the module is placed in HW Config and is exposed through the system constants of the S7 program. The typical discovery procedure:

  1. In HW Config, double-click the CM PtP slot in the ET 200S station.
  2. Open the "Addresses" tab and note the diagnostic address and I/O addresses.
  3. Right-click the S7 program → "System Constants" or open the PLC variable table. The HWID appears under names like HW_CM_PtP, HW_IO_258, or similar.
  4. Use that symbolic HWID for the PORT input of FB 60 and the related FBs.
Note: Older projects using the SIMATIC Manager's "SFB-call" syntax sometimes reference the port via the input/output address (e.g., 256) rather than a symbolic HW identifier. The hardware identifier approach is preferred and is the standard since STEP 7 V5.5 + SP1. If your project's HW Config does not generate the symbolic HWID, update the HW Config and re-compile to generate system constants.

PORT_CFG Input Parameters (FB 60)

The parameter block for FB 60 (PORT_CFG) is the core of the runtime configuration. The table below lists the input parameters with their data types, ranges, and typical values for an RS232C link to a barcode scanner, scale, or similar field device:

Input Data Type Description Typical Value
REQ BOOL Trigger configuration on rising edge TRUE (one-shot)
PORT HW_IO / WORD Hardware identifier of the CM PtP module From HW Config system constants
PROTOCOL BYTE 0 = ASCII free protocol, others reserved 0
BAUD BYTE Baud rate code (see table below) 6 (9600), 7 (19200), 9 (38400), 11 (115200)
PARITY BYTE 0=None, 1=Even, 2=Odd, 3=Force Even, 4=Force Odd 0 / 1 / 2
DATABITS BYTE Data bits per character 7 or 8
STOPBITS BYTE Stop bits 1 or 2
FLOWCTRL BYTE 0=None, 1=XON/XOFF, 2=RTS/CTS, 3=XON/XOFF+RTS/CTS 0 / 2
XONCHAR CHAR XON character 11h (DC1)
XOFFCHAR CHAR XOFF character 13h (DC3)

Baud rate codes used by the FB 60 BAUD input:

BAUD Code (hex) Bit Rate
0 300
1 600
2 1200
3 2400
4 4800
5 7200
6 9600
7 19200
8 28800
9 38400
A 57600
B 76800
C 115200

Step-by-Step Configuration in STEP 7 V5.5

Step 1: Place the Module in HW Config

  1. Open the SIMATIC Manager and load your S7-300 or S7-400 station.
  2. Open HW Config and locate the ET 200S station on PROFIBUS DP or PROFINET IO.
  3. Open the ET 200S rack and drag a "CM PtP" from the catalog into the desired slot. If 6ES7 137-6AA00-0BA0 does not appear by name, select the generic "CM PtP RS232" entry — STEP 7 will accept this variant.
  4. Double-click the slot to open the properties dialog. In the "Parameter Assignment" dialog, set diagnostic interrupts to your preference. Do NOT look for serial parameters here — they are intentionally not exposed.
  5. Note the diagnostic address (default 1023) and the I/O address. The hardware identifier appears in the system constants table of the S7 program.
  6. Save and compile (Station → Save and Compile).
  7. Download the HW Config to the CPU.

Step 2: Add the PtP FBs to the User Program

The PtP blocks live in the Standard Library of STEP 7 V5.5. To use them in your project:

  1. In SIMATIC Manager, navigate to your S7 program → Blocks.
  2. Open the Standard Library → Communication Blocks → PtP folder.
  3. Copy FB 60, FB 61, FB 62, FB 63, FB 64, FB 65 into your project Blocks folder.
  4. Open OB1 (cyclic) and OB100 (startup) for configuration call placement.

Step 3: Call PORT_CFG at Startup


// OB100 - Startup
// Configure RS232 port once on CPU startup
CALL FB 60, DB_PORT_CFG
   REQ      := TRUE          // one-shot, will fall to FALSE in DONE
   PORT     := "HW_CM_PtP"   // hardware identifier (system constant)
   PROTOCOL := B#16#0        // ASCII free protocol
   BAUD     := B#16#6        // 9600 bit/s
   PARITY   := B#16#1        // Even
   DATABITS := B#16#8        // 8 data bits
   STOPBITS := B#16#1        // 1 stop bit
   FLOWCTRL := B#16#0        // no flow control
   XONCHAR  := B#16#11
   XOFFCHAR := B#16#13
   DONE     := M100.0
   ERROR    := M100.1
   STATUS   := MW102

Step 4: Call SEND_CFG and RECV_CFG After PORT_CFG

Send configuration defines end-of-frame delimiters (terminator characters) for outgoing telegrams. Receive configuration defines start-of-frame and end-of-frame delimiters, plus buffer behavior. These blocks must be called once after PORT_CFG completes successfully:


// OB100 - after FB 60 DONE has been seen
CALL FB 61, DB_SEND_CFG
   REQ      := "ConfigTrigger"
   PORT     := "HW_CM_PtP"
   DELAY    := 0            // idle time before send (ms)
   BUFFERED := FALSE        // use immediate send
   // Additional inputs for terminator character defined per FB 61 input list
   DONE     := M110.0
   ERROR    := M110.1
   STATUS   := MW112
CALL FB 62, DB_RECV_CFG
   REQ      := "ConfigTrigger"
   PORT     := "HW_CM_PtP"
   // Inputs for start condition (1=after silence, 2=after terminator, 3=after fixed length)
   // Inputs for end condition (1=after terminator, 2=after timeout, 3=after length)
   DONE     := M120.0
   ERROR    := M120.1
   STATUS   := MW122

Refer to the Siemens manual "PtP-Instructions for using ET 200MP / ET 200SP in distributed I/Os of a S7-300/400 PLC with Step 7 V5.5" and the ET 200S PtP function manual for the complete input structure of FB 61 and FB 62. The general CM PtP reference is at Siemens Support — CM PtP V1.2 manual (PDF).

Step 5: Implement SEND_PTP and RECEIVE_PTP

Once the port is configured, use FB 63 (SEND_PTP) to push a data buffer to the line, and FB 64 (RECEIVE_PTP) to fetch received bytes into a DB. These FBs are typically called from OB1 on a cyclic basis or triggered by user events:


// OB1 - cyclic send triggered by edge
A "SendTrigger"
FP M200.0
= M200.1
CALL FB 63, DB_SEND_PTP
   REQ    := M200.1
   PORT   := "HW_CM_PtP"
   BUFFER := DB_TX.Pointer    // ANY pointer to DB_TX data area
   LEN    := DB_TX.Length     // number of bytes to send
   DONE   := M201.0
   ERROR  := M201.1
   STATUS := MW202

// OB1 - cyclic receive
CALL FB 64, DB_RECV_PTP
   EN     := TRUE
   PORT   := "HW_CM_PtP"
   BUFFER := DB_RX.Pointer
   LEN    := DB_RX.Length
   NDR    := M210.0         // New data received
   ERROR  := M210.1
   STATUS := MW212

RS232C Wiring and Pinout

The CM PtP presents a male 9-pin D-sub connector with the standard Siemens RS232 pinout (DTE-style but with Siemens conventions, not IBM AT modem conventions):

Pin Signal Direction (CPU side view) Description
2 RxD Output (from CM to field) Received data
3 TxD Input (from field to CM) Transmitted data
4 CTS Output Clear to send
5 RTS Input Request to send
6 DSR Output Data set ready
7 DCD Output Data carrier detect
8 DTR Input Data terminal ready
1, 9 — — Unused / shield ground
Caution: The Siemens CM PtP pinout is NOT directly compatible with standard IBM-PC COM ports. Pins 2 (TxD) and 3 (RxD) are swapped relative to a PC DTE. A "straight-through" RS232 cable will NOT work between a PC and the CM PtP. Use a null-modem cable (crossover of pins 2-3, 4-5, 6-20, 7-8) or a Siemens pre-made cable such as the 6ES7 902-3AB00 series to connect to a PC.

The shield of the RS232 cable should be bonded at the cabinet entry point to the protective earth bar, not to the module shell, to avoid ground loops. Maximum cable length for RS232C at 19200 bit/s is approximately 15 m; at 9600 bit/s, 30 m is achievable with quality cable. For longer runs or noisy environments, consider migrating to the RS422/485 variant 6ES7 137-6AB00-0BA0.

Verification and Diagnostics

After downloading the HW Config and the user program, perform the following verification:

  1. Open the online view of OB100 and observe M100.0 (DONE from PORT_CFG). If FALSE after one scan and M100.1 (ERROR) is TRUE, evaluate STATUS at MW102 to identify the fault.
  2. Open the diagnostic buffer of the ET 200S IM 151. If the CM PtP reports "Module OK" but the port is silent, the issue is on the application side — FBs were not called or were called with wrong parameters.
  3. Use a serial line analyzer or a PC running Tera Term / PuTTY on the same RS232 port to verify framing. If the PC receives garbage, reduce baud rate or check parity. If the PC receives nothing, verify the cable with a loopback test (pin 2 shorted to pin 3 at the field end).
  4. Enable the diagnostic interrupt option in HW Config so a module fault produces an OB82 call. Inside OB82, evaluate the Module Fault record (record 0) to read standardized diagnostic data.
  5. Use the STEP 7 "Monitor/Modify" tool to inspect the DONE / ERROR / STATUS outputs of each PtP FB call in real time.
  6. For persistent fault diagnosis, add an instance DB to the SEND_PTP and RECEIVE_PTP FBs and watch the internal STATUS word for transient errors.

STATUS / Error Code Reference (FB 60 PORT_CFG)

STATUS (hex) Meaning Remediation
0000 OK —
8081 Internal error (invalid BAUD / PARITY combination) Recheck BAUD/PARITY codes against the table above
8082 Parameter assignment error Verify PROTOCOL = 0 and all values within range
80A0 Module does not support required protocol Verify the correct CM PtP variant is in the slot
80A1 Module not configured / not reachable Check PROFIBUS/PROFINET connection to ET 200S
80B0 Hardware identifier does not match the module Re-read system constant in HW Config
80B1 Port already configured with different parameters Cycle power or call RES_RECV before reconfiguration

Troubleshooting Matrix

Symptom Likely Cause Action
No communication, FB 60 STATUS = 80A1 Hardware identifier wrong or module not in slot Re-check system constants in HW Config; verify slot
No communication, STATUS = 0000, no DONE REQ is not a rising edge Use first-cycle flag, not static TRUE
Port opens but data is gibberish Baud rate or parity mismatch Match exactly the partner device spec; test with a known-good terminal
First byte correct, later bytes lost No flow control and peer overruns Enable RTS/CTS or XON/XOFF
OB82 diagnostic interrupt fires Module pulled, wire break on RS232 control lines, or module fault Read diagnostic record in OB82
FB 63 returns STATUS = 1A0B Receive buffer not cleared before new send Call FB 65 RES_RECV first
Receiving nothing, STATUS = 0000 always Receive configuration never called Add FB 62 call before FB 64
CPU goes to STOP after download FB called with no instance DB Assign a unique DB to each FB call (multi-instance not supported for PtP blocks)
Communication works at 9600 but fails at 115200 Cable too long or unshielded Reduce baud rate or replace cable with shielded twisted pair
Works for 10 minutes then stops Watchdog timeout on peer device Implement periodic keep-alive send; check partner's timeout config

Best Practices and Field Tips

  • Always call FB 60 (PORT_CFG) from OB100 (startup) and gate the REQ with a first-cycle flag, not a static TRUE. This prevents repeated reconfiguration if OB100 is called more than once after a warm restart.
  • Use a dedicated instance DB per FB call. Do not use multi-instance FBs for the PtP blocks — Siemens does not guarantee behavior with multi-instance allocation on ET 200S PtP modules.
  • Wire all status outputs (DONE, ERROR, STATUS) to flags so the FB results are observable in the STEP 7 online view. Hiding STATUS in a TEMP variable makes field debugging unnecessarily painful.
  • For RS232 runs longer than 5 m at speeds above 38400 bit/s, use a high-quality shielded cable with the shield bonded at the cabinet entry only. Floating shields create EMC pickup that manifests as intermittent framing errors.
  • When migrating to TIA Portal later, the FB 60-65 instances map to new instructions with different names and similar parameters. Keep the parameter list documented in the project to ease migration.

Frequently Asked Questions

Why are the parameter settings I make in HW Config of STEP 7 V5.5 not affecting the RS232 port of the 6ES7 137-6AA00-0BA0?

The HW Config Parameter Assignment dialog only sets module-level diagnostics and interrupt behavior for the ET 200S CM PtP. The serial character frame (baud rate, parity, data bits, stop bits, flow control) is configured at runtime by FB 60 (PORT_CFG) and the related FBs from the user program, not from HW Config.

What FB numbers replace TIA Portal's Port_Config, Send_Config, and Receive_Config in STEP 7 V5.5 for an ET 200S PtP module?

In STEP 7 V5.5 distributed I/O context, FB 60 (PORT_CFG), FB 61 (SEND_CFG), and FB 62 (RECV_CFG) from the Standard Library provide the equivalent functionality. Confirm the exact block numbers in your installation's Standard Library → Communication Blocks → PtP folder, as variants exist for ET 200S, ET 200MP, and ET 200SP.

What should be passed to the PORT input of FB 60?

Pass the hardware identifier (HWID) of the CM PtP module, exposed as a system constant (HW_...) in HW Config. Do not pass an SFB number or a logical address; the HWID is the symbolic name STEP 7 uses to address the module.

Can I configure two CM PtP modules on the same ET 200S station with different parameters?

Yes. Each CM PtP has its own hardware identifier and its own instance of FB 60/61/62/63/64 with separate instance DBs. Configure each independently with its own PORT_CFG call. The IM 151 limits the maximum number of CM PtP modules per station; consult the IM manual for the limit (typically 4-8 depending on the IM variant).

Is the 6ES7 137-6AA00-0BA0 pinout compatible with a PC COM port?

No. The Siemens CM PtP uses a DTE-style pinout where RxD and TxD are swapped relative to a standard PC DTE. Use a null-modem cable or the Siemens pre-made RS232 cable (e.g., 6ES7 902-3AB00 series) to connect to a PC.

Back to blog