PDA

Просмотр полной версии : ПЛК+МВА8: Проблема отключения датчика



Евгений Пашигоров
30.05.2007, 09:10
Не могу решить проблему.
установка работает под управлением ПЛК100 + МВА8.
особенность технологии в том, что операторы подключают несколько датчиков в ходе техпроцесса. Надо видеть, подключился датчик или нет (по корректному показанию температуры). У меня не получается так сделать.
Подсказывали, что в модуле Овен Мастер есть код ошибки, но я не могу сообразить, как им воспользваться. Ведь Мастер опрашивает МВА8 по своему времени, а программа пользователя в ПЛК считывает данные в другое время. К тому моменту код ошибки уже давно сменился.
И в описании кодов ошибок ОВЕН МАСТЕР я не нашел такой как "датчик отключен", или "показания слишком велики/малы".
Может ли кто внести ясность в этот вопрос?
Если бы был пример кода на ST, было бы вообще замечательно.

Филоненко Владислав
30.05.2007, 09:45
1. Надо считывать и анализировать коды ошибок каждый цикл ПЛК, тогда не пропустите. Алгоритм (упрощённо)
а. Определить прибор, канал и параметр по переменным Last Address и LastHash.
б. Если есть ошибка - Last Error!=0, то проанализировать, это ошибка или исключение, типа "обрыв датчика". Коды ошибок и их расшифровка даны в описании настройки конфигурации.

Gans
30.05.2007, 16:43
Сейчас расскажу, что лично я нашел.
Я использую модбас-рту (для протокола ОВЕН все аналогично) там в «ПЛК конфигуратьйон» надо добавить ещё один вход для контроля каждого датчика. В таблице (для каждого протокола свои коды неисправности датчика), а для ПЛК15х для внутренних входов - вообще свои замуты.
Например для входа 1 МВА8:
В таблица №6 (для модбас) в руководстве пользователя МВА8:
Адрес регистра измеренного значения – 0004,0005.
Адрес кода ошибки - 0002.

Код ошибки - два байта (для протокола ОВЕН - один байт) он содержит код состояния входа (для протокола ОВЕН – таблица Г.4 в руководстве пользователя МВА8).
Далее можно программно (используя IF..Then..Else или Case…) адекватно реагировать на состояние входа.

P. S. если что не смог доходчиво объяснить, уточни где пропустил.

Филоненко Владислав
31.05.2007, 10:22
Да, вариантов несколько. Для внутренних входов АЦП на ПЛК применяйте FB "Decode_Float".

Евгений Пашигоров
20.07.2007, 09:24
1. Надо считывать и анализировать коды ошибок каждый цикл ПЛК, тогда не пропустите. Алгоритм (упрощённо)
а. Определить прибор, канал и параметр по переменным Last Address и LastHash.
б. Если есть ошибка - Last Error!=0, то проанализировать, это ошибка или исключение, типа "обрыв датчика". Коды ошибок и их расшифровка даны в описании настройки конфигурации.

Пытаюсь так делать, но не получается.
Прибор у меня один. Считываю Last error в массив ошибок:

OwenError[LastAddr] := LastErr;

И уже здесь непонятности. Модуль МВА8 имеет базовый адрес 16, значит
работаем с адресами с 16 по 23. А когда смотрю в Codesys (так как мой код
не работает), там выскакивают адреса и 160, и 184 (??).
Откуда они берутся?

Филоненко Владислав
20.07.2007, 11:56
это 11 битный адрес (к которому реально преобразуется 8-ми битный), у к-го 1-е 3 бита=0, сдвиньте адрес на 3 бита вправо.

Andu
30.09.2009, 12:18
Нужна помощь! Как на практике в протоколе ОВЕН реально отследить коды ошибок датчика при помощи ПЛК?
ПЛК100 связан с МВА8 по протоколу ОВЕН. При нештатной ситуации в поле Last Error, как и положено, содержаться коды. Проблема в том, что эти коды отличны от тех, которые приведены в таблице ошибок работы модуля Овен (Мастер), да и нет в той таблице нужных кодов. Есть только коды ошибок работы приборов в сети.
Вот, например при обрыве, появляется число 3328, а при к.з. числа 3072, либо 2560. В поле Last hash стабильно висит число 34692, при любых ситуациях. Значение опрашиваемой переменной зависает на последнем корректном значении, хотя как я понимаю, в ней должен быть код ошибки. Блок Decode_float куда я только не привязывал, там стабильный ноль. Я не могу понять, как и где искать истинный код ошибки датчика? Есть ли где-нибудь четкое описание как это делается?