Skip to content

Hormel Barron (Teguar Hardware)

Configuration Disclaimer: The configuration values shown here are based on repository reference files. Production configurations may differ. Always verify against the actual appsettings.json on the production machine.

Quick Reference

Field Value
Site Hormel -- Barron, WI
Validation Mode AV50
Version teguar-v0.118
Config File appsettings-hormel-barron.json
Controller Mock (all outputs via camera I/O)
Hardware Platform Teguar (no Arduino controller)

Hardware Inventory

Device Type Connection Address I/O Purpose
Front Camera Cognex DataMan TCP 192.168.100.200:23 Stack lights (G=pin 0, R=pin 1, Y=pin 2)
Side Camera Cognex DataMan TCP 192.168.100.201:23 Control signals (CaseDetected=pin 0, Reject=pin 1, Stop=pin 2)
Controller Mock N/A N/A No physical controller
Camera Listener Push mode TCP 0.0.0.0:3000 --

This site does NOT have an Arduino controller. Stack lights and reject/stop signals are controlled through the digital I/O outputs on the Cognex cameras themselves.

Camera I/O Configuration

Front Camera -- Controls stack lights: | Pin | Function | Config Setting | |-----|----------|---------------| | 0 | Green light | CognexStackLightGreenPin | | 1 | Red light | CognexStackLightRedPin | | 2 | Yellow light | CognexStackLightYellowPin |

Side Camera -- Controls reject/stop signals: | Pin | Function | Config Setting | |-----|----------|---------------| | 0 | CaseDetected | CognexOutputCaseDetectedPin | | 1 | Reject | CognexOutputRejectPin | | 2 | Stop | CognexOutputStopPin |

Camera Configuration

Camera Role Min. Barcodes Trigger Mode
Teguar-Front-Camera Front 1 Hardware (photo-eye)
Teguar-Side-Camera Side 1 Hardware (photo-eye)

Key Settings

Setting Value
Auto-start validation Yes
Camera mode Both (Front + Side)
Stack Light Profile AV50
Failures before stop 3
Multi-cam post-validation lockout 1000ms
Horn on fail No
EnableCognexStackLight true
EnableCognexOutputController true

Normal Operating State

When everything is working correctly at Barron:

  • Screen: GateKeeper application shows "AV50" validation mode. Both cameras show connected. The controller shows "Mock" (this is normal -- there is no Arduino).
  • Stack lights: Controlled via the Front Camera's digital outputs. Green ON during active validation.
  • Auto-start: Validation starts automatically on application launch.
  • Data flow: Photo-eye triggers both cameras. Cameras read barcodes and push data to port 3000. Stack light and reject signals are sent back through camera I/O pins.

Validation Flow

  1. Application launches and auto-starts validation in AV50 mode.
  2. A case passes through the photo-eye, triggering both cameras.
  3. Cameras push barcode data to the application on port 3000.
  4. AV50 validator checks that each camera has read at least 1 valid barcode.
  5. PASS: Application sends commands to Front Camera to turn on Green light output (pin 0). FAIL: Application sends commands to Front Camera for Red light (pin 1), and to Side Camera for Reject signal (pin 1).
  6. A 1000ms lockout prevents the next case from being processed too quickly.

Common Issues

Stack Lights Not Responding

What you see: Lights don't change when validations occur.

What to check: - EnableCognexStackLight must be true in appsettings. - CognexStackLightCamera must be set to the Front Camera's device name (e.g., "Teguar-Front-Camera"). - Check that the Front Camera is connected (Diagnostics panel). - Important: The camera comm-script inverts the output state. This means: sending 1 to the camera causes it to output 0 (LOW), which turns the relay ON. Sending 0 causes it to output 1 (HIGH), which turns the relay OFF. This inversion is handled automatically by the software -- you should not need to worry about it unless reconfiguring the camera scripts.

Reject Signal Not Working

What you see: Cases fail validation but are not physically rejected.

What to check: - EnableCognexOutputController must be true in appsettings. - CognexOutputCamera must be set to the Side Camera's device name (e.g., "Teguar-Side-Camera"). - Check that the Side Camera is connected. - The reject signal is on the Side Camera's pin 1. Check wiring from the camera's digital output to the reject mechanism.

Stale Barcode Data

What you see: Old barcode data from a previous case appears in the current validation.

What to check: - This was a known issue fixed in teguar-v0.118. The camera TCP buffer could contain old barcode data mixed with JSON command echoes. - The application automatically filters JSON echoes from barcode data. - The reinforcement timer (which periodically re-sends stack light state) is automatically disabled when using Cognex stack lights to prevent buffer pollution. - If the problem persists, restart the application.

Diagnostics Panel Shows "Mock" Controller

What you see: The controller status shows "Mock" instead of a real device.

This is normal for Barron. There is no physical Arduino controller at this site. All I/O is handled through the camera digital outputs. The Mock controller is a placeholder that allows the application to run without a physical controller.

Known Quirks

  • No Arduino controller: This is the only site that uses camera I/O for stack lights and reject signals instead of an Arduino. The Mock controller in the config is intentional.
  • Inverted relay logic: The camera comm-scripts invert the digital output state. The application's CognexStackLightAdapter and CognexOutputController account for this inversion. If the camera scripts are ever re-uploaded, they MUST include the state > 0 ? 0 : 1 inversion logic. See docs/COGNEX_COMM_SCRIPTS.md.
  • Reinforcement timer disabled: The periodic stack light reinforcement timer is automatically disabled when using Cognex stack lights. This prevents the timer commands from polluting the camera's TCP buffer and causing stale barcode reads.
  • Teguar hardware platform: The "Teguar" name refers to the hardware PC platform used at this site (Teguar brand industrial PC), not a different software version. The software is the same GateKeeper Conveyor application.
  • Diagnostics panel includes Cognex output testing: The Diagnostics panel has a UI for testing Cognex digital outputs, which is useful for verifying the stack light and reject wiring without running full validation.