System designTroubleshooting

Vision tool silently ignores the add command: fix the project file

When a vision tool silently ignores the add command, the project file is at fault: rebuild it from a template and verify each node persists after reopen.

LumaSpec Vision12 min read Share on LinkedIn

On this page 10 sections
  1. 01The symptom already names the culprit
  2. 02Why the failure hides below the dialog
  3. 03Rank the causes and test them in order
  4. 04The fix: migrate the project through a template
  5. 05Worked example: rebuilding a four-camera cell on a vision controller
  6. 06Checks before you call it fixed
  7. 07When the template rebuild fails too
  8. 08Prevention: keep the project store healthy
  9. 09Checklist: silent add failure in a vision project
  10. 10Questions

You click Add, choose the component, and the dialog closes — but nothing appears in the project tree. No error, no warning, no log entry: the tool simply ignores the command. This guide is for the engineer who has hit that wall in a machine-vision or automation engineering suite, where one project refuses every add while another project on the same PC accepts the same component without complaint. That contrast hands you the diagnosis before you touch anything. You will rank the likely causes, confirm the guilty one with a few quick tests, rebuild the project through a template, and prove the repair by making one add survive a full close-and-reopen.

The symptom already names the culprit

Read the failure as three facts. The add dialog opens and closes on demand, so the interface layer is alive. The component never reaches the project tree, so the write that should follow a successful add never landed — or landed and was rolled back the next time the file was read. And the same add works in another project on the same installation, so the software, its license and the hardware drivers are healthy.

Put those together and the fault sits in one place: the failing project's own file, damaged by an interrupted write or last saved by a different release of the tool. Commit to that reading and stop reinstalling the suite, because the installation is the one thing the symptom has already cleared. This is silent data corruption at application scale: a write fails in a way the writing program does not detect, so the store on disk drifts from what the GUI believes it saved. The usual origins are a crash mid-save, an upgrade that re-wrote sections it did not understand, a lock from a second instance, or a sync client that raced the save.

Why the failure hides below the dialog

A configuration GUI is layered: the dialog you click, the in-memory model it edits, the serializer that writes the model to the project file, and the file system underneath. Errors in the first two layers surface as messages, because that is where the suite's error handling lives. Errors in the last two often do not, because many suites validate a project when they load it, not when they save it.

That load-time habit explains the classic release gap. A project last saved by an older release opens with sections the current release can read but will not extend. Your add is accepted into memory, the save skips the section it does not own, and the reopen drops it — no message anywhere. The layering applies wherever a vision tool sits inside a bigger engineering environment; a vision tool configured inside a CAM package has the same dependency on its enclosing project file.

add_persists = dialog_ok AND model_ok AND serializer_ok AND store_writable silent_failure = NOT add_persists AND no_message_raised

Those two lines say where to aim. A silent failure means at least one of the last two terms is false, and the serializer meeting a store it cannot write is the term your symptom pattern points at.

Rank the causes and test them in order

Work down this table. Each test takes minutes, and each row ends in a decision.

Cause Why it fits The test What the outcome means
Damaged or release-mismatched project file Prime suspect: other projects on the same suite accept the same add Create a brand-new empty project and run the identical add Works: the suite is healthy and the old file is the fault. Fails: the fault is installation-level — see When the template rebuild fails too
Release gap between project and installed suite A store written by an older release can open without accepting extensions Compare the suite's version in its About box with the release that last saved the project; if the older release is still installed, open and re-save the project there Adds work in the old release: migrate forward one release at a time, testing one add at each step
Locked, read-only or redirected store Serializers fail quietly into a locked file Copy the entire project directory to a local writable folder outside any sync client, close every other instance, retry the add Works: the location was the fault — permissions, a sync lock or a slow network share
Exhausted disk or memory A serializer with no space writes nothing Check free space on the drive holding the project and on the temp directory Works after freeing space: the store was never damaged

The first row costs about a minute and splits the whole problem in half. Industrial software repeats this pattern well beyond vision: when an HMI project transfer fails silently, the cause is likewise in the transfer path, not in the screen that started it.

The fix: migrate the project through a template

A template, not a copy. A normal save rewrites the existing structure in place and carries damaged sections forward. Exporting a template re-serializes every setting through the current release's writer, and whatever the writer cannot parse is dropped instead of copied. A new project created from that template gets a store the installed release wrote from scratch — which is why it accepts adds the old file refused.

  1. Back up the failing project. Copy the whole project directory somewhere safe and mark it read-only; you keep the evidence and the fallback.
  2. Open the failing project and save it as a template. The save-as-template function sits beside Save As in the file menu of most engineering suites.
  3. Close the project fully, and close the suite if it caches projects in memory.
  4. Create a new project from that template.
  5. Run the add that failed. The component should appear in the project tree.
  6. Close the suite entirely and reopen the new project. The component still being there is the proof that the write path is repaired.
  7. Migrate the remaining configuration node by node, saving and reopening after each group, so any regression tells you exactly which node brought it back.

Worked example: rebuilding a four-camera cell on a vision controller

Case: a four-camera GigE inspection cell whose project refuses every add, rebuilt on its vision controller.

Inputs. The host is the MV-SVC2506-16G60-128G; its printed data gives 4 camera GigE ports, 1 configuration GigE port and 1 communication GigE port.

Vision controllersHikrobot MV-SVC2506-16G60-128G 4 camera GigE ports, 1 configuration GigE port, 1 communication GigE port, 6100pro encryption supportedMV-SVC2506-16G60-128G
LAN ports
5+ LAN ports
USB 3 ports
2 USB 3 ports
Light outputs
4 built-in channels
Memory
16 GB
Price on requestView and quoteBuild a system with it

The camera ports carry MV-CU020-90GC cameras. The cell also runs a remote I/O slave — the class of component whose add started the failure. The camera model is interchangeable for this procedure; what matters is that each camera port in use becomes a node the rebuilt project must show.

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
Area scan camerasHikrobot MV-CS200-10GC 20 MP Area Scan Camera, GigE, IMX183, Color, BasicMV-CS200-10GC
Sensor format
1"
Lens mount
C-mount
$739.00View part

Rule. The rebuilt project must account for every node the hardware defines, and the count must survive a reopen.

nodes_expected = cameras_in_use + io_slaves + controller_nodes pass = (nodes_after_reopen = nodes_expected)

Arithmetic. Cameras 4 + I/O slaves 1 + controller nodes 1 = 6 nodes. The 4 comes from the controller's printed camera-port count, the single slave from the failing project, and the controller node from modeling the printed communication port as a project node. Add all six in one session, then close and reopen once and count — one reopen replaces six.

Decision. At 6 of 6 nodes after reopen the migration is sound; carry the rest over in groups and repeat the reopen check after each. At 5 of 6 the store is still dropping writes: do not patch it node by node — start a fully fresh project and re-enter the configuration by hand. Then prove each camera node earns its place with a live grab, because a node that enumerates but cannot grab usually lost its address or pixel-format settings in the move.

On where the project lives: a PC-hosted suite keeps its file on your disk, while a vision controller bundles project and runtime on one machine. The MV-VC3301H-128G66 ships with a VM6200Pro license, so the project file and the software that reads it travel together — migrate that file with the same template discipline.

Specification MV-VC3301H-128G66 MV-SVC2506-16G60-128G
CPU Intel® Core i3-8100 8-core ARM
Memory 8 GB 16 GB
Storage 128G SSD 128 GB SSD
Operating system Windows 10 64-bit, Not activated Linux OS
Digital I/O 8 digital isolated inputs supported; 16 opto-isolated outputs supported (NPN/PNP switchable) Opto-isolated input × 8; Opto-isolated output × 8
Network interface 6× Gigabit Ethernet ports 6 × Gigabit Ethernet ports: LINK1 for VM configuration, LINK2 for communication with external devices, CAM1/2/3/4 for camera connection
USB Interface USB 2.0 × 4; USB 3.0 × 4; Built-in USB 2.0 × 1 2× USB 2.0 ports; 2× USB 3.0 ports
Serial Port 2× full-function RS-232, RS-485/RS-422 switchable 1× RS-232, switchable to RS-485/RS-422
Light interface 4-channel 24 V constant-voltage light drive, Max. power per channel: 72 W, Max. power (4 channels): 150 W Light interface with 24 VDC constant voltage × 4; (Brightness is adjustable. Max. current 3 A for single light interface, and total max. power consumption 80 W. Supports light mode switching between strobe and solid via external control)
Power supply 24 VDC 60 W (without light)
Dimension 161.4 mm × 208.5 mm × 105.5 mm 166 mm × 205.6 mm × 86 mm
Weight Approx. 2.1 kg Approx. 2 kg (4.4 lb.)
Price $2,419.00 Price on request

Values as printed in each product's data sheet; open a part for its drawing and full specifications.

Checks before you call it fixed

  • The add survives a full close-and-reopen, not just the session that created it.
  • The node count after reopen equals the hardware budget — 6 of 6 in the example above.
  • Every camera node produces a live image. A node that enumerates but cannot grab lost settings in the move; the camera-side half of that persistence problem is covered in GenICam driver fails after restart: fix the camera configuration.
  • The I/O slave answers: toggle an input from the suite and watch the state change.
  • Triggers fire on the line, not only at the bench.
  • The old project file is archived read-only, and the new one has a backup from today.

A rebuilt project that passes all six checks is done. Anything less is a migration in progress.

When the template rebuild fails too

Three escalations, in order of cost.

First, build a fresh, empty project and re-enter the configuration by hand. It is the slow route and the only one that removes every legacy section at once.

Second, align releases. If the project predates the installed release, open and re-save it in the older release, then step forward one release at a time, testing one add at each step. Version chains bite everywhere in vision — 3D camera SDK v2 firmware version mismatch: no device found and MIPI camera driver kernel version match: pin or rebuild are the camera-side twins of the same rule.

Third, if a brand-new project also refuses every add, the fault has moved into the installation. Reinstall the suite from its own installer; copying files between installations recreates exactly the damaged-store problem you are escaping, as camera driver file corrupted: reinstall, don't copy files shows for driver files. And when the tool itself is the endangered part — the vendor has moved on and the project type is stranded — the decision widens to the one covered in smart camera configuration software unavailable: migrate or replace.

If models or jobs vanish after a restart on hardware that otherwise runs, that is the runtime-side cousin of the same persistence fault: missing vision models after a restart: fix and validate walks it.

Prevention: keep the project store healthy

  • Pin one release of the suite per cell. Upgrade deliberately, one release at a time, with a migration test after each step.
  • Edit projects on local disk. Move them to network shares or sync folders only after closing the suite; sync clients and serializers fight over the same bytes.
  • Never hand-edit the project store. When you need automation, use the suite's own export or scripting interface, which writes through the same serializer the GUI uses.
  • Put the project under version control and commit after every working change. A commit whose diff shows nothing after an add is the earliest alarm that the write never landed.
  • Start every test session from a known state, reopened from disk rather than resumed — the habit 3D camera test flaky on leftover settings: start from a known state makes routine.

Checklist: silent add failure in a vision project

  • A brand-new empty project accepts the same add: the suite is healthy, and the old project file is the fault.
  • The old project, copied to a local writable folder outside sync, still refuses: the store itself, not a lock.
  • Saved as a template, rebuilt from the template, one add, one full reopen: the component persists.
  • Node count after reopen equals the hardware budget — cameras in use + I/O slaves + controller nodes.
  • Live grab from every camera node, I/O states answer, triggers fire on the line.
  • Old file archived read-only, new file committed to version control.

If the rebuild lands on new hardware instead of a repair, the vision controllers category lists the controllers and area scan cameras the cameras to fill the ports. The system configurator walks the whole chain, the systems topic page collects more integration guides, and the contact page puts a migration plan in front of our applications team before the line stops.

Questions

Why does the add dialog close without any error message?

Because the failure happens below the dialog, in the layer that writes the project file, and most engineering suites raise messages only for errors they catch in the dialog or the in-memory model. Check the suite's message log on disk before trusting the silence: some tools write validation notes there even when the GUI shows nothing. If the log is also empty, treat the store as the suspect.

Why does saving as a template repair a project that a normal save cannot?

A normal save rewrites the existing structure in place, so damaged or unrecognized sections survive and keep poisoning later writes. A template export re-serializes every setting through the current release's writer: what the writer cannot parse is dropped instead of copied, and the new project built from that template gets a store the installed release created from scratch. It also skips settings the current machine cannot resolve, so expect to re-enter those.

Should I copy the project file to another PC and edit it there?

Not as a repair. A byte copy carries the damage with it, and a project moved between machines also picks up broken absolute paths — to camera configuration files, images or drivers — that fail just as silently. Edit on the machine that runs the cell, on local disk, with the suite closed everywhere else. If you must move the project, move it through the template export, never through the file system.

How do I prove a save actually wrote to disk?

Hash the project file with your operating system's file-hash utility before and after the save, and again after reopening. Three digests tell the whole story: if the digest after saving equals the digest before it, the write never landed; if it changed but the reopened project lacks the component, the file was written and then rolled back or overwritten. The test costs seconds and turns a silent failure into a measured one.

When is a silent add failure not the project file?

When a brand-new empty project refuses the same add. That single test splits the problem in two: a new project that works points at the old file; a new project that fails points at the installation, the license or the operating system — permissions, disk space, a corrupted install. Add a second, simpler component as a canary too: if one component type fails while another succeeds, that component's own definition files are missing rather than the store being damaged.