Use this reference for Xinje XD/XL/XG soft-element questions, especially SM0, SM2, the common misconception around M8000, special auxiliary relays, special data registers, and soft-element allocation tables.
Source priority:
XD、XL系列可编程控制器用户手册【基本指令篇】, version 1.6.1, updated 2026-06-26.XG系列PLC用户手册【基本指令篇】, version 1.0, updated 2024-12-16.For current Xinje XD/XL/XG documentation, the always-on run bit is documented as SM000 / SM0, not M8000.
Important accuracy rule: do not state that M8000 exists as a Xinje XD/XL/XG special relay, and do not state that M8000 = SM000. The bundled XD/XL and XG basic-instruction manuals document SM000 as the PLC running always-ON coil. They do not define M8000 as a run-state bit.
If XDPPro or a project accepts an address such as M8000, treat it as a normal M auxiliary relay address if that address is within the model’s valid M range. It is then user logic memory, not a system always-ON relay. A normal M coil only has the value written by the program/HMI/monitoring operation.
Use these Xinje XD/XL/XG devices instead:
| Need | Use | Meaning |
|---|---|---|
| PLC running always-ON | SM000 / SM0 |
ON while PLC is in RUN. |
| PLC running always-OFF | SM001 / SM1 |
OFF while PLC is in RUN. |
| First scan ON pulse | SM002 / SM2 |
ON only during the first scan after PLC starts running. |
| First scan OFF pulse | SM003 / SM3 |
OFF only during the first scan after PLC starts running. |
The XG manual contains an old XC-series communication example using M8002, but the XG special auxiliary relay appendix itself lists SM000 through SM003 for run and first-scan states. Treat those M800x appearances as example/migration residue, not as XD/XL/XG special-relay definitions.
| Element | Purpose | Key notes |
|---|---|---|
X |
Input relay | Physical input points. X/Y addresses use octal-style numbering such as X0~X7, X10~X17. Expansion modules commonly start from X10000, BD from X20000, ED from X30000, depending on model. |
Y |
Output relay | Drives external loads. Y addresses also use octal-style numbering. Extra internal Y points beyond physical outputs may be usable as normal internal coils/contacts. |
M, HM |
Auxiliary relay | Internal relay bits only; they do not read external inputs or directly drive loads. HM is retentive. If an address like M8000 is valid on the selected model, treat it as this ordinary M memory area, not as a special run-state relay. |
SM |
Special auxiliary relay | System/special bit. Use for run state, first-scan pulse, clock pulses, communication status, error flags, etc. Avoid using as ordinary memory unless the manual marks it available. |
S, HS |
State relay | Used for step ladder / process steps. If not used as step numbers, they can act like normal contacts/coils. HS is retentive. |
T, HT |
Timer | Timers support 1 ms, 10 ms, and 100 ms time bases depending on timer range. Accumulative timers retain current value while the drive input is off; non-accumulative timers clear when drive input is off. |
C, HC |
Counter | Internal counters are scan-cycle based; high-speed counters are assigned to specific input points and work independently of PLC scan cycle. |
D, HD |
Data register | 16-bit data registers. Adjacent registers can be combined for 32-bit and 64-bit operations. HD is retentive. |
SD, HSD |
Special data register | System/special word register. Use for scan time, clock, communication results, error codes, module state, and other system data. |
FD, SFD |
FlashROM register | Retentive Flash storage. Frequent writes can wear Flash; avoid high-frequency writes. SFD contains special Flash parameters. |
FS |
Secret register | Flash-backed register intended for IP protection. It can be written but cannot be read back normally; read returns 0. Commonly FS0~FS47, but verify online by model. |
X and Y use octal-style point numbering in the base unit, for example Y0~Y7, Y10~Y17.M, HM, S, HS, T, HT, C, HC, D, HD, FD, FS, SM, and SD use decimal numbering unless a specific table says otherwise.D: DM10 means the 16-bit word made from M10~M25; DY0 means the 16-bit word made from Y0~Y17.LD T11 treats T11 as a bit contact; MOV T11 D0 treats it as the timer current-value word.Dn.m, where m is the bit index. The manual describes 0 <= m <= 63; in practice, confirm instruction width and target model.D10[D0], Y0[D0], or DX2[D0]. Only XDH/XLH support SFD offset addressing in the referenced XD/XL manual.Initial/run state:
| Device | Function |
|---|---|
SM000 |
PLC running always-ON coil. |
SM001 |
PLC running always-OFF coil. |
SM002 |
Initial positive pulse; ON only during the first scan cycle after PLC starts running. Use for one-shot initialization. |
SM003 |
Initial negative pulse; OFF only during the first scan cycle after PLC starts running. |
SM004 |
PLC runtime error indication; supported on firmware V3.4.5 and above in the referenced XD/XL manual. |
SM005 |
Low battery alarm on supported non-EtherCAT bus models. |
Clock pulses:
| Device | Function |
|---|---|
SM011 |
10 ms cycle pulse. |
SM012 |
100 ms cycle pulse. |
SM013 |
1 s cycle pulse. |
SM014 |
1 minute cycle pulse. |
Arithmetic flags:
| Device | Function |
|---|---|
SM020 |
Zero flag; ON when add/subtract result is 0. |
SM021 |
Borrow flag; ON on lower-limit overflow. |
SM022 |
Carry flag; ON on upper-limit overflow. |
PC/mode and step flags:
| Device | Function |
|---|---|
SM030 |
PLC initialization / restore factory setting. Treat as potentially destructive. |
SM032 |
Clear retentive storage for HM, HS, HT, HC, HD. Treat as potentially destructive. |
SM034 |
Disable all outputs. The software may still show pulse changes, but actual outputs are inhibited. |
SM040 |
Step process executing flag. |
Interrupt and high-speed counter groups:
SM050~SM069: disable input interrupts.SM070~SM089: disable timer interrupts.SM090: disable all interrupts.SM099: high-speed ring counter enable; when ON, SD099 increments every 0.1 ms and cycles 0 to 32767.SM100~SM109: HSC0, HSC2, ... HSC18 100-segment count-completion flags.SM110~SM119: HSC0, HSC2, ... HSC18 direction flags.SM120~SM129: HSC0, HSC2, ... HSC18 error flags.SM130~SM139: HSC0, HSC2, ... HSC18 overflow flags.Communication groups:
SM140~SM193: serial-port communication status.SM140 Modbus executing, SM141 X-NET executing, SM142 free-format sending, SM143 free-format receive complete.Error flags:
| Device | Function |
|---|---|
SM400 |
I/O error. |
SM401 |
Expansion module communication error. |
SM402 |
BD/ED communication error. |
SM403 |
FROM/TO instruction error flag. |
SM404 |
PID instruction error flag. |
SM405 |
No user program / internal code checksum error. |
SM406 |
User program error. |
SM407 |
SSFD checksum error. |
SM408 |
Memory error; cannot erase or write Flash. |
SM409 |
Operation/arithmetic error. |
SM410 |
Offset overflow error; offset exceeds soft-element range. |
SM411 |
FOR-NEXT overflow error. |
SM413 |
Encryption verification error. |
SM414 |
Flash register data error. |
SM415 |
RTC time/date verification failed. |
| Device | Function |
|---|---|
SD005 |
Battery voltage display register. On supported models, 3.1 V displays 100; below 2.5 V displays 0. |
SD010 |
Current scan cycle, unit 100 us. |
SD011 |
Minimum scan time, unit 100 us. |
SD012 |
Maximum scan time, unit 100 us. |
SD013~SD019 |
Clock data: second, minute, hour, day, month, year, weekday. |
SD020~SD031 |
Model/version information and applicable host software version fields. |
SD040 |
Current executing step S number. |
SD099 |
High-speed ring counter value, enabled by SM099. |
SD100~SD109 |
Current HSC segment for HSC0, HSC2, ... HSC18. |
SD120~SD129 |
HSC error information for HSC0, HSC2, ... HSC18. |
SD140~SD199 |
Communication results. SD140 is Modbus read/write result for serial port 0 in the referenced XD/XL manual. |
SD400~SD414 |
Detailed error types corresponding to SM400~SM414. |
SD500~SD516 |
Expansion module / BD / ED status. |
Use SFD carefully: values often affect hardware behavior, some require power cycle, and Flash writes should not be frequent.
SFD0*: input filter time, default 10 ms.SFD2*: watchdog action time, default 200 ms.SFD3*: special function configuration word; supported from firmware V3.4.6b in the referenced XD/XL manual.SFD320~SFD329: HSC multiplier settings for HSC0, HSC2, ... HSC18.SFD330: 100-segment HSC absolute/relative selection bits.SFD331: 100-segment HSC interrupt loop bits.The * marker in the manual means the setting requires PLC power cycle to take effect.
When a user asks about M8000, special relays, or soft elements:
M8000 is not a documented special relay and is not equivalent to SM000/SM0. If the software accepts M8000, treat it as ordinary M auxiliary relay memory within the valid model range.SM002/SM2 for one-time initialization at first scan.SM030, SM032, SFD writes, output disable, forced outputs, online changes, or any operation that changes machine state.