dm_modbus_register Module

Modbus register abstraction module.


Uses

  • module~~dm_modbus_register~~UsesGraph module~dm_modbus_register dm_modbus_register module~dm_error dm_error module~dm_modbus_register->module~dm_error module~dm_kind dm_kind module~dm_modbus_register->module~dm_kind module~dm_modbus_type dm_modbus_type module~dm_modbus_register->module~dm_modbus_type module~dm_string dm_string module~dm_modbus_register->module~dm_string module~dm_error->module~dm_kind module~dm_ascii dm_ascii module~dm_error->module~dm_ascii iso_fortran_env iso_fortran_env module~dm_kind->iso_fortran_env module~dm_modbus_type->module~dm_error module~dm_modbus_type->module~dm_kind module~dm_modbus_type->module~dm_string module~dm_string->module~dm_error module~dm_string->module~dm_kind

Used by

  • module~~dm_modbus_register~~UsedByGraph module~dm_modbus_register dm_modbus_register module~dmpack dmpack module~dmpack->module~dm_modbus_register

Derived Types

type, public ::  modbus_register_type

Modbus register value type.

Components

Type Visibility Attributes Name Initial
integer, public :: access = MODBUS_ACCESS_NONE

Read or write access.

integer, public :: slave = 0

Slave id.

integer, public :: address = 0

Register address.

integer, public :: code = 0

Modbus function code.

integer, public :: type = MODBUS_TYPE_INT16

Number type.

integer, public :: order = MODBUS_ORDER_NONE

Byte order of float.

integer, public :: scale = 1

Scale denominator.

integer, public :: value = 0

Register value to write.


Functions

public pure elemental function dm_modbus_register_has_scale(register) result(has)

Returns .true. if register attribute scale is greater 1.

Arguments

Type IntentOptional Attributes Name
type(modbus_register_type), intent(in) :: register

Modbus register type.

Return Value logical

public pure elemental function dm_modbus_register_is_valid(register) result(valid)

Returns .true. if Modbus register type is valid.

Arguments

Type IntentOptional Attributes Name
type(modbus_register_type), intent(in) :: register

Modbus register type.

Return Value logical


Subroutines

public subroutine dm_modbus_register_out(register, unit)

Outputs Modbus register type.

Arguments

Type IntentOptional Attributes Name
type(modbus_register_type), intent(inout) :: register

Modbus register type.

integer, intent(in), optional :: unit

File unit.

public pure elemental subroutine dm_modbus_register_parse(string, register, error)

Parses string for the following Modbus parameters and returns the values in register:

Read more…

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: string

Input string.

type(modbus_register_type), intent(out) :: register

Modbus register type.

integer, intent(out), optional :: error

Error code.

public pure elemental subroutine dm_modbus_register_scale(register, value)

Scales given value by scale denominator in register. For example, if attribute scale is set to 10, the routine will device value by 10. If scale is 0 or 1, the value will not be modified.

Arguments

Type IntentOptional Attributes Name
type(modbus_register_type), intent(inout) :: register

Modbus register type.

real(kind=r8), intent(inout) :: value

Value to scale.