System designExplainer

GigE camera virtual I/O mapping: from line 161 upward

Virtual I/O mapping on a GigE camera system: the 161 base, the rule for 16- and 32-line expansion boards, and a worked example of finding any line.

LumaSpec Vision9 min чтение Поделиться в LinkedIn

На этой странице 8 разделов
  1. 01The mapping, stated plainly
  2. 02The rule as a formula
  3. 03Worked example: strobe-ready on output 5 of a 16-in/16-out board
  4. 04Where the camera's own lines fit
  5. 05Wiring that keeps the table honest
  6. 06When the usual answer is wrong
  7. 07A short checklist before you trust a number
  8. 08Questions

When you wire a trigger, a part-present sensor or a strobe-ready handshake into a GigE vision system, the number you type into software is rarely the number silk-screened next to the terminal. The vision software keeps one flat, numbered table of every digital line — its virtual I/O — and the lines on an expansion board land in that table at a fixed offset. On the platform this scheme comes from, the first expansion input is virtual 161, and every other address follows from two additions. This explainer gives the mapping for both board sizes, the arithmetic behind it, a worked example that finds one specific output, and the checks that keep the table trustworthy after hardware changes. If you commission cells, land I/O, or chase triggers that fire on the wrong bit, this saves the next hour of bit-hunting.

The mapping, stated plainly

Expansion inputs are numbered from virtual 161 upward, and the outputs begin immediately after the last input. That is the entire scheme; the rest is arithmetic you can do at the cabinet with a marker pen.

Board fitted Virtual inputs Virtual outputs Virtual lines used
16 in / 16 out 161 – 176 177 – 192 32
32 in / 32 out 161 – 192 193 – 224 64

Two details do the work. The offset is 160: a physical input number plus 160 is its virtual number. And because the output block starts only after the input block finishes, an output's address also carries the board's input count, which is why outputs move whenever that count changes.

The pattern is an old one — a fixed base plus an index per signal, the same shape as a camera's Modbus register mapping. Learn the base once and every line resolves.

The rule as a formula

virtual_input(n) = 160 + n virtual_output(m) = 160 + N_in + m

n is the physical input number, m is the physical output number, and N_in is the number of input lines the fitted board provides — 16 or 32 in the two sizes here. The first output sits at 160 + N_in + 1, one address above the last input.

Run it against both boards:

  • 16 in / 16 out: last input 160 + 16 = 176; first output 160 + 16 + 1 = 177; last output 160 + 16 + 16 = 192.
  • 32 in / 32 out: last input 160 + 32 = 192; first output 160 + 32 + 1 = 193; last output 160 + 32 + 32 = 224.

Both results land exactly on the table above, which is the point: you never need the display's manual, only the input count.

Worked example: strobe-ready on output 5 of a 16-in/16-out board

The case: a part-present sensor lands on physical input 3, and the camera's strobe-ready handshake must appear on physical output 5. The inputs, each with its source:

  • Board size: 16 inputs and 16 outputs — the fitted expansion hardware.
  • Base: first expansion input is virtual 161 — the platform's documented mapping.
  • Wiring: part-present on input 3, strobe-ready on output 5 — the cabinet drawing.

The rule in words: add 160 to an input number; add 160 plus the 16 inputs to an output number. The arithmetic:

  • Part-present: 160 + 3 = 163, so the sensor appears at virtual 163.
  • First output on this board: 160 + 16 + 1 = 177.
  • Strobe-ready: 160 + 16 + 5 = 181, so the handshake appears at virtual 181.

Decision: gate the inspection on virtual 163 before arming, and treat virtual 181 as the strobe-ready bit in every recipe and PLC mapping. Confirmation threshold: with the sensor blocked, the bit at 163 must change state, and with the ready signal high, 181 must follow. If 181 sits still while the ready LED is lit, stop — the fitted board is not the 16-input type the drawing claims, and every output address is wrong by the difference.

Where the camera's own lines fit

There are two layers, and they answer to different names. At the bottom sits the camera's own I/O: its opto-isolated input, its output line, the selector that picks which line you are configuring, the mode that sets direction, and the source that chooses which internal signal drives an output — the standard GenICam-style controls you reach over a GigE Vision link. A camera with a spare output can even serve as digital outputs when connector space is short.

Above it sits the software's flat virtual table, which folds camera lines and expansion-board lines into one numbered list. The 161 start belongs to that upper table, not to any camera: the same board under a different package can start its numbering elsewhere. When a trigger will not fire at all, debug the lower layer first — a camera trigger ready timeout is usually a layer problem, not a numbering problem. If the camera itself is still open, choose it on bandwidth, cables and software support first; the I/O layer rides on that choice.

Wiring that keeps the table honest

Terminal blocks do not renumber anything, but the harness decides whether the numbers still mean something next year. Land the board's commons on one rail, keep trigger pairs twisted, and label each lead with the virtual number it earns.

On the camera side the harness is a cable, not a terminal strip, so pick from camera I/O cables that match the connector. The LS-CBL-0211 is a 5 m 12-pin I/O and power cable; the LS-CBL-0300 breaks an M8 8-pin connector out to open leads at 7 m in drag-chain-rated construction — ferrule those leads straight onto the board and label them with their virtual numbers.

Cables5 m 12-Pin IO I/O and power cable (LS-CBL-0211)LS-CBL-0211$56.00View partBuild a system with it
CablesCamera Power and I/O Cable, M8 8-pin connector, Male to Open end (8-core), 7 m, drag-chain use (LS-CBL-0300)LS-CBL-0300
Type
Power and I/O cables
Length
6-8 m
$79.00View partBuild a system with it

On the power side, light controllers keep the lamp out of the numbering debate: the controller fires on the ready bit, the camera exposes on its own trigger, and the virtual table only has to be right about where the handshake lives. The LS-CTL-0070 is a 4 ch digital control box with RS232 control and a strobe feature, which covers exactly that split.

Light controllersDigital control box, 4 ch, 200 W, RS232 (LS-CTL-0070)LS-CTL-0070
Output
Constant voltage 24 V
Channels
4 channels
Control
Digital
Feature
Strobe
$549.00View partBuild a system with it

Routing one trigger to several cameras belongs on a fan-out board of its own — the pattern in GPIO routing for one input to six cameras — and if the strobe comes from robot I/O instead, use the robot I/O strobe trigger wiring. Two lights on one connector can alternate the strobe across two GPIO lines.

Any GigE area scan camera with an I/O connector plays the lower layer of this scheme.

Area scan camerasHikrobot MV-CT0MG0060/R/NN/NN 6 MP Area Scan Camera, 3rd Gen., GigE, Mono, BASEMV-CT0MG0060/R/NN/NN
Sensor format
1/1.8"
Lens mount
C-mount
$909.00View part
Area scan camerasHikrobot MV-CU020-90GC 2.5 MP Area Scan Camera, GigE, GMAX4002, ColorMV-CU020-90GC
Sensor format
1/1.7"
Lens mount
C-mount
$309.00View part

When the usual answer is wrong

Three situations break the rule in practice.

A board swap. Replacing the 16-in/16-out board with the 32-in/32-out type grows the input block to 161 – 192, so the first output moves from 177 to 193: 160 + 32 + 1 = 193. Every output reference in the recipe and the PLC is now 16 addresses low. Inputs 161 – 176 still point at the same terminals, which is why half the cell keeps working while half stops — the signature of a board swap, not a wiring fault.

A one-based versus zero-based table. Some packages count the first line as 0. If a table you inherited starts at 160, everything on it is shifted one against the scheme here; re-take the base with the toggle test in the checklist before editing a single address.

Source routing inside the camera. Pointing an output's source at a different internal signal changes what the bit means, not where it lives. If virtual 181 is suddenly pulse-per-frame instead of strobe-ready, the mapping is intact and the camera's output configuration changed.

One case the two sizes do not cover: a second expansion board. Its block follows the first board's, so re-derive the output base from the total input count shown in the I/O display instead of extrapolating the formulas past what is fitted.

A short checklist before you trust a number

  1. Count the input terminals on the fitted board; that count is N_in and it sets every output address.
  2. Compute both ranges: inputs from 160 + 1 to 160 + N_in; outputs from 160 + N_in + 1 upward by the outputs fitted.
  3. Energize physical input 1 and confirm the bit at 161 changes; drive one output and confirm it lands on the computed base.
  4. Write the base, N_in and both ranges on the cabinet drawing, with the date.
  5. After any board change, run steps 1 – 4 again before touching the PLC program.
  6. Treat the mapping as configuration: it lives on the drawing, not in the hardware, and it follows whoever maintains the drawing.

Specifying the whole chain — camera, cable, controller — in one pass? The system configurator walks it step by step, and the contact page puts an applications engineer on any mapping that matches neither board size.

Вопросы

Why do the virtual inputs start at 161 instead of 0 or 1?

Because the software numbers one flat table that already holds its own signals ahead of the expansion block, and the first expansion input lands at 161. That makes 160 the offset you add to any physical input number. The reason for the reserved range is internal to the package; the offset is the only fact the wiring needs, and it holds for both board sizes.

What happens to the output numbers if I change the expansion board?

Inputs keep their addresses; outputs move. Going from a 16-in/16-out board to a 32-in/32-out board grows the input block from 161–176 to 161–192, so the first output shifts from 177 to 193 and the last from 192 to 224. References to inputs 161–176 still point at the same terminals, but every output reference must be re-addressed in the same machine stop — recipe and PLC tag table together.

Does the camera itself use these virtual numbers?

No. The camera exposes its own lines through its GenICam-style I/O control — a selector, a direction mode, a source and a readable status. The virtual numbering lives one layer up, in the vision software's I/O display, which flattens camera lines and expansion-board lines into one table. Address the camera's features by their own names; use the virtual table only for signals the software routes.

How do I confirm the base number on a system I did not configure?

Toggle and watch. Energize physical input 1 from a bench supply and note which number in the I/O display changes — on the platform documented here it is 161. Then drive one output and confirm it lands one address above the last input. Two minutes of toggling maps the whole table, and it beats trusting a drawing that may describe a board no longer fitted.

Do the virtual numbers change when I swap the camera?

No. The table belongs to the vision software and the expansion hardware, not the camera model; the 161 base and both blocks survive a camera swap. What changes is the lower layer — connector, pinout and I/O cable — so re-check the harness against the new camera's drawing and leave the numbering alone.