This page describes the device driver and the device window for the Moxa ioThinx 4510 data acquisition unit. The device driver monitors and controls the digital inputs/outputs of various modules hosted by the ioLThinx 4510 unit. The driver supports digital I/O modules.
The Moxa-ioThinx-4510 device driver is part of the sat-nms framework for M&C of plain digital I/O functions. Monitoring alarm circuits or controlling waveguide switches are indicatives for applications of this framework.
The application configuration normally does not access the Moxa-ioThinx-4510 device driver directly. There are a couple of application level logical devices (e.g. Input , Output or WG-Switch ) which may use the Moxa-ioThinx-4510 device driver as a low level driver to access the physical I/O ports.
Port adressing
As from units documentation there is no auto/fixed address mapping mode available the ioThinx device register addresses has to be manually added via device setup. See configuration parameters section below. By default all modules are disabled on the device setup page (module = NONE).
The driver was tested with MR1600 (16 DIs) and MR2404 (4 relay) modules. It is assumed that module base information can be found in the following registers
The sat-nms device driver for the Moxa ioThinx 4510 provides one input variable (named I0000 to I000F) and one output variable (named Q0000 to Q000F) for each module position. If for example an input module is at the third position from the main unit, its readings are in the variable I0002. The enumeration scheme (hexadecimal notation and starting with 0000 for the first one) is for compatibility with other PLC devices.
Output modules are treated in the same way but with the variables Q0000 Q000F. If for example the module next to the main module is an output or relay module, it gets controlled through the variable Q0000.
Configuration settings
If used with the sat-nms framework for M&C of plain digital I/O functions, the Moxa ioLThinx device acts like an unprogrammed PLC device. It is intended, that the device driver processes switch settings and changes of input circuits as fast as possible. The following settings are necessary to achieve this:
Device window pages
The following table shows which device window pages are available with this individual device type. Tool-bar functions not mentioned here are described at the general description of device windows .
--- Shows / commands I/O port states.
--- The faults page.
--- The device info page.
--- The maintenance page. The configuration parameters described below are set at this page.Configuration parameters
At the maintenance page of the device window there are a couple of configuration parameters which must be set to make the software talk to the device.
| parameter | description |
|---|---|
| address | Must always be set to 1 if the device is controlled Modbus over a serial line. With Modbus/TCP the device address doesn't matter. |
| module.01 | The 1st module type to be controlled by I0000 or Q0000. |
| module.02 | The 2nd module type to be controlled by I0001 or Q0001. |
| module.03 | The 3rd module type to be controlled by I0002 or Q0002. |
| module.04 | The 4th module type to be controlled by I0003 or Q0003. |
| module.05 | The 5th module type to be controlled by I0004 or Q0004. |
| module.06 | The 6th module type to be controlled by I0005 or Q0005. |
| module.07 | The 7th module type to be controlled by I0006 or Q0006. |
| module.08 | The 8th module type to be controlled by I0007 or Q0007. |
| module.09 | The 9th module type to be controlled by I0008 or Q0008. |
| module.10 | The 10th module type to be controlled by I0009 or Q0009. |
| module.11 | The 11th module type to be controlled by I000A or Q000A. |
| module.12 | The 12th module type to be controlled by I000B or Q000B. |
| module.13 | The 13th module type to be controlled by I000C or Q000C. |
| module.14 | The 14th module type to be controlled by I000D or Q000D. |
| module.15 | The 15th module type to be controlled by I000E or Q000E. |
| module.16 | The 16th module type to be controlled by I000F or Q000F. |
| address.01 | The 1st module register address as shown in the WebUI. |
| address.02 | The 2nd module register address as shown in the WebUI. |
| address.03 | The 3rd module register address as shown in the WebUI. |
| address.04 | The 4th module register address as shown in the WebUI. |
| address.05 | The 5th module register address as shown in the WebUI. |
| address.06 | The 6th module register address as shown in the WebUI. |
| address.07 | The 7th module register address as shown in the WebUI. |
| address.08 | The 8th module register address as shown in the WebUI. |
| address.09 | The 9th module register address as shown in the WebUI. |
| address.10 | The 10th module register address as shown in the WebUI. |
| address.11 | The 11th module register address as shown in the WebUI. |
| address.12 | The 12th module register address as shown in the WebUI. |
| address.13 | The 13th module register address as shown in the WebUI. |
| address.14 | The 14th module register address as shown in the WebUI. |
| address.15 | The 15th module register address as shown in the WebUI. |
| address.16 | The 16th module register address as shown in the WebUI. |
Variables defined by this device driver
| name | type | flags | range |
|---|---|---|---|
| info.driver | TEXT | R/O | StringRange R/O |
| lowLevel.cmd | TEXT | StringRange | |
| lowLevel.reply | TEXT | R/O | StringRange R/O |
| faults.99 | ALARM | R/O | AlarmFlagRange R/O (Communication) |
| faults.commstat | TEXT | R/O | StringRange R/O |
| info.type | TEXT | R/O | StringRange R/O |
| info.port | TEXT | R/O | StringRange R/O |
| info.frame | TEXT | R/O | StringRange R/O |
| info.version | TEXT | R/O | StringRange R/O |
| info.name | TEXT | R/O | StringRange R/O |
| info.serial | TEXT | R/O | StringRange R/O |
| config.module.01 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.02 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.03 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.04 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.05 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.06 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.07 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.08 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.09 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.10 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.11 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.12 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.13 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.14 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.15 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.module.16 | CHOICE | SAVE SETUP | EnumRange (NONE MR1600 MR2404) |
| config.address.01 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.02 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.03 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.04 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.05 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.06 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.07 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.08 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.09 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.10 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.11 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.12 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.13 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.14 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.15 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| config.address.16 | INTEGER | SAVE SETUP | IntegerRange (0 .. 0) |
| I0000 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0001 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0002 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0003 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0004 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0005 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0006 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0007 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0008 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I0009 | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I000A | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I000B | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I000C | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I000D | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I000E | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| I000F | HEX | R/O | HexRange R/O DIS (0 .. 0) |
| Q0000 | HEX | HexRange DIS (0 .. 0) | |
| Q0001 | HEX | HexRange DIS (0 .. 0) | |
| Q0002 | HEX | HexRange DIS (0 .. 0) | |
| Q0003 | HEX | HexRange DIS (0 .. 0) | |
| Q0004 | HEX | HexRange DIS (0 .. 0) | |
| Q0005 | HEX | HexRange DIS (0 .. 0) | |
| Q0006 | HEX | HexRange DIS (0 .. 0) | |
| Q0007 | HEX | HexRange DIS (0 .. 0) | |
| Q0008 | HEX | HexRange DIS (0 .. 0) | |
| Q0009 | HEX | HexRange DIS (0 .. 0) | |
| Q000A | HEX | HexRange DIS (0 .. 0) | |
| Q000B | HEX | HexRange DIS (0 .. 0) | |
| Q000C | HEX | HexRange DIS (0 .. 0) | |
| Q000D | HEX | HexRange DIS (0 .. 0) | |
| Q000E | HEX | HexRange DIS (0 .. 0) | |
| Q000F | HEX | HexRange DIS (0 .. 0) | |
| initialized | TEXT | R/O | StringRange R/O |
| i | HEX | R/O | HexRange R/O (0 .. 0) |