Профиль представляет собой 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
Смена порядка регистров при преобразовании.