Problem Overview
When a SIMATIC S5-115U system is rebuilt with a CPU 943B in place of the original CPU 943, the loss of the second serial interface (SI2) silently breaks the HMI driver if the application was written against the FAP (point-to-point) protocol on TTY2. The Lauer PCS090 panel reports two distinct symptoms that must be interpreted together: a transient "-connection error-" message during handshake and a persistent "-wrong DB-" message after each retry. Both errors are caused by a single root cause — a STEP 5 communication block that no longer has a physical interface to bind to — but the HMI displays them in sequence because the runtime retry logic steps through handshake phases before terminating the connection.
The error pattern is reproducible on every CPU 943B migration where the HMI is moved from SI2 to SI1 without rewriting the program. The block numbers (FB50/FB51/FB53) discussed below map directly to the Lauer TDOP library that ships with PCS configuration software and with the original PCS communication manual for S5.
Hardware Differences: CPU 943 vs CPU 943B
The 115U CPU family shares the same backplane, instruction set, and I/O addressing. The relevant differences for HMI integration are confined to the serial interface section of the front connector and the SSNR (station/sub-interface number) table inside the CPU firmware.
| Parameter | CPU 943 (e.g., 6ES5 943-7UB11) | CPU 943B (e.g., 6ES5 943-7UB21 / -7UB31) |
|---|---|---|
| Serial interfaces | 2 × TTY/20 mA (SI1, SI2) | 1 × TTY/20 mA (SI1 only) |
| SI1 protocol | AS511 only | AS511 only |
| SI2 protocol | AS511, FAP, 3964R, ASCII, RK512 | Not present |
| FAP support | Yes, via FB53 (TDOP:FAP) | No |
| SSNR table | 0 = SI1, 1 = SI2 | 0 = SI1, no entry for SI2 |
| 20 mA supply on port | Software-selectable active/passive | Software-selectable active/passive |
| Front connector | 15-pin sub-D (SI1) + 15-pin sub-D (SI2) | Single 15-pin sub-D (SI1) |
| Work memory range | Same family | Same family |
| OB1 scan time impact | Negligible | Negligible |
The Siemens support entry S5-115U CPU 943/944 communication functions (entry 1085937) lists the canonical TDOP block set and confirms that SI2-dependent FBs return status word 8001hex (interface not present) on a CPU 943B.
AS511 Protocol and the TDOP Block Family
Lauer PCS panels speak to SIMATIC S5 through the TDOP (Terminal Data Oriented Protocol) library. The FB number chosen at runtime defines both the physical layer and the data-link frame. The library is delivered either embedded in the HMI firmware or as a STEP 5 source library that the integrator imports into the project and calls from OB1. The protocol-to-FB mapping is fixed by convention:
| Connection | FB No. | FB Name | Interface | Required Hardware |
|---|---|---|---|---|
| AS511 (TTY) | FB51 | TDOP:511 | SI1 or SI2 | CPU 943 / 943B (built-in) |
| FAP direct to SI2 | FB53 | TDOP:FAP | SI2 only | CPU 943 SI2 |
| FAP via CP521 SI | FB52 | TDOP:521 | CP521 | CP 521 SI module |
| FAP via CP523 | FB52 | TDOP:523 | CP523 | CP 523 module |
| PROFIBUS-DP | FB58 | TDOP:DP | PROFIBUS master | IM 308C / CP 5431 |
| SINEC L1 | FB56 | TDOP:L1 | SINEC L1 | CP 530 |
| PROFIBUS (FMS) | FB55 | TDOP:L2 | PROFIBUS | CP 5431 FMS |
| Parallel | FB54 | TDOP:PAR | Parallel I/O | Custom wiring |
The original CPU 943 application in this scenario almost certainly used FB53 (TDOP:FAP) on SI2 because the user reports that the HMI was historically wired to TTY2. FAP is the only entry on the table that maps directly to SI2 without an additional CP module. The migrated program still calls FB53 (or its wrapper FB50), but on the CPU 943B the SSNR parameter that resolves to SI2 no longer points at any hardware. The CPU returns status word 8001hex within one scan, the panel watchdog expires, and the runtime falls into the "-connection error-" branch.
The FB50 Mystery
The active FB in the migrated project is FB50, which is not part of the canonical TDOP table. Two practical interpretations exist on real-world S5 installations:
- Project wrapper: FB50 was created at original commissioning as a copy of FB53 with hard-coded SSNR=1 (SI2) and the DB pointer that the PCS090 expects. The wrapper internally calls FB53, which re-introduces the SI2 dependency. This is the most common cause and explains both error messages.
- Regional or Lauer variant: FB50 is a non-standard Lauer-supplied block that was bound to AS511 on SI1 in the original project. In that case it should already work on the CPU 943B. If FB50 source reveals no internal call to FB51/FB53 and yet still fails, the bug is in the PCS090 project (DB number or driver selection), not the program.
To resolve the ambiguity, open the FB50 source in STEP 5 and inspect network 1 (block header) and the SPA/SPB calls inside the body. A wrapper will contain a literal "SPA FB53" or "SPA FB51"; a true variant will contain the protocol logic inline. The Lauer PCS Communication Manual S5 documents the official TDOP set; cross-check FB50 against that catalogue before deleting it.
Root Cause Analysis
The PCS090 message "-wrong DB-" indicates that the panel has completed part of the AS511 handshake and is now reading the data block pointer that the CPU's communication block returns. The handshake succeeds because the panel is talking AS511 over SI1 (the line driver is alive), but the data returned is the wrong DB because the CPU is responding from a default or empty DB on the FB53 path. The panel then aborts and the message "-connection error-" is logged as the connection drop reason.
The exact mechanism is:
- OB1 calls FB50 (wrapper) → FB53 (FAP/SI2).
- FB53 attempts to initialize SI2. CPU 943B returns status 8001hex (interface not available) to the FB53 instance DB.
- FB53 marks the instance DB as "initialized but inactive" and writes the DB number from its DNo parameter into the response buffer.
- The HMI's AS511 poller reads the response, sees an unexpected DB number, and reports "-wrong DB-".
- The watchdog expires, the HMI disconnects, and "-connection error-" is logged.
Both messages therefore have a single root cause: a program block that requires SI2 is running on a CPU without SI2.
Resolution Procedure
Prerequisites
- STEP 5 programming tool (S5-DOS, STEP 5 V6.x, or STEP 5 V7.x for Windows) on a PG 720 / PG 740 / PG 685 / Field PG.
- Online or offline copy of the S5 program from the original CPU 943 (recommended; the migration project is the only safe starting point).
- Latest PCS090 configuration project file (Lauer PCS-Studio export).
- Spare TTY/20 mA cable (the existing SI2 cable is reusable on SI1).
- PLC in STOP, PC connected to the CPU via the MPI/TTY service port or the PG port on the front of the CPU.
Step 1 — Identify the active protocol block
- Open the STEP 5 project in the programming tool.
- Run a cross-reference (REF) on FB50, FB51, FB52, FB53, FB58. Record every call site and the assigned DB number (DNo parameter) and SSNR.
- Open FB50 source and confirm whether it calls FB53 (wrapper hypothesis) or implements protocol inline (Lauer variant hypothesis).
- Open the PCS090 configuration file and locate the protocol driver entry. Confirm it is set to "AS511 / SI1" or "FAP / SI2". The original machine will read "FAP / SI2".
Step 2 — Replace FB50/FB53 with FB51 (AS511) on SI1
- Insert the TDOP:511 (FB51) block from the Lauer/Siemens TDOP library if it is not already present in the program file container. The library is bundled with the PCS090 configuration utility and is documented in the Lauer PCS Communication Manual S5.
- In OB1, replace every call to FB50 or FB53 with a call to FB51. Keep the same DB number passed in DNo where the PCS090 expects it; do not change DB numbering without also updating the PCS090 project.
- Set the FB51 SSNR input to 0 for SI1 on the CPU 943B. SSNR=1 (SI2) is invalid on this CPU and will return status 8001hex immediately.
- Configure baud rate, parity, and handshake per the Lauer manual defaults: 9600 bit/s, 8 data bits, even parity, 1 stop bit, no hardware handshake, TTY/20 mA current loop. These parameters are passed to FB51 as inputs and stored in the instance DB on the first call.
- Compile the program and verify no unresolved references (STEP 5 will list missing FBs/DBs at the bottom of the compilation report).
Step 3 — Recompile and download
- Place the CPU in STOP mode.
- Download the new program block-by-block (FB first, then DB, then OB, then PB). Avoid full memory erase unless the project has been fully reconstructed.
- Switch the CPU back to RUN. Verify the front-panel LEDs: RUN green solid, STOP off, BASP off, SF off. A solid SF LED indicates the FB51/DB combination has a parameter error; in that case go directly to the troubleshooting matrix.
Step 4 — Rewire the HMI cable to SI1
The CPU 943B TTY/20 mA front connector uses the same 15-pin sub-D pinout as the SI1 port of the CPU 943. The pinout for the active current-loop interface is:
| Pin | Signal | Function |
|---|---|---|
| 1 | Shield | Cable shield, bonded to chassis at one end only |
| 2 | TXD+ | 20 mA current source, transmit |
| 3 | RXD+ | 20 mA current source, receive |
| 4 | — | Reserved |
| 5 | +5 V (limited) | Auxiliary supply for active panels |
| 9 | TXD- | 20 mA current sink, transmit |
| 11 | RXD- | 20 mA current sink, receive |
The original Lauer cable from the SI2 port can usually be reused because the electrical interface is identical. Confirm continuity between pin pairs before powering up the CPU.
Step 5 — Recommission the PCS090
- Power-cycle the PCS090 panel.
- From the System menu, navigate to Project → Download and transfer the updated PCS project to the panel.
- If the Lauer configuration utility exposes a driver selector, change it from "FAP/SI2" to "AS511/SI1". Many PCS090 builds auto-detect; if the project does not allow this change, leave the project intact and let the runtime negotiate AS511.
- Watch the status line during the first 5 seconds of handshake. The "-wrong DB-" message should disappear immediately. The "-connection error-" message should be replaced by an "online" indicator or a green status bar.
- If either fault persists, jump to the troubleshooting matrix below before opening the FB source again.
DB Number Verification
The "-wrong DB-" error is the most common residual fault after the protocol swap. The PCS090 expects a specific DB number per its configuration, and the FB51 instance DB must match. To reconcile:
- In STEP 5, list every DB used by the program (cross-reference → Data Blocks). Note the DB referenced inside the FB51 call (usually the second parameter or stored as a constant in the FB source).
- Open the PCS090 configuration and locate the field labelled DB-Nummer, PLC-DB, or Communication DB. The value must match the STEP 5 DNo parameter exactly.
- If the PCS090 project allows a DB scan range (e.g., DB 10 to DB 200), restrict it to the DB range actually present in the CPU to prevent the HMI from polling DBs that the CPU returns as empty.
- If the DB layout has changed during the migration (e.g., additional tags added), recompile the PCS090 project from the same tag list exported from STEP 5.
A frequent field pitfall is DB0: if the FB51 call is parameterised with DNo=0 the PCS090 reports "-wrong DB-" on every cycle because DB0 exists in the CPU but cannot be used as a data source for AS511 communication. Always use a data DB (DB 10 and above for STEP 5 conventions).
TTY Interface Wiring Notes
If the existing cable was originally built for an RS-232 PG connection it must be replaced with a true 20 mA loop cable. Maximum cable length is 100 m at 9600 bit/s in 20 mA loop, shielded twisted pair. The shield must be bonded to chassis ground at one end only; bonding both ends creates a ground loop that introduces noise and intermittent "-connection error-" messages under load.
The Beijer technical document S5 communication for PCS panels (91SIE_D) documents the canonical TTY cable assembly and the part-number references for the connectors used on the Lauer PCS family.
Parameter Reference for FB51 (TDOP:511)
| Parameter | Type | Value for CPU 943B + PCS090 | Description |
|---|---|---|---|
| SSNR | INT (in) | 0 | Station/sub-interface number (0 = SI1) |
| DNo | INT (in) | 10 (typical) | Data block number used as comm DB |
| BAUD | INT (in) | 5 (= 9600 bit/s) | Baud rate code per Lauer table |
| PAR | INT (in) | 1 (= even) | Parity |
| DBNOFF | INT (in) | 0 | DB offset for tag mapping |
| ANZ | INT (in) | Number of tags in DNo | Tag count |
| STATUS | WORD (out) | 0000hex = OK | Return status word |
Status words observed in field deployments of this migration:
| STATUS | Meaning | Action |
|---|---|---|
| 0000hex | Communication running | None |
| 8001hex | Interface not present (SSNR invalid) | Check SSNR=0 on CPU 943B |
| 8002hex | DB not present | Download the data DB |
| 8003hex | Baud rate not supported | Use 9600 or 19200 |
| 8004hex | Parity error from line noise | Check cable shield and baud match |
| 8005hex | Watchdog expired | Reduce HMI poll rate or check CPU scan time |
Troubleshooting Matrix
| PCS090 Message | Likely Cause | Action |
|---|---|---|
| -connection error- | SI2 call from FB53 on a CPU without SI2 | Replace FB53 with FB51, set SSNR=0 |
| -connection error- | Cable wired to wrong pins | Verify pinout against table; check shield |
| -connection error- | 20 mA loop not powered (passive panel) | Enable 20 mA supply on SI1 or use active cable |
| -connection error- | CPU in STOP at HMI start | Switch CPU to RUN, then power-cycle HMI |
| -wrong DB- | DB number mismatch between FB51 call and PCS config | Reconcile DB numbers |
| -wrong DB- | PLC in STOP, HMI receives DB0 empty | Switch CPU to RUN, then reload HMI |
| -wrong DB- | FB50 wrapper still calls FB53 internally | Edit FB50 or delete and call FB51 directly |
| No message, panel stays on logo | Wrong driver selected in PCS090 config | Set driver to AS511 SI1 |
| -connection error- intermittently | Baud rate mismatch | Set both ends to 9600 8E1 |
| -connection error- intermittently | OB1 scan time too high (> 200 ms) | Reduce scan time or move FB51 to OB35 |
| SF LED on, BF off | FB51 parameter error | Check SSNR, DNo, BAUD inputs |
| SF and BF LEDs on | DB referenced by FB51 is missing | Download DB before OB1 |
Verification Checklist
- CPU 943B in RUN, no SF/BASP LEDs.
- FB51 (TDOP:511) called exactly once in OB1 with SSNR=0.
- FB50 deleted or replaced; no remaining SPA FB53 calls in any FB/OB/PB.
- Data DB referenced in FB51 is present in the PLC and online.
- PCS090 status line shows "online" within 5 seconds of PLC RUN transition.
- Tag round-trip test: write a value (e.g., 16#1234) to MW 100 from the PCS090, read it back via a status display on the same panel. Confirms full bidirectional AS511.
- Forced PLC STOP: PCS090 must show "PLC offline" rather than "-connection error-". This confirms the AS511 handshake is healthy and the error chain is broken.
- Power-cycle test: cold start both PLC and HMI; verify auto-reconnect within 10 seconds.
- Long-duration soak test: leave the system running for 1 hour; verify STATUS remains 0000hex throughout.
When to Source a CPU 943 Instead
If the existing program heavily uses SI2-specific features (FAP with custom data rates, multiple HMI clients, redundant HMI on SI2) and the panel firmware is locked to FAP, it is usually faster and cheaper to source a refurbished CPU 943 (6ES5 943-7UB11 / -7UB21) than to refactor the STEP 5 project. The CPU 943 and 943B share the same instruction set, so the original program downloads unchanged and the Lauer PCS090 continues to work without code modifications.
Refurbished S5-115U CPUs are widely available from German surplus automation suppliers. Verify the back-up battery is new and that the EPROM/EEPROM submodule carries the same firmware revision as the original to avoid cold-start user-program loss.
Alternative Path: Adding a CP 521 to the CPU 943B
If the application cannot lose SI2 functionality and a CPU 943 is not available, install a CP 521 SI or CP 523 module in the S5-115U rack of the CPU 943B. The CP provides a second TTY interface and supports the FAP protocol. With the CP in the rack, FB53 can be re-pointed to the CP's SSNR (typically 4 or 8, depending on slot), and the existing program runs unchanged. Verify the CP firmware revision against the TDOP block set in use: CP 521 with firmware < V3.0 does not support all TDOP variants and may return status 8003hex on handshake.
Long-Term Migration to S7-1500
If the S5-115U installation is approaching end-of-life (Siemens officially ceased S5 spare-parts support in 2020 and the migration program was concluded in 2023), the PCS090 will need a protocol bridge. The simplest path is to keep the PCS090 on its AS511 TTY interface and put a Siemens IWLAN/PROFINET-to-TTY gateway in front of an S7-1200/S7-1500. Devices such as the Helmholz NET-Link PRO or the Indu-Sol S5-DP/PN gateway terminate AS511 on the TTY side and present a PROFINET IO device on the S7 side. The PCS090 requires no firmware change.
FAQ
What is the practical difference between Siemens S5 CPU 943 and 943B?
The CPU 943 has two TTY/20 mA serial interfaces (SI1 and SI2); the CPU 943B has only SI1. SI1 is restricted to the AS511 protocol, while SI2 supports AS511, FAP, 3964R, ASCII, and RK512. All other CPU features (instruction set, memory layout, scan time) are functionally equivalent for program portability.
Why does the Lauer PCS090 show "-wrong DB-" only on the CPU 943B?
The HMI expects a specific data block number per its configuration. The original CPU 943 program called FB53 (TDOP:FAP) on SI2; on the CPU 943B the same call cannot resolve because SI2 is absent, so the runtime returns an empty or default DB pointer. The PCS090 interprets this as a wrong DB and aborts the handshake. Migrating the call to FB51 (TDOP:511) on SI1 with the correct DB number resolves the fault.
Can I keep the existing FB53 call if I add a CP module to the CPU 943B?
Yes. Installing a CP 521 SI or CP 523 in the S5-115U rack of the CPU 943B restores a SI2-equivalent interface. With the CP in slot, FB53 can be re-pointed to the CP's SSNR (typically 4 or 8). The CP also enables FAP via FB52 (TDOP:521 or TDOP:523) without changing the HMI configuration. Verify CP firmware before relying on the FAP option, as some older CP 521 revisions do not support all TDOP variants.
Is FB50 a standard TDOP block?
FB50 is not part of the standard Siemens TDOP family. In Lauer PCS HMI projects FB50 is most often a project-specific wrapper around FB51 or FB53, created to hide SSNR and DB parameters from the application programmer. Inspecting the FB50 source in STEP 5 reveals which underlying TDOP block it ultimately invokes and confirms whether the wrapper must be replaced or simply re-parameterised.
Do I need a new cable when moving from SI2 to SI1 on the CPU 943B?
Usually no. Both SI1 and SI2 are TTY/20 mA current loop interfaces with identical electrical characteristics. The connector on the CPU front panel is the same 15-pin sub-D, so the existing Lauer TTY cable can be plugged directly into SI1. If the original cable was built for RS-232 (for example for a Siemens PG port) it must be replaced with a true 20 mA loop cable or the interface drivers may be damaged.