Appearance
Y301 Series Technical Manual
Applicable Models: Y301-110, Y301-200, Y301-020, Y301-220, Y301-222, Y301-440, Y301-444, Y301-880
This document consolidates the Modbus-oriented technical information for the entire Y301 serial I/O module family. It is intended for engineers who integrate Y301 devices with PLCs, SCADA platforms, or custom software.
Table of Contents
- Introduction
- System Overview
- Hardware Interfaces
- Electrical Specifications
- Modbus Communication Parameters
- Configuration Workflow
- Automation & Linkage Rules
- Wiring Guidelines
- Diagnostics & Maintenance
1. Introduction
- Summary of supported hardware variants (DI/DO/AI combinations noted above)
- Operating modes: Modbus-RTU slaves over RS485 (default), RS232 or TTL optional
- Industrial design constraints: DC 5–36 V power range, -40 °C to +85 °C, DIN-rail or screw mounting
- All models share the same Modbus register map philosophy; only the number of active channels differs
2. System Overview
- Each Y301 device exposes optically isolated digital inputs (DI) and SPDT relay digital outputs (DO). Select SKUs add analog inputs (AI) with switchable voltage/current sensing.
- The firmware implements Modbus-RTU. Devices respond to standard read/write function codes (01/02/03/04/05/06/15/16).
- Device addressing = software slave ID (1–255) + DIP offset (0–31). DIP toggles SW1–SW5 form a binary offset.
- Reload button provides factory reset (press 3–15 s). LED matrix indicates power, communication, DI/DO state.
3. Hardware Interfaces
- Power: V+/V− screw terminals plus 5.5×2.1 mm DC jack. Input protected against reverse polarity.
- DI Block: COM+/COM− shared rails plus DI1…DIn. Supports dry (COM+/DI) or wet (external 5–36 V referenced to COM−) contacts.
- DO Block: NOn/COMn/NCn per channel. Relays rated up to AC 277 V/10 A or DC 28 V/10 A (resistive).
- AI Block (Y301-222/444): AI− plus V+/I+ per channel. Only one mode (voltage or current) should be wired at a time.
- DIP Switch: 5-bit offset (ON=1). Total address = base + offset.
- Reload Button: Long press for factory restore.
- Communication Port: RS485 A/B/GND by default; RS232 (TX/RX/GND) or TTL variants share pinout.
- LEDs: POWER, WORK (heartbeat), DI1…n (input state), DO1…n (relay state), TX/RX traffic.
4. Electrical Specifications
- Supply: DC 5–36 V. Typical draw varies by model (≈150 mA for 2-relay units, 180–260 mA for 4/8-relay units).
- Digital Inputs: 5–36 V wet threshold, <5 mA per channel. Sampling rate 100 Hz. Supports rising/falling edge counting (32-bit).
- Digital Outputs: SPDT relays, 10 A rated. Selectable retention: none / soft-reboot retention / full retention (soft + power cycle).
- Analog Inputs (Y301-222/444): Dual or quad channels. Voltage mode reads 0–10 V (register output in mV). Current mode reads 4–20 mA (register output in µA).
5. Modbus Communication Parameters
- Slave Addressing: 1–255 via configuration register (default 1). DIP offset (0–31) added runtime, allowing rapid node selection.
- Baud Rate: 600–230400 bps (default 9600). Configurable data bits (8/9), stop bits (1/2), parity (none/odd/even).
- Frame Format: Standard Modbus-RTU. Request = [Slave Addr][Function][Payload][CRC Lo][CRC Hi]. Response mirrors request with data or exception code.
- Common Function Codes:
- 0x01 Read Coils → DO state
- 0x02 Read Discrete Inputs → DI state
- 0x03 Read Holding Registers → configuration/diagnostic parameters
- 0x04 Read Input Registers → AI values
- 0x05/0x0F Write Single/Multiple Coils → DO control
- 0x06/0x10 Write Single/Multiple Holding Registers → parameter updates
5.1 Coil Map (DO Control)
| PLC Addr | Modbus Addr (Hex) | Parameter | Description | Access | Default |
|---|---|---|---|---|---|
| 00001 | 0x0000 | DO1 | Relay 1 output (0=open,1=closed) | RW | 0 |
| … | … | … | Up to DO16 depending on model | RW | 0 |
5.2 Discrete Inputs (DI Status)
| PLC Addr | Modbus Addr (Hex) | Parameter | Description | Access |
|---|---|---|---|---|
| 10001 | 0x0000 | DI1 | Input 1 status | RO |
| … | … | … | Up to DI16 depending on model | RO |
5.3 Input Registers (AI Measurements)
Each AI channel exposes two registers: voltage (mV) and current (µA). Only the wired mode yields valid data.
| PLC Addr | Modbus Addr (Hex) | Field | Description | Bytes | Access |
|---|---|---|---|---|---|
| 30001 | 0x0000 | AI1-V | AI1 voltage reading (mV) | 2 | RO |
| 30002 | 0x0001 | AI1-I | AI1 current reading (µA) | 2 | RO |
| … | … | … | Repeats for each AI channel | 2 | RO |
5.4 Holding Registers – General Parameters
| PLC Addr | Modbus Addr | Parameter | Bytes | R/W | Type | Notes |
|---|---|---|---|---|---|---|
| 40001 | 0x0000 | Device Model (string) | 32 | RO | ASCII | e.g., Y301-440 |
| 40017 | 0x0010 | Firmware Version | 32 | RO | ASCII | |
| 40033 | 0x0020 | Serial Number | 20 | RO | ASCII | |
| 40043 | 0x002A | Runtime Slave Address | 2 | RO | uint16 | Base + DIP |
| 40044 | 0x002B | DIP Offset Address | 2 | RO | uint16 | 0–31, reports SW1–SW5 binary |
| 40045 | 0x002C | Uptime (seconds) | 4 | RO | uint32 | |
| 40047 | 0x002E | Device Name | 32 | RW | ASCII | Custom label on LCD/SCADA |
| 40063 | 0x003E | Base Address | 2 | RW | uint16 | 1–255 (default 1) |
| 40064 | 0x003F | Broadcast Mode | 2 | RW | uint16 | 0:disable,1:receive+respond,2:receive-only |
| 40065 | 0x0040 | Output Retention Mode | 2 | RW | uint16 | 0:none,1:soft,2:soft+power |
| 40066 | 0x0041 | Pulse Count Edge | 2 | RW | uint16 | 0:falling, 1:rising |
| 40067 | 0x0042 | Pulse Debounce (ms) | 2 | RW | uint16 | 5–255 (default 50) |
| 40068 | 0x0043 | Boot Message Enable | 2 | RW | uint16 | 0:disable,1:enable |
| 40069 | 0x0044 | Boot Message Content | 16 | RW | ASCII | Displayed after restart |
| 40077 | 0x004C | Serial Heartbeat Period (s) | 2 | RW | uint16 | 0:disable,1–65535 seconds |
| 40078 | 0x004D | Serial Heartbeat Content | 16 | RW | ASCII | Payload sent on heartbeat |
| 40086 | 0x0055 | RTC Time (Unix) | 4 | RW | uint32 | Required for schedule modes |
| 40088 | 0x0057 | Baud Rate | 4 | RW | uint32 | 600–230400 |
| 40090 | 0x0059 | Data Bits | 2 | RW | uint16 | 8 or 9 |
| 40091 | 0x005A | Stop Bits | 2 | RW | uint16 | 1 or 2 |
| 40092 | 0x005B | Parity | 2 | RW | uint16 | 0:none,1:odd,2:even |
| 40093 | 0x005C | Packet Time (ms) | 2 | RW | uint16 | 0:auto (4-byte time) |
5.5 Holding Registers – Automation Rules
Starting at PLC 40129 (0x0080). Each rule consumes 16 bytes in the order shown below.
| PLC Addr | Modbus Addr | Field | Bytes | Description |
|---|---|---|---|---|
| 40129 | 0x0080 | Mode | 2 | 0–13 per PDF Section 2.5 (DI follow, pulse, delay, cyclic, timer, AI/logic, etc.) |
| 40130 | 0x0081 | Action | 2 | Depends on mode: 0=open,1=close,2=toggle, or hold vs trigger variants |
| 40131 | 0x0082 | DO Index | 2 | 1…n (DO channels) |
| 40132 | 0x0083 | Trigger Index | 2 | DI/AI index depending on mode |
| 40133 | 0x0084 | Param1 | 4 | Mode-specific parameter (ms delay, threshold value, bitmask) |
| 40135 | 0x0086 | Param2 | 4 | Secondary parameter (period, lock interval, hysteresis) |
- Rules available per device = DO count × 2 (e.g., four relays → eight rules).
- Example mapping from PDF:
- Mode 0 (DI Follow): Action=0 (open) or 1 (close) defines DO state when DI=1; Param1/Param2 unused.
- Mode 2 (Pulse Output): Param1=pulse width in ms. Setting DO1 to pulse for 500 ms → write Mode=0x0002, Action=0x0001, DO=1, Trigger unused (0), Param1=0x000001F4.
- Mode 8 (Timer-Scheduled): Param1=Unix timestamp of first trigger, Param2=interval (ms). Requires RTC register 40086 populated after each reboot.
- Mode 9 (Daily Schedule): Param1=seconds from midnight (e.g., 18:00 → 64800 = 0x0000FD20). Param2 unused.
- Mode 10 (AI Threshold): Param1=threshold (mV or µA), Param2=min interval between triggers. Example: Mode=0x000A, Action=0x0000 (open), DO=1, Trigger=AI1, Param1=5000 (0x00001388), Param2=1000 (0x000003E8).
- Mode 14 (Delayed Follow): Param1=delay duration (ms). Mode=0x000E, Action=0x0001 (forward follow), DO1 following DI2 with 1000 ms delay → Param1=0x000003E8.
- Mode 15 (Logic AND/OR/XOR): Action selects hold vs trigger, Param1=bitmask of DO sources, Param2=bitmask of DI sources (bit0→channel1). Example: DO1 controlled by DO2+DI1+DI2 AND logic uses Param1=0x00000002, Param2=0x00000003.
5.6 Holding Registers – Pulse Counters
| PLC Addr | Modbus Addr | Parameter | Bytes | Access | Notes |
|---|---|---|---|---|---|
| 41281 | 0x0500 | DI1 Count | 4 | RW (write zero to clear) | 32-bit accumulation, only zeroing allowed |
| 41283 | 0x0502 | DI2 Count | 4 | RW | |
| … | … | … | 4 | RW | One entry per DI channel |
5.7 Special Registers
- 0x0800 (write 0x5500): trigger soft reboot
- 0x0800 (write 0x0055 or 0x5555 depending on implementation): factory reset + reboot
5.8 Modbus Frame Examples
Frames follow standard Modbus-RTU format
[Slave][Function][Data][CRC Lo][CRC Hi]. Examples assume slave address0x01.
| Use Case | Function | Frame (hex) | Description |
|---|---|---|---|
| Read DI1 | 0x02 | 01 02 0000 0001 B9CA | Query discrete input 1 (10001). |
| Read DI8 | 0x02 | 01 02 0007 0001 080B | Query discrete input 8. |
| Read DO1 | 0x01 | 01 01 0000 0001 FDCA | Read coil 1 state. |
| Read DO8 | 0x01 | 01 01 0007 0001 4C0B | Read coil 8 state. |
| Force DO1 OFF | 0x05 | 01 05 0000 0000 CDCA | Coil 1 → open. |
| Force DO1 ON | 0x05 | 01 05 0000 FF00 8C3A | Coil 1 → closed. |
| Force DO8 OFF | 0x05 | 01 05 0007 0000 7C0B | Coil 8 → open. |
| Read AI1 Voltage | 0x04 | 01 04 0000 0001 31CA | Fetch AI1 voltage register (30001). |
| Read AI1 Current | 0x04 | 01 04 0001 0001 600A | Fetch AI1 current register (30002). |
| Read AI4 Voltage | 0x04 | 01 04 0006 0001 D1CB | Fetch AI4 voltage register (30007). |
| Set Base Address = 5 | 0x06 | 01 06 003E 0005 0528 | Write holding register 40063 to value 5. |
| Enable DO Retention (soft+power) | 0x06 | 01 06 0040 0002 DF09 | Holding register 40065 = 2. |
| Clear DI1 Pulse Counter | 0x10 | 01 10 0500 0002 04 0000 0000 FFCC | Write zero to 40081/40082 (DI1 count). |
| Program Rule (Pulse DO1 from DI2) | 0x10 | 01 10 0080 0006 0C 0002 0001 0002 0000 03E8 EAEA | Mode 2, DO1, trigger DI2, pulse width 1000 ms. |
6. Configuration Workflow
- Connect via HYToolBox (or any Modbus master).
- Use broadcast address 0 to locate units; set unique base address (Holding register 40063).
- Configure baud, parity, packaging time (registers 40088–40093) to suit network latency.
- Adjust pulse debounce and edge detection (40066–40067) when DI lines carry noisy signals.
- Set DO retention (40065) if relays must hold state through soft/power reset.
- Program automation rules by writing 16-byte blocks starting at 40129. Each rule must reference valid DO and trigger indices.
- Store device name, broadcast behavior, heartbeat content if central monitoring requires identification (registers 40047+, 40064+, 40077+).
7. Automation & Linkage Rules
- Mode 0 – DI Follow: DO mirrors DI state. Action defines DO state when DI=1 (open/close). Param1/2 unused.
- Mode 1 – DI Reverse Follow: DO holds opposite of DI. Same action semantics as Mode 0.
- Mode 2 – Pulse Output: DO toggles to commanded state, then reverts after Param1 milliseconds. Useful for momentary actuators.
- Mode 3 – Delay On / Mode 4 – Delay Off: After DI transition, waits Param1 ms before changing DO. Param2 can provide separate off-delay in some firmware builds.
- Mode 5 – Cycle (Flip-Flop): DO toggles periodically; Param1 = ON duration, Param2 = OFF duration.
- Mode 6 – Timer (Absolute): Trigger at Unix timestamp (Param1). Param2 = repeat interval.
- Mode 7 – Timer (Interval): After enabling, waits Param1 ms before first action, then repeats every Param2 ms.
- Mode 8 – Timer (Schedule): Same as above but defined by absolute start time + period. Requires RTC register 40086.
- Mode 9 – Daily Schedule: Param1 = seconds from midnight for execution time. Action = open/close/toggle.
- Mode 10 – AI Threshold: Trigger when AI voltage/current crosses Param1. Param2 = minimum re-trigger interval.
- Mode 11 – Button Mode: Emulates pushbutton; DO closes when DI pressed, opens when released, with optional hold time (Param1).
- Mode 12 – Watchdog: Monitors DI or heartbeat; if no event occurs within Param1 ms, DO toggles to fail-safe state.
- Mode 13 – Logic Evaluation: Combines DI/DO bitmasks (Param1=DO mask, Param2=DI mask) with AND/OR/XOR depending on action.
- Mode 14 – Delayed Follow: Provided in PDF as “延时跟随”; same as Mode 0/1 but with Param1 delay.
- Mode 15 – Logic (Extended): In some firmware revs, codes 15+ extend logic; consult release notes.
Rule Capacity: Each DO hosts two rules (executed in ascending register order). If multiple rules target same DO, ensure parameters do not conflict to avoid race conditions.
Programming Example: Configure DO1 to pulse for 500 ms whenever DI2 rises:
- Set Mode=0x0002 (pulse) at 40129.
- Action=0x0001 (close then release) at 40130.
- DO Index=0x0001, Trigger Index=0x0002 (DI2).
- Param1=0x000001F4 (500 ms), Param2=0.
Programming Example (DO Follow DI): Configure DO1 to directly follow DI1:
- Set Mode=0x0000 (DI Follow) at 40129.
- Choose the action for DI=1 at 40130, for example 0x0001 to close DO1 when DI1 is high.
- DO Index=0x0001 (DO1), Trigger Index=0x0001 (DI1) at 40131 and 40132.
- Param1=0x00000000, Param2=0x00000000 at 40133 and 40135 (not used in DI Follow mode).
- Use Modbus function 0x10 (Write Multiple Registers) starting from address 0x0080 to write these fields in one block.
RTU Frame Example (DO1 Follow DI1): Slave address = 1, base address already set to 1, DIP offset = 0.
| Field | Value |
|---|---|
| Slave Addr | 01 |
| Function | 10 (Write Multiple Registers) |
| Start Addr | 00 80 (0x0080, PLC 40129) |
| Quantity | 00 08 (8 registers, 16 bytes) |
| Byte Count | 10 |
| Data (Mode) | 00 00 (Mode = 0, DI Follow) |
| Data (Action) | 00 01 (close DO when DI = 1) |
| Data (DO) | 00 01 (DO1) |
| Data (Trig.) | 00 01 (DI1) |
| Data (P1 Hi) | 00 00 |
| Data (P1 Lo) | 00 00 |
| Data (P2 Hi) | 00 00 |
| Data (P2 Lo) | 00 00 |
| CRC (Lo,Hi) | 0D FE |
Full RTU request (hex):
01 10 00 80 00 08 10 00 00 00 01 00 01 00 01 00 00 00 00 00 00 00 00 0D FE
Schedule Example: Toggle DO1 every 1 s starting at Unix 1675245600:
| Field | Value |
|---|---|
| Mode | 0x0008 |
| Action | 0x0002 (toggle) |
| DO | 0x0001 |
| Trigger | 0x0000 |
| Param1 | 0x63DA3820 (1675245600) |
| Param2 | 0x000003E8 (1000 ms) |
Daily Timer Example: Close DO1 every day at 18:00:00.
| Field | Value |
|---|---|
| Mode | 0x0009 |
| Action | 0x0001 (close) |
| DO | 0x0001 |
| Trigger | 0x0000 |
| Param1 | 0x0000FD20 (64800 s) |
| Param2 | 0x00000000 |
Reminder: Modes 8–10 rely on RTC register 40086. After every reboot, write current Unix time; otherwise schedules may drift.
8. Wiring Guidelines
- Power: 22–16 AWG, upstream fuse (1–2 A). Keep supply leads short to minimize voltage drop.
- DI Dry Contact: Short COM+ to DI through switch/relay; module sources ≈12 V internally.
- DI Wet Contact: External 5–36 V positive to DI, negative to COM−.
- DO Loads: Use RC snubbers for AC inductive loads, flyback diodes for DC coils. Respect relay current limits.
- AI Wiring: Voltage mode uses V+ and AI−. Current mode uses I+ and AI−. Never connect both V+ and I+ simultaneously.
- RS485 Bus: Shielded twisted pair, 120 Ω termination at both ends, common ground reference. Limit to 32 nodes per segment.
9. Diagnostics & Maintenance
- LED Interpretation: POWER steady = supply OK; WORK blinking = firmware heartbeat; DI/DO LEDs follow channel states; TX/RX blink with communication.
- Reload / Factory Reset: Press and hold 3–15 s → restore defaults (address resets to 1, DIP offset preserved).
- Routine Checks:
- Inspect terminal screws every 6 months for loosening.
- Confirm wiring insulation integrity, especially near high-voltage loads.
- Review Modbus error counters; adjust debounce or communication settings if retries increase.
- Manufacturer: Hunan Yanji Tech Co.,Ltd
- Address: Room 21014, Unit 1, Fudixingguang plaza, Yuhua district Yingxin road, Changsha, Hunan, P.R. China
- Email: hi@yanjiiot.com
- Website: www.yanjiiot.com
