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 |
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.
4. TIA Portal Hardware Configuration
- Install the latest V680S GSDML file via Options → Manage General Station Description Files (GSD).
- Drag the V680S device from the catalog into Devices & Networks and connect it to the PROFINET subnet of the S7-1500 CPU.
- Assign a unique IP address (e.g. 192.168.0.20) and a PROFINET device name (e.g.
v680s-rfid-1). - 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 atQB 256on a project with no other IO. - Compile and download the hardware configuration to the S7-1500 CPU.
- 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 |
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:
- 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.
- 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.
- 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
- 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.
-
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)
-
Confirm READY. IW 256 must equal
1(only READY bit set). If ERR is set, click Q256.1 to raise CLR_ERR. -
Load the command code. Set QW 258 =
16#0090(READ ID). This writes 0x90 to QB 257 and 0x00 to QB 258. - Place an HF tag on the antenna face, within the rated read distance.
- Trigger EXE. Briefly modify Q256.0 from 0 to 1 and back to 0 (rising edge). The NORM/ERR LED should flash green once.
- 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.
- 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.
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.