Цитата:
Сообщение от gtfox
Во первых открыл английский вариант описания протокола (в руском переводе ошибки б... ).
|
Наверное, с этого и стоило начинать
Хотя у данфоса, например, чувствуется, что инструкцию с китайского перевели на французский, затем на английский, а только потом - на русский
Мясо полное
Цитата:
Сообщение от gtfox
Берем в лоджике тип boolean, направление R(in) => будет отправлен такой запрос
А_Ф_Адрес перемен_ Кол-во перем._CRC
01_02_00 01_00 01_xx xx
Ответ придет
А_Ф_Число байт_Сост. входов_CRC
01_02_01_01_xx xx
Сост. входов = 01h = 0000 0001b и на выходе блока будет 1, т.е. нулевой бит в этом байте.
|
Вроде так.
Цитата:
Сообщение от gtfox
Берем в лоджике тип 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.
|
А вот тут - не так. Будет использована ф-ция 04h, а не 02h. Input registers это не то же самое, что Input status.
Запрос: 01_04_00 01_00 01_xx xx
Ответ: 01_04_02_значение_xx xx
Так гласит закон джунглей, т.е. описание modbus PI–MBUS–300.
В общем случае адреса у регистров и статусов не пересекаются, т.е. чтение функцией 01h с адреса 0000h даст один результат, чтение ф-цией 02h с адреса 0000h даст другой результат, ф-ция 03h даст третий результат, ф-ция 04h - четвёртый.
Не то, чтобы данные интерпретируются по разному, данные _приходят_ разные и источники этих данных также разные.
Но это в общем случае, конкретному производителю не запрещено объединять эти четыре адресных пространства в любых комбинациях.
Цитата:
Сообщение от gtfox
Теперь берем модуль 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), и если в документации верно написано.
|
Я бы не спешил делать вывод, что под словом "пакет" подразумевается именно байт, а не последовательность битов.