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:
- 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).
- 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.
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 |
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:
- In HW Config, double-click the CM PtP slot in the ET 200S station.
- Open the "Addresses" tab and note the diagnostic address and I/O addresses.
- 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. - Use that symbolic HWID for the PORT input of FB 60 and the related FBs.
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
- Open the SIMATIC Manager and load your S7-300 or S7-400 station.
- Open HW Config and locate the ET 200S station on PROFIBUS DP or PROFINET IO.
- 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.
- 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.
- Note the diagnostic address (default 1023) and the I/O address. The hardware identifier appears in the system constants table of the S7 program.
- Save and compile (Station → Save and Compile).
- 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:
- In SIMATIC Manager, navigate to your S7 program → Blocks.
- Open the Standard Library → Communication Blocks → PtP folder.
- Copy FB 60, FB 61, FB 62, FB 63, FB 64, FB 65 into your project Blocks folder.
- 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 |
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:
- 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.
- 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.
- 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).
- 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.
- Use the STEP 7 "Monitor/Modify" tool to inspect the DONE / ERROR / STATUS outputs of each PtP FB call in real time.
- 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.