Siemens 802C Serial Handshaking: Configure RTS/CTS vs XON/XOFF

David Krause14 min read
Serial CommunicationSiemensTroubleshooting
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

Problem Overview

Field engineers commissioning the Siemens SINUMERIK 802C controller frequently encounter a serial file transfer failure that looks like a configuration paradox: the controller menu is set to XON/XOFF software handshaking, PCIN on the PC side is configured to match, the cable tests good against a SINUMERIK 810D, and yet no data is ever delivered to the controller. RX activity on the PC is silent, the transfer never advances, and the operator sees a hung communication session.

The root cause is a mismatch between the controller's expected flow control mechanism and the transfer protocol used by PCIN. The 802C firmware exposes XON/XOFF in the serial setup menu because it shares a common parameter set with other SINUMERIK controllers, but the reliable transfer path for the 802C base line with PCIN 4.x/6.x and WinPCIN is RTS/CTS hardware handshaking. Selecting XON/XOFF leaves the 802C waiting for in-band flow control characters that PCIN never sends, while the actual data stream is gated by control lines the controller has been told to ignore.

This article documents the underlying protocol behavior, the cable wiring required for hardware handshaking, the PCIN configuration parameters that must agree on both sides, and the verification steps that confirm a healthy link. The same procedure applies whether you are moving part programs, tool lists, or compensation data files.

Handshaking Fundamentals: Hardware vs. Software Flow Control

RS-232 flow control exists because the sender and the receiver operate at independent speeds and have independent buffer depths. If the sender overruns the receiver, characters are dropped. The two dominant flow control mechanisms are fundamentally different in where and how the pause/resume signal travels.

Attribute Hardware (RTS/CTS) Software (XON/XOFF)
Signal carrier Dedicated RS-232 voltage lines (RTS, CTS, optionally DTR/DSR) In-band ASCII characters embedded in the data stream
Pause character CTS de-asserted (negative voltage) XOFF = ASCII DC3 = 0x13
Resume character CTS asserted (positive voltage) XON = ASCII DC1 = 0x11
Latency Near-instantaneous, edge-triggered One byte-time at the configured baud rate, plus decode latency
Transparency Full binary transparency, control characters carry data unmolested Bytes 0x11 and 0x13 cannot appear in payload; require escaping or avoidance
Typical use CNC controllers, industrial PLCs, modems Printers, legacy terminals, slow serial devices with clean ASCII protocols

The crucial point for the 802C is the transparency row. PCIN transfers files that contain arbitrary byte values: part program G-code is mostly ASCII but tools, compensation tables, and binary archives contain the full 0x00-0xFF range. If the receiver is gating on XON/XOFF, any payload byte that happens to equal 0x11 or 0x13 will be mis-interpreted as a flow control command, truncating or corrupting the file. The 802C base line firmware does not implement XON/XOFF escaping, so the transfer cannot be made reliable with software handshaking. Hardware handshaking sidesteps this entirely because RTS/CTS signals travel on separate wires and never appear in the data stream.

SINUMERIK 802C Serial Interface Architecture

The 802C base line exposes its serial channel through the X122 interface on the operator panel backplane. The electrical interface conforms to RS-232C (EIA/TIA-232), and the protocol used by PCIN for file transfer is a Siemens-proprietary framed protocol layered on top of the asynchronous UART. The relevant electrical and protocol parameters are:

Parameter Typical 802C value Notes
Standard RS-232C (EIA/TIA-232-F) Single-ended, +/- 3 to 15 V signal levels
Connector DB-25 female on the controller side; DB-9 female on typical PC side Pinout documented in the operator manual; verify against the device-specific manual before wiring
Baud rates supported 9600, 19200, 38400, 57600, 115200 (firmware-dependent) Both sides must agree exactly; 19200 is a common default
Data bits 8 Fixed by the PCIN protocol
Parity None Fixed by the PCIN protocol
Stop bits 1 Fixed by the PCIN protocol
Flow control RTS/CTS hardware handshaking required for reliable PCIN transfer XON/XOFF is menu-exposed but unsupported in the transfer path

Verify the exact pinout and supported baud rates against the device-specific SINUMERIK 802C base line operator's manual on the Siemens Industry Online Support portal before commissioning. The reference manuals are organized by controller variant and firmware release.

Why XON/XOFF Fails on the 802C with PCIN

When the operator selects XON/XOFF in the 802C serial setup, the firmware configures its UART to interpret received bytes 0x11 and 0x13 as flow control tokens. PCIN, however, expects to drive the 802C's CTS line to throttle its own transmissions. Two problems compound:

  1. No outbound gating. PCIN never sees a software XOFF because it is not running in software-handshaking mode either; the 802C has only listened, never spoken the XOFF token. PCIN therefore dumps the entire file into its transmit buffer, which the 802C either discards or partially accepts, depending on whether any payload byte collides with 0x11/0x13.
  2. Payload collision. When a payload byte coincidentally equals XON (0x11) or XOFF (0x13), the 802C's UART either spuriously resumes or pauses, desynchronizing the framed protocol. PCIN's framing layer does not include escaping for these bytes, so a single occurrence in the wrong place breaks the transfer.

Field reports confirm that this manifests as "nothing happens" on the controller side: the 802C serial menu shows the configuration is set, PCIN reports it has begun sending, but the controller's part program directory never updates and no error message is raised. The cable itself is fine; both controllers (802C and 810D) passed a physical test, which proves the wires are continuous. The fault is purely in the flow control negotiation.

Important: The XON/XOFF menu entry exists for parity with other SINUMERIK controllers where it is supported. On the 802C base line, it is a no-op for PCIN transfers. Always select RTS/CTS in the controller's serial setup and configure the matching option in PCIN.

Cable Requirements: Full Hardware Handshaking Null Modem

A standard 3-wire null modem (TX, RX, GND only) is insufficient for the 802C because it leaves RTS and CTS unconnected. PCIN requires the 802C to assert RTS when it is ready to receive, and to gate its own transmissions on CTS. Without these signals looped back correctly, the sender has no way to know when the receiver is ready.

The required cable is a null modem with full hardware handshaking. The exact pinout depends on whether the controller uses a DB-25 or DB-9 connector; refer to the operator manual for the specific variant. A representative full-handshaking null modem between a PC DB-9 and the 802C connector is:

Signal PC DB-9 pin Direction 802C pin (per operator manual)
FG (Frame Ground / Shield) Shell ↔ Shell
TX (Transmitted Data) 3 → RXD input
RX (Received Data) 2 ← TXD output
RTS (Request To Send) 7 → CTS input (controller reads this as "PC ready")
CTS (Clear To Send) 8 ← RTS output (controller drives this as "802C ready")
DTR (Data Terminal Ready) 4 → DSR input
DSR (Data Set Ready) 6 ← DTR output
SG (Signal Ground) 5 ↔ Signal Ground

The two pairs that matter most for flow control are RTS↔CTS crossed and DTR↔DSR crossed. When you wire these correctly, each side asserts a "ready" line that the other side interprets as "go ahead." A common field error is to loop RTS back to RTS and CTS back to CTS on the same end of the cable; this satisfies the local UART but provides no information to the far end. Always cross them.

To verify the cable before connecting it to the controller, perform a continuity test with a multimeter:

  1. Confirm TX on the PC end lands on RX on the controller end.
  2. Confirm RX on the PC end lands on TX on the controller end.
  3. Confirm RTS on the PC end lands on CTS on the controller end.
  4. Confirm CTS on the PC end lands on RTS on the controller end.
  5. Confirm signal ground is continuous on the dedicated ground pin.
  6. Confirm shield/frame ground is bonded at one end only to avoid ground loops.

PCIN Software Configuration

PCIN is the Siemens toolchain used to move files between a PC and a SINUMERIK controller over a serial link. Two interfaces exist: the legacy PCIN 4.x (DOS-era) and the more recent WinPCIN for Windows. The relevant setup parameters must match the controller exactly, because the 802C will silently ignore a transfer whose framing or handshake disagrees.

PCIN parameter Required value for 802C Common mistake
Interface / COM port COM1, COM2, etc. matching the physical PC port Selecting a port number that does not exist or is shared with another driver
Baud rate Match controller (commonly 19200) Mismatched baud rate produces framing errors and no diagnostic on the controller
Data bits / Parity / Stop 8 / None / 1 Any deviation corrupts every byte
Handshake / Protocol RTS/CTS (hardware) Leaving XON/XOFF or "None" selected
File format Part program text or binary as required Sending a Windows-text file with CRLF that the controller rejects
End-of-block character Per PCIN framing default (typically 0x0A LF) Manual modification of framing characters breaks the protocol

The single most consequential parameter is the handshake field. Set it to RTS/CTS before initiating any transfer. Save the configuration so subsequent sessions do not revert to defaults.

802C Controller-Side Configuration

On the 802C base line, the serial interface is configured through the Setup menu on the operator panel. The exact menu path varies slightly by firmware release, but the general sequence is:

  1. Press the Setup key to enter the setup menu.
  2. Navigate to the serial interface / communication submenu.
  3. Set the baud rate to the value matched in PCIN.
  4. Set the handshake to RTS/CTS (not XON/XOFF).
  5. Save the configuration and exit back to the operating area.

If the menu offers a "protocol" or "transfer mode" parameter, leave it at the PCIN-compatible default. Do not enable any diagnostic or echo mode, as these will interfere with the framed protocol.

Step-by-Step: Resolving the Handshaking Mismatch

Use this procedure to bring a failing 802C serial link into service. Each step has an explicit verification so you can isolate any remaining fault.

  1. Power down both devices. Disconnect the serial cable before changing wiring. Hot-swapping DB-25/DB-9 connectors can short signal lines and damage UARTs.
  2. Inspect or rebuild the cable. Use the full-handshaking null modem pinout from the table above. A pre-built cable labeled "null modem" is often a 3-wire variant and will not work.
  3. Configure PCIN. Launch PCIN or WinPCIN, open the interface setup, set COM port, baud rate, and select RTS/CTS hardware handshaking. Save the profile.
  4. Configure the 802C. On the controller, set the serial parameters to match PCIN exactly, with handshake set to RTS/CTS.
  5. Connect the cable. Power up both devices. Confirm the PC recognizes the COM port (Device Manager on Windows should show the USB-to-serial adapter or native COM port without errors).
  6. Run a receive test. From PCIN, send a small known-good file (for example, a short G-code program such as %_N_TEST_MPF). Watch the controller's directory listing for the new file.
  7. Observe the handshake LEDs. If your USB-to-serial adapter exposes RTS/CTS LEDs, you should see them toggle during transfer. Frozen LEDs indicate a wiring fault.
  8. Verify the file. Open the received file on the controller (or read it back via PCIN) and confirm byte-for-byte equality with the source.

Verification Procedure and Diagnostics

Beyond a successful transfer, several diagnostic checks confirm the link is healthy and will remain stable under production load.

Loopback Test

With the controller disconnected and the cable looped back on itself (TX to RX, RTS to CTS, DTR to DSR), PCIN should echo any transmitted data back to its receive window. If the echo fails, the fault is in the PC, the adapter, or the cable - not the controller.

Voltage Measurements

With the cable connected to a powered-on 802C and a running PC, measure the RS-232 levels with a multimeter or oscilloscope:

Line Expected level (idle, 802C ready) Expected level (active transfer)
802C TXD -3 to -15 V (mark) Active toggling between +3..+15 V and -3..-15 V
802C RTS +3 to +15 V (asserted, "ready") Held asserted during the entire transfer
PC CTS (input from 802C RTS) +3 to +15 V Held asserted; de-asserts only if the 802C's buffer is full
PC RTS (output to 802C CTS) +3 to +15 V after PCIN starts Asserted while PCIN has data; de-asserts when its buffer empties

A controller that is in XON/XOFF mode will leave RTS and CTS at indeterminate or static levels because the firmware does not drive those lines as part of the software-handshake state machine. If your measurements show RTS/CTS not toggling at all, the controller is still configured for software handshaking and the menu change did not take effect.

Transfer Log Inspection

PCIN displays a transfer log with byte counts, error counts, and timing. A healthy transfer shows zero errors and a steady data rate equal to the configured baud rate divided by 10 (for 8N1 with overhead). Re-transmitted blocks or rising error counts indicate either buffer overruns (cable too long, baud rate too high) or noise (missing shield ground).

Troubleshooting Matrix

Symptom Likely cause Corrective action
PCIN reports transfer started, controller receives nothing 802C still set to XON/XOFF; PCIN set to RTS/CTS (or vice versa) Set both sides to RTS/CTS hardware handshaking
Transfer starts then hangs after a few hundred bytes RTS/CTS not crossed in cable; only TX/RX/GND connected Rebuild cable per the full-handshaking null modem pinout
Transfer completes but file is corrupt or truncated Baud rate mismatch, parity mismatch, or a 3-wire null modem dropping hardware flow control Verify 8N1 at identical baud on both ends; confirm cable has RTS/CTS
PCIN reports COM port open error Port in use by another application, wrong COM number, or missing USB-to-serial driver Close conflicting apps; verify in Device Manager; reinstall adapter driver
Controller reports communication error after partial transfer Frame slip caused by noise or ground loop; cable exceeds reliable length at selected baud Shorten cable, add shield bonding at one end only, lower baud rate to 19200 or 9600
Transfer works against 810D but not 802C Cable is correct for 810D but missing signals expected by 802C, or 802C has not been switched from XON/XOFF Confirm cable wiring per 802C manual; verify controller serial settings
RTS/CTS LEDs on adapter never toggle Adapter does not drive hardware handshake, or PCIN profile saved with handshake = None Use an adapter with full UART (FTDI FT232, CP2102N, CH340 with drivers); re-save PCIN profile

Notes on Edge Cases and Field-Proven Caveats

Several recurring situations are worth calling out explicitly for the field engineer.

  • USB-to-serial adapters vary. Some low-cost adapters only expose TX, RX, and GND on the DB-9 and do not break out RTS/CTS to the connector. Verify with the adapter datasheet (FTDI FT232R, Silicon Labs CP2102N, and WCH CH340 all break out the full handshake set when properly implemented).
  • Cable length vs. baud rate. RS-232C is rated to 15 m at low baud rates, but in practice the 802C's receiver begins to show errors above 3 m at 115200 baud. For shop floors with motor drives and VFDs nearby, use shielded cable and keep length under 5 m.
  • Firmware variants. Earlier 802C base line firmware revisions had different menu structures. When in doubt, upgrade the controller to the latest released firmware (available on the Siemens Industry Online Support portal) and re-verify the serial menu.
  • PCIN version compatibility. WinPCIN is the supported Windows replacement for PCIN 4.x. The protocol is forward-compatible, but the saved profile format differs. Do not mix profiles between versions.
  • Reverting to XON/XOFF "just to test." Several operators have reported that toggling back to XON/XOFF after a working RTS/CTS session breaks the next transfer because the controller retained stale state. Always cycle power on the controller after a handshake change.

Does the Siemens SINUMERIK 802C support XON/XOFF software handshaking?

The 802C serial menu exposes an XON/XOFF option for parity with other SINUMERIK controllers, but PCIN transfers require RTS/CTS hardware handshaking. With XON/XOFF selected, payload bytes that happen to equal 0x11 (XON) or 0x13 (XOFF) are misinterpreted as flow control tokens and the transfer silently fails.

What cable do I need for 802C to PCIN file transfer?

A null modem cable with full hardware handshaking. The minimum required signals are TX, RX, RTS, CTS, and signal ground; for reliable operation also include DTR and DSR. RTS and CTS must be crossed between the two ends (RTS on the PC lands on CTS on the controller, and vice versa). A 3-wire null modem will not work because it leaves the flow control lines open.

What baud rate should I use between PCIN and the 802C?

Both sides must be set to the same baud rate, with 8 data bits, no parity, and 1 stop bit. 19200 baud is a robust default; 38400 and 57600 work on most installations with short, shielded cables. 115200 baud is supported on later firmware revisions but requires high-quality cable and short runs to avoid framing errors.

Why does the cable work against a SINUMERIK 810D but not against my 802C?

Either the cable is a 3-wire null modem that lacks the RTS/CTS handshaking signals, or the 802C is still configured for XON/XOFF in its serial setup menu. Verify the cable wiring against the operator manual and confirm the controller is set to RTS/CTS, then power-cycle the controller to clear any stale state.

How do I confirm the handshaking is actually working?

With the cable connected and both devices powered, measure the voltage on the RTS and CTS lines (referenced to signal ground). In RTS/CTS mode you should see a positive voltage (between +3 V and +15 V) on the controller's RTS output and toggling activity on CTS during a transfer. Static or negative voltages indicate the controller is not driving the handshaking lines, which means XON/XOFF is still selected.

Back to blog