Integrating OMRON V680S RFID with Siemens S7-1500 PROFINET

James Nishida13 min read
Industrial NetworkingOmronTroubleshooting
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

1. Overview

The OMRON V680S-series HF RFID Reader/Writer is an all-in-one short-range RFID head with native support for EtherNet/IP, Modbus TCP, Ethernet TCP/IP, and PROFINET. Integrating the V680S with a Siemens S7-1500 controller (for example, an S7-1511C-1 PN with an integrated PROFINET interface) is mechanically straightforward via a GSD-based device description, but the I/O data map and bit numbering are not byte-identical between the Siemens process-image convention and the OMRON tag-bit table published in the V680S Series Reader/Writer (EtherNet/IP) User's Manual. The result is a class of faults where the PLC establishes an apparently healthy PROFINET AR, the V680S RUN LED stays solid green, the LINK/ACT LED behaves normally, yet every command returns error code 0x1003 ("Command not supported by Reader/Writer").

This reference documents the correct slot/bit assignment, the command-execution sequence, the LED diagnostics, the meaning of error 0x1003, and a step-by-step commissioning procedure that takes the integrated S7-1500 + V680S pair from a freshly downloaded hardware configuration to a verified READ ID round trip on the bench.

2. Prerequisites

Item Specification
Siemens CPU S7-1511C-1 PN (or any S7-1500 with PROFINET IO controller capability), firmware ≥ V2.0 recommended
OMRON Reader/Writer V680S-HMD63-EIP or V680S-HMD64-EIP (PROFINET variant), see V680S family page
HF RFID Tag V680-D1KP / V680-D2KF series ISO/IEC 15693 compatible
Engineering Tool TIA Portal V14 SP1 or later with HSP for OMRON V680S, or current GSD file (GSDML-Vxxxx-OMRON-V680S-xxxxxxxx.xml)
Network 100 Mbit/s full-duplex, switch port or direct CPU-to-RFID link, Cat5e or better
Power 24 V DC ±10 %, 0.3 A typical for V680S head
Note on documentation scope: Omron ships the V680S with EtherNet/IP-profiled documentation even on PROFINET units because the command/response model is identical at the application layer. Always cross-reference the Command Code Table and Memory Map sections of the User's Manual when interpreting status bits.

3. PROFINET Topology

The S7-1511C-1 PN provides two PROFINET ports on the CPU itself; the V680S is a single-port PROFINET IO Device. Connect port 1 of the CPU (X1 P1) to the RJ45 port of the V680S via a switch for commissioning flexibility, or back-to-back for a permanent bench link.

S7-1511C-1 PN PROFINET IO Controller X1 P1 / X1 P2 192.168.0.10 PROFINET IO V680S Reader/Writer PROFINET IO Device 1× RJ45 100 Mbit/s 192.168.0.20

4. TIA Portal Hardware Configuration

  1. Install the latest V680S GSDML file via Options → Manage General Station Description Files (GSD).
  2. Drag the V680S device from the catalog into Devices & Networks and connect it to the PROFINET subnet of the S7-1500 CPU.
  3. Assign a unique IP address (e.g. 192.168.0.20) and a PROFINET device name (e.g. v680s-rfid-1).
  4. In the device slots, accept the default module assignment: Slot 0 = V680S PROFINET interface with input length 32 bytes and output length 32 bytes. Verify the start addresses in the I/O address overview: Inputs typically begin at IB 256, outputs at QB 256 on a project with no other IO.
  5. Compile and download the hardware configuration to the S7-1500 CPU.
  6. After download, open Online & Diagnostics on the V680S device. The status field must show No fault and the AR must be in state Established. If a red X appears, resolve the topology issue first; do not attempt I/O debugging until the AR is healthy.

5. I/O Memory Map - The Core Issue

This is the single most frequent source of integration trouble. The OMRON command/response model uses one-word-aligned control and status areas starting at the head's slot-base address. With the V680S default mapping in TIA Portal the base is IB 256 / QB 256. The byte/bit layout is as follows.

5.1 Input Area (Reader/Writer → PLC) - 32 bytes from IB 256

Address (Siemens) Address (Manual) Bit Name Meaning
I256.0 Word 0, Bit 0 READY Reader Ready 1 = Reader is in Idle / Ready state, can accept a command
I256.1 Word 0, Bit 1 BUSY Command Busy 1 = A command is currently executing
I256.2 Word 0, Bit 2 COMPL Command Complete 1 = Last command finished successfully
I256.3 Word 0, Bit 3 ERR Error Flag 1 = Error code is valid in word 1
I256.4 - I256.7 Word 0, Bit 4-7 - Reserved Always 0
I257.0 Word 1, Bit 0 RF_WAR Unstable Communications 1 = Tag communications unstable, retry recommended
I257.1 Word 1, Bit 1 VERR Verification Error 1 = UID verification failed on write
I258 - I259 Word 2 / Word 3 Error Code Error Code 16-bit error code, big-endian (e.g. 0x1003 = command not supported)
I260 - I287 Word 4 - Word 31 Response Data Read Data / Status Tag payload returned by READ / UID command

5.2 Output Area (PLC → Reader/Writer) - 32 bytes from QB 256

Address (Siemens) Address (Manual) Bit Name Meaning
Q256.0 Word 0, Bit 0 EXE Command Execute Rising edge triggers command in Word 1
Q256.1 Word 0, Bit 1 CLR_ERR Clear Error Rising edge clears ERR and error code
Q256.2 - Q256.7 Word 0, Bit 2-7 - Reserved Always 0
Q257.0 - Q257.7 Word 1, Bit 0-7 Command Code Low Command Code (low byte) e.g. 0x90 = READ ID, 0x91 = READ DATA, 0x92 = WRITE DATA
Q258 - Q259 Word 2 / Word 3 Command Code High / Param Command Code (high byte) / Parameter High byte of command; parameter word
Q260 - Q287 Word 4 - Word 31 Command Data Command Payload Address / length / data for WRITE commands
Common mistake: Engineers new to the V680S often interpret Q257.0 as the EXE (execute) bit because EXE is bit 0 in the OMRON manual's Word 0 mapping. In the Siemens address map, Word 0 begins at QB 256, so EXE is actually Q256.0. Setting Q257.0 high instead triggers the manual's reserved/special-function area, which the reader answers with error 0x1003 ("Command not supported"). This is the exact fault observed during the original integration.

6. Command Set Reference

Command Code (hex) Trigger Payload (QW 258+) Result bytes (IW 260+)
READ ID (UID) 0x0090 EXE ↑ on Q256.0 None 8-byte UID returned in IW 260 - IW 267
READ DATA 0x0091 EXE ↑ on Q256.0 QW 258 = start address, QW 260 = length (words) IW 260 onwards contains tag data
WRITE DATA 0x0092 EXE ↑ on Q256.0 QW 258 = start address, QW 260 = length, QW 262+ = data IW 260 = 0x0000 on success
RESET 0x0080 EXE ↑ on Q256.0 None Reader re-initialises
CLEAR ERROR (no code) CLR_ERR ↑ on Q256.1 None ERR bit and error code reset

The Command Code is placed in Word 1 of the output area (QB 257 / QB 258) in big-endian order. For example, READ ID = 0x0090 means QB 257 = 0x90, QB 258 = 0x00.

7. LED Diagnostics

LED State Meaning Action
RUN Solid green Reader/Writer is in Operating mode, AR established None - normal
RUN Flashing green Reader is waiting for PROFINET connection (no AR) Check AR state in TIA Portal, verify device name and IP
RUN Solid red Hardware fault (e.g. antenna failure, internal error) Power-cycle; if persistent, replace unit
LINK/ACT Solid green Link up, no traffic None - normal
LINK/ACT Flashing green Link up, traffic present None - normal during commissioning
LINK/ACT Continuous high-frequency flash / search pattern No link or carrier detection in progress Verify cable, switch port, 100 Mbit/s negotiation
NORM/ERR Off Reader in Ready state, no command active None
NORM/ERR Green flash once Command accepted, executing None
NORM/ERR Red flash once Command rejected / error code returned Read IW 258 / IW 259 for error code
NORM/ERR Solid red Unrecoverable error Cycle power

8. Error Code 0x1003 - Root Cause Analysis

Error code 0x1003 in the response area (IW 258 high / IW 259 low as big-endian uint16) translates to: "A command that is not supported by the Reader/Writer was received."

Three root causes are documented in the field for this exact symptom on a Siemens S7-1500 + V680S pair:

  1. Wrong EXE bit address. Most common. Setting Q257.0 (which the engineer interpreted as EXE because the OMRON manual lists EXE as bit 0 of Word 1) instead of Q256.0. The reader sees an EXE on a reserved control bit and rejects the frame.
  2. Command code byte-swap. Writing the command code as little-endian (QW 258 = 0x9000 instead of 0x0090) makes the high byte non-zero. The reader interprets the high byte as a command-class extension it does not support.
  3. Command issued before READY. The PLC must verify I256.0 = 1 before raising EXE. Issuing EXE while BUSY (I256.1) is still set returns 0x1003 in some firmware revisions.

9. Commissioning Procedure - READ ID Round Trip

  1. Verify AR is healthy. In TIA Portal, select the V680S device and open Online & Diagnostics → PROFINET diagnostics. Confirm: AR established, no alarms, I/O data is being exchanged.
  2. Open a Watch Table on the S7-1500 with the following signals:
    • Inputs (decimal): IW 256, IW 258, IW 260 - IW 267
    • Outputs (decimal): QW 256, QW 258
    • Bool triggers: I256.0 (READY), I256.3 (ERR), Q256.0 (EXE), Q256.1 (CLR_ERR)
  3. Confirm READY. IW 256 must equal 1 (only READY bit set). If ERR is set, click Q256.1 to raise CLR_ERR.
  4. Load the command code. Set QW 258 = 16#0090 (READ ID). This writes 0x90 to QB 257 and 0x00 to QB 258.
  5. Place an HF tag on the antenna face, within the rated read distance.
  6. Trigger EXE. Briefly modify Q256.0 from 0 to 1 and back to 0 (rising edge). The NORM/ERR LED should flash green once.
  7. Poll for completion. Within ~200 ms I256.1 (BUSY) should clear and I256.2 (COMPL) should rise. IW 260 - IW 267 now contains the 8-byte UID of the tag in big-endian order.
  8. Reset for next command. Set Q256.0 = 0. COMPL and ERR clear on the next PROFINET cycle.

9.1 Sample Watch Table Sequence

// Step 1 - Confirm READY (expect IW256 = 1)
IW256  = 1              // decimal 1
I256.3  = 0              // no error pending

// Step 2 - Load READ ID command
QW258  = 16#0090         // Command Code = READ ID (big-endian)
QB257  = 16#90
QB258  = 16#00

// Step 3 - Execute (rising edge on EXE)
Q256.0 = 0               // ensure low first
Q256.0 = 1               // trigger
Q256.0 = 0               // release

// Step 4 - Verify completion
// I256.2 should rise within 200 ms
// IW260..IW267 contains UID

10. Verification Checklist

Check Expected Method
AR state Established, no alarms TIA Portal Online & Diagnostics
RUN LED Solid green Visual
LINK/ACT LED Solid or flashing green (not search pattern) Visual
I256.0 (READY) = 1 in idle state Watch table
READ ID round trip UID returned, COMPL rises Watch table, UID matches tag label
Error code after READ ID IW 258 = 0, I256.3 = 0 Watch table
Write-then-Read parity Written data identical on READ Application-level loopback test
NORM/ERR LED after success Off, single green flash during command Visual

11. Troubleshooting Matrix

Symptom Likely Root Cause Remedy
AR won't establish, RUN LED flashes green Wrong PROFINET device name or duplicate IP Reset device name via TIA Portal "Assign PROFINET device name"
AR established but IW 256 = 0 Wrong I/O slot length selected in GSD Verify 32-byte input / 32-byte output slot in device configuration
EXE has no effect, NORM/ERR LED stays off EXE bit on wrong address (e.g. Q257.0 instead of Q256.0) Correct the EXE address to Q256.0
EXE triggers red LED flash and IW 258 = 16#1003 Command code misaligned or on wrong byte Confirm QB 257 = low byte, QB 258 = high byte (big-endian)
I257.0 (RF_WAR) stuck high, reads inconsistent Tag out of range, antenna mistuned, or EMI Reduce distance, verify metal-free zone, replace tag
COMPL never rises after EXE BUSY (I256.1) never cleared, possible firmware hang Cycle power; verify TIA Portal send clock (1 ms typical) and reduction ratio
IW 258 = 16#1002 Tag not present during command Hold tag on antenna during EXE window
IW 258 = 16#1006 Address outside tag memory map Reduce READ/WRITE length, verify start address
LINK/ACT LED shows continuous search pattern Physical link failure Replace cable, test switch port, verify auto-negotiation at 100 Mbit/s full duplex

12. PROFINET Cycle-Time Considerations

The V680S supports the standard PROFINET update cycle range. For RFID command latency in the 10 - 50 ms total round trip, configure:

  • Send clock: 1.0 ms (default for most V680S firmware loads)
  • Reduction ratio: 16 (effective update interval ~16 ms)
  • Watchdog time: 3 × update interval

If COMPL detection becomes intermittent in heavily loaded PROFINET networks, increase the update interval to 32 ms. Do not exceed the V680S-recommended maximum update time of 64 ms, as this delays the EXE-to-COMPL feedback loop and may push the I257.0 (RF_WAR) bit high under marginal RF conditions.

13. Firmware and Compatibility Notes

Always confirm the V680S unit's firmware revision against the GSD file version installed in TIA Portal. Mismatched firmware/GSD combinations can silently remap control bits. If a remap is suspected, update the GSDML to the latest revision from the V680S product family support page and re-import into TIA Portal. After a GSD update, recompile the hardware configuration and re-download to the CPU; do not only reload the program blocks.

Safety notice: RFID write operations to tags carrying safety-relevant identification (e.g. tool identification on a robot cell) must be guarded by a separate write-protection mechanism (typically a hardware enable input on the V680S) plus application-level CRC verification. The PROFINET status bits alone are not sufficient for SIL-rated safety functions.

14. Alternate Platform Notes

When migrating the same V680S to a third-party PROFINET controller (e.g. Allen-Bradley ControlLogix with PROFINET Scanner module, Beckhoff CX with EtherCAT/PROFINET gateway, or Schneider M580 with BMENOC0301), the slot-base addressing and the Siemens convention above do not apply. The bit semantics remain identical (READY = Word 0 bit 0, EXE = Word 0 bit 0, command code = Word 1), but the host-specific slot mapping must be derived from the scanner's I/O mapping configuration. The error-code table and the LED behaviour are unchanged.

15. FAQ

Why does my V680S return error 0x1003 immediately after I set EXE on the S7-1500?

Error 0x1003 ("Command not supported") is almost always caused by writing the EXE bit to Q257.0 instead of Q256.0, or by loading the command code in the wrong byte order. In the Siemens slot mapping, EXE lives in QB 256 (Word 0, bit 0) and the command code belongs in QB 257 (low) / QB 258 (high). Verify both before reading the error code.

The READY bit (I256.0) is set but EXE has no visible effect - what should I check?

Confirm the PROFINET AR is established (RUN LED solid green, no red X in TIA Portal), confirm you are writing to Q256.0 and not Q257.0, and confirm the command-code word QW 258 contains the command code in big-endian (e.g. 0x0090 for READ ID). A common oversight is that Q256.0 must be a rising edge: set it to 0 first, then 1, then back to 0.

What does the LINK/ACT LED doing a continuous search flash mean?

A continuous high-frequency flash on LINK/ACT (not the normal traffic blink) means the V680S has not completed carrier detection - the physical Ethernet link is down or auto-negotiation is failing. Replace the patch cable, force the switch port to 100 Mbit/s full duplex, and verify the CPU's PROFINET port is enabled.

Can I trigger EXE without polling READY first?

Functionally the V680S ignores commands issued while BUSY is high, but on some firmware loads a wrongly-timed EXE returns 0x1003. Always poll I256.0 (READY) and confirm I256.1 (BUSY) = 0 before raising Q256.0. A typical safe pattern is: wait until I256.0 = 1 AND I256.1 = 0, then issue the rising edge on Q256.0.

How do I find the slot-base address if my project already has other IO on the same CPU?

Open Devices & Networks in TIA Portal, select the V680S device, and read the I/O addresses under the device's slot detail. The base address is whatever is shown there (256 in a clean project, but it shifts with each preceding IO module). The relative layout (READY = base+0.0, EXE = base+0.0, command code = base+1, error code = base+2/3, response data = base+4 onward) is fixed by the GSD and does not change.

Which Omron manual covers the exact command-code table for the V680S on PROFINET?

The V680S Series Reader/Writer (EtherNet/IP) User's Manual contains the complete command-code, memory-map, and error-code reference and is valid across the PROFINET, EtherNet/IP, and Modbus TCP variants of the V680S family.

Back to blog