Modbus Watermark
ModbusWatermarkTask overlays live Modbus values on incoming video frames. Use it when a camera recording or live stream should show the current state of relays, sensors, alarms, registers, or industrial telemetry directly in the image.
Render selected register values onto a video frame
The task is a media pre-processor attached to a grabber pipeline. It reads the latest values already maintained by Modbus Line and draws selected coils, discrete inputs, input registers, and holding registers as text on every processed frame.
Video evidence
Put sensor or machine state directly into recorded footage.
Live operations
Show selected telemetry on operator camera views without switching to the Modbus UI.
Commissioning
Correlate physical movement with register changes while tuning a line, controller, or automation rule.
Choosing overlay content and layout
Select only useful values
Choose a small set of business-relevant registers, such as pump status, gate state, alarm flag, temperature, RPM, PWM, current, or pressure.
Use meaningful register titles
The overlay renders title: value. Good register titles make recordings understandable later.
Pick a non-blocking frame position
Use top or bottom placement based on where important visual content appears in the scene.
Keep text readable
Use outline, color, font scale, and thickness to preserve readability on low-contrast or night scenes.
Configuration parameters
| Parameter | Required | Description | Default |
|---|---|---|---|
Modbus line | Yes | Source Modbus Line that maintains device values. | None |
Device | Yes | Target slave device ID in the selected line. | None |
Register selections | Optional | Selected coil, discrete input, input register, and holding register addresses. | Empty |
Text style | Yes | Pen color, OpenCV font, scale, thickness, and dark outline setting. | White, 0.6, outline on |
Place | Yes | Frame placement: top/bottom left, center, or right. | TOP_LEFT |
Operational notes
Line and device must exist
If the selected line, slave ID, or register is missing, the task skips that value.
Values are latest-known
The overlay freshness depends on the device poll interval and transaction timing, not on the video frame rate.
Rendering has cost
The task does not poll Modbus on each frame, but every selected text line is rendered on every processed frame.