Горячая линия Embedded System Rus:8-800-775-06-34 (звонок по России бесплатный)

LM5_N
LM-Wall_N
DALI_N
Vita_N

Профили ModBus – инструмент для автоматической привязки и корректной работы с устройствами Modbus

Профиль представляет собой json файл. Для создания такого файла можно использовать любой json encoder, например: http://www.jsoneditoronline.org/ . Заголовок профиля выглядит следующим образом:

{
"manufacturer": "EMB", /* Производитель*/
"description": "UIO20-LMA", /* Название, описание*/
"mapping": [
Далее происходит непосредственное перечисление привязок. Например
{
"manufacturer": "EMB",
"description": "UIO20-LMA",
"mapping": [
{
"name": "Output 1",
"bus_datatype": "bool", /* тип*/
"type": "coil",
"address": 0,
"writable": 1,
"write_only": 1
},
{
"name": "Input 1",
"bus_datatype": "float16",
"type": "inputregister",
"address": 0,
"value_multiplier": 0.001,
"units": "V"    },
]
}

Ниже перечислены возможные параметры для привязок объектов для версии ПО LogicMachine 20150917:

name String Обязательное поле

Имя объекта, например: Output 2

bus_datatype String/Number Обязательное поле

Тип данных объекта KNX, например:float32

Со всеми используемыми типами данных можно ознакомиться в LogicMachine (раздел LogicMachine, вкладка help, пункт Data type functions).

  • 1. 1 bit (boolean) — bool — логическое выражение
  • 2. 2 bit (1 bit controlled) — bit2 — число
  • 3. 4 bit (3 bit controlled) — bit4 — число
  • 4. 1 byte ASCII character — char — строка
  • 5. 1 byte unsigned integer — uint8 — число
  • 6. 1 byte signed integer — int8 — число
  • 7. 2 byte unsigned integer — uint16 — число
  • 8. 2 byte signed integer — int16 — число
  • 9. 2 byte floating point — float16 — число
  • 10. 3 byte time / day — time — таблица со следующими значениями:
    • day — число (0-7)
    • hour — число (0-23)
    • minute — число (0-59)
    • second — число (0-59)
  • 11. 3 byte date — date — таблица со следующими значениям:
    • day — число (1-31)
    • month — число (1-12)
    • year — число (1990-2089)
  • 12. 4 byte unsigned integer — uint32 — число
  • 13. 4 byte signed integer — int32 — число
  • 14. 4 byte floating point — float32 — число
  • 16. 14 byte ASCII string — string — строка, пустые символы (‘\0’) отклоняются в процессе раскодирования

type String Обязательное поле

Тип регистра Modbus, возможные значения:coil discreteinput register inputregister

address Number Обязательное поле

Адрес регистра (начиная с 0)
writable Boolean

Установите значение true, чтобы разрешить запись значений (для типов регистра coil или register)

write_only Boolean

Установите значение true, чтобы запретить чтение значений (для типов регистра coil или register), когда запись (writable) разрешена

datatype String

Тип данных значений Modbus. Если установлено, то преобразование будет сделано автоматически.
Возможные значения: uint16 int16 float16 uint32 int32 float32 uint64 i uint64nt64 quad10k s10k

value_delta Number

Новое значение отправляется, когда разница между предыдущим отправленным значением и текущим значением больше, чем дельта. По умолчанию 0 (отправляется после каждого чтения).

value_base Number

Добавляет указанное число к считанному значению

value_multiplier Number

Умножает считанное значение на указанное число

value = value_base + value * value_multiplier

value_custom String/Object

Название встроенного перечисления или списка key -> value. Конечное значение будет равно 0, если не найдено

value_bitmask Number

Применение битовой маски, сдвиг автоматически производится с помощью функции Подсчета замыкающих нулей (Count Trailing Zeros — CTZ)

Пример:

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

value_default Boolean/Number

Значение по-умолчанию, когда невозможно прочитать coil/register

units String

Суффикс присваиваемый KNX объекту, созданному в окне маппинга регистров

read_swap Boolean

Смена порядка регистров при преобразовании.