
MPS Series
MPS-16A16R
MPS-16A16R Industrial PLC Controller
MPS-16A16R is an industrial PLC controller with 16 isolated digital inputs and 16 relay outputs. Onboard RS-485, 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 350 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
- 16 opto-isolated digital inputs (NPN/PNP, up to 40 V tolerant)
- 16 relay outputs for AC/DC dry-contact switching
- 4 analog inputs (0–5 V / 4–20 mA / 0–10 V ranges)
- 2 NTC temperature inputs (−40 to +120 °C)
- Industrial communication: RS-485, 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 | 16 |
| Relay outputs | 16 |
| Analog inputs | 4 |
| Temperature sensor inputs | 2 |
| High-speed pulse inputs | 2 |
| High-speed pulse outputs | 3 |
| Encoder inputs | 2 |
| RS-485 | 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.
Models that use the MP download cable appear in Device Manager as "USB Serial Port". If it does not appear, install the FTDI driver as well.
Digital input
16 isolated digital input channels
16 digital input channels read external switches and sensors straight from the terminal block. In the ladder program they are the contacts P0–P15.
P0–P15 inputs
16 isolated digital input points in total
COM0 / COM1 commons
COM0 = P0–P7 · COM1 = P8–P15 (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 5–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
The sixteen inputs return to two commons: P0~P7 to COM0 and P8~P15 to COM1.Relay output
16 isolated relay output channels, volt-free contacts
16 relay output channels switch external loads. Turning one of the output contacts P32–P47 on in the ladder closes that contact onto its COM — a volt-free contact, so it takes DC and AC loads alike.
P32–P47 outputs
16 isolated relay output points
COM2 / COM3 / COM4 / COM5 commons
COM2 = P32–P35 · COM3 = P36–P39 · COM4 = P40–P43 · COM5 = P44–P47 (4 points per COM)
DC or AC loads
0–30 V D.C / 0–250 V A.C volt-free contact
Rated 5 A
5 A per point · 15 A per COM
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, 5 a per point · 15 a per com.
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)--
P3 P32
0002 --| |---------------------------------(S)--
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 four points comes in on each common,
and the sixteen outputs are grouped COM2, COM3, COM4, COM5 four points at a time.Analog inputAnalog Input
4 analog input channels on a screw block — the range is selected on the board
A0–A3 and AGND come out on one screw block. All 4 channels are 10-bit, and the input range is set on the board itself: 3 ranges, selected by the header cap and — for the widest one — by a resistor removed before shipping. The ladder reads a channel with the ADC function block.
A0–A3 · 4 channels
4 analog input points, 10-bit (0–1023)
3 selectable ranges
0(4)–20 mA · DC 0(1)–5 V · DC 0–10 V
Set on the board
The header cap picks the range — no wiring change
Reference +2.5 V ±0.2%
The reference the analog front end measures against
Analog input terminal
* The screw block reads A0 · A1 · A2 · A3 and AGND. The range is chosen by the header beside it, and the same choice applies to the channels wired through it — check it before wiring a sensor.
Input ranges and how to select them
| Range | How it is selected | Input resistance |
|---|---|---|
| 0(4)–20 mA | Factory default — the jumper cap is fitted | 250 Ω |
| DC 0(1)–5 V | Remove the jumper cap | 200 kΩ |
| DC 0–10 V | Remove the resistor marked v along with the jumper cap | 400 kΩ |
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. Using DC 0–10 V means removing the resistor marked v; ask when ordering and the board ships with it already removed.
Example ladder — reading an analog input
@ON ADC
0000 --| |---------------[ CHANNEL:0 | MAX VALUE:1000 | MIN VALUE:0 | OUT:D0 ]--
Channel A0 arrives in D0 as 0~1000. The input range is chosen by the jumper cap
on the board, and it ships fitted at 0(4)~20mA. For 4~20mA or DC 1~5V use ADC2
instead, whose span is 0~818.Temperature inputNTC
2 NTC temperature channels on their own connectors
2 NTC temperature channels, NTEMP CH0 · NTEMP CH1, each on its own connector rather than on the analog block. The ladder reads one with the NTEMP function block, which returns tenths of a degree — 234 means 23.4℃.
2 NTC channels
NTEMP CH0 · NTEMP CH1 (T0 · T1)
-40℃ to 120℃
Measuring range, resolution 0.1℃
NTEMP function block
CHANNEL and OUT — a reading of 234 is 23.4℃
No polarity
The two leads of the thermistor may go either way round
NTC connectors
* One connector per channel, silkscreened NTEMP. The thermistor has no polarity, so its two leads may go either way round. The input is scaled for a NTC 3950K, 10 KΩ (25℃) thermistor; the divider hangs off the +2.5 V ±0.2% reference and reaches the MCU through a low-pass filter.
Temperature input specs
| Channels | 2 points · NTEMP CH0 · NTEMP CH1 |
|---|---|
| Sensor | NTC 3950K, 10 KΩ (25℃) |
| Measuring range | -40℃ to 120℃ |
| Resolution | 0.1℃ (over 0–40℃) |
| Reference | +2.5 V ±0.2% → pull-up → LPF → MCU |
| Function block | NTEMP (CHANNEL / OUT) |
NTEMP returns the temperature in tenths of a degree: read NTEMP CH1 and a value of 234 means 23.4℃. The pull-up resistance is not published in this model's specification.
Example ladder — reading the NTC temperature
@ON NTEMP
0000 --| |---------------[ CHANNEL:1 | OUT:D10 ]--
NTEMP channel 1 lands in D10 in tenths of a degree: 234 means 23.4 C.
The two NTC channels sit on their own NTEMP connectors, one per channel.High-speed pulse outputPWM Output
3 PWM output points on one 4-pin header, all on the timer resource
PWM0–PWM2 come out on a single 4-pin header — 3 outputs plus a ground. The output swings DC 0 V LOW to DC 5 V HIGH at up to 30 mA per point, and the ladder drives it with the PWM, FPWM, FDPWM, NPWM function blocks.
3 PWM points
One 4-pin header · 3 outputs + GND
Timer resource, shared
WIDTH and frequency change across all 3 points together
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
* One 4-pin header, silkscreened PWM0, 1, 2, GND. The fourth pin is the ground the pulse output is referenced to.
Before you wire it
- PWM0, PWM1, PWM2 must all carry the same WIDTH — changing one changes all 3.
- Their frequency has to match too, for the same reason.
- FPWM, FDPWM, NPWM set the timer resource's WIDTH themselves to hit the frequency you ask for, so mixing them with the PWM block is not recommended.
- Used at the same time, FPWM / FDPWM / NPWM must share one FREQ. Used one after another, they may differ.
- 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.
Pulse function blocks
| Function block | What it does | Parameters |
|---|---|---|
| PWM | Pulse by duty and width | PORT 0–2 / DUTY 0–65535 / WIDTH 0–65535 |
| FPWM | Pulse by frequency (50% duty) | PORT 0–2 / FREQ 0–1 MHz |
| FDPWM | Pulse by frequency and duty ratio | PORT 0–2 / FREQ 0–1 MHz / DUTY % |
| NPWM | Emit a set number of pulses | PORT 0–2 / FREQ 0–60 kHz / N 0–2,147,483,647 |
| POFF | Stop the pulse output | PORT |
The output is LOW DC 0 V / HIGH DC 5 V at up to 30 mA per point. All 3 points share the timer resource, so their WIDTH and frequency have to match. Whether a port is currently emitting is readable from the special memory @PWM0–@PWM2.
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 FDPWM
0003 --| |-----------------------[ PORT:2 | FREQ:2000 | DUTY:70 ]--
P0 NPWM
0004 --| |-----------------------[ PORT:2 | FREQ:3000 | N:100 ]--
@PWM2 P32
0005 --| |---------------------------------( )--
PWM sets the pulse directly; FPWM emits a 50% duty at the frequency asked for,
FDPWM adds a duty ratio, and NPWM emits a fixed number of pulses. @PWM2 is on
while port 2 is emitting. PWM0, PWM1 and PWM2 must all carry the same WIDTH and
the same frequency — changing one changes all three.High-speed counter · encoderCounter · Encoder
2 channels, up to 50kHz, counting pulses or tracking an encoder
Two channels count fast pulses or follow a quadrature encoder without the ladder scan having to keep up. Channel 0 is the FND/ENCO connector and channel 1 the I2C one; the ladder reads either with the HCNT and ENCODER function blocks.
2 counter channels
Channel 0 on FND/ENCO, channel 1 on I2C
Encoder A and B phases
B lagging A on A's rising edge counts up; leading counts down
Per-channel built-in resistor
channel 0 10 kΩ pull-up · channel 1 4.7 kΩ pull-up
50kHz · DC 0–5 V
Up to 50kHz at an operating input of DC 0–5 V
What the two channels are for
* The built-in resistor differs per channel — channel 0 10 kΩ pull-up · channel 1 4.7 kΩ pull-up. Channel 0 recognises HIGH at DC 3 V or above.
Counter and encoder connectors
* Channel 0 comes out on the FND/ENCO connector and channel 1 on the I2C one. The A and B marks under the signal poles are the encoder phases those poles carry.
Before you wire it
- Using channel 1 takes the SDA and SCL lines, so I²C communication cannot be used at the same time — they are physically the same pair.
- Channel 0's CLK and DIO are the same two poles a 7-segment (FND) display is wired to, on the same FND/ENCO connector.
- The operating input range on both channels is DC 0–5 V.
- These channels are not isolated. Isolated field signals belong on the digital inputs.
Channels and function blocks
| Channel | Connector | Built-in resistor · HIGH |
|---|---|---|
| Channel 0 | FND/ENCO | 10 kΩ pull-up · DC 3 V or above |
| Channel 1 | I2C | 4.7 kΩ pull-up · GND (LOW) |
| HCNT / HRST | Block | Read the counter · reset it |
| ENCODER / ENMOV | Block | Read the encoder · preset it |
| Both channels | Input rating | 50kHz · DC 0–5 V |
Channel 0 is CLK(A) and DIO(B); channel 1 is SDA(A) and SCL(B). The plain counter runs on CLK and SDA respectively, while the encoder uses both poles of whichever channel it is on. Both take up to 50kHz at an operating input of DC 0–5 V. Direction is decided on the A phase's rising edge: a B phase that lags counts up, one that leads counts down.
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-485
One serial channel and one I²C channel, on the bottom row and the left edge
This board brings out RS-485 — it is channel 1 in MP STUDIO's communication-port settings. It speaks Modbus RTU and LS Cnet (XBC/LINK) as a slave. I²C is a separate master-mode channel with its pull-ups already fitted.
One serial channel
RS-485 = channel 1
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
RS-485 link
* 485+ and 485- and GND are poles of the left end of the bottom terminal row and a 4-pin connector on the left edge. It is channel 1 in MP STUDIO's communication-port settings, and one pair carries every node on the bus.
Communication terminals
* Both channels are on the left end of the bottom terminal row and a 4-pin connector on the left edge. I²C reads SCL · SDA · +5V · GND and carries 4.7kΩ pull-ups, so an I²C device connects with no external resistors. The manual's function-location drawing labels the group Serial1.
Communication channels
| Channel | Terminals | What it supports |
|---|---|---|
| I²C · 1 channel | SCL · SDA · +5V · GND | Master only · 1:N · 4.7kΩ |
| RS-485 · channel 1 | 485+ · 485- · GND | Modbus RTU / LS Cnet slave |
| Cubloc Modbus RTU | RS-485 | Slave · Comfile HMI |
The serial channel is addressed by NUMBER in MP STUDIO: RS-485 is channel 1. 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. The rate of channel 1 can also be picked on the board: P16 on = 9600, P17 on = 115200, read by a rung that passes it to the SERRATE function block.
Before you wire it
- Using the encoder — or the high-speed counter — takes the SCL and SDA 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.
Example ladder — serial send and receive
P16 SERRATE
0000 --| |-----------------------[ CHANNEL:1 | RATE:9600 ]--
P17 SERRATE
0001 --| |-----------------------[ CHANNEL:1 | RATE:115200 ]--
P16 and P17 are the two select switches on the board. Reading them into SERRATE
lets the RS-485 baud rate be changed in the field without downloading again.
RS-485 is channel 1 in MP STUDIO's communication-port settings.Display connectionLCD · FND
Show values on a character LCD or a 7-segment display — four wires either way
A character LCD goes on the I²C 4-pin connector and a 7-segment (FND) display on the FND/ENCO 4-pin connector. Both connectors bring out 5V and GND beside the two signal lines, so the whole run is four wires, and the I²C pull-ups are already on the board.
Character LCD 1602 · 2004
16 × 2 or 20 × 4 characters over I²C
7-segment (FND)
CLK and DIO on the FND/ENCO connector
4.7 kΩ pull-ups built in
No external resistors to add for I²C
1:N on I²C
Shares the bus with accessories such as the DS3231 RTC
Character LCD on I²C
* The I²C connector is silkscreened I2C and reads SCL · SDA · +5V · GND, with 4.7 kΩ pull-ups already on the board. The 1602 shows 16 characters over 2 lines and the 2004 shows 20 over 4. For a richer display than a character LCD, a touch HMI connects over the serial port instead.
7-segment (FND) on FND/ENCO
* The connector is silkscreened FND/ENCO and reads CLK · DIO · GND · +5V; the A and B marks under CLK and DIO are the encoder phases the same two poles carry. The display comes in a decimal-point form and a time-displaying form.
Before you wire it
- Using the high-speed counter or encoder on channel 1 takes the SDA and SCL lines, so I²C — and with it the character LCD and the RTC — cannot be used at the same time.
- The FND/ENCO connector's CLK and DIO poles are also the high-speed counter and encoder's channel 0 inputs — the 7-segment display and that channel share the same two poles.
- The signal poles on that connector are DC 0–5 V inputs.
- The character LCD, the 7-segment display and the RTC module are accessories sold separately — none is included with the board.
Displays and their connectors
| Display | Connector | Signals |
|---|---|---|
| Character LCD 1602 | I2C 4-pin | 16 × 2 characters |
| Character LCD 2004 | I2C 4-pin | 20 × 4 characters |
| 7-segment (FND) | FND/ENCO 4-pin | Decimal-point and time forms |
| I²C pull-ups | On the board | 4.7 kΩ · master mode, 1:N |
| DS3231 RTC | I2C 4-pin | Real-time clock |
Both connectors carry 5V and GND alongside the two signal lines, so a display needs no supply of its own. I²C runs in master mode, supports 1:N and has its pull-ups fitted on the board, so a character LCD can share the bus with another I²C accessory such as the DS3231 RTC. Character LCDs and 7-segment displays are sold separately.
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.
- USB power is for development and bench testing. Apply the external supply for field installation.
- 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.2 mounting holes in the PCB. The board measures 160.0 × 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.2 mounting holes
160.0 × 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.2 holes) |
|---|---|
| DIN rail | 35 mm |
| PCB alone (no clip) | 160.0 × 100.0 mm |
| Mounting holes | Ø3.2 mm · 143.2 × 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.2 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-16A16R have?▾
The MPS-16A16R provides 16 isolated digital inputs and 16 relay outputs, with onboard RS-485, I²C communication. See the specification table for the full breakdown.
Does the MPS-16A16R support Modbus RTU?▾
Yes. The MPS-16A16R supports Modbus RTU — master and slave alike — over its serial interface.



