
MPS Series
MPS-8A8R
MPS-8A8R Industrial PLC Controller
MPS-8A8R is an industrial PLC controller with 8 isolated digital inputs and 8 relay outputs. Onboard RS-232, RS-485, UART, I²C, programmed in MP STUDIO ladder logic. DIN-rail mountable for automation, testing, HMI integration and machine control.


International shipping (EMS) — calculated at checkout by destination & weight
Shipping weight 300 g (per unit)
Ships the next business day (regardless of order time)
Large orders may take 1 extra day to dispatch
Cancel before dispatch · request a return/exchange after delivery
Key features
/ FEATURES- Programmed in MP STUDIO ladder logic
- 8 opto-isolated digital inputs (NPN/PNP, up to 40 V tolerant)
- 8 relay outputs for AC/DC dry-contact switching
- 4 analog inputs (0–5 V / 4–20 mA / 0–10 V ranges)
- Industrial communication: RS-485, RS-232, UART, I²C · Modbus RTU
- DIN-rail 35 mm mountable, isolated field I/O for the factory floor
Specifications
/ SPEC| Power input | DC 12V – 24V |
|---|---|
| Digital inputs | 8 |
| Relay outputs | 8 |
| Analog inputs | 4 |
| High-speed pulse inputs | 2 |
| High-speed pulse outputs | 6 |
| Encoder inputs | 1 |
| RS-232 | 1ch |
| RS-485 | 1ch |
| UART | 1ch |
| I²C | 1ch |
| Modbus RTU | Yes |
| LS Cnet | Yes |
Software
MP STUDIO — Ladder Logic
The MPS series is programmed in MP STUDIO, a free ladder-logic IDE. Draw the control logic as a ladder diagram and call analog, temperature, high-speed counter and pulse output straight from function blocks.
Ladder logic only
Contacts and coils — existing PLC experience transfers directly
Function blocks
ADC · NTEMP · HCNT · ENCODER · PWM, each a single block
Live monitoring
Ctrl+T to download, Ctrl+M to monitor and debug on the machine
Before the first download
Install MP STUDIO from the ILOGICS download centre, pick your model in the device list, set the COM port, and you can download straight away.
This model connects to the PC with an ordinary USB cable — no MP download cable is required, and the driver is Silicon Labs CP210x.
Digital input
8 isolated digital input channels
8 digital input channels read external switches and sensors straight from the terminal block. In the ladder program they are the contacts P0–P7.
P0–P7 inputs
8 isolated digital input points in total
COM0 commons
COM0 = P0–P7 (8 points per COM)
DC 0–40 V input
DC 5 V and above reads as HIGH · optocoupler isolated
NPN / PNP sensors
Either sensor wiring convention is read as-is
Input channel layout
* Example wiring for external switches or sensors — applying DC 12–24 V at the terminal turns that contact memory ON
Optocoupler isolation
The digital inputs use a bidirectional optocoupler stage — anti-parallel LEDs into a phototransistor — so either NPN or PNP wiring is read, and the field side stays electrically separate from the control circuit.
Example ladder — reading an input
P0 P32
0000 --| |---------------------------------( )--
P0 = push button (digital input), P32 = motor on the relay output.
P0 ON -> P32 ON P0 OFF -> P32 OFF
All eight inputs return to the single common COM0.Relay output
8 isolated relay output channels, volt-free contacts
8 relay output channels switch external loads. Turning one of the output contacts P32–P39 on in the ladder closes that contact onto its COM — a volt-free contact, so it takes DC and AC loads alike.
P32–P39 outputs
8 isolated relay output points
COM2 / COM3 / COM4 / COM5 commons
COM2 = P32–P33 · COM3 = P34–P35 · COM4 = P36–P37 · COM5 = P38–P39 (2 points per COM)
DC or AC loads
0–30 V D.C / 0–250 V A.C volt-free contact
Rated 5 A
Up to 5 A per point
Output channel layout
* Example wiring for external loads — the load supply comes in on the COM side. The relay contact is volt-free, so it may switch DC of either polarity or AC. The contact is rated 0–30 V D.C / 0–250 V A.C, up to 5 a per point.
Relay output stage
The control circuit drives the relay coil, and the load is switched by a contact that is electrically separate from that coil. The contact carries no voltage of its own, so neither the type nor the polarity of the load supply matters.
Example ladder — driving a relay output
P1 P33
0000 --| |---------------------------------(S)--
P2 P33
0001 --| |---------------------------------(R)--
P1 = start button, P2 = stop button, P33 = motor on the relay output.
P1 ON latches P33 on (it stays on when P1 is released); P2 ON clears it.
P32 and P33 share COM2 - the load supply for both comes in on that common.Analog inputAnalog Input
4 analog input channels on a screw block — the range is selected on the board
AI0–AI3 and AGND come out on one screw block. All 4 channels are 10-bit, and every channel carries its OWN 4-position jumper: DC 0(1)–5 V · DC 0–10 V · 0(4)–20 mA · NTC 10 kΩ 3950K temperature sensor. A temperature probe therefore goes on the same channels as any other analog signal. The ladder reads a channel with the ADC function block, or with NTEMP when that channel is set to NTC.
AI0–AI3 · 4 channels
4 analog input points, 10-bit (0–1023)
4 selectable ranges
DC 0(1)–5 V · DC 0–10 V · 0(4)–20 mA · NTC 10 kΩ 3950K temperature sensor
Jumper selected, per channel
Its own 4-position jumper on every channel — no wiring change
Reference 2.5 V ±0.2%
The reference the analog front end measures against
Analog input terminal
* The screw block reads AI0 · AI1 · AI2 · AI3 and AGND. The block itself is silkscreened ADC0 · ADC1 · ADC2 · ADC3 · AGND. Each channel's mode is set on its own 4-position jumper inside the board — check the jumper before wiring a sensor.
Input modes and how to select them
| Range | How it is selected | Input resistance |
|---|---|---|
| DC 0(1)–5 V | Factory default — Fit the jumper across the two header pins marked in red | 2 kΩ |
| DC 0–10 V | Fit the jumper across the two header pins marked in green | 4 kΩ |
| 0(4)–20 mA | Fit the jumper across the two header pins marked in blue | 250 Ω |
| NTC 10 kΩ 3950K temperature sensor | Fit the jumper across the two header pins marked in orange | 10 kΩ Pull-Up |
Every channel is 10-bit (0–1023) and is read with the ADC function block. A 4–20 mA or DC 1–5 V sensor must be read with ADC2 instead, and its span is 0–818 rather than 0–1023. The analog front end measures against a 2.5 V ±0.2% reference. Set a channel's jumper to NTC and it becomes a temperature input instead: NTC β-3950 10KΩ (25℃), -40℃ to 120℃, resolution 0.1℃ over 0–40℃, read with the NTEMP function block. The thermistor hangs off a 10 kΩ pull-up to the 2.5 V reference. A channel in NTC mode cannot be used as a voltage or current input at the same time — it is the same physical channel.
Example ladder — reading an analog input
@ON ADC
0000 --| |---------------[ CHANNEL:0 | MAX VALUE:1000 | MIN VALUE:0 | OUT:D0 ]--
@ON NTEMP
0001 --| |---------------[ CHANNEL:1 | OUT:D10 ]--
AI0 arrives in D0 as 0~1000. Each channel's range is picked on its own four-position
jumper and ships at DC 0(1)~5V; for 4~20mA or DC 1~5V use ADC2, whose span is 0~818.
Move a channel's jumper to NTC and NTEMP reads it as a temperature: here AI1 lands in
D10, and D10 = 234 means 23.4 degrees.High-speed pulse outputPWM Output
6 PWM output points on 2 independent timers
PWM0–PWM5 are 6 pulse outputs driven by 2 timer resources — channel 0 = PWM0–PWM2 · channel 1 = PWM3–PWM5. Ports on the SAME timer share a WIDTH and a frequency; the two groups are independent of each other, so this board can emit two different frequencies at once. The output swings DC 0 V LOW to DC 5 V HIGH at up to 30 mA per point.
6 PWM points
PWM0–PWM5 · DC 0 V / DC 5 V output
2 timers
channel 0 = PWM0–PWM2 · channel 1 = PWM3–PWM5
DUTY / WIDTH 0–65535
Set the pulse directly, or give a frequency instead
DC 5 V · 30 mA
LOW DC 0 V / HIGH DC 5 V · up to 30 mA per point
Pulse output header and duty
* 2 headers, silkscreened PWM0 · PWM1 · PWM2 · GND / PWM3 · PWM4 · PWM5 · GND. channel 0 = PWM0–PWM2 · channel 1 = PWM3–PWM5.
Before you wire it
- PWM0, PWM1, PWM2 run on channel 0: they must all carry the same WIDTH and the same frequency — changing one changes the group.
- PWM3, PWM4, PWM5 run on channel 1: they must all carry the same WIDTH and the same frequency — changing one changes the group.
- The two groups are independent, so they may run at different frequencies at the same time.
- FPWM, NPWM set their timer's CLOCK and WIDTH themselves to hit the frequency you ask for, so mixing them with the PWM block on the SAME timer is not recommended. Driving one timer with PWM and the other with FPWM / NPWM is fine.
- DUTY may not exceed WIDTH. The smaller the WIDTH, the higher the output frequency.
- NPWM takes 0–60 kHz, and 30 kHz or below is recommended.
- NPWM may be used once on ports 0, 1, 2 and once on ports 3, 4, 5 — two in total.
Pulse function blocks
| Function block | What it does | Parameters |
|---|---|---|
| PWM | Pulse by duty and width | PORT 0–5 / DUTY 0–65535 / WIDTH 0–65535 |
| FPWM | Pulse by frequency (50% duty) | PORT 0–5 / FREQ 0–1 MHz |
| NPWM | Emit a set number of pulses | PORT 0–5 / FREQ 0–60 kHz / N |
| POFF | Stop the pulse output | PORT |
The output is LOW DC 0 V / HIGH DC 5 V at up to 30 mA per point. channel 0 = PWM0–PWM2 · channel 1 = PWM3–PWM5 — WIDTH and frequency have to match WITHIN a group, and the two groups are free of each other.
Example ladder — PWM output
P0 PWM
0000 --| |-----------------------[ PORT:0 | DUTY:500 | WIDTH:1000 ]--
P1 POFF
0001 --| |-----------------------[ PORT:0 ]--
P0 FPWM
0002 --| |-----------------------[ PORT:1 | FREQ:1000 ]--
P0 NPWM
0003 --| |-----------------------[ PORT:4 | FREQ:2000 | N:100 ]--
PWM sets the pulse directly; FPWM emits a 50% duty at the frequency asked for, and
NPWM emits a fixed number of pulses (here 100 at 2kHz on PWM4). PWM0~PWM2 are the
0 channel and PWM3~PWM5 the 1 channel, so WIDTH has to match inside a channel - the
two channels are free of each other. NPWM allows one on 0,1,2 and one on 3,4,5.High-speed counter · encoderCounter · Encoder
2 isolated counter points up to 5kHz, plus one encoder channel
The two counter points are OPTOCOUPLED — they take DC 0–80 V straight off a field device, either polarity, on their own common COM1. The encoder is a separate, non-isolated channel on the I2C pair, and it doubles as counter channel 2 for open-collector pulse sources. The ladder reads both with the HCNT and ENCODER function blocks.
2 isolated counter points
HCNT0 · HCNT1, returning to their own common COM1
Encoder A and B phases
SDA is the A phase and SCL the B phase — B lagging A counts up
4.7 kΩ pull-up on the encoder pair
Built into the I2C lines — no external resistors
DC 0–80 V · 5kHz
NPN or PNP, HIGH from DC 5 V or above
What the two kinds of input are for
* The counter poles are isolated: a DC 5~24V pulse source connects straight to HCNT0 · HCNT1 with its return on COM1, and HIGH is recognised from DC 5 V or above. The encoder pair is a different circuit — DC 0–5 V with a 4.7 kΩ pull-up already on the board.
Before you wire it
- Using the encoder — or SDA as counter channel 2 — takes the SDA and SCL lines, so I²C communication cannot be used at the same time. They are physically the same pair.
- The isolated points HCNT0 · HCNT1 are rated up to 5kHz. Faster pulses belong on SDA as channel 2, which takes 0–50 kHz and above.
- Both counter points share the single common COM1, which is separate from the digital inputs' common.
- The encoder pair is NOT isolated and its operating range is DC 0–5 V. Field signals that need isolation belong on HCNT0 · HCNT1 or on the digital inputs.
Inputs and function blocks
| Input | Terminals | Rating |
|---|---|---|
| High-speed counter | HCNT0 · HCNT1 (COM1) | Isolated · DC 0–80 V · up to 5kHz |
| Encoder | SDA (A) · SCL (B) | Not isolated · 4.7 kΩ pull-up · DC 0–5 V |
| HCNT / HRST | Block | Read the counter (CHANNEL 0 or 1) · reset it |
| ENCODER / ENMOV | Block | Read the encoder · preset it |
| Counter on the encoder port | SDA = HCNT channel 2 | Open-collector sources · 0–50 kHz and above |
HCNT0 · HCNT1 are isolated inputs on the common COM1: DC 0–80 V, HIGH from DC 5 V or above, up to 5kHz, NPN or PNP. HCNT takes CHANNEL 0 or 1 for them. The encoder is the I2C pair — SDA carries the A phase and SCL the B phase, at DC 0–5 V with a 4.7 kΩ pull-up built in — and direction is decided on the A phase's rising edge: a B phase that lags counts up, one that leads counts down. An open-collector pulse source can use SDA as HCNT channel 2 instead, which takes 0–50 kHz and above.
Example ladder — reading the high-speed counter
@ON HCNT
0000 --| |-----------------------[ CHANNEL:0 | OUT:D100 ]--
P0 HRST
0001 --| |-----------------------[ CH:0 ]--
@ON is always on, so the counter free-runs and D100 always holds the count.
P0 = the reset button; HRST clears channel 0 back to zero.Example ladder — reading and presetting the encoder
@ON ENCODER
0000 --| |-----------------------[ CHANNEL:0 | OUT:DD0 ]--
P0 ENMOV
0001 --| |-----------------------[ CHANNEL:0 | IN:100 ]--
DD0 is a double word, so the encoder count can run past a single word.
ENMOV writes a value INTO the encoder: here P0 presets channel 0 to 100.CommunicationRS-232 · RS-485 · UART
3 serial channels and one I²C channel, all on the top terminal row
This board brings out RS-232 · RS-485 · UART at the same time — RS-232 is channel 1, RS-485 is channel 2, UART is channel 3 in MP STUDIO's communication-port settings. All of them speak Modbus RTU and LS Cnet (XBC/LINK) as a slave, or your own protocol in NORMAL MODE. I²C is a separate master-mode channel with its pull-ups already fitted.
3 serial channels
RS-232 = channel 1 · RS-485 = channel 2 · UART = channel 3
RS-485 multidrop
485+ and 485- — one pair, many nodes
Modbus RTU slave
Also Cubloc Modbus RTU and LS Cnet (XBC/LINK), as a slave
I²C · 1 channel
Master mode · 1:N · 4.7kΩ pull-ups built in
Communication terminals
* All four channels are on the long screw row along the top edge. I²C reads SDA · SCL and carries 4.7kΩ pull-ups, so an I²C device connects with no external resistors.
RS-485 link
* 485+ and 485- are poles of the long screw row along the top edge. It is channel 2 in MP STUDIO's communication-port settings, and one pair carries every node on the bus.
Communication channels
| Channel | Terminals | What it supports |
|---|---|---|
| I²C · 1 channel | SDA · SCL | Master only · 1:N · 4.7kΩ |
| RS-232 · channel 1 | TX · RX | Modbus RTU / LS Cnet slave |
| RS-485 · channel 2 | 485+ · 485- | Modbus RTU / LS Cnet slave |
| UART · channel 3 | TXD · RXD | Modbus RTU / LS Cnet slave |
| NORMAL MODE | All 3 channels | PUT, GET, PUTLEN, GETLEN |
| Cubloc Modbus RTU | All 3 channels | Slave · Comfile HMI |
The three serial channels are addressed by NUMBER in MP STUDIO: RS-232 is channel 1, RS-485 is channel 2, UART is channel 3. Baud rate and the rest are set under the communication-port settings. I²C is separate again — master mode, 1:N, with its 4.7kΩ pull-ups on the board.
Before you wire it
- Using the encoder — or the high-speed counter on channel 2 — takes the SDA and SCL lines, so I²C cannot be used at the same time. They are physically the same pair.
- I²C is supported in MASTER mode only: this board addresses I²C devices, it does not answer as one.
- None of the communication channels is isolated — the specification lists every one of them as non-isolated.
- For how to reach an EasyView, M2I or Comfile HMI, ILOGICS publishes the wiring on its own blog, under PLC to HMI.
7-segment (FND) connectionFND · TM1637
A four-digit 7-segment display on two signal wires — up to 3 of them
The display module carries a TM1637 driver, so a four-digit readout needs only a clock line and a data line. This board has no dedicated display connector: the two signals go on ordinary screw poles — CLK = PWM4 · DIO = PWM5 is the pair the manufacturer's own wiring article uses — and +5V and GND come off the bottom power group (+5V · +24V · GND), which makes the whole run four wires. The ladder drives it with the FINI · FINT · FDATA function blocks.
Two wires: CLK and DIO
A TM1637 four-digit module needs no more
Up to 3 displays
Each on its own pair of poles
Powered from the board
+5V · GND on the bottom power group · up to 1A
FINI · FINT · FDATA
Ladder function blocks — initialise, print a number, drive the segments
Displays and their poles
| Display | Terminals | Role |
|---|---|---|
| 1 | CLK = PWM0 · DIO = PWM1 | CLK / DIO |
| 2 | CLK = PWM2 · DIO = PWM3 | CLK / DIO |
| 3 | CLK = PWM4 · DIO = PWM5 | CLK / DIO |
| Supply | +5V · GND | Board output ≤ 1A |
The signal poles are PWM pulse output terminals doing double duty, so a pole driving a display is spent for as long as it does. FINI is run once at power-up and takes the two port numbers; FINT prints a decimal number and FDATA drives the segments and the dot bit by bit. The display module itself is an accessory sold separately.
Connection from the wiring article
* The poles are silkscreened PWM4 · PWM5 · +5V · GND; nothing on the board says CLK or DIO, so the role of each wire is printed where it lands. The display comes in a decimal-point form and a time-displaying form, both sold separately.
Driving more than one
* Every display needs its own CLK and DIO pair; +5V and GND are shared by all of them. The manufacturer's own article says all six of PWM0–PWM5 can serve as CLK and DIO, and gives PWM4 = CLK, PWM5 = DIO as its example. The pairs below are one valid allocation, taken in port order — which two ports make a pair is your choice.
Before you wire it
- A pole used for a display cannot be used as PWM pulse output at the same time.
- The +5V pole sources up to 1A only when the board is powered through +24V. Feed DC 5 V into it instead and it is a power INPUT, not an output.
- A PWM port driving a display cannot emit pulses at the same time — the two functions share the same terminal.
- FINI takes CONSTANTS for CLK and DIO; a memory address cannot be used there.
- The time-displaying form cannot control its decimal points. Use the decimal-point form if you need them.
- The 7-segment module is an accessory sold separately; it is not included with the board.
Example ladder — driving a 7-segment display
@BEGIN FINI
0000 --| |---------------[ CLK:4 | DIO:5 ]--
@ON FINT
0001 --| |---------------[ IN:D0 | POSITION:1 | LENGTH:4 | DOT:0 | ZERO:@OFF | SIGN:@OFF ]--
@BEGIN runs once at power-up: FINI takes the two PWM port NUMBERS to use as CLK and
DIO - here PWM4 and PWM5. FINT then prints D0 as a decimal across all four digits.
CLK and DIO must be constants; a memory address cannot be used there.
FDATA drives the seven segments and the dot bit by bit when you need that instead.Power · Data retentionPower · Backup
DC 12V ~ 24V in, 5 V out — and your data survives the blackout
The controller takes DC 12V ~ 24V and converts it to 5 V internally with a LM2576 regulator. Size the supply for at least 24V 0.5A.
DC 12V ~ 24V
Size the supply for 24V 0.5A or more
5 V internal
LM2576 DC-DC conversion
+5 V out 1A
From the power terminal block — it takes 5 V in too
Supercapacitor hold-up
About ten seconds on the +5 V pole
Before wiring the supply
- An EEPROM section written about 100,000 times can fail, and a failed section reads back a random value after a power cut. For values that change constantly, use the methods below.
- Do not exceed the stated input voltage range.
- Do not reverse the supply polarity or mis-wire the input.
Where the power goes
* Any of three sources runs the controller: the external supply through the regulator, the download port's 5 V, or DC 5 V fed straight into the +5 V pole. The supercapacitor sits on that same 5 V node and keeps it alive when they go away.
Power and data retention
| Input voltage | DC 12V ~ 24V |
|---|---|
| Recommended supply | 24V 0.5A or more |
| Internal conversion | LM2576 DC-DC to 5 V |
| +5 V output | 1A max, from the +5 V pole of the power terminal block |
| 5 V input | Feed DC 5 V into the same +5 V pole and it runs as a power input |
| USB-powered operation | Runs on the PC's 5 V through the download port |
| Non-volatile memory | EEPROM, about 100,000 writes per section |
| Hold-up on a power cut | Supercapacitor on the +5 V pole, about ten seconds |
| Blackouts retained | More than 100,000, writing only when the mains drops |
Size the supply for 24V 0.5A or more, plus whatever the +5 V pole is feeding (up to 1A).
Keeping data through a blackout
Which method you want depends on how often the value changes. The first two are settings; the third needs one part and a few rungs.
EEPROM retentive area — values that change occasionally
Mark a retentive area under Settings → Data Memory in MP STUDIO and the runtime copies that memory into non-volatile EEPROM every time its value changes — no code to write. Because a section survives only about 100,000 writes, it belongs to setpoints, calibration data and machine configuration rather than to anything the scan updates.
T EEPROM INTERVAL — timer memory
Timer (T) memory changes constantly, so the same settings window carries a T EEPROM INTERVAL. Set a period and the timer values are stored once per period instead of on every change, which is what keeps the write count down.
Supercapacitor — values that change constantly
Fit a supercapacitor to the +5 V pole and the internal 5 V stays up for about ten seconds after the main supply is cut. Wire the main supply into a digital input as well, add a rung that moves the live value into the retentive memory the moment that input goes off, and a second rung that moves it back once on restart. The EEPROM is then written only at the instant of a blackout, so it survives more than 100,000 of them.
Mounting · DIN railDIN Rail
Clips onto a 35 mm DIN rail, or screws down through the PCB's own holes
Inside a control panel the board clips onto a 35 mm DIN rail; built into a machine it screws down through the Ø3.5 mounting holes in the PCB. The board measures 151.8 × 100.0 mm without the rail clip, and stands 114.2 mm high once the clip is closed on the rail.
35 mm DIN rail
Clips onto the rail in a control panel
Direct PCB mounting
Screws through the Ø3.5 mounting holes
151.8 × 100.0 mm
PCB outline with no rail clip fitted
114.2 mm engaged
119.4 mm with the clip open, 114.2 mm closed
Mounting and dimensions
| Mounting | 35 mm DIN rail, or direct to PCB (Ø3.5 holes) |
|---|---|
| DIN rail | 35 mm |
| PCB alone (no clip) | 151.8 × 100.0 mm |
| Mounting holes | Ø3.5 mm · 135 × 90.0 mm apart |
| Clip open (before engaging) | approx. 119.4 mm |
| Clip closed (engaged) | approx. 114.2 mm |
Where no DIN rail is used, the board screws down through the Ø3.5 mounting holes in the PCB; on a rail, the clip closes over a 35 mm profile and the assembly stands 114.2 mm high.
Mounting on a 35 mm DIN rail
* The clip hooks over a 35 mm DIN rail. Overall height is 119.4 mm with the clip open and 114.2 mm once it is closed and engaged. The drawing shows the mounting method rather than the clip's own shape.
Outline and mounting holes
* The outline and mounting holes with no rail clip fitted. All dimensions in millimetres.
Installation notes
- Indoor use only. Do not install where there is rain, dust, frost, direct sunlight or condensation.
- Do not install in an atmosphere containing flammable or explosive gas.
- Do not install where there is heavy vibration or shock.
- Where the equipment affects life or property (nuclear, medical, marine, vehicle, aviation and the like), a secondary safety device must be fitted.
FAQ
How many I/O points does the MPS-8A8R have?▾
The MPS-8A8R provides 8 isolated digital inputs and 8 relay outputs, with onboard RS-485, RS-232, UART, I²C communication. See the specification table for the full breakdown.
Does the MPS-8A8R support Modbus RTU?▾
Yes. The MPS-8A8R supports Modbus RTU — master and slave alike — over its serial interface.



