HORNER R45C-2K-MQ IO-Link Master for ModBus Converter User Guide
- June 16, 2024
- HORNER
Table of Contents
- Device Register Map
- Supported Function Codes
- Modbus Configuration
- Identification Information
- Multi-Port Support
- Port Status
- Process Data Input
- Process Data Output
- ISDU (Index/Subindex) Data
- ISDU Request Register Block
- ISDU Response Register Block
- ISDU Read/Write in Single Register Write
- ISDU Read/Write in Multiple Register Writes
- Port Configuration
- Operating Modes
- Replacing an IO-Link Device During Operation (Backup/Restore Mode)
- IO-Link Events
- O-Link Event Processing
- Data Storage
- Data Storage Content
- Alias Registers
- Read-Only Alias Registers
- Read-Write Alias Registers
- FCC Part 15 Class B
- Technical Support
- References
- Read User Manual Online (PDF format)
- Download This Manual (PDF format)
HORNER R45C-2K-MQ IO-Link Master for ModBus Converter
Device Register Map
The device register map supports the Compact 2-port IO-Link Master for Modbus (R45C-2K-MQ) and the Compact 4-port IO-Link Master for Modbus (R90C-4K-MQ).
Supported Function Codes
Function Code | Name | Max Message Size |
---|---|---|
3 (0x03) | Read Holding Register | 250 bytes |
6 (0x06) | Write Single Register | 2 bytes |
16 (0x10) | Write Multiple Registers | 246 bytes |
23 (0x17) | Read and Write Registers | 246 bytes |
Modbus Configuration
Modbus configuration is used for changing communications settings on converter.
Registers | Parameter | Access | Default |
---|---|---|---|
40601 | **Baud Rate: |
9600 = 0
19200 = 1
38400 = 2| r/w| 19200
40602| Parity:
None = 0
Odd = 1
Even = 2| r/w| None
40603| Address| r/w| 1
40604| Reserved (cannot be read or written)| None| —
40605| Restore Factory Configuration:
** No Operation = 0
Restore Factory
Configuration = 1| w/o| —
Identification Information
Register | Parameter | Access |
---|---|---|
40001 | Vendor ID | r/o |
40002-40003 | Master ID | r/o |
40004 | Master Type (see IO-Link Specification V1.1.3 table 29 for | |
enumeration) | r/o | |
40005 | **Features_1: |
Bit 0: Device Par Batch (SMI_ Param Write Batch)
Bit 1: DeviceParBatch (SMI_ Param Read Batch)
Bit 2:** Port Power Off On (SMI_ Port Power Off On)| r/o
40006| Number of Supported Channels| r/o
40007-40014| Port Type [n] 1 (see Table E.2 – MasterI Dent from IO-Link
Interface Specification V1.1.3 for enumerations)| r/o
40015| Total Max Power Supply (in units of 0.1 A)| r/o
40016-40023| Max Power Supply (in units of 0.1 A)| r/o
40024| Revision| r/o
40025-40040| Vendor Name| r/o
40041-40056| Product Name| r/o
40057-40088| Vendor URL| r/o
40089-40120| Manual URL| r/o
40121-40122| Firmware P/N| r/o
40123| Firmware Version| r/o
40124| Firmware Build Number| r/o
40125-40140| Application Specific Tag| r/w
40141-40156| Function Tag| r/w
40157-40172| Location Tag| r/w
Multi-Port Support
All register maps shown below are specific to port 1. For multi-port adapters, each port is given its own register range within the holding register space.
Registers | Port |
---|---|
41001-41999 | Port 1 |
42001-42999 | Port 2 |
43001-43999 | Port 3 |
44001-44999 | Port 4 |
45001-45999 | Port 5 |
46001-46999 | Port 6 |
47001-47999 | Port 7 |
48001-48999 | Port 8 |
For a given register, the starting address of the port can be applied to determine the register address for the new port. For example, the calculation below demonstrates how to find the address of the process data output for port 8.
Equivalent Port 1 Register| Port| Port Starting Register|
Offset| New Register
---|---|---|---|---
41051| 1| 41001| 50| 41051
41051| 8| 48001| 50| 48051
Port Status
Information regarding the connected device is provided by the following holding registers. When a new device is connected, all data attempts to be read from the device. Unsupported commands read as an empty string.
Register endian swapping is not performed on string values. The byte order of the data payload matches the byte-order from the device. Writing to these registers results in an error..
Registers | Parameter | Access |
---|---|---|
41501 | Port Mode | r/o |
41502 | Port Quality Info **: | |
** Bit0: Process Data In Valid Bit1: Process Data Out Valid | r/o | |
41503 | IO-Link Revision | r/o |
41504 | **Com Mode: |
** COM1 = 0
COM2 = 1
COM3 = 2| r/o
41505| Master Cycle Time| r/o
41506| Process Data Input Size (bytes)| r/o
41507| Process Data Output Size (bytes)| r/o
41508| Vendor ID (for pre 1.1 devices)| r/o
41509-41510| Device ID (for pre 1.1 devices)| r/o
41511| Min Cycle Time| r/o
41512-41543| Vendor Name| r/o
41544-41575| Vendor Text| r/o
41576-41607| Product Name| r/o
41608-41639| Product ID| r/o
41640-41671| Product Text| r/o
41672-41679| Serial Number| r/o
41680-41711| Hardware Revision| r/o
41712-41743| Firmware Revision| r/o
41744-41759| Application Specific Tag| r/o
41760-41775| Function Tag| r/o
41776-41791| Location Tag| r/o
41792-41823| Profile Characteristic| r/o
- Enumerations (from IO-Link Interface Spec V1.1.3, Table E.4):
- 0: NO_DEVICE
- 1: DEACTIVATED
- 2: PORT_DIAG
- 3: PR OPERATE
- 4: OPERATE
- 5: DI_C/Q
- 6: DO_C/Q
Process Data Input
If no device is connected, all registers read as 0. Unused process data bytes
also read as 0.
Data bytes are not register endian swapped. The byte order of the data payload
matches the byte-order from the device.
Writing to these registers results in an error.
Registers | Parameter | Access |
---|---|---|
41001 | **Port Status: |
Bit0 = Connected?
Bit1 = Process Data Valid?
Bit2 = Event Pending?
Bit3 = Ready for ISDU?
Bit4 = Pin4 SIO State
Bit5 = Pin2 SIO State Bit6-7 = Pin4 Mode:
SDCI Mode = 0 SIO Input Mode = 1
SIO Output Mode = 2 Bit8-10 = Pin2 Mode:
** Disabled = 0 Input Normal = 1 Output = 2
Diagnostic Input = 3 Inverted Input = 4| r/o
41002-41017| Data| r/o
Discrete modes can be added as input process data so that a reset of the master can be detected when discrete output mode is being used. After reset, the master returns to SDCI Mode on Pin4 and Disabled on in2.
Process Data Output
Data bytes are not register endian swapped. The byte order of the data payload matches the byte-order written to the device. A read of this parameter returns the most recent process data output written to the adapter.
The process data out behaviour if a sensor is disconnected and reconnected is undefined.
Registers | Parameter | Access |
---|---|---|
41051 | Bit0 = Is Valid, 3 |
Bit1 = Pin4 Output State 3
Bit2 = Pin2 Output State| r/w
41052-41067| Data| r/w
ISDU (Index/Subindex) Data
ISDU data operations are based on a request/response model. First the request is written to the adapter, and then the response is read. The request is non- blocking, so the status register of the response must be polled to determine when the request has been completed.
Any write to any of the request registers triggers the request. If the write is to be broken up into multiple write operations, a NOP opcode should first be written to prevent the request from being handled until all data has been written to the adaptor.
The result register contains an indication of whether the requested operation succeeded or failed. In the case of a failure, the error code returned by the device is not available.
Data bytes are not register endian swapped. The byte order of the data payload matches the byte-order read from/written to the device.
ISDU Request Register Block
For a write, the data length must match the required data length being written to the device. For a read, the length is a don’t care; that is, the returned length of the read is not checked by the adapter.
For a write, the data contains the data to be written to the sensor. For a read, the data is a don’t care.
Registers | Parameter | Access |
---|---|---|
41301 | **Operation: |
** NOP = 0
Read = 1
Write = 2| r/w
41302| Index| r/w
41303| Subindex (max = 255)| r/w
41304| Data Length (max = 238)| r/w
41305-41423| Data| r/w
ISDU Response Register Block
The Operation, Index, and Sub Index match the value from the most recent request.
For a write, the length matches the length of data written. For a read, the length contains the number of bytes returned from the device. For a write, the data contains the data written to the device. For a read, the data contains the data read from the device.
**2**
If pins are not configured in SIO output mode, writes are ignored and
reads are returned as 0.
If a failure has occurred (Status == Failure), then the Data Length is set to 2. Data[0] contains the Error Code while Data[1] contains the Additional Code. An Error Code of 0 represents an internal error within the master module, while other Error Codes are defined in Annex C of the IO-Link Interface Specification.
Registers | Parameter | Access |
---|---|---|
41101 | Operation (see Request for opcodes) | r/o |
41102 | **Status: |
** NOP = 0
In Progress = 1 Success = 2
Failure = 3| r/o
41103| Index| r/o
41104| Subindex (max = 255)| r/o
41105| Data Length (max = 238)| r/o
41106-41224| Data| r/o
ISDU Read/Write in Single Register Write
The flowchart documents how to perform an ISDU read/write operation using a
single Write Multiple Registers Modbus command of the ISDU Request
register block.
The request is dispatched to the connected device after the request is written. For a read operation, at the end of the sequence, the response data contains the data returned from the device.
ISDU Read/Write in Multiple Register Writes
The flowchart documents how to perform an ISDU read/write operation using
multiple Write Multiple Registers or Write Single Register Modbus commands
of the ISDU Request register block.
The request is not dispatched to the connected device until the opcode is written to read/write. For a read operation, at the end of the sequence, the response data contains the data returned from the device.
Port Configuration
Registers | Parameter | Access |
---|---|---|
41851 | Port Mode **4** |
r/w |
41852 | Validation Backup 5 |
r/w |
41853 | I/Q behaviour **6** |
r/w |
41854 | Port Cycle Time (reserved): 0 = As Fast As Possible | r/w |
41855 | Vendor ID | r/w |
41856-41857 | Device ID | r/w |
41858 | Pin4 Extra Configuration |
Bit0-1: Output Type:
Push-Pull = 0
PNP = 1
NPN = 2
Bit2: 7 8
Normal Input = 0 Diagnostic Input = 1
Bit3: 7
Non-inverted Input = 0 Inverted Input = 1
Bit4: 9
Input Type 1 = 0|
Input Type 2 = 1
| r/w
---|---|---
41859| Pin2 Extra Configuration:
Normal = 0 Diagnostic Input = 1 Inverted Input =
| r/w
If Port Mode is set to IOL_AUTOSTART (default), the master ignores the Vendor ID and Device ID of the connected device.
If Port Mode is set to IOL_MANUAL, the master will attempt to write the Device ID into the device at connection. If the Vendor ID and Device ID are not supported by the device, the master will not connect.
This value is non-volatile and is stored to EEPROM and persisted across adapter power cycles. After a write to any register in this block, the port is reset to apply the new configuration settings.
Operating Modes
The operating mode can be configured for any port on the IO-Link master. The following modes can be used:
Deactivated
Use deactivated mode for any unused IO-link master ports if a device is not
connected.
IO-Link Manual
The IO-Link master only connects IO-Link devices that have a certain vendor ID
and device ID (1: IOL_MANUAL).
IO-Link Auto Start
The IO-Link master connects to every connected IO-Link device (2:
IOL_AUTOSTART).
Digital Input
The IO-Link port functions as a standard digital input (3: DI_C/Q).
Digital Output
The IO-Link port functions as a standard digital output (4: DO_C/Q).
Figure 1. Operating modes
3
Enumerations (from IO-Link Interface Spec V1.1.3, Table E.3):
- 0: DEACTIVATED (SM: INACTIVE – Port is deactivated; input and output Process Data are 0; Master shall not perform activities at this port)
- 1: IOL_MANUAL (SM: CFGCOM – Target Mode based on user defined configuration including validation of RID, VID, DID)
- 2: IOL_ AUTOSTART (SM: AUTOCOM – Target Mode w/o configuration and w/o validation of VID/DID; RID gets highest revision the Master is supporting; Validations: NO_CHECK)
- 3: DI_C/Q (Pin 4 at M12) (SM: DI – Port in input mode SIO)
- 4: DO_C/Q (Pin 4 at M12) (SM: DO – Port in output mode SIO)
4
Enumerations (from IO-Link Interface Spec V1.1.3, Table E.3):
- 0: No Device check
- 1: Type compatible Device V1.0
- 2: Type compatible Device V1.1
- 3: Type compatible Device V1.1, Backup + Restore
- 4: Type compatible Device V1.1, Restore
**5**
Enumerations (from IO-Link Interface Spec V1.1.3, Table E.3):
- 0: Not supported
- 1: Digital Input
- 2: Digital Output
6
Don’t care if not in SIO Input mode
7
If configured as a diagnostic input, then the LED turns red when the
input is in the inactive state. This can be used to indicate a failure of the
connected device.
**8**
Type 1 supports IEC 61131-2 Type 1 input voltage levels. Type 2
supports IEC 61131-2 Type 2 and Type 3 input voltage levels.
Replacing an IO-Link Device During Operation (Backup/Restore Mode)
Replacing an IO-Link device during operation is common, and inadvertent changes to device settings can cause operational problems and downtimes. Operating personnel without special knowledge or tools can replace IO-Link devices quickly and without errors.
When the backup function of the IO-Link master is used, the IO-Link master automatically provides the saved parameters to the new device after replacement. This makes IO-Link device replacement seamless in IO-Link applications. Another common industry term for this function is data storage mode.
-
Backup+ Restore Mode
If a port on the IO-Link master is set to Backup+ Restore, then the new device added to the IO-Link port takes in the same device configuration as the device that was just replaced, as the IO-Link master had stored the last configuration change by a backup (3: Type compatible Device V1.1, Backup + Restore). -
Restore
If the port on the IO-Link master port is set to Restore, then the new device takes in the configuration according to the settings saved in the master at the time of the last backup. Because possible configuration changes were not saved in the master, a different behaviour from the previous one before the replacement may occur (4: Type compatible Device V1.1, Restore).
IO-Link Events
If an event is pending, the Event Pending flag is set in the process data input register block. If a user is not concerned with IO-Link events, they can ignore the state of this flag.
Events are read via the Event status register block:
Registers | Parameter | Access |
---|---|---|
41901 | Count (max = 10) | r/o |
41902 | **Mode[0]: |
None = 0
Single Shot = 1
Disappears = 2
Appears = 3| r/o
41903| Type[0]:
** None = 0
Notification = 1
Warning = 2
Error = 3| r/o
41904| Code[0]| r/o
41905| Mode[1] 10| r/o
41906| Type[1] 10| r/o
41907| Code[1] 10| r/o
Events are stored in a FIFO buffer, where Mode[0] is the oldest event in the queue. If a new event is received when the queue is full, the oldest event in the queue is shifted out.
After an event has been read, it can be cleared by writing its event code to the Clear Event Register:
Registers | Parameter | Access |
---|---|---|
41951 | Event Code | w/o |
O-Link Event Processing
Data Storage
The data storage configuration is set as part of the Port Configuration object. The operations can also be triggered manually using the Data Storage Command register:
Registers | Parameter | Access |
---|---|---|
41981 | **Data Storage Command: |
** NOP = 0
Upload = 1
Download = 2
Clear = 3| w/o
The command is executed immediately upon writing the command.
The status of the requested data storage command can be accessed via the Data
Storage Command Status register:
Registers | Parameter | Access |
---|---|---|
41991 | **Data Storage Command Status: |
** NOP = 0
In Progress = 1 Success = 2
Failure = 3| r/o
Data Storage Content
The following registers are outside the normal 40000-49999 range of holding registers. They are only available through direct addressing, and not through Mod icon.
Registers | Parameter | Register Description |
---|---|---|
50000 | Port Selection | — |
50001 | Operation | 0 = NOP |
1 = Read
2 = Write
50002| Status 11| 0 = NOP
1 = In Progress 2 = Success
3 = Failure
---|---|---
Reading/writing the data storage contents does not trigger an upload/download to/from the connected device. To do so, write the desired operation to the appropriate port’s Data Storage Command register.
Registers | Parameter |
---|---|
50100-51123 | Data Storage Content |
The data storage content is unpopulated (read as 0) prior to performing a data storage read operation.
While the master supports storing separate data storage contents per port, a single buffer is shared for all ports for communications purposes. To support data storage content over multiple ports, the port must be specified in the Data Storage Request registers prior to reading/writing the contents.
Reading from Data Storage Content
Writing from Data Storage Content
Alias Registers
There are two register sets that are part of the holding registers.
Read-Only Alias Registers
This set is the user-configurable alias configuration registers:
Registers | Parameter | Access |
---|---|---|
40701-40768 | Read/Only Alias Register Address | r/w |
Each register in this section contains the 16-bit register address for the corresponding alias holding register, which is readable in the alias register space:
Registers | Parameter | Access |
---|---|---|
40501-40568 | Read/Only Alias Register | r/o |
When reading an alias register, the data in the register is filled with the contents of the address that are present in the corresponding alias configuration register. The address can be stored in either direct or mod icon addressing. Note that all aliased registers are read-only, and it is not possible to write to an alias register.
Any alias registers that are configured to an unsupported register address, or where the read operation fails for some other reason, returns as a zero when read. when read.
11 Writes to this register are ignored.
Example
Consider reading the process data state registers for all four ports in a single read operation. In this example, the holding registers are configured with the data below:
Register | Value | Register Description |
---|---|---|
40701 | 41001 | Port 1 input process data state |
40702 | 42001 | Port 2 input process data state |
40703 | 43001 | Port 3 input process data state |
40704 | 44001 | Port 4 input process data state |
If the alias registers are read, then they will contain the following register contents:
Register | Value | Register Description |
---|---|---|
40501 | 41001 | Port 1 input process data state |
40502 | 42001 | Port 2 input process data state |
40503 | 43001 | Port 3 input process data state |
40504 | 44001 | Port 4 input process data state |
By default, the alias register is set-up to alias process data for all available ports into a consecutive register map. The alias configuration can always be restored to its factory default value by writing to the Restore Factory Configuration holding register (40605). The alias register space is sized to allow reading all input process data from a 4-port device.
Read-Write Alias Registers
This set is a series of alias registers with read-write access allowed:
Registers | Parameter | Access |
---|---|---|
40901-40968 | Read/Write Alias Register Address | r/w |
Each register in this section contains the 16-bit register address for the corresponding alias holding register, which is readable in the alias register space:
Registers | Parameter | Access |
---|---|---|
40801-40868 | Read/Write Alias Register | r/w |
By default, the read-write alias registers are configured to point to the output process data for each port. The register space is sized to allow for aliasing all output process data for a 4-port device.
If writing to an alias register fails (for example, if the aliased register is not writeable), then the write operation of the alias registers will NACK. A register value that is set to 65535 is always read as 0, and no write operation will be attempted.
FCC Part 15 Class B
This equipment has been tested and found to comply with the limits for a Class B digital device, pursuant to part 15 of the FCC Rules. These limits are designed to provide reasonable protection against harmful interference in a residential installation. This equipment generates, uses and can radiate radio frequency energy and, if not installed and used in accordance with the instructions, may cause harmful interference to radio communications. However, there is no guarantee that interference will not occur in a particular installation. If this equipment does cause harmful interference to radio or television reception, which can be determined by turning the equipment off and on, the user is encouraged to try to correct the interference by one or more of the following measures:
- Reorient or relocate the receiving
- Increase the separation between the equipment and
- Connect the equipment into an outlet on a circuit different from that to which the receiver is
- Consult the dealer or an experienced radio/TV technician for
Industry Canada
This device complies with CAN ICES-3 (B)/NMB-3(B). Operation is subject to the following two conditions: 1) This device may not cause harmful interference; and 2) This device must accept any interference received, including interference that may cause undesired operation.
Technical Support
North America:
Tel: 317-916-4274
Fax: 317-639-4279
Website: https://hornerautomation.com
Email: techsppt@heapg.com
| Europe:
Tel: (+353)-21-4321-266
Fax: (+353)-21-4321826
Website:
http://www.hornerautomation.eu
Email: technical.support@horner-apg.com
---|---
References
- apg.com
- Horner Automation | Industrial Automation, Building & Process Automation
- Horner Automation Europe | Industrial, Building & Process Automation
- Horner Automation | Industry Leader for All-in-one Controllers
- Horner Automation | Industry Leader for All-in-one Controllers
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>