Показано с 1 по 9 из 9

Тема: как прочитать данные об измеренной температуре

  1. #1
    незарегистрированный
    Гость

    По умолчанию как прочитать данные об измеренной температуре

    с дельфей , устанавливать уставку научился , хочется попробовать прочитать - какой должен быть формат команды ?

  2. #2
    незарегистрированный
    Гость

    По умолчанию поторопился , что разобрался оказывается ..(( не совсем

    понимаю формат команд .(забыл представить прибор - ТРМ202 )Предположим , методом практически тыка разобрался с записью параметра гистерезиса - сходится с форматом . А вот как понять
    diSP C7AC T Режим индикации StAt 0
    Какую последовательность байтов я должен при этом заслать
    ПРобую послать 23 47 48 47 4c 53 4e 51 53 47 47 56 49 48 52 0d , никакой реакции .
    И еще чтобы прочитать измеренное значение температуры , не совсем понимаю также .. Помогите разобраться !

  3. #3

    По умолчанию

    почему бы вам не использовать нашу библиотеку (http://www.owen.ru/device/64305906)?

    если библиотека вам не подходит, уточните, с какой частью протокола у вас проблемы.

  4. #4
    незарегистрированный
    Гость

    По умолчанию скачал я бибилиотеку , просто я до сих пор работаю

    с дельфями 3 , а ваша библиотека не поддерживает старую версию . потом видимо не очень силен в программировании , проще видимо изобретать велосипед. :-) . то есть я иду не по правильному пути , да ?

  5. #5

    По умолчанию

    вообще-то, это обычная динамическая библиотека. если delphi3 умеет их загружать, то и нашу загрузит. думаю, это будет проще, чем мучиться с протоколом.

  6. #6

    По умолчанию

    Вот запрос для восьмибитной адресации и адреса 8.

    в двоичном виде: 08 12 E0 54 00 00 DE E8
    упакованный в ASCII: #GOHIUGLKGGGGTUUO\x0D

    похоже, вы забыли один байт индекса.

  7. #7
    незарегистрированный
    Гость

    По умолчанию ну вроде бы немного разобрался с форматом ,кроме самого главного

    как прочитать значение выведенное на индикацию ??
    B257 или B8DF команды не содержат индекса , и после вызова , передают всего три байта , и не понятно значение какого канала передается , как выбрать нужный канал измерения
    Формат я шлю такой 23 47 47 48 47 52 4f 54 56 47 54 4d 4b 0d
    нулевой адрес прибора 47 47 , чтение 48 47 , B257 код команды LuPV, CRC 47 54 4d 4b
    #GGHGROTVGTMK#
    получаю 23 47 47 47 4a 52 4f 54 56 48 49 4f 47 4e 4d 51 54 50 4f 0d
    Получаю всего три байта в поле данных .

  8. #8

    По умолчанию

    оперативные параметры адресуются через адрес прибора. если адрес прибора 16, данные второго канала читаются по адресу 17. три байта возвращается, потому что тип параметров Pv и LuPv - Float24.

    что бы проверить правильность формирования посылки можно использовать нашу библиотеку, включив в ней отладочный вывод.

  9. #9

    По умолчанию

    Правильно ли я понимаю, что функция:
    int ReadFloat24(DWORD adr,DWORD adr_type,char *command,float &value, int index)
    читает число с плавающей запятой в неком формате float 24, но в программу возвращает значение в формате float 32 (float &value), т.е. Single ?

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •