1. Problem Overview
An S7-300 station equipped with an ET 200S distributed I/O head module and a 1SI serial interface module fails to communicate with a fire pump controller acting as a Modbus RTU slave over RS-485. The PLC compiles cleanly, downloads without diagnostic errors, the SF (group fault) LED on the 1SI module stays off, and the supplied zXX21_11_1SI_MODBUS sample project runs to completion, yet no valid response telegrams are ever received from the slave. The TX activity LED flickers, but the RX path stays silent and the Modbus master function block reports ERROR = 1 with status word values typical of "no response within timeout."
This symptom pattern is characteristic of a single, easily-missed configuration mistake: the wrong catalog variant of the 1SI module has been dragged into the STEP 7 hardware configuration. Because the order number 6ES7138-4DF11-0AB0 supports more than one serial protocol, the same MLFB appears in the HW Config catalog several times — once for each supported role. Selecting the wrong role causes the module to load and run firmware that never assembles a valid Modbus RTU request frame, even when the user program calls the correct Modbus function block.
2. Affected Hardware, Firmware, and Software
| Component | Order Number / Designation | Role in Setup |
|---|---|---|
| ET 200S 1SI serial interface module | 6ES7138-4DF11-0AB0 | Modbus RTU master on RS-485 |
| 1SI firmware | V2.5 incl. Service Pack 3 | Modbus master runtime |
| Terminal module | TM-E15S24-01 | RS-485 screw-type termination |
| S7-300 CPU | 6ES7315-2AG10-0AB0 (CPU 315-2 DP) or equivalent | Backplane host for ET 200S |
| Ethernet CP | 6GK7342-1CX10-0XE0 (CP 343-1 Lean) | Programming / HMI path (not used for Modbus) |
| Fire pump controller | Metron FD 4 Eledyn (diesel engine) | Modbus RTU slave on RS-485 |
| Sample project | zXX21_11_1SI_MODBUS | Reference code from Siemens application examples |
The 1SI module documentation and example projects are part of the SIMATIC ET 200S Serial Interface package, available from the Siemens Industry Online Support portal under the entry for 6ES7138-4DF11-0AB0. The manual is also distributed with the sample archive, which includes the project zXX21_11_1SI_MODBUS as a working starting point.
3. Root Cause: Multiple Catalog Variants of the Same MLFB
The ET 200S 1SI module with order number 6ES7138-4DF11-0AB0 is a multi-protocol serial interface. STEP 7 HW Config exposes it in the hardware catalog under a single MLFB, but with multiple sub-entries — one for each supported protocol role:
- USS master
- Modbus master (RTU / ASCII)
- Modbus slave (RTU / ASCII) \
When the user drags the module from the catalog into the ET 200S slot, the selected sub-entry determines which firmware personality the module downloads on next power-up or after re-initialize. All three roles use the same screw terminals, the same RS-485 transceiver, and the same physical connector on the TM-E15S24-01, so there is no visible difference on the hardware side. The catalog entry — not the part number sticker on the device — is what selects the role.
A common error path is to:
- Open HW Config, expand the ET 200S catalog folder, expand "Serial interface," and find
6ES7138-4DF11-0AB0. - Drag the first instance of that MLFB into the slot without noticing that other instances exist directly below it.
- Save, compile, download. The 1SI accepts the configuration and powers up its standard diagnostic LEDs (SF off, BF off, TX/RX may blink).
- Call the Modbus master FB from the sample project. The FB writes the request into the 1SI's dual-port RAM, but the module, now in USS-personality, never assembles a Modbus PDU and never places a response on the bus.
The 1SI module's diagnostic buffer typically does not flag this as an error, because the configuration is internally consistent for the role it was loaded with. The fault is a logical mismatch between the configured role and the FB the application code is calling — both are "valid" for the loaded firmware, so neither side raises a fault.
TX activity is observed on a Modbus scanner connected to the bus, but the frames are not valid Modbus RTU (wrong inter-character timing, wrong address field, or non-standard function codes), the 1SI is almost certainly running a non-Modbus personality.4. STEP 7 HW Config Procedure: Selecting the Modbus Master Variant
Use the following sequence in SIMATIC Manager to place the correct variant of 6ES7138-4DF11-0AB0 into the ET 200S station.
4.1 Prerequisites
- STEP 7 V5.5 or V5.6 installed with the ET 200S HSP (Hardware Support Package) for the 1SI module.
- GSD/HSP version that lists the 1SI module with the Modbus master sub-entry visible in the catalog.
- Project containing the ET 200S head module (IM 151-1 or similar) with at least one free slot for the 1SI module.
4.2 Step-by-Step
- Open SIMATIC Manager and load the project that contains the ET 200S station.
- Double-click Hardware to launch HW Config.
- In the hardware catalog (right pane), navigate to:
SIMATIC 300 > ET 200S > ... > Serial interface(or, in some HSP revisions,PROFINET IO > ET 200S > ... > Serial interface). - Expand the Serial interface folder. You will see
6ES7138-4DF11-0AB0listed multiple times. Each repetition corresponds to a different protocol role. - Right-click each visible instance and read the catalog comment. Select the entry whose comment reads "Modbus master" (sometimes displayed as "Modbus-Master" or "1SI Modbus Master"). Do not select the entries labeled "USS master," "USS," or "Modbus slave."
- Drag the Modbus master instance of
6ES7138-4DF11-0AB0into a free slot of the ET 200S station. - Double-click the placed module to open its Properties dialog.
- On the Parameters tab, set the protocol to "Modbus master" and configure the serial parameters (see Section 5).
- Click OK, then Station > Save and Compile (Ctrl+S).
- Download the hardware configuration to the ET 200S station (target system > PLC > Download to target).
4.3 Verification of Variant Selection
After download, read the 1SI's diagnostic buffer (Module Information > Diagnostic Buffer in HW Config or via online view). The entry "Module loaded: Modbus master" or similar confirms the correct personality. If the buffer reads "USS master," repeat the steps above and explicitly select the Modbus master catalog entry.
5. Modbus RTU Parameter Configuration
Once the correct catalog entry is in place, configure the 1SI's serial parameters to match the Metron FD 4 Eledyn controller's Modbus RTU port. Default values for industrial fire pump controllers are listed below; always cross-check against the specific Metron manual shipped with the unit.
| Parameter | Typical Metron Setting | 1SI Setting | Notes |
|---|---|---|---|
| Baud rate | 9600 bit/s (default); 19200 supported | Match slave | Fire pump controllers are conservative; 9600 is safest during commissioning. |
| Data bits | 8 | 8 | Modbus RTU is always 8 data bits. |
| Parity | Even (default); None selectable | Match slave | Modbus spec recommends even or none. |
| Stop bits (with parity) | 1 | 1 | When parity is enabled, Modbus spec mandates 1 stop bit. |
| Stop bits (no parity) | 2 (per Modbus spec) — but verify on Metron | Match slave | Some controllers (e.g., certain ABB drives) require 1 stop bit with no parity, contrary to the spec. Always read the controller manual. |
| Flow control | None | None | RS-485 is half-duplex; hardware flow control is not used. |
| Slave address | 1–247 (per Modbus spec) | Configured in 1SI job | Address 0 is broadcast and is reserved. |
| Response timeout | ≥ 1000 ms (fire pump) | Set in FB job | Fire pump controllers can be slow under diesel cranking. |
5.1 The Stop-Bit Trap
Modbus RTU over RS-485 specifies 2 stop bits when parity is none and 1 stop bit when parity is even or odd. Several devices, however, depart from this convention. A documented case is the ABB ACS400 drive, which — per the ACS400 Modbus RTU manual — accepts no-parity traffic only when configured for 1 stop bit, even though the Modbus spec calls for 2. If a Metron fire pump controller also behaves non-standardly, the master will see a CRC error on every response and the FB will report "response with parity/framing error."
Diagnostic procedure when only CRC errors appear:
- Connect a Modbus RTU scanner (e.g., a PC running Modbus Poll or a standalone protocol analyzer) to the bus in place of the PLC.
- Issue a known-good FC03 (Read Holding Registers) request at the configured baud and parity.
- Cycle the stop-bit setting on the scanner between 1 and 2 while the slave's parity is set to "none."
- The setting under which the scanner receives clean responses is the controller's actual requirement.
For comparison: the Eaton DIESEL Plus Modbus Communications manual documents that the DIESEL Plus is a slave-only device with selectable Modbus address 1–247, but does not override standard stop-bit behavior. The Metron FD 4 Eledyn typically defaults to even parity / 1 stop bit, which avoids the trap entirely.
6. RS-485 Wiring with TM-E15S24-01
The TM-E15S24-01 terminal module provides screw-type termination for the 1SI module's RS-485 port. Pinout (top view, screw terminals 1 to 15):
| Terminal | Signal | Function |
|---|---|---|
| 1 | — | Not connected |
| 2 | RxD/TxD-P (A) | Non-inverting RS-485 line |
| 3 | RxD/TxD-N (B) | Inverting RS-485 line |
| 4 | — | Not connected (or 5 V auxiliary on some revisions) |
| 5 | M (GND) | RS-485 reference ground (recommended to connect) |
| 6 | — | Not connected |
| 7–15 | — | Power / ET 200S backplane contacts |
6.1 Termination and Biasing
RS-485 is a differential bus that requires a 120 Ω termination resistor at each physical end of the segment, installed directly across terminals 2 and 3 of the TM-E15S24-01 if the controller is at the cable end. The 1SI module does not have internal bus termination; it must be added externally. Cable selection:
- Twisted pair, characteristic impedance ~120 Ω (e.g., Belden 3105A or equivalent).
- Shielded cable recommended; connect the shield to earth ground at one point only to avoid ground loops.
- Maximum stub length: 0.3 m from the main trunk to each device.
- Maximum trunk length: 1200 m at 9600 bit/s; derate to 800 m at 19200 bit/s.
If the Metron controller is the only slave on the segment, install the 120 Ω termination at the controller and a second 120 Ω termination at the 1SI's TM-E15S24-01 (across terminals 2 and 3). Some Metron fire pump controllers have an internal termination resistor that can be enabled via a DIP switch or jumper — consult the controller's installation manual before adding an external resistor to avoid doubling the termination.
6.2 Common Wiring Faults
- A/B swap: terminals 2 and 3 swapped at one end. Symptom: TX activity from PLC is observed, but the controller does not respond because it sees an idle-line violation. Verify with a scope or LED activity on the controller's RS-485 port.
- Missing GND reference: terminal 5 (M) not connected. Symptom: communication works at low baud but fails intermittently under electrical noise.
- Double termination: internal + external 120 Ω at the controller. Symptom: heavily attenuated signal, occasional CRC errors at the PLC.
- Shield grounded at both ends: creates a 50/60 Hz ground loop that injects noise into the bus.
7. Metron FD 4 Eledyn Register Map
The exact Modbus register map for the Metron FD 4 Eledyn is documented in the controller's Modbus Communication manual, supplied with the unit or available from Metron. Because fire pump controllers are safety-relevant devices, the register map is not publicly mirrored and must be obtained from the device documentation shipped with the controller. The following function codes are typically supported:
| Function Code | Name | Typical Use on Fire Pump Controllers |
|---|---|---|
| FC01 | Read Coils | Read discrete status (e.g., pump running, mains available, controller in auto) |
| FC02 | Read Discrete Inputs | Read alarms and discrete fault flags |
| FC03 | Read Holding Registers | Read analog measurements (battery voltage, line pressure, engine temperature) |
| FC04 | Read Input Registers | Read-only analog mirrors on some controller families |
| FC05 | Write Single Coil | Start / stop / acknowledge commands |
| FC06 | Write Single Register | Write configuration parameters |
| FC16 | Write Multiple Registers | Bulk configuration writes (less common on fire pumps) |
For the Metron FD 4 Eledyn specifically, request the following documents from the panel builder or fire pump installer:
- Metron FD4 / Eledyn Modbus Communication Protocol (vendor-specific register map)
- Metron FD4 / Eledyn Installation and Operation Manual (default address, baud, parity, termination settings)
Cross-reference: the Eaton DIESEL Plus Modbus Communications manual documents a similar role split (FC01/FC02 for status, FC03/FC04 for measurements, FC05/FC06 for commands) and confirms the slave address range of 1–247. Metron and other fire-pump controller vendors follow the same convention.
8. STEP 7 Program Integration
The Siemens sample project zXX21_11_1SI_MODBUS provides a working implementation. The relevant blocks are typically:
| Block | Type | Function |
|---|---|---|
| FB 7 (or similar, depends on HSP version) | Function block | Modbus master — builds request, writes to 1SI dual-port RAM, waits for response |
| DB 7 (instance DB) | Data block | Holds request parameters (slave address, FC, start register, quantity) and response data |
| DB 8 (or similar) | Global data block | Cross-coupling of measured values into the user's process data area |
| OB 1 | Organization block | Cyclic call of the Modbus master FB |
| OB 82 / OB 85 / OB 122 | Error OBs | Trap diagnostic interrupts from the 1SI module |
8.1 Request Structure (typical)
The instance DB exposes a request structure of the form:
REQ : BOOL := TRUE; // Edge-triggered start
SLAVE : INT := 1; // Metron Modbus address
MODE : BYTE := 0; // 0 = Modbus master
FUNC : BYTE := 3; // FC03 = read holding registers
START : INT := 0; // Starting register address (per Metron map)
QTY : INT := 10; // Number of registers to read
TIMEOUT : INT := 2000; // Response timeout in ms (2 s for fire pump)
DONE : BOOL; // Set when transaction completes
ERROR : BOOL; // Set on error
STATUS : WORD; // Detailed status word
RD_DATA : ARRAY[1..125] OF WORD; // Response payload
8.2 Call Pattern in OB 1
CALL "Modbus_Master" , DB7
REQ := M0.0 // Trigger from sequencer or timer
SLAVE := 1 // Metron slave address
FUNC := 3 // FC03 read holding registers
START := 100 // First register (example — check Metron map)
QTY := 8 // Number of registers
TIMEOUT := 2000 // 2-second timeout
DONE := M10.0
ERROR := M10.1
STATUS := MW12
RD_DATA := P#DB8.DBX0.0 BYTE 16
NOP 0;
If the FB reports ERROR = 1 with STATUS = W#16#0001 or similar "no response" code, the most likely cause is the wrong HW Config variant (Section 4). If the FB reports STATUS = W#16#0E01 (CRC error) or STATUS = W#16#0E02 (framing error), the cause is typically a stop-bit, parity, or wiring fault (Section 5.1 and Section 6.2).
8.3 Status Word Reference
The 1SI Modbus master FB returns detailed status words. The most useful values:
| STATUS (hex) | Meaning | Typical Cause |
|---|---|---|
| 0000 | OK | — |
| 0001 | No response from slave | Wrong HW Config variant, wiring fault, wrong slave address, controller not in Modbus mode |
| 0E01 | CRC error in response | Electrical noise, stop-bit/parity mismatch, A/B swap |
| 0E02 | Framing error | Stop-bit mismatch, baud-rate mismatch |
| 0E03 | Invalid function code from slave | Slave does not support the requested FC |
| 0E04 | Invalid register address | Address outside Metron's valid range |
| 0E06 | Slave device failure | Metron controller reports an internal fault via the exception response |
| 0F01 | Module not configured as Modbus master | USS or Modbus Slave variant selected in HW Config |
9. Verification Procedure
- LED check: After configuration download, the 1SI module's SF LED must be off. The TX LED should flash each time a request is issued; the RX LED should flash on a valid response. If RX never flashes, confirm the HW Config variant (Section 4) and the wiring (Section 6).
- Online diagnostics: In STEP 7, right-click the 1SI module → Module Information. The "Module Status" and "Diagnostic Buffer" tabs confirm which firmware personality is loaded. Look for entries that explicitly mention "Modbus master."
-
FB status word: If the master FB returns
STATUS = 0andDONE = 1after a request, communication is functional. Inspect the response payload in the instance DB to confirm the expected register values. - External scanner cross-check: Disconnect the 1SI from the bus and connect a Modbus RTU scanner configured to match the PLC's settings. Send the same FC03 request at the configured slave address. Compare the response payload. If the scanner receives valid data but the PLC does not, the issue is in the 1SI configuration or in the FB parameters (slave address, timeout, register count).
- Loopback test: For wiring verification only, short terminals 2 and 3 on the TM-E15S24-01 (A to B at the PLC end) and issue a request to the PLC's own address. A correctly-configured 1SI will echo its own request as a "response" — if this works, the wiring path to the controller is the prime suspect.
10. Troubleshooting Matrix
| Symptom | Likely Root Cause | Section | Action |
|---|---|---|---|
| TX LED active, RX LED never active, FB reports "no response" (0001) | Wrong 1SI catalog variant (USS or Modbus Slave) | §4 | Replace module in HW Config with "Modbus master" entry of 6ES7138-4DF11-0AB0 |
| TX LED active, RX LED flickers with garbage, FB reports "framing error" (0E02) | Baud / stop-bit / parity mismatch | §5.1 | Cycle stop-bit setting between 1 and 2 with parity = none; match Metron manual |
| RX LED active, FB reports CRC error (0E01) | Electrical noise, A/B swap, double termination, ground loop | §6 | Verify A/B wiring, check termination count, isolate shield ground |
| TX LED active, RX LED active, FB reports "invalid FC" (0E03) | Metron does not support the requested function code | §7 | Consult Metron register map; switch to FC03 for read or FC05/FC06 for write |
| TX LED active, RX LED active, FB reports "invalid register" (0E04) | Register address out of range or with wrong start offset | §7 | Some Metron controllers are 1-based; others are 0-based. Verify with documentation. |
| Communication works for 30–60 s, then stops with CRC errors | Ground loop via shield; or controller busy on diesel cranking | §6.2 / §5 | Increase timeout to ≥ 2000 ms; isolate shield ground; check controller event log |
| No TX activity at all | REQ edge missing, FB not called in OB 1, or wrong FB for the loaded personality | §8 | Confirm OB 1 calls the Modbus master FB; confirm REQ is pulsed, not level-held |
| SF LED on, diagnostic buffer reports "module fault" | 1SI firmware version mismatch with HSP | §2 | Update HSP / GSD file to match 1SI firmware V2.5 incl. SP3; recompile and re-download |
11. Field-Proven Cautions
SLAVE input.12. Related Configuration Notes
The 1SI module's Modbus master firmware is independent of the S7-300 CPU's STOP/RUN state: while the CPU is in STOP, the 1SI continues to issue requests from the last-configured job list. If the application must halt Modbus traffic on CPU STOP (for example, to release the bus for a maintenance laptop), call the FB with REQ = FALSE from an OB that evaluates CPU state, or use the 1SI's "Hold/Resume" diagnostic command via STEP 7.
If the same ET 200S station contains two 1SI modules — one for a Metron fire-pump controller and one for an ABB drive — each module must be configured with the correct catalog variant. The ABB drive case (documented in the ABB ACS400 Modbus RTU manual) uses the same 1SI module but, due to the stop-bit quirk, may require separate attention when parity is set to "none." This is the same trap that catches first-time Metron integrators, and the cure is the same: confirm the 1SI is loaded as a Modbus master, and verify the controller's actual stop-bit requirement with a scanner before trusting the master FB to talk to it.
Why does my ET 200S 1SI module power up with no SF LED but still not communicate with the Metron fire pump controller?
Because the most common cause is a wrong catalog variant of 6ES7138-4DF11-0AB0. The same MLFB is listed multiple times in STEP 7 HW Config — once for each supported role (USS master, Modbus master, Modbus slave). A module loaded as USS or Modbus slave will power up cleanly and report no faults, but will not generate Modbus RTU master requests. Open HW Config, replace the slot with the entry whose catalog comment reads "Modbus master," and re-download.
How can I confirm which protocol role my 1SI module is currently running?
Open STEP 7 online, right-click the 1SI module in HW Config, and select "Module Information." The "Module Status" and "Diagnostic Buffer" tabs show the loaded firmware personality. Alternatively, read the 1SI's diagnostic buffer from the user program via SFB 52 (RDREC) on record index 0 — the response string explicitly identifies the loaded role.
What stop-bit setting should I use with parity = none for a Metron FD 4 Eledyn?
Start with 2 stop bits, which is the Modbus RTU specification default for no parity. If the FB reports framing errors (STATUS = W#16#0E02), switch to 1 stop bit and re-test — some fire pump controllers invert the standard convention, similar to the documented ABB ACS400 behavior. Always confirm the final setting with a Modbus scanner before relying on the PLC link.
What timeout should I configure when polling a diesel-driven fire pump controller?
Set the response timeout to 2000–3000 ms during cold-start commissioning. A diesel-driven fire pump takes 5–30 s to crank and start, and the controller's Modbus processor may be busy during that interval. Once consistent responses are observed under all operating states, the timeout can be reduced to 1000 ms for tighter cycling.
Can I use the same 1SI module to talk to both a Metron controller and an ABB drive on the same RS-485 bus?
No — a single 1SI module is a single RS-485 master with one personality. To talk to both, use two 1SI modules on the same ET 200S station (one configured as Modbus master for the Metron, one for the ABB drive), or use a CP 341 / CP 441-2 with appropriate Modbus master loadable drivers. Multi-drop on a single 1SI with two slaves of the same role is supported; multi-protocol mixing on one 1SI is not.