PDA

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



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

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

Дмитрий Егоренков
11.01.2008, 13:45
почему бы вам не использовать нашу библиотеку (http://www.owen.ru/device/64305906)?

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

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

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

Дмитрий Егоренков
14.01.2008, 13:13
Вот запрос для восьмибитной адресации и адреса 8.

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

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

незарегистрированный
17.01.2008, 22:40
как прочитать значение выведенное на индикацию ??
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
Получаю всего три байта в поле данных .

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

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

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