День добрый! Прошу помочь мне в решении задачи.
Суть - подключить датчик перемещения Рифтек к ОВЕН ПЛК-160 по RS-485. У датчика нестандартный протокол.
Взял готовый пример на форуме (открытие порта, передача и получение данных). Но не могу интерпретировать ответ.
Запрос результата - два байта, 01h 86h. Именно в таком виде отравляю команду на датчик. С него приходит ответ длиною 4 байта. Ответ собирается в массив (на картинке оранжевая рамка).
Вручную я могу его расшифровать, а вот написать код в проекте... не хватает соображения.
Пример ручной расшифровки ответа:
В массиве (левая оранжевая рамка на вложении) числа 193 198 201 192 (как я понимаю в десятичной системе исчисления). Сначала их нужно перевести в 16ию систему. Каждую переводим по отдельности
193(DEC)=C1h; 198(DEC)=C6h; 201(DEC)=C9h; 192(DEC)=C0h. Теперь нужно изменить их последовательность (согласно РЭ на датчик).
Получим 0961h. Переводим в десятичную систему 0961h=2410(DEC). Это и есть искомый результат.
Эту последовательность операций необходимо автоматизировать.
P.S. Цифры в оранжевой рамке меняются хаотично. Но в любой момент времени (если не перемещать датчик) рассчитанный таким образом ответ будет одинаков. Для цифр в правой рамке, после перевода, получяется D1h D6h D9h D0h. Естественно ответ от датчика будет такой же - 0961. Почему если датчик неподвижен по линии связи приходят разные байты я не знаю.