Показано с 1 по 7 из 7

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

  1. #1

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

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

  2. #2

    По умолчанию

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

  3. #3

    Post Ща поможем!!!

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

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

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

  4. #4

    По умолчанию

    Да, вариантов несколько. Для внутренних входов АЦП на ПЛК применяйте FB "Decode_Float".
    Тролль-наседка, добрый, нежный и ласковый

  5. #5

    По умолчанию

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

    OwenError[LastAddr] := LastErr;

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

  6. #6

    По умолчанию

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

  7. #7

    По умолчанию

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

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •