innon Core IO CR-IO-16DI 16 Point Modbus Input or Output Module User Manual
- June 4, 2024
- innon
Table of Contents
Core IO – CR-IO-16DI
User Manual
16 Point Modbus I/O Module, 16 DI
INTRODUCTION
Overview
In many installations, having cost-effective, robust, and simple hardware
becomes a key factor in winning a project. The Core lineup provides the
perfect solution to meet these criteria. In has partnered with Atimus, a
company with a wealth of experience in the field, and is proud to present Core
IO!
The 16DI provides 16 digital inputs. As well as monitoring volt-free contacts,
the device also allows the use of pulse counters.
BEMS communication is based on the robust and well-proven Modbus RTU over
RS485 or Modbus TCP (IP model only).
The configuration of the device can be achieved through the network using
either the web interface (IP version only) or Modbus configuration registers,
or by using an Android device and connecting over Bluetooth using the
dedicated app.
This Core IO model
Both the CR-IO-16DI-RS and the CR-IO-16DI-IP modules come with 8 digital
inputs.
The CR-IO-16DI-RS only comes with the RS485 port, while the CR-IO-16DI-IP
comes with both RS485 and IP ports.
Both models also come with Bluetooth on board, so configuration can be
achieved using an Android device and the dedicated app.
The IP CR-IO-16DI-IP model also integrates a web server configuration
interface, accessible via a PC web browser.
HARDWARE
Overview
Wiring Power Supply
Wiring Digital Inputs (DI)
Wiring the RS485 network
Some useful links to our knowledge base website:
How to wire an RS485 network
https://know.innon.com/howtowire-non-optoisolated
How to terminate and bias an RS485 network
https://know.innon.com/bias-termination-rs485-network
Please note – both IP and RS versions can use the RS485 port to respond to
serial Modbus master comms from the BEMS, but neither version can use the
RS485 port to act as a Modbus master or gateway.
Front LED Panel
The LEDs in the front panel can be used to get direct feedback on the status
of the I/Os of Core IO and more general information.
Below are some tables that will help decode each LED behavior.
DI 1 to 16
Digital Input Mode | Conditions | LED Status |
---|---|---|
Direct | Open circuit | |
Short circuit | LED OFF |
LED ON
Reverse| Open circuit
Short circuit| LED ON
LED OFF
Pulse input| Receiving a pulse| LED blinks ON for every pulse
BUS and RUN
LED | Conditions | LED Status |
---|---|---|
RUN | Core IO not powered | |
Core IO correctly powered | LED OFF |
LED ON
BUS| Data being received
Data being transmitted
Bus polarity problem| LED blinks Red
LED blinks Blue
LED ON Red
CONFIGURE I/O
Digital Inputs
Digital Inputs can have a clean/volt-free contact connected to Core IO to read
its open/closed status.
Each digital input can be configured to be either:
- Digital Input direct
- Digital Input reverse
- Pulse input
While the “direct” and “reverse” mode would basically return the status “False (0)” or “True (1)” when the contact is either open or closed, the third mode “pulse input” is used to return a counter value increasing by 1 unit every time the digital input closes; please read the section below for more details regarding pulse counting.
Pulse Counting
Digital Inputs and Universal Outputs can be configured specifically to work as
pulse counting inputs.
The counting maximum readable frequency is 100Hz, with a duty cycle of 50%,
and the maximum “contact closed” readable resistance is 50ohm.
When an input is configured to count pulses, a number of Modbus Registers are
available with information and commands specifically for the pulse counting
function.
The pulse input will, in fact, count 2 totalizers as follows –
- The first one is continuous; it will increase by one unit for every pulse received and will keep counting until a reset command is sent over Modbus
- The other totalizer is timed. Basically, it will also increase by one unit for every pulse received but will count only for a specified (adjustable) time (in minutes). When the time expires, Each pulse counting input has the following Modbus registers associated with it –
- counter (totalizer): this is the main totalizer. It will go back to “0” only if a reset command is sent, or if Core IO is power cycled – you can also write to this value to restore a previous count if replacing a module or to reset to 0
- counter (timer): this is the second totalizer, the timed one. It will go back to “0” every time the timer reaches the maximum set value (with a delay of 1 minute), or if Core IO is power cycled. If the counter reset is activated, the counts within the timed cycle will be ignored and the counter timer reset to 0. The reset will not reset this count to 0 after it has finished a timed cycle and is displaying the result for 1 minute
- counter timer: this data point returns the current time of the counter, in minutes. It will of course go back to “0” when it reaches the maximum set value
- counter timer set: using this data point you can configure the duration of the timer for the second totalizer (max set value), in minutes. This value is stored within the Core IO memory
- counter reset: using this data point you can reset the totalizer counter to value “0” and the timed counter will discard counts up to that point in the timed cycle and reset its timer to 0. Core IO will self-reset this data point to value “0” once the command has been executed
CONFIGURING THE DEVICE
FIXED SETTINGS
The RS485 Modbus Slave communication has some settings that are fixed as
follows –
- 8-bit data length
- 1 stop bit
- Parity NONE
DIP SWITCH SETTING
The DIP switches are used to configure the other RS485 settings and the Modbus
slave address thus –
- RS485 End-Of-Line (EOL) resistor
- RS485 Bias resistors
- Modbus Slave Address
- RS485 Baud-Rate
The bank of two EOL (End-Of-Line) blue DIP switches is configured as follows –
Please check our dedicated knowledge base article available at the website http://know.innon.com where we explain in detail the use of the termination and bias resistors on RS485 networks.
The Modbus ID and baud rate DIP switches are configured as follows –
Slave address DIP switch settings continued.
Bluetooth and Android App
Core IO has built-in Bluetooth which allows the Core Settings app running on
an Android device to configure the IP settings and I/O.
Please download the app from Google Play – search for “core settings”
Download and install the app, then check/make the following settings changes –
- Open your phone settings (drag down from the top, press the “cog” icon)
- Click on “Apps”
- Select the “Core Settings” app
- Press “Permissions”
- Press “Camera” – set it to “Allow only while using the app”
- Go back then press “Nearby devices” – set it to “Allow”
When you run the app, the camera will switch on, and you will need to use it to read the QR code on the module, you wish to set up, i.e. –
The Android device will ask you to allow the Bluetooth devices to pair on the first connection, watch out for the notifications on your device and accept them.
Once connected, you will land on the I/O setup screen, where you can set up the I/O and read input and output current values –
Use the drop-down arrows in the “I/O Mode” column to select the type of input
type by clicking on the respective radio button –
Once you make a change or number of changes, the “UPDATE” button on the bottom
right will go from greyed-out to white; press this to commit your changes.
Click on the “ETHERNET” button (bottom left) to set up the required IP
settings.
Set and commit data as per the I/O method above.
Click on the “MODE” button (bottom left) to get back to the I/O settings.
Ethernet Port and Web Server Configuration (IP version only)
For the IP models of Core IO, a standard RJ45 socket is available to be used
for:
- Modbus TCP (slave) communication
- Web server access to configure the device
The IP models still provide access to the RS485 port for Modbus RTU (slave)
communication on these models, so the user can decide which one to use to
connect the BEMS to Core IO.
The default settings of the IP port are:
IP address: | 192.168.1.175 |
---|---|
Subnet: | 255.255.255.0 |
Gateway address: | 192.168.1.1 |
Modbus TCP port: | 502 (fixed) |
HTTP port (webserver): | 80 (fixed) |
Web server user: | animus (fixed) |
Web server password: | HD1881 (fixed) |
IP address, subnet, and gateway address can be changed from the Bluetooth
Android app or from the web server interface.
The web server interface looks and works in much the same way as the Core
Settings app described in the previous section.
BEMS POINT LISTS
Modbus Register Types
Unless otherwise stated in the tables, all I/O point values/statuses and
settings are held as Holding Register Modbus data type and use a single
register (16 bit) to represent an Integer (Int, range 0 – 65535) type of data.
Pulse count registers are 32-bit long, unsigned registers, i.e. two
consecutive 16-bit registers combined, and their byte order is sent in little
endian, i.e. –
- Niagara/Sedona Modbus driver – 1032
- Teltonika RTU xxx – 3412 – also use 2 x “Register count/values” to obtain all 32 bits
For some Modbus master devices, the decimal and hex register addresses in the
table will need to be incremented by 1 to read the correct register (e.g.
Teltonika RTU xxx)
Bit-field data type uses individual bits from the 16 bits available on the
Modbus register to provide multiple Boolean information by reading or writing
a single register.
Modbus Register Tables
General Points
Decimal| Hex| Name| Details| Stored| Type|
Range
---|---|---|---|---|---|---
3002| BBA| Firmware version – units| Most significant numbers for firmware
version e.g. 2.xx| YES| R| 0-9
3003| BBB| Firmware version – tenths| 2nd Most significant number for firmware
version e.g. x.0x| YES| R| 0-9
3004| BBC| Firmware version – hundredths| 3rd Most significant number for
firmware
version e.g. x.x4| YES| R| 0-9
Digital Input Points
Decimal| Hex| Name| Details| Stored| Type|
Range
---|---|---|---|---|---|---
40| 28| DI 1 mode| Digital Input mode select:
0 = Digital Input direct
1 = Digital Input reverse
2 = Pulse input| YES| R/W| 0…2
41| 29| DI 2 mode
42| 2A| DI 3 mode
43| 2B| DI 4 mode
44| 2C| DI 5 mode
45| 2D| DI 6 mode
46| 2E| DI 7 mode
47| 2F| DI 8 mode
48| 30| DI 9 mode
49| 31| DI 10 mode
50| 32| DI 11 mode
51| 33| DI 12 mode
52| 34| DI 13 mode
53| 35| DI 14 mode
54| 36| DI 15 mode
55| 37| DI 16 mode
1| 1| DI 1| Read Digital Input status (digital input mode):
0 = inactive
1 = active| NO| NO| 0…1
2| 2| DI 2
3| 3| DI 3
4| 4| DI 4
5| 5| DI 5
6| 6| DI 6
7| 7| DI 7
8| 8| DI 8
9| 9| DI 9
10| A| DI 10
11| B| DI 11
12| C| DI 12
13| D| DI 13
14| E| DI 14
15| F| DI 15
16| 10| DI 16
1111| 457| DI 1-16| Read digital input status by bit (only digital input mode,
bit 0 a. DI1)| NO| R| 0…1
---|---|---|---|---|---|---
100| 64| DI 1 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0.431496735
102| 66| D11 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0.4294967295
104| 68| DI 1 counter timer| Running timer in minutes. Will reset once
“counter timer set”
reached and start again| NO| R| 0…14400
105| 69| DI 1 counter timer set| Timer duration configuration in minutes| YES|
GM| 0…14400
106| 6A| DI 1 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
107| 6B| DI 2 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0.429496735
109| 6D| DI 2 counter (timer)| 32-bit long, the counter value for the running
timer (puke input mode)| NO| R| GA294967295
111| 6 F| DI 2 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
112| 70| DI 2 counter timer set| Timer duration configuration in minutes| YES|
GM| 0…14400
113| 71| DI 2 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
114| 72| Dl 3 counter (talker)| 32 bit long, total counter value (totalizer)
(pulse input mode)| NO| R/W| 0..4294967295
116| 74| DI 3 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0..4294967295
118| 76| DI 3 counter timer| Running timer in minutes. Will reset once
“counter timer set”
reached and start again| NO| R| 0…14400
119| 77| DI 3 counter timer set| Timer duration configuration in minutes| YES|
R/W| 0…14400
120| 78| DI 3 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
121| 79| DI 4 counter (totalizer)| 32 bit long, total counter value
(totalizer) (puke input mode)| NO| R/W| 0..4294967295
123| 7B| DI 4 counter (timer)| 32 bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0.A2949672:05
125| 7D| DI 4 counter timer| Running timer in minutes. Will reset once
“counter timer is set”
reached and start again| NO| R| 0…14400
126| 7E| DI 4 counter timer set| Timer duration configuration in minutes| YES|
Ft/W| 0…14400
127| 7 F| DI 4 counter reset| Reset command to all counted values (goes back
to “0”
automatically)| NO| R/W| 0…111
128| 80| DI 5 counter (totalizer)| 32 bit long, total counter value
(totalizer) (puke input mode)| NO| R/W| 0..4294967295
130| 82| DI 5 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0..4294967295
132| 84| Discounter timer| Running timer in minutes. Will reset once
“counter timer set”
reached and start again| NO| R| 0..14400
133| 85| DI 5 counter timer set| Timer duration configuration in minutes| YES|
R/W| 0…14400
134| 86| Dl 5 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
135| 87| Dl 6 counter (totalizer)| 32 bit long, total counter value
(totalizer) (puke input mode)| NO| R/W| 0..4294967295
137| 89| DI 6 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
---|---|---|---|---|---|---
139| 8B| DI 6 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
140| 8C| DI 6 counter timer set| Timer duration configuration in minutes| YES|
R/W| 0…14400
141| SD| DI 6 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
142| 8E| DI 7 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
144| 90| DI 7 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input
mode)| NO| R| 0…4294967295
146| 92| DI 7 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
147| 93| DI 7 counter timer set| Timer duration configuration in minutes| YES|
R/W| 0…14400
148| 94| DI 7 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
149| 95| DI 8 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
151| 97| DI 8 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
153| 99| DI 8 counter timer| Running timer in minutes. Will reset once
‘counter timer set”
reached and start again| NO| R| 0…14400
154| 9A| DI 8 counter timer set| Timer duration configuration in minutes| YES|
R/W| 0…14400
155| 9B| DI 8 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
156| 9C| DI 9 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
158| 9E| DI 9 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
160| AO| DI 9 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
161| Al| DI 9 counter timer set| Timer duration configuration in minutes| YES|
R/W| 0…14400
162| A2| DI 9 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
163| A3| DI 10 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
165| AS| DI 10 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
167| A7| DI 10 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
168| A8| DI 10 counter timer set| Timer duration configuration in minutes|
YES| R/W| 0…14400
169| A9| DI 10 counter reset| Reset command to all counted values (goes back
to “0”
automatically)| NO| R/W| 0…1
170| AA| DI 11 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
172| AC| DI 11 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
174| AE| DI 11 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
---|---|---|---|---|---|---
175| AF| 0111 counter timer set| Timer duration configuration in minutes| YES|
R/W| 0…14400
176| BO| DI 11 counter reset| Timer duration configuration in minutes| NO|
R/W| 0…1
177| B1| DI 12 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
179| 83| DI 12 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
181| 95| DI 12 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
182| B6| DI 12 counter timer set| Timer duration configuration in minutes|
YES| R/W| 0…14400
183| B7| DI 12 counter reset| Reset command to all counted values (goes back
to “0”
automatically)| NO| R/W| 0…1
184| B8| DI 13 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
186| BA| DI 13 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
188| BC| DI 13 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
189| BD| DI 13 counter timer set| Timer duration configuration in minutes|
YES| R/W| 0…14400
190| BE| DI 13 counter reset| Reset command to all counted values (goes back
to “0”
automatically)| NO| R/W| 0…1
191| BF| DI 14 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
193| C1| DI 14 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
195| C3| DI 14 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
196| C4| DI 14 counter timer set| Timer duration configuration in minutes|
YES| R/W| 0…14400
197| CS| DI 14 counter reset| Reset command to all counted values (goes back
to “O”
automatically)| NO| R/W| 0…1
198| C6| DI 15 counter (totalizer)| 32-bit long, total counter value
(totalizer) (pulse Input mode)| NO| R/W| 0…4294967295
200| C8| DI 15 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
202| CA| DI 15 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| R| 0…14400
203| CB| DI 15 counter timer set| Timer duration configuration in minutes|
YES| R/W| 0…14400
204| CC| DI 15 counter reset| Reset command to all counted values (goes back
to “0”
automatically)| NO| R/W| 0…1
205| CD| DI 16 counter (totalizer)| 32 bit long, total counter value
(totalizer) (pulse input mode)| NO| R/W| 0…4294967295
207| CF| 01 16 counter (timer)| 32-bit long, the counter value for the running
timer (pulse input mode)| NO| R| 0…4294967295
209| 1| DI 16 counter timer| Running timer in minutes. Will reset once
“counter timer is set” reached and start again| NO| ft| 0…14400
210| 2| DI 16 counter timer set| Timer duration configuration in minutes| YES|
R/W| 0…14400
211| 3| DI 16 counter reset| Reset command to all counted values (goes back to
“0”
automatically)| NO| R/W| 0…1
TECHNICAL DATA
Drawings
Specifications
Power supply | 24 Vac +10%/-15% 50 Hz, 24 Vdc +10%/-15% |
---|
Current draw — 70mA min, 80mA max
Digital Inputs| 16 x Digital Inputs (volt free)
DI direct, DI reverse, PULSE (up to 100 Hz, 50% duty cycle, max 50-ohm
contact)
Interface to BEMS| RS485, optoisolated, max 63 devices supported on the
network
Ethernet/IP (IP version)
Protocol to BEMS| Modbus RTU, baud rate 9600 – 230400, 8 bit, no parity, 1
stop bit
Modbus TCP (IP version)
Ingress Protection Rating| IP20, EN 61326-1
Temperature and
humidity| Operating: 0°C to +50°C (32°F to 122°F), max 95% RH (without
condensation)
Storage: -25°C to +75°C (-13°F to 167°F), max 95% RH (without condensation)
Connectors| Plug-in Terminals 1 x 2.5 mm2
Mounting| Panel mounted (2x onboard sliding screw holders on the back) / DIN
rail mounting
Guidelines for Disposal
- The appliance (or the product) must be disposed of separately in accordance with the local waste disposal legislation in force.
- Do not dispose of the product as municipal waste; it must be disposed of through specialist waste disposal centers.
- Improper use or incorrect disposal of the product may negatively affect human health and the environment.
- In the event of illegal electrical and electronic waste disposal, the penalties are specified by local waste disposal legislation.
1.0 4/10/2021
Get help at http://innon.com/support
Learn more at http://know.innon.com
References
- Innon Knowledge Base
- Why and how do I use Bias resistors and Termination resistors on an RS485 network?
- How do I wire RS485 devices?
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>