SimpleCORE
CoreLabs · Internal tool / PROJECT

Access Control I/O Automation

Signals access control hardware and checks its response, with no one at the door.

Publicly available · MIT License

Chapters 3Topics 9
PROJECT STORY
01 / 03

Setup System overview

01 / 04

Command and check on one path

A test script sends a command over the REST API, and the control program builds a Modbus TCP frame and sends it to the relay module. The relay module closes a contact to signal the door input of the X1100C, reads the X1100C relay output on a digital input, and returns it along the same path.

Because the signal path and the read-back path run through one system, the test script decides pass or fail with no one watching the hardware. The control program runs a desktop screen and a REST API server together, so the same hardware can be operated by hand or driven by scripts.

The relay module is the Waveshare Modbus POE ETH Relay (B), and its transfer protocol must be set to Modbus TCP before it will connect. The device address, port, and unit ID are set on screen or through the API.

Use Control screen

01 / 02

Eight channels, controlled on screen

The eight relay channels are switched on, off, toggled, or pulsed, and the eight digital inputs are read and shown every two seconds. Buttons for switching all channels at once, the connection settings, and an activity log are on the same screen.

Each channel can be named for its purpose, such as “Door Lock” or “Door SW”, and the names are saved and shown again at the next start. Frequently used channel combinations are saved as presets and applied in one step, with the channels that will turn on outlined in red beforehand.

Choosing a preset does not change the relays; it is sent to the device only when it is applied. A new preset is made by picking channels one by one or by loading the current relay states. If a communication error occurs while the screen operates or reads the device, it shows the connection as lost and resets the channel indicators to off.

Engineering & technology Modbus TCP frames

01 / 03

Built byte by byte, without a library

The control program builds its frames byte by byte instead of using a Modbus library. That lets it use the device’s own extensions outside the Modbus standard as they are: the toggle value, the all-channel address, and the pulse address ranges.

A frame consists of a seven-byte header (MBAP) and the command body (PDU), and in the one-byte input status of the reply each bit stands for one input channel. The reply 0x01 in the figure means only the first input is on, which a test takes as proof that the X1100C relay switched.

Each request carries a transaction number, the reply is read to the full length stated in its header, and exception replies from the device are raised as errors with their codes. The device address and firmware version are read the same way.

© 2026 SIMPLECORE INC.CONTEXT. STRUCTURE. EXPERIENCE.