Проблемы с ADAM-4018, 4019, 4019+ |
Ответить |
Автор | |
Новичок Присоединился: 09 Сентябрь 2005 Категория: Russian Federation Online Status: Offline Публикации: 8 |
Опубликовано: 30 Май 2008 04:12 |
Несколько лет назад, когда перед нами встала задача измерять температуру с помощью термопар, мы приобрели контроллеры ADAM-4018. И тут же столкнулись со следующей проблемой.
Проблема с ADAM-4018 В техпроцессе, который мы автоматизировали, использовались термопары вольфрам-рений т.н. A-1, A-2, A-3 типов. В списке термопар, поддерживаемых ADAM-4018, этих термопар нет, поэтому пришлось использовать 4018 в режиме измерения напряжения, установив диапазон измерения +- 50 мВ. Алгоритм измерения температуры при этом выглядел так: 1) считываем значение напряжения U; 2) считываем значение температуры холодного спая (ТХС); 3) по таблице термопары преобразовываем TХС в мВ - U[ТХС]; 4) вычисляем U' = U[ТХС] + U; 5) по таблице термопары вычисляем температуру T(U'). И все было замечательно, кроме одного момента: ADAM-4018 не обновляет значение температуры холодного спая в случае, когда модуль настроен на измерение напряжения. Т.е. в течение всего техпроцесса температура холодного спая, возвращаемая модулем ADAM-4018, имела значение, измеренное модулем при его включении. Таким образом получается - либо используй термопары из заданного списка (которые поддерживает модуль), либо подключай к одному из входов модуля свой датчик измерения температуры холодного спая. Однако, нами было найдено обходное решение. Выяснилось, что при выполнении команды "калибровка смещения температуры холодного спая" ($AA9SNNNN - CJC Offset Calibration) модуль измеряет температуру холодного спая и обновляет ее значение в своей памяти. Тогда мы включили в программу псевдо-калибровку смещения ТХС, а именно: калибровку на величину равную 0 (NNNN=0), что приводило к обновлению значения температуры холодного спая. Итак, чтобы ADAM-4018 обновил значение температуры холодного спая при работе в режиме измерения напряжения, необходимо выполнить команду CJC Offset Calibration (калибровка смещения ТХС) с параметром 0, и только после этого сосчитать значение ТХС ($AA3 - CJC Status Command) Когда появились модули ADAM-4019 мы решили мигрировать на них, надеясь, что в 4019-х модулях температура холодного спая обновляется все время, т.к. ADAM-4019 позволяет настраивать каналы индивидуально. Да, в 4019-х модулях вышеуказанной проблемы с ТХС, действительно, нет. Но возникла другая проблема. Проблема с ADAM-4019 Модуль ADAM-4019 не проверял контрольную сумму в режиме, когда проверка контрольной суммы включена. Я пишу не проверял, т.к. не знаю как обстоят дела в модулях ADAM-4019 поставляемых сегодня, но у нас до сих пор лежат на полке пара модулей ADAM-4019 в которых контрольная сумма в режиме проверки оной на самом деле полностью игнорируется. Точнее, почти полностью. Почти - потому что модуль проверяет, что пакет имеет в конце 2 байта, отводимые под контрольную сумму, вот только значение их может быть каким угодно - в любом случае модуль ADAM-4019 выдаст ответ. Соответственно при использовании на одной линии нескольких модулей ADAM-4019 могут возникнуть следующие нежелательные ситуации: например, на линии два модуля ADAM-4019 с адресами 2 и 3. В случае, искажения одного бита в байте с адресом, - таком, что 2 превратится в 3, - вместо 2-го модуля ответит 3-й и распознать это по ответу будет невозможно, т.к. в ответе адрес отвечающего не указывается, а контрольную сумму никто из модулей не проверяет и, следовательно, не распознает искажение адреса. В результате мы отказались от использования модулей ADAM-4019 и снова вернулись к ADAM-4018. Когда появились модули ADAM-4019+, мы решили попробовать сменить 4018 модули на 4019+, которые помимо индивидуальной настройки каналов (диапазон напряжения или тип термопары) позволяют определять обрыв термопары. В задаче, которая перед нами была поставлена, использовались термопары типа S. Однако, переход на модуль ADAM-4019+ не состоялся по следующим причинам. Проблема с ADAM-4019+ Прежде чем говорить о проблеме, сразу скажу, что проблемы с игнорированием контрольной суммы в этих модулях нет. Если проверка контрольной суммы включена, то она, действительно, проверяется. Теперь о проблеме. При настройке каналов измерения на тип термопары S (R, B) выяснилось, что значения температуры можно получать начиная только с 500 С. В модулях же ADAM-4018 температурные значения для S (R, B)-термопары возвращаются, начиная с 0 С. И это правильно, т.к. большинство градуировочных таблиц термопар начинаются с 0 мВ и позволяют уже с самого начала определять температуру, пусть не с такой точностью, как в рабочем диапазоне, но с точностью, достаточной для диагностики. Например, пользователь уже на ранних стадиях нагрева в системе может определить такие неисправности, как нарушение полярности при подключении термопары, или неисправность нагревателя, а также вообще отслеживать процесс нагрева еще до достижения начального порога того диапазона, что указан в спецификации. В модулях же ADAM-4019+ (и, возможно, в модулях ADAM-4019 - этот факт нами не проверялся) до тех пор, пока температура термопары не достигнет начальной границы диапазона (например, 500 С для S-термопары), в ответ на запрос значения (команда #AA) возвращается значение "-999999". Если же использовать модуль ADAM-4019+ в режиме измерения напряжения, то тогда невозможно определять обрыв термопары, т.к. проверка обрыва термопары производится только при настройке канала на конкретный тип термопары. Единственный обходной вариант - это использовать для каждой термопары по 2 канала модуля ADAM-4019+, один настроенный на измерение напряжения, а второй - на тип термопары. По второму каналу определять обрыв термопары, а по первому выполнять вычисление температуры во всем диапазоне, который предоставляется градуировочной таблицей термопары. Однако, очевидно, что при таком подходе к одному модулю ADAM-4019+ можно будет подключить только 4 термопары. Не говоря о программных издержках подобного решения. ------------------------------------------------------------------------------------------------------------------ Данное сообщение не содержит вопросов, а было размещено с целью информирования. Возможно, для кого-то оно окажется полезным. Спасибо за внимание. |
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 02 Октябрь 2007 Категория: Russian Federation Online Status: Offline Публикации: 427 |
|
Зашибись! |
|
При экспериментах ни один чайник не пострадал
----------- Плохому системному интегратору всегда OPC сервер мешает. ______________ Пишу на C++ за еду |
|
Новичок Присоединился: 09 Сентябрь 2005 Категория: Russian Federation Online Status: Offline Публикации: 8 |
|
Забыл добавить : приветствуются любые замечания и поправки. Возможно, у кого-то есть свои соображения по поводу вышеописанных проблем и способов их решения. |
|
Ответить |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |