Modbus LM

 

Descripcion del perfil Modbus en LogicMachine


Campos de Perfil

manufacturer String Requerido

Nombre del fabricante, ejemplo: Embedded Systems

description String Requerido
Descripción del dispositivo, ejemplo: Universal 16+4 I/O module

timeout Numero
Anula el tiempo de respuesta predeterminado de 0.5 segundos para RTU o 3 segundos para TCP

product_code String
Código de producto que puede ser usado para el mapeo automático de perfil después de escanear la descripción, obtenido del dispositivo a través de la solicitud de lectura del objeto de identificación del dispositivo ID 1

read_swap Booleano/String
establece el orden global para el intercambio de byte/word durante la conversion (endianidad). igual que el campo read_swap para el mapeo

read_delay Numero
Agrega un retardo en segundos (maximo 1 segundo) entre solicitudes de lectura consecutivas desde el esclavo, no bede ser utilizado para la mayoria de los esclavos


Campos de Mapeo

name String Requerido
Nombre del objeto, ejemplo: Salida 2

bus_datatype String/Numero Requerido
Tipo de dato del objeto KNX, obtenido de la tabla dt , ejemplo: float32

type String Requerido
Tipo de registro Modbus, Valores posibles: coil discreteinput register inputregister

address Numero Requerido
Dirección del registro (0-based)

writable Booleano
Establecer en true para habilitar la escritura a un coilregister

write_only Booleano
Establecer en true para desabilitar la lectura del valor de coilregister cuando esta habilitado writable

write_multiple Booleano
Establecer en true para forzar la escritura al usar la funcion escritura multiple de coil/register aún cuando se escriba solo a un coil o register

datatype String
Tipo de dato del valor Modbus. La longitud de la lectura se elige basandose en el tipo de dato, la conversion de datos se realiza automaticamente.
Valores posibles: uint16 int16 float16 uint32 int32 float32 uint64 int64 quad10k s10k

value_delta Numero
El nuevo valor se envía cuando la diferencia entre el valor enviado previamente y el valor actual sea mayor que el delta. Por defecto a 0 (enviar después de cada lectura)

value_base Numero
Suma el numero especificado al valor resultante

value_multiplier Numero
Multiplica el valor resultante por el numero especificado value = value_base + value * value_multiplier

value_bitmask Numero

Mascara de Bits a aplicar, el desplazamiento se realiza automáticamente usando la función de ceros de arrastre (CTZ)
Ejemplo:

value = 0xABCD
mask = 0x0F00
result = (value & mask) >> CTZ(mask) = (0xABCD & 0x0F00) >> 8 = 0xB

value_nan Array
Martriz de integers de 16-bit. Si se especifica y la operación de lectura devuelve la misma matriz no se realiza ningún procesamiento adicional del valor

value_conv String Interno
Aplica una de las funciones integradas de conversion

value_custom String/Objeto
Nombre de una enumeración integrada o una lista de asignación de clave -> valor mapping, el valor resultante sera 0 si no se encuentra la clave

value_default Boolean/Numero
Valor predeterminado que se establece cuando la bobina / registro no se puede leer

internal Booleano
No es visible para el usuario cuando se establece en true, se debe utilizar para los registros scale

units String
Unidad o sufijo para los objetos KNX

address_scale Numero
Dirección del registro que contiene la escala del valor value = value * 10 ^ scale

read_count Numero
Número de registros a leer a la vez (para los dispositivos que sólo soportan la lectura de un bloque específico de registros)

read_swap Booleano/String

Intercambiar el orden de los byte/word durante la conversión (endianidad). el valor por defecto es intercambio de word (2-byte).
Valores posibles de string: n (sin intercambio), w (intercambio word), b (intercambio de byte), bw (intercambio de byte y word)
Example:

no swap: 0xABCD
word swap: 0xCDAB
byte swap: 0xBADC
byte and word swap: 0xDCBA

read_offset Numero
Posición del primer registro de datos del bloque de registros (0-based)

bus_address String (Dirección de grupo)
Direccion de grupo del objeto mapeado. Se recomienda usar solo durante el desarrollo

Ejemplo:

{
“manufacturer”: “Embedded Systems”,
“description”: “Universal 16+4 I/O module”,
“mapping”: [
{ “name”: “Output 1”, “bus_datatype”: “bool”, “type”: “coil”, “address”: 0, “writable”: 1 },
{ “name”: “Input 1”, “bus_datatype”: “float16”, “type”: “inputregister”, “address”: 0, “value_multiplier”: 0.001, “units”: “V” }
]
}
{
"manufacturer": "Embedded Systems",
"description": "Universal 16+4 I/O module",
"mapping": [
{ "name": "Output 1", "bus_datatype": "bool", "type": "coil", "address": 0, "writable": 1 },
{ "name": "Input 1", "bus_datatype": "float16", "type": "inputregister", "address": 0, "value_multiplier": 0.001, "units": "V" }
]
}