Problem Statement
A SIMATIC S7-300 PLC is connected through an ADFweb HD67602 Profinet-to-Modbus RTU gateway to an OMRON E5GC-RX1A6M digital temperature controller. The GSD file is installed, the device name is assigned, the gateway appears in TIA Portal online diagnostics with no Profinet error, the Compositor configuration downloads without warnings, and the gateway LEDs report link-active on both sides — yet the S7-300 watch table shows a constant zero for the temperature input words.
No diagnostic interruption is raised. The Profinet IO device (HD67602) shows green module status, the maintenance LED is off, and the Modbus side reports no framing or timeout errors. This is the classic signature of a silent mapping failure on a protocol gateway: the IO is exchanging cyclic frames, but the data being polled does not correspond to registers that exist (or are readable) on the Modbus slave.
The guide below walks through the full field-proven diagnostic procedure for this exact scenario. It is based on a recurring fault class reported across Profinet/Modbus gateway installations and is valid for the entire HD67602 family of ADFweb Profinet-Slave / Modbus-Master converters.
System Architecture
The physical topology is intentionally simple, but the protocol conversion introduces three independent configuration domains — each of which must be correct simultaneously for the watch table to reflect real data.
Three independent configuration planes must align:
- Profinet plane — device name, IP, slot mapping in TIA Portal.
- Gateway plane — Modbus master settings, RS-485 parameters, polling table in ADFweb Compositor.
- Modbus plane — slave address, baud rate, parity, register map on the OMRON E5GC.
If any of the three is wrong, the gateway continues to run but the data returned to the PLC is meaningless (most commonly zero).
Root Cause Analysis
From field experience, a "no-error, all-zeros" symptom on a Profinet/Modbus gateway falls into one of the following root causes, ranked by frequency:
| # | Root Cause | Symptom | Detection |
|---|---|---|---|
| 1 | Modbus register address in the gateway does not exist on the slave | Gateway polls, gets no response, times out, returns 0x0000 | Read the same register from a Modbus master test tool (e.g., Modbus Poll, Simply Modbus) |
| 2 | Function code mismatch (e.g., Input Reg 04 vs Holding Reg 03) | Slave returns Illegal Function (0x01) → 0x0000 | Check E5GC Modbus Communication Manual |
| 3 | RS-485 A/B polarity reversed | No reply from slave at all | Swap A↔B, observe slave response |
| 4 | Missing or incorrect 120 Ω termination | Intermittent zeros, CRC errors | Measure with oscilloscope; check end-of-line resistor |
| 5 | Baud / parity / data bits mismatch | All frames rejected | Match E5GC initialization parameters to gateway |
| 6 | Profinet slot/input area in TIA does not match Compositor output mapping | Right data, wrong IW address | Verify slot/subslot configuration in TIA Device View |
| 7 | Watch table datatype mismatch (WORD vs INT, byte swap) | Right data, wrong interpretation | Force a known register (e.g., model code) and compare |
| 8 | Compositor project not downloaded / wrong firmware on HD67602 | Gateway boots with default (empty) config | Reboot gateway, check LED pattern after download |
Prerequisites
Before starting diagnostics, gather the following:
- ADFweb HD67602 user manual — MN67602_ENG.pdf
- ADFweb Compositor HD67602 configuration software (download from the ADFweb product page for the HD67602)
- GSDML file for the HD67602, installed in TIA Portal
- OMRON E5GC Communications Manual — E5GC Datasheet and E5GC Modbus Communication Manual (H180 in OMRON literature)
- A laptop with TIA Portal (V15.1 or later recommended) and a free USB / Ethernet port
- A Modbus RTU master tester (e.g., QModMaster, Modbus Poll) with an RS-485 USB adapter for slave-side verification
- Multimeter and ideally a two-channel oscilloscope or RS-485 line analyzer
Step-by-Step Diagnostic Procedure
Step 1 — Verify Physical Layer and LEDs
Inspect every active LED on all three devices. Some LEDs are designed to be lit during normal operation, some only on fault. Never answer "all LEDs are off" without checking the datasheet.
| Device | LED | Expected when running | Indicates a fault when |
|---|---|---|---|
| HD67602 | PWR | Solid green | Off → no power / wrong polarity on supply |
| HD67602 | LINK (Profinet) | Solid green when link present | Off → cable / port fault |
| HD67602 | RX / TX (Modbus) | Periodic blink per poll | Constant off → no master activity; constant on → bus short / stuck line |
| HD67602 | ERR | Off | Solid red → configuration error / firmware mismatch |
| S7-300 | SF / BF | SF off, BF off (or BF blinks briefly on Profinet startup) | BF solid red → Profinet physical or naming fault |
| E5GC | COMM | Flicker on each received Modbus frame | Constant off → no frames received; constant on → bus contention |
If the HD67602 RX/TX Modbus LED never blinks, the gateway is not issuing any Modbus request. The fault is inside the gateway configuration (or the Profinet AR has not been established). If the LED blinks but the E5GC COMM LED never reacts, the physical Modbus wiring is the prime suspect.
Step 2 — Inspect RS-485 Wiring
The HD67602 exposes RS-485 on a 3-pin connector (or detachable terminal) labeled A, B, and SGND. The OMRON E5GC with the Modbus option exposes the same three signals on its communications terminals (typically A+, B−, and SG / FG).
Mandatory wiring rules:
-
Connect
A(gateway) toA+(E5GC) andBtoB−. Swapping A/B silently breaks every frame. - Use a twisted pair, shield grounded at one end only (typically the gateway SGND).
- Install a 120 Ω termination resistor at each physical end of the bus — including the E5GC if it is the last device. The HD67602 has an internal, software-selectable termination (usually enabled via a jumper or in Compositor).
- Total bus length: < 1200 m at ≤ 19200 bps. For 115200 bps, restrict to < 100 m to avoid rise-time issues.
- Do not tie SGND to chassis ground at both ends — this creates a ground loop and bias drift.
Step 3 — Verify Modbus Slave Configuration on the E5GC
The E5GC is configured from its front keypad. Navigate the parameter levels and confirm:
| Parameter | OMRON symbol | Recommended / common value | Notes |
|---|---|---|---|
| Protocol |
PSEL (Comm. Protocol Select) |
MOD (Modbus) |
Not COM (CompoWay/F) — the most common field misconfiguration |
| Slave address |
U-No / Rdr (Unit No.) |
1 (decimal) | Match the gateway's slave address exactly |
| Baud rate | bPS |
9.6 (9600 bps) — default | Match gateway; OMRON default is 9600 |
| Data bits | LEN |
7 (default) or 8 | OMRON Modbus default is 7 data bits |
| Parity | PRTY |
EVEN (default) | Match gateway exactly |
| Stop bits | SbIT |
1 or 2 (matches parity) | 7/E/1 or 7/E/2 typical OMRON defaults |
| Send/Receive wait time | SDWT |
5 (≈ 50 ms) or lower | Set well below gateway timeout to avoid losing the first poll |
| Process value register | (Read via FC03) | Holding Register 0x0000 (decimal 0) | Per OMRON E5GC Modbus Communication Manual |
| Set point register | (Read/Write via FC03/06) | Holding Register 0x0101 (decimal 257) | Verify exact address against your E5GC manual revision |
Step 4 — Validate the Modbus Link with an External Master
Disconnect the HD67602 from the RS-485 bus, connect a USB-RS485 adapter to a laptop running QModMaster or Modbus Poll, and attempt a read of the E5GC process value:
// QModMaster example — read E5GC process value
Slave ID: 1
Function: 03 (Read Holding Registers)
Start Address: 0x0000 (decimal 0)
Quantity: 1
Response expected: 0x0064 = 100 °C (or current PV * 10 in 0.1 °C units)
If this read returns valid data, the Modbus slave is healthy. If it returns Illegal Function (0x01) or Illegal Data Address (0x02), the register map in the E5GC manual for your firmware revision differs from the gateway's poll table. The fix is to update either the E5GC's bank assignment or the gateway's Modbus Mapping in Compositor.
Step 5 — Inspect the ADFweb Compositor Configuration
Open the project file downloaded to the HD67602 and review the following sections in order:
5.1 Profinet Settings
- Device Name: must match the Profinet name assigned in TIA Portal exactly (case-sensitive).
- IP Address: must be in the same subnet as the S7-300 PN interface; not in use by any other device.
- Slot / Subslot layout: the input slot count and output slot count defined in Compositor must match the I/O configuration in TIA Portal — otherwise the watch table reads the wrong module offset and shows zero or stale data.
5.2 Modbus Master Settings
- Baud rate: identical to E5GC (9600 default).
- Parity: Even (OMRON default).
- Data bits / Stop bits: 7E1 or 7E2 — exactly matching the E5GC.
- Inter-frame delay: 50–100 ms minimum for OMRON slaves; otherwise the first few polls can be dropped.
- Response timeout: ≥ 500 ms when communicating with E5GC over a noisy line.
5.3 Modbus Mapping (Poll Table)
This is the section that is most often mis-configured. Each row in the Compositor poll table defines a Modbus read that the gateway executes cyclically. The key fields are:
| Field | Meaning | Correct value for E5GC PV |
|---|---|---|
| Slave Address | Modbus unit number | 1 |
| Function Code | Modbus function | 03 (Read Holding Registers) |
| Start Register | 0-based register address | 0 (for the E5GC PV in most firmware revisions — verify against your manual) |
| Quantity | Number of 16-bit registers | 1 |
| Data Type | How the gateway formats the value for Profinet | Unsigned 16 / Signed 16 |
| Byte Order | Endianness for multi-register reads | Big-endian (Modbus standard) |
| PN Output Offset | Where the value lands in the gateway's input area | e.g., Input slot 1, offset 0 → TIA reads IW 0
|
Save the project, send it to the HD67602 via the USB / Ethernet configuration port, and power-cycle the gateway. The configuration is non-volatile but is only applied after a clean reboot.
Step 6 — Validate the Profinet Side in TIA Portal
- Open the project, go to Devices & Networks, locate the HD67602 in the device view.
- Confirm the device name assigned via Online → Accessible Devices → Assign Profinet Name matches the name in Compositor exactly.
- Inspect the slot table: the input slot count defined in TIA must equal the input area defined in Compositor. A mismatch silently shifts the offsets.
- Right-click the device and select Online & Diagnostics. The Module Status field must read OK, Maintenance = none.
- Open the Watch Table and force a refresh. Toggle Monitor All.
OMRON E5GC Modbus Register Map (Reference)
For reference, the E5GC's holding-register map (subject to your specific firmware revision) typically includes:
| Address (hex) | Address (decimal) | Parameter | Access | FC | Data type |
|---|---|---|---|---|---|
| 0x0000 | 0 | Process value (PV) | R | 03 / 04 | INT16 (× 0.1 °C) |
| 0x0001 | 1 | Internal set point (during remote SP) | R | 03 / 04 | INT16 |
| 0x0002 | 2 | Status / flags | R | 03 / 04 | UINT16 bitfield |
| 0x0100 | 256 | Set point (SP) — bank 0 | R/W | 03 / 06 | INT16 |
| 0x0101 | 257 | Set point (SP) — bank 1 (frequent default) | R/W | 03 / 06 | INT16 |
| 0x0102 | 258 | Alarm value 1 | R/W | 03 / 06 | INT16 |
| 0x0103 | 259 | Alarm value 2 | R/W | 03 / 06 | INT16 |
| 0x0200+ | 512+ | Operation / initial-level parameters | R/W | 03 / 06 | UINT16 |
PSEL = MOD (Modbus) selection in the E5GC setup menu. Reading a register that is not mapped to the active protocol returns Illegal Data Address (0x02), which the gateway maps to 0x0000 in the input area.Verification Procedure
After completing the configuration corrections, perform the following end-to-end check before declaring the fault closed:
- Power-cycle the HD67602. Confirm the PWR and LINK LEDs are solid green and the ERR LED is off.
- In TIA Portal, open Online → Accessible Devices. The HD67602 must appear with the configured device name and IP.
- Open the watch table. Monitor the input word mapped to the E5GC PV register. The value must change in real time when the process temperature changes — apply a known heat source or change the set point to force movement.
- Cross-validate the value with the E5GC front display (the upper row shows PV). They must agree within the E5GC's display resolution (typically 0.1 °C).
- Toggle the value type in the watch table: if you read
IW 0as INT, it should matchIW 0interpreted as WORD. If they differ, there is a byte-swap issue in the Compositor mapping. - Force a write to a writable register (e.g., set point at 0x0101) from the watch table and confirm the E5GC accepts the new value.
- Watch the gateway's RX/TX Modbus LED for 60 s. The blink rate must match the configured poll cycle (default typically 100–500 ms).
Troubleshooting Matrix — Quick Field Reference
| Symptom | Likely cause | Quick check | Fix |
|---|---|---|---|
| Watch table = 0x0000, gateway RX/TX LED never blinks | Profinet AR not established OR Compositor poll table empty | Online & Diagnostics in TIA → Module Status | Re-assign Profinet name; re-download Compositor project; reboot gateway |
| Watch table = 0x0000, RX/TX LED blinks, E5GC COMM LED does not | RS-485 wiring fault (A/B swap, no termination, cable broken) | Swap A/B; measure bus resistance (should be ≈ 60 Ω with both ends terminated) | Rewire per RS-485 conventions; enable internal termination on HD67602 |
| Watch table = 0x0000, both LEDs blink, but no valid data | Modbus function code / register address mismatch | Test the same read with QModMaster | Update Compositor poll table to match the E5GC register map |
| Watch table shows correct value briefly, then zeros, then correct again | CRC errors / noisy bus / inter-frame delay too short | Scope the differential A/B pair; count CRC errors if gateway supports diagnostic | Shorten cable, add shielding, increase inter-frame delay to ≥ 50 ms |
| Watch table shows wrong magnitude (e.g., 3276 when PV = 32.7 °C) | Missing × 0.1 scaling or wrong data type | Check INT vs UINT and scaling factor in PLC code | Apply Temp_C = INT_TO_REAL(IW0) / 10.0 in S7-300 STL/SCL |
| Watch table reads correct PV but the value is "mirrored" (e.g., 0x6400 instead of 0x0064) | Byte swap / endianness mismatch | Read with QModMaster and compare word | In Compositor, toggle the byte-order option for the slot |
| Watch table works for FC03 reads, but writes (FC06) return exception | E5GC in "read-only" mode or register is R/O | Try writing to a different register (e.g., alarm value) | Switch the E5GC to run / remote SP mode; choose a writable register |
Workaround if the Gateway Cannot Be Re-Configured Quickly
If the HD67602 must stay in service while a permanent fix is being prepared, two interim measures are common:
- Insert a serial tap: deploy a PC-based Modbus master on the same RS-485 segment (listen-only, or as a temporary master) to validate that the E5GC is reachable. This proves the slave is healthy and isolates the fault to the gateway configuration.
- Side-channel polling from the S7-300: in some scenarios, a second Modbus master (an S7-300 with a CM PtP or CP341 module) can poll the E5GC directly over RS-485, bypassing the gateway. This is a debugging arrangement, not a permanent architecture, but it keeps the production process running while the Profinet/Modbus issue is resolved.
Safety and Operational Notes
- Power-cycle the gateway only after each configuration download — the HD67602 applies Compositor projects on a cold boot, not on a hot reload.
- Do not mix termination strategies. The HD67602 internal termination is enabled/disabled by a physical jumper or by a checkbox in Compositor; if you enable it on the gateway, the E5GC must be the only other termination point.
- When upgrading ADFweb firmware or Compositor, always re-export the project; the software is often newer than the bundled manual, and parameter defaults can change between revisions.
- Keep the gateway's RS-485 bus electrically isolated from the Profinet switch. The HD67602 provides 1.5 kV galvanic isolation on the serial side, but a shared ground path elsewhere in the panel can defeat it.
- Document the final configuration (slave address, baud, parity, register map, PN slot layout) inside the TIA Portal project comments. This eliminates the most common "it worked yesterday" problem when a maintenance engineer later replaces the E5GC.
FAQ
Why does the HD67602 show no Profinet error even when the Modbus side is broken?
From the S7-300's perspective, the HD67602 is a healthy Profinet IO device. The gateway reports its own status to the IO controller; the Modbus transaction failure is internal to the gateway and is logged only in the Modbus diagnostic counters (if enabled in Compositor), not in Profinet diagnostics. The input word simply contains 0x0000.
What is the default Modbus address of the OMRON E5GC process value?
In most E5GC firmware revisions, the process value is mapped to holding register 0x0000 (decimal 0) when the controller is in Modbus mode (PSEL = MOD). The value is an INT16 scaled at 0.1 °C per LSB. Always confirm against the E5GC Modbus Communication Manual for your specific firmware, as OMRON revises register maps periodically.
How do I tell whether the E5GC is in Modbus or CompoWay/F mode without a PC?
Navigate the E5GC front panel to the communications parameter level and inspect the PSEL (Protocol Select) parameter. It must read MOD for Modbus. If it shows COM, the controller is in CompoWay/F and will ignore every Modbus request — the most common cause of a silent zero on the watch table.
Can I read and write the E5GC set point from the S7-300 through the HD67602?
Yes, provided the register is mapped in Compositor as a read/write slot and the E5GC is in remote-SP mode. A typical mapping is holding register 0x0101 (decimal 257) using function code 06 (Write Single Register) on the gateway's output area. The set point value is INT16 in 0.1 °C units.
After a successful download, why does the gateway still behave with the old configuration?
The HD67602 applies the new Compositor project only after a full power cycle. A "Send to device" operation writes the configuration to flash, but the running firmware continues to use the in-RAM copy until the next cold start. Always disconnect and reconnect the gateway's power supply after a configuration change before evaluating behavior.