PDA

Просмотр полной версии : help! Не работает ReadIEEE32 c МВА8. Почему?



vch
30.07.2009, 06:09
Помогите разобраться!

Функция ReadIEEE32 не выдает измеренное значение датчика при опросе МВА8. "Ошибка MVA[addr=8][0]=-101:<Неверный формат данных для запроса>. Хотя Конфигуратор легко читает все каналы.

owen_io.dll 13/12/2006, WinXP, Visual C++ 6.0, COM-порт - плата 4портовая RS-485, 2-жильн витая пара, без АС-3М и т.п.

В сети RS485 (протокол ОВЕН) 3 устройства: ТРМ101 (addr=80), МВА8 (addr=16), МВА8 (addr=32)? 9600/8/n/1.
Предварительно конфигуратором установлены параметры входов МВА, к неккоторым подключены датчики, некоторые не подключены и не сконфигурированы (тип датчика не задан).
При включении опроса входов в Конфигураторе каналы с датчиками выдают реальные значения, не подключенные дают ошибки "Обрыв датчика", "Датчик не задан"

Выхожу из Конфигуратора и запускаю vc_sample (owen_io_lib) с таким текстом:
...
if(OpenPort(COM_1,spd_9600,prty_NONE,databits_8,st opbit_1,RS485CONV_AUTO)<0)
return 0;

for(hh=0;hh<8;hh++)
{
res=ReadIEEE32(16+hh,0,"rEAd",val,tm1,-1);
if(res>=0)
printf("Read=16[%d] ,Time=[%5d]\n",val,tm1);
else printf("16[%d] Err: %d !\n", hh, res);
}
for(hh=0;hh<8;hh++)
{
res=ReadIEEE32(32+hh,0,"rEAd",val,tm1,-1);
if(res>=0)
printf("Read=32[%d] ,Time=[%5d]\n",val,tm1);
else
printf("32[%d] Err: %d !\n", hh, res);
}

Каналы, которые не подключены или не задан тип датчика возвращают ошибки -105. Каналы, к которым подключены датчики возвращают ошибку -101.

В рабочей программе (ТРМ101 (addr=80), МВА8 (addr=8), МВА8 (addr=16)) периодически сигнал датчика получаем, но весьма редко. Задержки между посылками делали в 1сек. Не помогло. Вот пример лога с вызовом LastErrToStr:

20:48:44: Pv[80][0]=(28.020996)
20:48:44: o[80][0]=(0.000000)
20:48:44: SP[80][0]=(43.700195)
20:48:44: Ошибка MVA[8][0]=-101:<Неверный формат данных для запроса>
20:48:44: Ошибка MVA[8][1]=-101:<Неверный формат данных для запроса>
20:48:45: Ошибка MVA[8][2]=-101:<Неверный формат данных для запроса>
20:48:45: Ошибка MVA[8][3]=-101:<Неверный формат данных для запроса>
20:48:45: Ошибка MVA[8][4]=-101:<Неверный формат данных для запроса>
20:48:45: Ошибка MVA[8][5]=-101:<Неверный формат данных для запроса>
20:48:45: Ошибка MVA[8][6]=-101:<Неверный формат данных для запроса>
20:48:45: MVA[8][7]=(19.700623)
20:48:45: Ошибка MVA[16][0]=-105:<Обрыв датчика.>
20:48:45: Ошибка MVA[16][1]=-105:<Обрыв датчика.>
20:48:46: Ошибка MVA[16][2]=-105:<Датчик отключен.>
20:48:46: Ошибка MVA[16][3]=-105:<Датчик отключен.>
20:48:46: Ошибка MVA[16][4]=-105:<Датчик отключен.>
20:48:46: Ошибка MVA[16][5]=-105:<Датчик отключен.>
20:48:46: Ошибка MVA[16][6]=-101:<Неверный формат данных для запроса>
20:48:46: Ошибка MVA[16][7]=-101:<Неверный формат данных для запроса>
20:48:46: Pv[80][0]=(28.057129)
20:48:46: o[80][0]=(0.000000)
20:48:46: SP[80][0]=(43.700195)
20:48:47: Ошибка MVA[8][0]=-101:<Неверный формат данных для запроса>
20:48:47: Ошибка MVA[8][1]=-101:<Неверный формат данных для запроса>
20:48:47: Ошибка MVA[8][2]=-101:<Неверный формат данных для запроса>
20:48:47: Ошибка MVA[8][3]=-101:<Неверный формат данных для запроса>
20:48:47: Ошибка MVA[8][4]=-101:<Неверный формат данных для запроса>
20:48:47: Ошибка MVA[8][5]=-101:<Неверный формат данных для запроса>
20:48:47: Ошибка MVA[8][6]=-101:<Неверный формат данных для запроса>
20:48:47: Ошибка MVA[8][7]=-105:<Обрыв датчика.>
20:48:48: Ошибка MVA[16][0]=-105:<Обрыв датчика.>
20:48:48: Ошибка MVA[16][1]=-105:<Обрыв датчика.>
20:48:48: Ошибка MVA[16][2]=-105:<Датчик отключен.>
20:48:48: Ошибка MVA[16][3]=-105:<Датчик отключен.>
20:48:48: Ошибка MVA[16][4]=-105:<Датчик отключен.>
20:48:48: Ошибка MVA[16][5]=-105:<Датчик отключен.>
20:48:48: Ошибка MVA[16][6]=-101:<Неверный формат данных для запроса>
20:48:48: Ошибка MVA[16][7]=-101:<Неверный формат данных для запроса>
20:48:49: Pv[80][0]=(28.057129)
20:48:49: o[80][0]=(0.000000)
20:48:49: SP[80][0]=(43.700195)
20:48:49: MVA[8][0]=(20.180618)
20:48:49: Ошибка MVA[8][1]=-101:<Неверный формат данных для запроса>
20:48:49: Ошибка MVA[8][2]=-101:<Неверный формат данных для запроса>
20:48:49: Ошибка MVA[8][3]=-101:<Неверный формат данных для запроса>
20:48:49: Ошибка MVA[8][4]=-101:<Неверный формат данных для запроса>
20:48:49: Ошибка MVA[8][5]=-101:<Неверный формат данных для запроса>
20:48:50: Ошибка MVA[8][6]=-101:<Неверный формат данных для запроса>
20:48:50: Ошибка MVA[8][7]=-105:<Обрыв датчика.>

Везде где ответ "-101:<Неверный формат данных для запроса>" Конфигуратор принмает нормальные значения температур.

Вот опрос одного МВА с интервалом в 200 мс:

21:17:49: Ошибка MVA[8][0]=-101:<Неверный формат данных для запроса>
21:17:50: Ошибка MVA[8][1]=-101:<Неверный формат данных для запроса>
21:17:50: Ошибка MVA[8][2]=-101:<Неверный формат данных для запроса>
21:17:50: Ошибка MVA[8][3]=-101:<Неверный формат данных для запроса>
21:17:51: Ошибка MVA[8][4]=-101:<Неверный формат данных для запроса>
21:17:51: Ошибка MVA[8][5]=-101:<Неверный формат данных для запроса>
21:17:51: Ошибка MVA[8][6]=-101:<Неверный формат данных для запроса>
21:17:51: Ошибка MVA[8][7]=-105:<Обрыв датчика.>
21:17:52: Ошибка MVA[8][0]=-101:<Неверный формат данных для запроса>
21:17:52: MVA[8][1]=(19.675247)
21:17:52: Ошибка MVA[8][2]=-101:<Неверный формат данных для запроса>
21:17:53: Ошибка MVA[8][3]=-101:<Неверный формат данных для запроса>
21:17:53: Ошибка MVA[8][4]=-101:<Неверный формат данных для запроса>
21:17:53: Ошибка MVA[8][5]=-101:<Неверный формат данных для запроса>
21:17:53: Ошибка MVA[8][6]=-101:<Неверный формат данных для запроса>
21:17:54: Ошибка MVA[8][7]=-105:<Обрыв датчика.>
21:17:54: Ошибка MVA[8][0]=-101:<Неверный формат данных для запроса>
21:17:54: Ошибка MVA[8][1]=-101:<Неверный формат данных для запроса>
21:17:55: Ошибка MVA[8][2]=-101:<Неверный формат данных для запроса>
21:17:55: Ошибка MVA[8][3]=-101:<Неверный формат данных для запроса>
21:17:55: Ошибка MVA[8][4]=-101:<Неверный формат данных для запроса>
21:17:56: Ошибка MVA[8][5]=-101:<Неверный формат данных для запроса>
21:17:56: Ошибка MVA[8][6]=-101:<Неверный формат данных для запроса>
21:17:56: Ошибка MVA[8][7]=-105:<Обрыв датчика.>
21:17:57: Ошибка MVA[8][0]=-101:<Неверный формат данных для запроса>
21:17:57: Ошибка MVA[8][1]=-101:<Неверный формат данных для запроса>
21:17:57: Ошибка MVA[8][2]=-101:<Неверный формат данных для запроса>
21:17:58: Ошибка MVA[8][3]=-101:<Неверный формат данных для запроса>
21:17:58: Ошибка MVA[8][4]=-101:<Неверный формат данных для запроса>
21:17:58: Ошибка MVA[8][5]=-101:<Неверный формат данных для запроса>
21:17:58: Ошибка MVA[8][6]=-101:<Неверный формат данных для запроса>
21:17:59: Ошибка MVA[8][7]=-105:<Обрыв датчика.>
21:17:59: Ошибка MVA[8][0]=-101:<Неверный формат данных для запроса>

vch
30.07.2009, 11:33
Самое загадочное для меня то, что эта же программа работала стабильно в сети из трех МВА8 и трех ТРМ101. Различие в том, что ранее был AC3-М.
Длина кабелей порядка 15-20 м