Расходомер US800 присылает пакет данных 19 байт, состоящий из данных о расходе, накопленном расходе, времени наработки, состоянии расходомера и др.
Значения переменных закодированы в шестнадцатеричном формате и занимают по 4 байта.
В документации к расходомеру есть пометка "что младшие байты помещены вперёд".
Какими функциями склеить 4 байта, принадлежащие каждой переменной для дальнейшей конвертации, и перекодировать значение переменных в формат Real?
Как собрать значения отдельных переменных из пакета байт?
-
- Posts: 8
- Joined: Wed Jul 04, 2018 12:40 am
-
- Site Admin
- Posts: 3992
- Joined: Thu Feb 16, 2006 3:25 pm
- Location: Russia
Re: Как собрать значения отдельных переменных из пакета байт
В Степ7 в Таблице Символов можно одному адресу присвоить разные типы данных:
MD100 //16#3bbbe741 = 3b bb e7 41
MB100
MB101
MB102
MB103
отсюда пересыл MOVE байт 3b bb e7 41
сюда в нужном порядке 41 e7 bb 3b
MB104
MB105
MB106
MB107
MD104 // и читать результат тут 41 e7 bb 3b = 28.96
для наглядности можешь в статике отладить функцию в PLCSIM
MD100 //16#3bbbe741 = 3b bb e7 41
MB100
MB101
MB102
MB103
отсюда пересыл MOVE байт 3b bb e7 41
сюда в нужном порядке 41 e7 bb 3b
MB104
MB105
MB106
MB107
MD104 // и читать результат тут 41 e7 bb 3b = 28.96
для наглядности можешь в статике отладить функцию в PLCSIM
Code: Select all
16#3bbbe741 => 41 e7 bb 3b = 28.96
-
- Posts: 8
- Joined: Wed Jul 04, 2018 12:40 am
Re: Как собрать значения отдельных переменных из пакета байт
А я полез в учебники... Решение на поверхности! Спасибо! Хитро, и главное, понятно!
Завтра протестирую.
Завтра протестирую.
-
- Faq & Info
- Posts: 178
- Joined: Thu Oct 13, 2005 6:42 pm
- Location: Frequently Asked Questions – Часто Задаваемые Вопросы
Re: Как собрать значения отдельных переменных из пакета байт
stl code:
Code: Select all
MD100
CAD
MD104
-
- Posts: 8
- Joined: Wed Jul 04, 2018 12:40 am
Re: Как собрать значения отдельных переменных из пакета байт
Когда начал разбираться с задачей, прибор был "из коробки" без времени наработки вообще, поэтому я получил пустой пакет байт. На данный момент я доступа к расходомеру не имею, его увезли накапливать значения расхода на объект.
Сделал в проекте пока так - одному адресу присвоил разные типы данных:
MD100 - Real, которое я хочу получить
MB100 - байт 1 из расходомера (младший)
MB101 - байт 2 из расходомера
MB102 - байт 3 из расходомера
MB103 - байт 4 из расходомера
Хочу поиграться с порядком присвоения адресов байтам, думаю, что всё получится.
Сделал в проекте пока так - одному адресу присвоил разные типы данных:
MD100 - Real, которое я хочу получить
MB100 - байт 1 из расходомера (младший)
MB101 - байт 2 из расходомера
MB102 - байт 3 из расходомера
MB103 - байт 4 из расходомера
Хочу поиграться с порядком присвоения адресов байтам, думаю, что всё получится.