Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14

Тема: Блок обработки ошибок

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Question Блок обработки ошибок

    Доброе время суток.
    Подскажите как можно правильно реализовать данной мероприятие? Работаю в основном с ПР100.
    В проектах, у меня есть много своих ФБ, которые по различным условиям, могут выдавать ошибки. Т.е., выходные данные из блоков это число. Число передается в переменную. А эта переменная должна пойти в ФБ, где будет обрабатываться. Т.е., остановит оборудование и по номеру ошибки на дисплеи выведет номер ошибки. Проблема в том, что одну и туже переменную нельзя же перезаписать. Как тогда быть то?
    Подскажите. Заранее спасибо.

  2. #2

    По умолчанию

    У вас одна переменная ошибки на все ФБ?

  3. #3

    По умолчанию

    Цитата Сообщение от 1exan Посмотреть сообщение
    У вас одна переменная ошибки на все ФБ?
    Error - булевая переменная, которая показывает что есть авария.
    ErrorNum - целочисленная переменная, которая и передает номер ошибки.

  4. #4

    По умолчанию

    Цитата Сообщение от PAVGroup Посмотреть сообщение
    Error - булевая переменная, которая показывает что есть авария.
    ErrorNum - целочисленная переменная, которая и передает номер ошибки.
    Вот пример на 12 аварий, код аварии запоминается и выводится на экран (по очереди) или мигает на F1.

    Если у вас вышел код 1, сравниваете с 1 и включаете 1 вход. Код 2 включаете 2 вход и т. д.
    Вложения Вложения
    Последний раз редактировалось kondor3000; 08.04.2026 в 14:03.

  5. #5

    По умолчанию

    Цитата Сообщение от kondor3000 Посмотреть сообщение
    Вот пример на 12 аварий, код аварии запоминается и выводится на экран (по очереди) или мигает на F1.

    Если у вас вышел код 1, сравниваете с 1 и включаете 1 вход. Код 2 включаете 2 вход и т. д.
    Это не много не то. Мне ненужно привязывать к физическим входам и выходам.

  6. #6

    По умолчанию

    А где хранится номер ФБ, которая сгенерировала ошибку?
    Если 2-е и более ФБ выдают разные ошибки?

  7. #7

    По умолчанию

    Не совсем понял

  8. #8
    Пользователь
    Регистрация
    09.12.2013
    Адрес
    Ставрополь
    Сообщений
    2,170

    По умолчанию

    Цитата Сообщение от PAVGroup Посмотреть сообщение
    Не совсем понял
    У вас две и более одновременно активных ошибок. Что будет в переменной ErrorNum?

  9. #9

    По умолчанию

    К примеру у меня есть 5 моих ФБ. 4 рабочие ФБ процесса. У которых выходные данные ErrorNum. К примеру = 1 (обрыв цепи).
    Вот значение этой переменной ErrorNum, должно улететь в 5й ФБ который будет обрабатывать ошибки. На вход у него подается ErrorNum, он обрабатывает. На выходе Error = true - Авария (этот сигнал потом остановит оборудование), ErrorNumIPP - передает номер ошибки на панель. Оператор это видит.

  10. #10

    По умолчанию

    Цитата Сообщение от PAVGroup Посмотреть сообщение
    К примеру у меня есть 5 моих ФБ. 4 рабочие ФБ процесса. У которых выходные данные ErrorNum. К примеру = 1 (обрыв цепи).
    Вот значение этой переменной ErrorNum, должно улететь в 5й ФБ который будет обрабатывать ошибки. На вход у него подается ErrorNum, он обрабатывает. На выходе Error = true - Авария (этот сигнал потом остановит оборудование), ErrorNumIPP - передает номер ошибки на панель. Оператор это видит.
    Если будет остановка по событию, то Вам нужно фиксировать какой ФБ вызвал остановку и по какой ошибке.
    Примерно так:
    Код:
    function_block FixError
        
        var_input
            ErrorFromFB1, ErrorFromFB2, ErrorFromFB3, ErrorFromFB4 : udint; // Состояние ФБ
        end_var
        
        var_output 
            ErrorFB, ErrorCode : udint; // Кто? Чего?
        end_var
        
        if ErrorFromFB1 > 0 then
            ErrorCode := ErrorFromFB1; ErrorFb := 1;
        elsif ErrorFromFB2 > 0 then
            ErrorCode := ErrorFromFB2; ErrorFb := 2;
        elsif ErrorFromFB3 > 0 then
            ErrorCode := ErrorFromFB3; ErrorFb := 3;
        elsif ErrorFromFB4 > 0 then
            ErrorCode := ErrorFromFB4; ErrorFb := 4;
        else
            ErrorCode := 0; ErrorFb := 0;
        end_if    
    end_function_block

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. Быстродействие обработки сигналов.
    от FlameAtomicFox в разделе ПЛК2хх
    Ответов: 1
    Последнее сообщение: 03.02.2025, 06:51
  2. ПЛК для быстрой обработки аналоговых входов.
    от Вячеслав@ в разделе Подбор Оборудования
    Ответов: 15
    Последнее сообщение: 25.06.2019, 08:37
  3. Ошибка обработки рекурсивной формулы
    от Kruschens в разделе Среда программирования OWEN Logic
    Ответов: 3
    Последнее сообщение: 08.01.2018, 09:24
  4. Ответов: 6
    Последнее сообщение: 07.03.2012, 18:35
  5. Передача данных для обработки
    от Михаил Геннадьевич в разделе Эксплуатация
    Ответов: 2
    Последнее сообщение: 17.06.2009, 15:26

Ваши права

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