Dimension Measurement Light Curtain — Selection & Accuracy Guide (DAIDISIKE DQL/DQM)

Applies to DAIDISIKE measurement & detection gratings, models DQL-K and DQM-K series (K = beam pitch / resolution). This section explains how to choose the right resolution K and protective height H, and how to verify response time for high-speed lines.

1) Resolution K vs. Minimum Detectable Size

Definition. In DAIDISIKE measuring gratings, K is the beam pitch (mm). The smaller the pitch, the smaller the reliably detected rod, edge, hole, or part.

Rule-of-thumb. For opaque targets, a conservative sizing is: Minimum object size (mm) ≥ 1.2 × K. For hole/slot inspection, use Minimum hole diameter (mm) ≥ 1.5 × K to maintain stability under vibration and misalignment.

Available K options in DQL/DQM: 2.5, 5, 10, 20, 40, 80 mm (check your local datasheet for exact availability per model length).

2) How to Size Protective Height H

Protective height (active measuring window) must fully cover the target envelope plus guard margin for installation tolerances.

Sizing formula. H ≥ Target span along light curtain + 2 × K (adds top/bottom margin approximately one beam pitch each). In most DQL/DQM models, mechanical length L relates to H by: L ≈ H + 30 mm (end caps & mounting).

Select the next higher standard model length. For multi-height scenarios (e.g., mixed cartons), choose H for the largest case or deploy two graded curtains.

DAIDISIKE DQL detection & measuring light curtain

3) Line Speed & Response Time Check

To avoid miss-counts on fast conveyors, ensure the beam interruption time exceeds the curtain's response time.

Check. Let v be line speed (m/s) and s the object length in travel direction (mm). The single-beam dwell time is t ≈ (s + K) / (1000 × v) seconds. Require t ≥ τ, where τ is the light curtain response time. DAIDISIKE DQL/DQM typically support 0.5–5 ms; use 5 ms as a conservative design value.

When t < τ, enable anti-jitter filtering, widen K, or increase the detected span (use two beams, virtual gate, or dual-curtain crossing).

DAIDISIKE Infrared Optical Sensor

4) Quick Application Matrix (DAIDISIKE DQL/DQM)

Resolution K (mm)Typical minimum objectCommon use casesRecommended series
2.5Ø ≈ 3–4 mm pins / small holes ≥ 4 mmSmall-parts counting, precision hole inspection, edge positioningDQM-K2.5, DQL-K2.5
5Ø ≈ 6–8 mm / holes ≥ 8 mmPharma blister count, electronics kitting, bracket presenceDQM-K5, DQL-K5
10Ø ≈ 12–15 mmCarton dimensioning (gap detection), can/bottle lanesDQL-K10 / DQM-K10
20Ø ≈ 24–30 mmWood diameter classing, bulky goods presence, pallet edgesDQL-K20
40–80Large profile edges; zone presenceTimber sorting, textile width checks, large bin detectionDQL-K40 / DQL-K80

Matrix is indicative; always validate with onsite samples and ambient-light/reflectance conditions.

PLC/MES Integration — RS-485 (Modbus-RTU) & Analog (4–20 mA / 0–10 V) Wiring and Read/Write Practice for DAIDISIKE DQL/DQM

Applies to DAIDISIKE Detection & Measurement Gratings — DQL-K2.5/5/10/20/40/80 and DQM-K2.5/5/10/20. This section provides production-grade wiring notes, example register layout, PLC Structured-Text polling, and MES data capture. All examples use conservative industrial defaults (9600-8-N-1, Modbus function 03/06) and field-proven scaling for analog inputs.

1) Terminals & Recommended Wiring

TerminalDescriptionNotes
V+ / V−Power 24 VDC (±10%)Ripple < 10% p-p; isolate from inductive loads
DO1/DO2Discrete outputs (PNP/NPN)Pass/Fail, Part-Present, Oversize, etc.
AOAnalog out (selectable 4–20 mA or 0–10 V)Scaled to measured span or count window
A+/B−RS-485 Modbus-RTUHalf-duplex; 120 Ω termination at the ends
SGSignal GND / ShieldSingle-point ground at control cabinet

Tip. Use twisted-pair shielded cable for RS-485. Terminate the longest two physical ends with 120 Ω and add bias (e.g., 680 Ω pull-up to A+, 680 Ω pull-down to B− at the master) to avoid bus float.

  • Modbus defaults (factory): Address 1, Baud 9600, Data 8, Parity None, Stop 1. Configure via DIP/UI if your line uses different settings.
  • Analog mode: Select 4–20 mA for noise immunity & open-loop detection; use 0–10 V for short runs and multi-channel AI cards.
  • Shielding: Bond cable shields on the cabinet end only to prevent ground loops.

2) Example Modbus Register Map (DQL/DQM)

Address (Holding)TypeNameFormatNotes
40001RModel codeUINT160x100 = DQL, 0x200 = DQM
40002RResolution K (×10)UINT1625=2.5 mm, 50=5.0 mm, …
40010RMeasured span (mm ×10)UINT16e.g., 3285 = 328.5 mm
40012RPart countUINT16Auto-rollover at 65535
40014RStatus bitsUINT16Bit0=OK, 1=Over, 2=Under, 3=Error
40020R/WGate modeUINT160=Free-run, 1=Window, 2=Edge
40021WReset counterUINT16Write 0xA55A to reset

Actual maps may vary by firmware. DAIDISIKE can provide the register list for your exact DQL/DQM build and length.

3) PLC Code — Structured Text (IEC 61131-3) to Poll DQL/DQM (Modbus-RTU Master)

// DAIDISIKE DQL/DQM Modbus Read (ST), generic master FB
// Assumes a library FB 'MB_Master' with .Execute, .ReadHoldingRegs, .WriteSingleReg
VAR
  mb         : MB_Master;
  readOK     : BOOL;
  regs       : ARRAY[0..9] OF UINT;   // buffer for 10 holding registers
  modelCode  : UINT;  // 40001
  k_x10      : UINT;  // 40002
  span_x10   : UINT;  // 40010
  count      : UINT;  // 40012
  status     : UINT;  // 40014
  dwell_ms   : REAL;
END_VAR
// Init (once): configure serial port of COMx to 9600-8-N-1, RTU mode
// mb.Port := COM1; mb.Baud := 9600; mb.Parity := 0; mb.StopBits := 1; mb.SlaveAddr := 1;
(* Read 10 registers starting at 40001 (= index 0 if the FB takes zero-based) *)
mb.ReadHoldingRegs(Slave:=1, StartAddr:=40001, Quantity:=10, pData:=ADR(regs));
readOK := mb.Execute();
IF readOK THEN
    modelCode := regs[0];
    k_x10     := regs[1];
    span_x10  := regs[9 - (10 - (40010-40001))]; // or simply map by absolute address
    span_x10  := regs[9 -  (40010-40001)];       // adjust per your FB buffer indexing
    count     := regs[11 - (40012-40001)];       // example; replace with your platform's mapping
    status    := regs[13 - (40014-40001)];
    // Example: Reset counter when DO2 (oversize) goes high -> write 0xA55A to 40021
    IF (status AND 2#0000_0010) <> 0 THEN
        mb.WriteSingleReg(Slave:=1, Addr:=40021, Value:=16#A55A);
        mb.Execute();
    END_IF;
END_IF;
// Helper conversions
FUNCTION K_mm : REAL
VAR_INPUT k_raw : UINT; END_VAR
K_mm := REAL(k_raw) / 10.0;
FUNCTION Span_mm : REAL
VAR_INPUT s_raw : UINT; END_VAR
Span_mm := REAL(s_raw) / 10.0;

Each PLC brand names its Modbus FBs differently (e.g., MB_MASTER / MODBUS_RTU / MBUS). Map StartAddr and buffer indices to your vendor's convention (zero-based vs. 40001-based).

4) MES/IPC Snippet — Python (pyModbus) to Log Measurements

# DAIDISIKE DQL/DQM Modbus-RTU readout (Python 3.x)
from pymodbus.client import ModbusSerialClient
from datetime import datetime
import csv

client = ModbusSerialClient(
    method="rtu", port="/dev/ttyUSB0", baudrate=9600, parity="N", stopbits=1, bytesize=8, timeout=0.2
)
assert client.connect(), "Cannot open serial port"

def read_block(unit=1, start=0, count=10):
    rr = client.read_holding_registers(address=start, count=count, slave=unit)
    if rr.isError(): raise RuntimeError(rr)
    return rr.registers

with open("daisidike_dql_dqm_log.csv","a", newline="") as f:
    w = csv.writer(f)
    regs = read_block(unit=1, start=0, count=24)   # start=0 ≈ 40001 on many stacks
    model   = regs[0]
    k_x10   = regs[1]
    span10  = regs[9]   # adjust indices to your stack's mapping
    count   = regs[11]
    status  = regs[13]
    ts = datetime.utcnow().isoformat()
    w.writerow([ts, model, k_x10/10.0, span10/10.0, count, status])
    print("OK", ts)

Use an industrial USB-RS485 adapter or native RS-485 port. For Windows, set port="COM3". For long lines, prefer 19200 or 38400 only if your EMC budget allows.

5) Analog Scaling — From AI Counts to millimeters

4–20 mA (preferred): map the measured span H to current. If your AI is 16-bit (0–27648 counts at 20 mA typical on Siemens), use:

// Siemens/TIA example (LAD/ST): 4–20 mA, raw 5530..27648
SPAN_mm := (REAL(AI_raw) - 5530.0) * H_MAX_mm / (27648.0 - 5530.0);
IF SPAN_mm < 0.0 THEN SPAN_mm := 0.0; END_IF;

0–10 V: for a 0–10 V card (0..27648 counts):

// 0–10 V scaling to millimeters
SPAN_mm := REAL(AI_raw) * H_MAX_mm / 27648.0;

Factory default mapping: AO = 0–100% of configured measuring window. Set H_MAX_mm in the DQL/DQM parameter so that 100% corresponds to your required top of scale.

  • Use 250 Ω precision shunt when converting 4–20 mA to 1–5 V for voltage-only AI.
  • Enable AI median/moving-average filtering for vibrating targets; do not exceed your takt budget.
  • Never share AI commons with high-current inductive loads; route separately and star-ground at the cabinet.

6) Commissioning Checklist (Production Line)

  • RS-485 polarity verified (A+ to A+, B− to B−), 120 Ω at both ends, bias at master.
  • PLC master can read 40001..; model and K values make sense; status toggles with a test piece.
  • Analog span matches H_MAX_mm; overshoot/undershoot alarms tied to DO outputs.
  • Response time vs. line speed validated (beam dwell ≥ τ); filtering tuned, no missed counts.
  • MES log shows timestamped span/count; daily CSV/DB roll-over implemented.
DAIDISIKE supports OEM register customizations and multi-window output for complex profiles. For DQL/DQM wiring diagrams, connector pinouts, and the latest register map, contact DAIDISIKE technical support with your model and length.
inXfrWA✉︎PTG

Leave your message