MES Midlands Electronic Solutions

PROGRAMMING MANUAL
LEDO-PM-001 / Rev 0.1 / 15 Oct 2026

DRAFT - NOT FOR RELEASE. Based on the existing programming, instruction and quick-start documents. Register information is transcribed, not firmware-verified. Examples are illustrative and have not been tested on hardware.

LED_O

Programming Manual

Browser configuration and Modbus TCP integration for controls engineers, PLC programmers and commissioning personnel.

LED_O industrial display with pole mounting
Illustrative product rendering

1. Network and browser access

Factory IP / subnet mask10.0.0.49 / 255.255.255.0
Factory gateway / DNS10.0.0.1 / 10.0.0.1
Browser / Modbus endpointhttps://10.0.0.49 / TCP port 502
  1. Install and power the unit using the Quick Start Guide and approved installation instructions. Connect to an isolated commissioning network.
  2. Set the PC to an unused address on the same subnet, for example 10.0.0.100 with mask 255.255.255.0. Open the device address in a browser.
  3. Verify device identity if a certificate warning appears; follow the approved certificate procedure. Use manufacturer-provided credentials where requested.
  4. Configure one factory-default device at a time. Assign a unique operational IP; record the device reference, address, firmware version, date and responsible engineer.
  5. Reconnect at the assigned address and verify access. Change default credentials where supported before routine operation.

The original quick-start specification also lists 192.168.1.50. The address above agrees with both other manuals and its separate Ethernet table; check the release firmware. Do not assume network changes are persistent until a controlled restart confirms them.

Network security: keep Modbus TCP on a controlled automation network; do not expose the device directly to the internet. Confirm authentication, certificate management and access restrictions with the manufacturer. A browser HTTPS interface does not imply that Modbus TCP traffic is encrypted.

LED_O / Network access / DraftLEDO-PM-001 / Rev 0.1 / 1 of 6
MES LED_O

MODBUS TCP INTERFACE
DRAFT - NOT FOR RELEASE

2. Modbus TCP interface

The PLC or commissioning application acts as the Modbus TCP client; LED_O supplies the server interface. Use the assigned device IP and port 502. The source quick guide specifies one TCP client; confirm whether this limit applies only to Modbus connections.

Supported functions
FunctionOperationUse in the source map
FC03 / 0x03Read holding registersReadback; RFVAR is explicitly read-only
FC06 / 0x06Write single registerFont, unit, decimals, scale, alarm and text-gap settings
FC16 / 0x10Write multiple registersGeometry, grouped display settings, text and variable data

Addressing and data conventions

Documented FC16 write groups
StartCountValues in register order
04POSX, POSY, ENDX, ENDY
44SHAPE, SHAPE_Q, SHAPE_WEIGHT, SHAPE_COLOR
82BITMAP, BITMAP_Q
102BORDER_WEIGHT, BORDER_COLOR
123TEXT_POSX, TEXT_POSY, TEXT_COLOR
242ROTDIR, ROTSPEED
262FILL_SCREEN, FILL_COLOR

Use documented groups rather than arbitrary writes across unrelated registers. A grouped request does not by itself prove an atomic display update; confirm update triggers and rendering behaviour. No register 29 definition is provided.

First read: after confirming addressing and the unit identifier, request one holding register at address 28 (TEXT_GAP) with FC03. Log the value and response. No default value is assumed; this is a proposed commissioning check, not a hardware-tested example.

The source states a typical response below 10 ms without test conditions. Do not use that figure as a guaranteed timeout or polling interval. Establish conservative, validated request timing for the installed firmware and network.

LED_O / Protocol conventions / DraftLEDO-PM-001 / Rev 0.1 / 2 of 6
MES LED_O

CONTROL REGISTER REFERENCE
DRAFT - NOT FOR RELEASE

3. Control register reference

Write functions are transcribed from the quick guide. FC16 entries form the groups on page 2. Coordinate origin, axes, endpoint inclusion, supported ranges and readback permissions require firmware verification.

Registers 0-28
AddressNameWrite FCDescription / format
0POSX16Shape/bitmap X start, pixels
1POSY16Shape/bitmap Y start, pixels
2ENDX16Shape/bitmap X end, pixels
3ENDY16Shape/bitmap Y end, pixels
4SHAPE160=RECT, 1=TRI, 2=CIRC, 3=SLINE, 4=LINE
5SHAPE_Q16Shape quantity, count
6SHAPE_WEIGHT16Shape line weight, pixels
7SHAPE_COLOR16Shape colour, RGB565 uint16
8BITMAP16Bitmap file number, index
9BITMAP_Q16Bitmap quantity, count
10BORDER_WEIGHT16Border line weight, pixels; 0 = none
11BORDER_COLOR16Border colour, RGB565 uint16
12TEXT_POSX16Text X position, pixels
13TEXT_POSY16Text Y position, pixels
14TEXT_COLOR16Text colour, RGB565 uint16
15FONT_TYPE060=Arial8x11, 1=Arial19, 2=ArialItalic11, 3=SegoeUI14
16SI_UNIT06SI suffix index; enumeration not supplied
17SI_DECIMAL06Decimal places, 0-3
18LO_LIMIT06Graph scale minimum, int16
19HI_LIMIT06Graph scale maximum, int16
20ALO_LIMIT06Low alarm threshold, int16
21AHI_LIMIT06High alarm threshold, int16
22ALO_COLOR06Low alarm colour, RGB565 uint16
23AHI_COLOR06High alarm colour, RGB565 uint16
24ROTDIR16Scroll direction, int16; enumeration unconfirmed
25ROTSPEED16Scroll speed, int16; 0 = static
26FILL_SCREEN16Fill-screen enable, int16; enable values unconfirmed
27FILL_COLOR16Fill colour, RGB565 uint16
28TEXT_GAP06Marquee gap, pixels between repeats

Data types: int16 and uint16 are the source map's signed and unsigned 16-bit labels. Their representable ranges are -32768 to 32767 and 0 to 65535 respectively; these are not guarantees that every value is valid for a particular setting.

Unsupported addresses, values and function combinations must not be used until behaviour is defined. Do not assume every writable register is readable or that settings survive power loss.

LED_O / Control registers / DraftLEDO-PM-001 / Rev 0.1 / 3 of 6
MES LED_O

TEXT / NUMBERS / COLOUR
DRAFT - NOT FOR RELEASE

4. Text, numbers and colour encoding

String and variable registers
StartNameFC / maximumSource description
30TEXT16 / 30 registers60-byte storage; null-terminated custom message packed into registers
60IVAR16 / 10 registersInteger variable display with selected SI suffix
80WFVAR16 / 2 registersWrite floating-point value, 4 bytes per register pair
90RFVAR03 / 2 registersRead floating-point value; read-only

Text packing

Choose a font with FONT_TYPE, write position and colour using the group at 12, then send the message to TEXT using the validated packing convention. The source does not define character encoding, high/low character order, padding, the required write length or whether the null terminator is included in the stated capacity.

Illustration only: ASCII, high-byte-first characters, null padded
"READY" + NUL: 52 45 41 44 59 00
Candidate register words: 0x5245, 0x4144, 0x5900
Do not transmit until the firmware packing convention is confirmed.

The illustration shows a possible encoding, not a verified device command. Shorter messages may leave stale content unless firmware clears or terminates the previous text correctly; include this in testing.

Numeric values

SI_UNIT selects a suffix and SI_DECIMAL selects 0-3 decimal places. Confirm the suffix enumeration, integer payload layout, decimal scaling and how numeric writes interact with TEXT. A two-register float occupies 32 bits, but the source does not establish IEEE 754 representation or register word order.

Do not infer that RFVAR echoes WFVAR or that alarms use the same data path. Verify the readback meaning, value source, rounding, negative values and invalid/overflow handling.

Colour input versus displayed output

The register map specifies RGB565 uint16 colour input. The confirmed display output is 14-bit, with limited light-shade reproduction due to the BAM implementation. A 16-bit register does not imply 16-bit displayed colour depth.

Standard RGB565 encoding reference
InputHex wordDecimal word
Red component maximum0xF80063488
Green component maximum0x07E02016
Blue component maximum0x001F31
All components maximum0xFFFF65535

These are standard input encodings, not measured output shades or brightness guarantees. Confirm the firmware mapping; do not mask or shift values to 14 bits solely because the displayed output is 14-bit.

LED_O / Data formats / DraftLEDO-PM-001 / Rev 0.1 / 4 of 6
MES LED_O

DISPLAY CONTROL WORKFLOWS
DRAFT - NOT FOR RELEASE

5. Display-control workflows

First establish a visible baseline through the browser's Control page, as described in the Instruction Manual. Use the corresponding register groups for PLC integration. Exact browser labels, save/apply actions, command priority and persistence must be checked on the release firmware.

Function-to-register guide
FunctionConfiguration pathCheck on the device
GeometryFC16 start 0, count 4Coordinate origin, axes, clipping and endpoint inclusion
ShapesGeometry, then FC16 start 4, count 4Shape, quantity, line weight, colour and update trigger
BitmapsGeometry, then FC16 start 8, count 2Image index, quantity, layout and rotation clarity
BorderFC16 start 10, count 2Weight and colour; weight 0 means no border
TextFC06 at 15; FC16 at 12 and 30Font, position, colour, encoding and termination
ScrollingFC16 start 24, count 2; FC06 at 28Direction mapping, speed units, static mode and repeat gap
Background fillFC16 start 26, count 2Enable value, fill colour and interaction with other layers
Process value / alarmsFC06 at 16-23; appropriate data writeUnits, decimals, scale and threshold colour behaviour

Shapes and bitmaps

The Instruction Manual describes rectangle, circle and triangle controls. The register map additionally lists SLINE and LINE; verify support and interpretation before use. Confirm how shape quantity affects spacing and whether changing a group immediately redraws the display.

The source describes ten built-in bitmaps, indexed 0-9, limited to 32 × 32 pixels, with up to four displayed across the screen. Confirm these limits and image-index assignments on the installed firmware. A full-size bitmap can occupy the space needed for a visible border. User-image upload format, size limits, storage and replacement behaviour remain undocumented.

Worked bench-test sequence: short status message

  1. Use the browser to show READY and establish a known visible baseline. Suspend competing PLC writes while testing.
  2. Choose a supported font, for example FONT_TYPE 0 (Arial8x11), using FC06 at address 15.
  3. Choose a validated text origin and RGB565 colour. Write TEXT_POSX, TEXT_POSY and TEXT_COLOR together using FC16 at 12, count 3.
  4. After validating encoding, pack the message and terminator for TEXT at 30. Confirm the permitted write length before transmitting.
  5. Check the physical display, then test a shorter message and reconnect. Record whether configuration survives a controlled restart.

Alarm validation: test values below, at and above both thresholds. Determine equality behaviour, hysteresis, alarm priority, recovery colour and behaviour on stale/lost input. The source does not define these rules; do not use the display as a safety-related alarm function.

LED_O / Display workflows / DraftLEDO-PM-001 / Rev 0.1 / 5 of 6
MES LED_O

PLC INTEGRATION / SUPPORT
DRAFT - NOT FOR RELEASE

6. PLC integration and troubleshooting

Use the PLC vendor's supported Modbus TCP client block or a maintained Modbus library. The sequence below is platform-neutral design guidance, not executable code or a tested PLC program. No vendor-specific memory addresses are required by LED_O.

CONNECT to assigned LED_O IP, TCP port 502
READ confirmed address 28, count 1, using FC03
IF response is valid:
    SEND only approved configuration groups, one request at a time
    WAIT for each response before issuing the next request
    UPDATE process data at a validated application interval
ELSE:
    RECORD the fault and apply bounded reconnect/retry handling
    FLAG communication loss to the machine control system
ON reconnect:
    RECHECK device state before resuming writes

Do not assume retained settings, automatic blanking, a communications watchdog or any defined display state on disconnection. Establish and test the required fault response in the overall control system. Do not repeatedly overwrite settings from every PLC scan without a validated reason.

Diagnostic checks
SymptomChecks
Browser unavailablePower, Ethernet link, PC subnet, assigned IP, duplicate addresses, HTTPS and certificate handling
Browser works; Modbus failsPort 502, client limit, firewall rules, unit identifier and device addressing
Modbus exceptionRecord the exception; verify function, address, group length and value range against approved firmware documentation
Text corrupt or incompleteCharacter encoding, byte packing, terminator, write length and previous-message clearing
Wrong numeric valueSignedness, payload layout, decimal scaling, float representation and word order
Unexpected image or colourBitmap index, register colour encoding, 14-bit output limitations and competing web/PLC updates
Intermittent or stale displayNetwork loss, request timing, retries, connection ownership, update triggers and application fault handling

Required checks before controlled release

Confirm firmware/version coverage; addressing and unit identifier; readable/writable ranges; supported groups and value limits; string/number packing; SI suffix and direction enumerations; bitmap catalogue/upload; mode priority; alarm behaviour; persistence; connection limits; timeout and reconnect behaviour. Capture approved UI screenshots and test every worked example on a named PLC/software version.

Related documents and technical support

Quick Start Guide / Technical Datasheet / Instruction Manual (DOCX) / Original Programming Manual (DOCX)

Contact mes@led-o.ddns.net with the device reference, firmware version, PLC/software version, network settings, function/address/count, transmitted values and observed response. Do not send passwords or other credentials.

Source basis: existing Programming Manual outline, Quick Start Guide register tables and Instruction Manual display-control descriptions. Compliance declarations are separate controlled documents; the unfinished declaration section in the source Word file is not reproduced as a conformity claim.