ezeio2:ioexpander

This is an old revision of the document!


This device is designed by eze System to provide additional input and output capacity to the MkII ezeio. Each I/O Expander adds 8 discrete inputs, 8 digital outputs and 2 analog outputs. Multiple I/O Expanders can be connected to one ezeio MkII controller. Two communication options allow the MkII I/O Expanders to dock to the ezeio utilizing eze-CAN or connect via Modbus RTU. Docking to the ezeio's EXP port (eze-CAN) allows the expanders I/O's to function as if they were onboard resources of the ezeio, including the use of ezeio drivers (discrete input, pulse input, thermistor, and digital output) for configuration. Utilizing the Modbus RTU port allows the I/O Expander/s to be located remotely (up to 1000 meter serial bus length). For this option a dedicated driver is used similar to those designed for 3rd party devices.

Part number Model System connectivity
EM2088 ezeio I/O Expander eze CAN / Modbus RTU

Local connectivity includes;

Quantity Description Comment
Discrete inputs 8 Individually configurable for 0-10V, 0-30mA, Resistor, Thermistor, Pulse
Discrete outputs 8 2 digital (voltage output) Outputs supply voltage
Analog outputs 2 0-10VDC (voltage output) Recommend greater than 12V supply to insure full 0-10 range
Modbus/RTU 1 Serial (RS485) port supporting the Modbus/RTU protocol Only operates as slave device
EXP port 2 eze CAN Expansion ports for docking to ezeio and Expanders Only operates as client of ezeio

Discrete inputs

There are eight (8) discrete inputs on the ezeio. Each input can be individually configured to monitor voltage, current, resistance or pulses. The configuration is done via the web interface at https://eze.io.

More information about connecting to the inputs is available here.

Discrete outputs

There are 10 outputs on the I/O Expander. The function of each output is completely controlled by software.

Output 1 thru 8 are purely on/off. They will output the supply voltage when on, and no voltage when off.

Analog (Output) 1 & 2, output an analog voltage variable between 0 and 10V. The software controls this in 100mV steps (0-100%).

More information about connecting to the outputs is available here.

As described above, the I/O Expander provides the ezeio with additional input and output capacity. The two options for communicating with the ezeio require different installation and set-up processes. There are also performance difference between the two modes of operation. Below are complete instructions and operation details for connecting via the eze CAN EXP port followed by those for connection via Modbus RTU.

Features & Benefits

  • Dock side by side on DIN rail using 6 pin header
  • Dock up to 7 I/O Expanders to one ezeio MkII
  • Inputs are sampled at the same rate as native inputs on the ezeio MkII controller

Physical installation
  • Disconnect power from the ezeio
  • Install the 6 pin header into the EXP port on the left side of the I/O Expander. Take care to properly align the pins, as the DC supply voltage can damage the CAN buffer if connected to com pins.
  • With both devices released from the DIN rail, align the 6 pin header with the ezeio's EXP and press the devices together.
  • Hang connected devices on the top rail of the DIN rail. Then press on the bottom/center of the label on each device to snap onto the DIN rail.

Changing device ID/address

Default address is 1, unless otherwise noted

  • Connect or power cycle the ezeio
  • In the first 30 seconds of start-up, press the button (at the top of the I/O Expander) 3 times
  • The I/O Expander's LEDs will begin to roll red and green. Enter the desired address by clicking the button (5 clicks = address 5)
  • The I/O Expender's LEDs will confirm the entry by flashing the address number (5 flashes = address 5)

Adding Inputs and Outputs to eze.io configuration

Use any of the drivers listed below to add inputs and outputs to the ezeio controllers configuration

  • eze Expander I/O driver (legacy) Allows basic configuring of all 8 discrete input in one driver

In this communication mode the I/O Expander functions like a 3rd party device. Since Modbus RTU is an open protocol, it could be sold separately and use with almost any Modbus master.

One of the effects of using this communication mode is a slower register update rate. Modbus RTU operates at a much slower speed than CANbus/eze-CAN. Update rates will vary based on the number of devices and registers polled. Update rate could range from several times per second to a slow as once per minute, with high traffic and/or comm issues.

More information about Modbus/RTU is available here.

Features & Benefits

  • Distribute I/O Expanders along serial bus (up to 1000 meter for wired bus)
  • Connect up to 40 I/O Expanders to one ezeio MkII (total of all devices per ezeio = 40)
  • Power over bus wire or from local power supply

Physical installation
  • 4 wire (3 if powered locally) serial bus (daisy chain) wiring. Twisted pair data cable is recommended (such as Cat3, 5 or 6).
  • Connect D0, D1, Ground and +V (if powered over bus) from green terminal on ezeio controller to green terminal (top) of I/O Expander.
  • It may be necessary to provide power directly to the I/O Expander based on several factors; distance from ezeio, wire gauge, current draw and supply voltage.

Changing device ID/address

Default address is 1, unless otherwise noted

  • Connect or power cycle the ezeio
  • In the first 30 seconds of start-up, press the button (at the top of the I/O Expander) 3 times
  • The I/O Expander's LEDs will begin to roll red and green. Enter the desired address by clicking the button (5 clicks = address 5)
  • The I/O Expender's LEDs will confirm the entry by flashing the address number (5 flashes = address 5)

Changing data bit rate (baud rate)

Default address is 19,200, unless otherwise noted

  • Connect or power cycle the ezeio
  • In the first 30 seconds of start-up, press the button (at the top of the I/O Expander) 4 times
  • The I/O Expander's LEDs will begin to roll red and green. Enter the desired baud rate by clicking the button the corresponding number of times (3 clicks = 9,600)
  • The I/O Expander's Modbus LED will flash green when ever it receives a correctly formatted and addressed message.

Register Value = Baud rate

  1. = 2,400
  2. = 4,800
  3. = 9,600
  4. = 19,200
  5. = 38,400
  6. = 57,600
  7. = 115,200

Modbus/RTU slave registers

Read-only input (command 0x03) registers:

Register Address Type Description
30001 0 UINT_16 Input 1 raw value (mV, uA or Ohm)
30002 1 UINT_16 Input 2 raw value (mV, uA or Ohm)
30003 2 UINT_16 Input 3 raw value (mV, uA or Ohm)
30004 3 UINT_16 Input 4 raw value (mV, uA or Ohm)
30005 4 UINT_16 Input 5 raw value (mV, uA or Ohm)
30006 5 UINT_16 Input 6 raw value (mV, uA or Ohm)
30007 6 UINT_16 Input 7 raw value (mV, uA or Ohm)
30008 7 UINT_16 Input 8 raw value (mV, uA or Ohm)
30009 8 UINT_16 Supply Voltage (mV)
30010 9 UINT_16 5V output (mV)
30011 10 UINT_32 Input 1 raw value (mV, uA or Ohm)
30013 12 UINT_32 Input 2 raw value (mV, uA or Ohm)
30015 14 UINT_32 Input 3 raw value (mV, uA or Ohm)
30017 16 UINT_32 Input 4 raw value (mV, uA or Ohm)
30019 18 UINT_32 Input 5 raw value (mV, uA or Ohm)
30021 20 UINT_32 Input 6 raw value (mV, uA or Ohm)
30023 22 UINT_32 Input 7 raw value (mV, uA or Ohm)
30025 24 UINT_32 Input 8 raw value (mV, uA or Ohm)
30027 26 UINT_32 Supply Voltage (mV)
30029 28 UINT_32 5V output (mV)
30031 30 UINT_32 Input 1 pulse count
30033 32 UINT_32 Input 2 pulse count
30035 34 UINT_32 Input 3 pulse count
30037 36 UINT_32 Input 4 pulse count
30039 38 UINT_32 Input 5 pulse count
30041 40 UINT_32 Input 6 pulse count
30043 42 UINT_32 Input 7 pulse count
30045 44 UINT_32 Input 8 pulse count
30047 46 UINT_32 not used
30049 48 UINT_32 not used
30051 50 UINT_32 Input 1 pulse interval (ms)
30053 52 UINT_32 Input 2 pulse interval (ms)
30055 54 UINT_32 Input 3 pulse interval (ms)
30057 56 UINT_32 Input 4 pulse interval (ms)
30059 58 UINT_32 Input 5 pulse interval (ms)
30061 60 UINT_32 Input 6 pulse interval (ms)
30063 62 UINT_32 Input 7 pulse interval (ms)
30065 64 UINT_32 Input 8 pulse interval (ms)
30067 66 UINT_32 not used
30069 68 UINT_32 not used
30071 70 UINT_32 Input 1 pulse frequency (Hz*1000)
30073 72 UINT_32 Input 2 pulse frequency (Hz*1000)
30075 74 UINT_32 Input 3 pulse frequency (Hz*1000)
30077 76 UINT_32 Input 4 pulse frequency (Hz*1000)
30079 78 UINT_32 Input 5 pulse frequency (Hz*1000)
30081 80 UINT_32 Input 6 pulse frequency (Hz*1000)
30083 82 UINT_32 Input 7 pulse frequency (Hz*1000)
30085 84 UINT_32 Input 8 pulse frequency (Hz*1000)
30087 86 UINT_32 not used
30089 88 UINT_32 not used
30091 90 UINT_16 Output 1 status (0/100)
30092 91 UINT_16 Output 2 status (0/100)
30093 92 UINT_16 Output 3 status (0/100)
30094 93 UINT_16 Output 4 status (0/100)
30095 94 UINT_16 Output 5 status (0/100)
30096 95 UINT_16 Output 6 status (0/100)
30097 96 UINT_16 Output 7 status (0/100)
30098 97 UINT_16 Output 8 status (0/100)
30099 98 UINT_16 Analog Out 1 status (0-100)
30100 99 UINT_16 Analog Out 2 status (0-100)
30101 100 UINT_32 Uptime (s)
30103 102 UINT_16 constant value 23456
30104 103 UINT_32 constant value 123456789
30106 105 UINT_16 constant value 57872 (=hE21O)
Adding Inputs and Outputs to eze.io configuration

Device driver provides the means to configure input modes, settings and makes registers available.

  • ezeio2/ioexpander.1652386422.txt.gz
  • Last modified: 2022-05-12 20:13
  • by andreh