Во первых открыл английский вариант описания протокола (в руском переводе ошибки б... ).
Берем в лоджике тип boolean, направление R(in) => будет отправлен такой запрос
А_Ф_Адрес перемен_ Кол-во перем._CRC
01_02_00 01_00 01_xx xx
Ответ придет
А_Ф_Число байт_Сост. входов_CRC
01_02_01_01_xx xx
Сост. входов = 01h = 0000 0001b и на выходе блока будет 1, т.е. нулевой бит в этом байте.
Берем в лоджике тип integer, направление R(in) => будет отправлен такой запрос
А_Ф_Адрес перемен_Кол-во перем._CRC
01_02_00 01_00 10_xx xx
т.к. integer занимает 2 байта = 16 бит = 10h бит
Ответ придет
А_Ф_Число байт_Сост. входов_CRC
01_02_02_00 01_xx xx
Сост. входов = 00 01h = 0000 0000 0000 0001b и на выходе блока будет 1 в формате integer.
Теперь берем модуль LD-IR (из документации на модули
) "получить принятый ИК пакет" => это не не булева переменная, а значит тип нужен минимум integer (или byte, если бы он был)
надо сделать запрос(по документации)
А_Ф_Адрес перемен_Кол-во перем._CRC
01_02_00 01_00 01_xx xx
а лоджик сделает запрос
А_Ф_Адрес перемен_Кол-во перем._CRC
01_02_00 01_00 10_xx xx
и что об этом запросе подумает LD-IR
Это все верно, если я правильно понимаю как работает тип integer - направление R(in), и если в документации верно написано.