IODRV – The REXYGEN system input/output driver

Block SymbolLicensing group: STANDARD
PIC

Function Description
The input/output drivers of the REXYGEN system are implemented as extension modules (see the MODULE block). A module can contain several drivers, which are added to the REXYGEN system configuration by using the IODRV blocks. The prev input of the block must be connected with the Drivers output of the EXEC block or with the next output of a IODRV block which is already included in the configuration. There can be only one driver connected to the next output of the IODRV block. The next output of the last driver in the configuration remains unconnected. This means that the drivers create a unidirectional chain which defines the order of initialization and execution of the individual drivers.

Each driver of the REXYGEN system is identified by its name, which is defined by the classname parameter (beware, the name is case-sensitive!). If the name of the driver differs from the name of the module containing the given driver, the module name must be specified by the module parameter, it is left blank otherwise. Details about these two parameters can be found in the documentation of the corresponding REXYGEN system driver.

The majority of drivers stores its own configuration data in files with .rio extension (REXYGEN Input/Output), whose name is specified by the cfgname parameter. The .rio files are created in the same directory where the project main file is located (.mdl file with the EXEC block). Driver is configured (e.g. names of the input/output signals, connection to physical inputs/outputs, parameters of communication with the input/output device, etc.) in an embedded editor provided by the driver itself. The editor is opened when the Configure button is pressed in the parameter dialog of the IODRV block in the REXYGEN Studio program of the REXYGEN control system. In Matlab/Simulink the editor is opened upon ticking the "Tick this checkbox to call IOdrv EDIT dialog" checkbox.

The remaining parameters are useful only when the driver implements its own computational task (see the corresponding driver documentation). The factor parameter defines the driver’s task execution period by multiplying the EXEC block’s tick parameter factor times (factor*tick). The stack parameter defines the stack size in bytes. It is recommended to keep the default setting unless stated otherwise in the driver documentation. The parameter pri defines the logical priority of the driver’s task. Inappropriate priority can influence the overall performance of the control system critically so it is highly recommended to check the driver documentation and the load of the control system (drivers, levels and tasks) in the Diagnostics section of the REXYGEN Studio program. The cpu parameter can be used to specify where the driver thread should run on multi-CPU devices.

Input

prev

Input for connecting the driver with the Drivers output of the EXEC block or with the next output of the preceding driver

Long (I32)

Output

next

Output for connecting to the prev input of the succeeding driver

Long (I32)

Parameters

module

Name of the module, which includes the input/output driver (mandatory only if module name differs from classname)

String

classname

I/O driver class name; case sensitive!  DrvClass

String

cfgname

Name of the driver configuration file  iodrv.rio

String

factor

Multiple of the EXEC block’s tick parameter defining the driver’s task execution period   1 10

Long (I32)

stack

Stack size of the driver’s task in bytes   1024 10240

Long (I32)

pri

Logical priority of the driver’s task   1  31 3

Long (I32)

cpu

CPU core assigned to driver thread (-1=default, 0=core 0, 1=core 1, ...)   -1  127 -1

Long (I32)

2023 © REX Controls s.r.o., www.rexygen.com