This is topic Баг обработки данных типа REAL? in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.


To visit this topic, use this URL:
http://forum.adastra.ru/ultimatebb.php/ubb/get_topic/f/31/t/000701.html

Posted by Alhim (Участник № / Member № 3831) on :
 
Столкнулся со сбоем в обработке данных типа REAL, может быть кто-то поможет найти причину. Суть в следующем:
Необходимо периодически опрашивать параметры счетчика ВКГ-2 через RS-232-й интерфейс по протоколу Modbus ( Протокол обмена ВКГ-2 ). Использую для этого источники/приемники MODBUS.R_FIFO_Queue и привязанные к ним каналы CALL (данная пара для каждого запроса). Для цикличности запростов используется "единицы измерения""свой поток". При опросе параметра "трубопровод" необходимо принимать 12 регистров типа float(real). Странность состоит в том, что если данный запрос отправляется первым, то принимаемые данные обрабатываются как нужно ( 1.05; 0.88; 0.683; -5; 0.4; 0.299892; 0; 0; 0; 0.683; 2.97169; 0.880004 ), если вторым или последущим - данные принимаются неверно ( 3.67336e-041; 2.57138e-041; и т.д. ), хотя ответ прибора абсолютно идентичен.
code:
 // Первый запрос (обрабатывается верно) //

Запрос:30.09.2009 9:50:26.15664 (+293.1563 seconds)

01 03 01 09 00 12 14 39 .......9

Ответ:30.09.2009 9:50:26.46964 (+0.3125 seconds)

01 03 30 3F 86 66 66 3F 61 47 AE 3F 2E D9 17 C0 ..0?†ff?aG®?.Ù.À
A0 00 00 3E CC CC CD 3E 99 8B 68 00 00 00 00 00  ..>ÌÌÍ>™‹h.....
00 00 00 00 00 00 00 3F 2E D9 17 40 3E 34 8D 3F .......?.Ù.@>4?
61 47 E9 14 E6 aGé.æ

... запросы других параметров ...

// Второй запрос (обрабатывается неверно) //

Запрос:30.09.2009 9:50:43.12564 (+1.2031 seconds)

01 03 01 09 00 12 14 39 .......9

Ответ:30.09.2009 9:50:44.42264 (+0.2969 seconds)

01 03 30 3F 86 66 66 3F 61 47 AE 3F 2E D9 17 C0 ..0?†ff?aG®?.Ù.À
A0 00 00 3E CC CC CD 3E 99 8B 68 00 00 00 00 00  ..>ÌÌÍ>™‹h.....
00 00 00 00 00 00 00 3F 2E D9 17 40 3E 34 8D 3F .......?.Ù.@>4?
61 47 E9 14 E6 aGé.æ



 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
Есть некоторые ошибки в работе канала MODBUS.R_FIFO_Queue. В следующем релизе они будут исправлены.
 
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
 
А для какой цели Вы используете MODBUS.R_FIFO_Queue
 
Posted by Alhim (Участник № / Member № 3831) on :
 
Это связано с особеностями протокола обмена ВКГ-2 (Ссылка на протокол):
1.Различные команды мастера при запросе(0х3 или 0х4 в зависимости от требуемых данных).
2.Различное количество запрашиваемых байтов данных, в зависимости от запроса (5-6-й байты запроса)

Использую MODBUS.R_FIFO_Queue, параметр-2. Версия ТМ6.06.
 
Posted by Alhim (Участник № / Member № 3831) on :
 
Т.е. параметр-2 относится конечно же к каналу CALL.

Если Вы имеете в виду ошибку MODBUS.R_FIFO_Queue версии TM6.06.02 (запись ответа в нулевой и первый аргументы) то я о ней прочитал, и установил предыдущий релиз ТМ6.06.
Дело в том что остальные ответы обрабатываются нормально, и в первом и в последующих циклах. Дело в типе данных, или в чем-то другом, определить не могу, т.к. другой запрос "Доп. датчики Р" с ответом типа REAL содержит только нули, вследствие отсутствия подключения датчиков к прибору.
 
Posted by Alhim (Участник № / Member № 3831) on :
 
С запростом "Доп. датчики Р" то же самое. Обрабатывается корректно только на старте. Вероятно дело в типе даных.

Подскажите, как в ТМ распологаются мантисса и порядок в типе REAL, попробую принять пответ в INT и программно преобразовать в REAL.
 
Posted by Alhim (Участник № / Member № 3831) on :
 
Установил версию ТМ6.06.2 и патч для нее - проблема исчезла.
 


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2