Управление освещением
    Презентации
    Технические решения на LogicMachine
    Визуализация
      evika.ru    Технические решения на LogicMachine    Профили ModBus – инструмент для автоматической привязки и корректной работы с устройствами Modbus

    Профили 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

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




    Copyright
    © Embedded Systems Rus
    2017. All Rights Reserved