Страница 280 из 293 ПерваяПервая ... 180230270278279280281282290 ... ПоследняяПоследняя
Показано с 2,791 по 2,800 из 2924

Тема: CODESYS V3.5. Вопросы и ответы

  1. #2791

    По умолчанию

    проект пустой...убрал почти все...........не каких ошибок при компиляции а дальше ...ошибка.png
    *EXCEPTION* [AccessViolation] occurred: App=[Application], Task=[MainTask]

  2. #2792

    По умолчанию

    Цитата Сообщение от Максим Ульянов Посмотреть сообщение
    проект пустой...убрал почти все...........не каких ошибок при компиляции а дальше ...ошибка.png
    *EXCEPTION* [AccessViolation] occurred: App=[Application], Task=[MainTask]
    Если в этом состоянии сделать загрузочное приложение и перезагрузить контроллер - что произойдет?

  3. #2793

    По умолчанию

    это и происходит...больше не чего..

  4. #2794

  5. #2795

    По умолчанию

    Добрый вечер!

    Взрыл всё, что мог, но не могу решить вопрос с Менеджером тревог.

    Собственно задача в том, чтобы иметь возможность сбрасывать все текущие тревоги "одной кнопкой", но чтобы они повторно срабатывали с установленной у них задержкой.

    Дело в том, что на нашем оборудовании есть тревоги, которые необходимо, что срабатывали снова после подтверждения. Например, при холодном пуске, пока установка не выйдет на режим, но защиты надо отрабатывать всё-равно.

    Банальный пример:

    Есть дверца в топку. Если она открыта слишком долго - сработает тревога. Но есть вероятность, что её подтвердят. И тогда при повторной ситуации, тревога просто не сработает. А мне надо, что при подтверждении таймер задержки срабатывания запускался снова.

    Либо я совсем запутался и не понимаю, как работают различные режимы подтверждения.

  6. #2796

    По умолчанию

    Цитата Сообщение от ComradeBulkin Посмотреть сообщение
    Добрый вечер!

    Взрыл всё, что мог, но не могу решить вопрос с Менеджером тревог.

    Собственно задача в том, чтобы иметь возможность сбрасывать все текущие тревоги "одной кнопкой", но чтобы они повторно срабатывали с установленной у них задержкой.

    Дело в том, что на нашем оборудовании есть тревоги, которые необходимо, что срабатывали снова после подтверждения. Например, при холодном пуске, пока установка не выйдет на режим, но защиты надо отрабатывать всё-равно.

    Банальный пример:

    Есть дверца в топку. Если она открыта слишком долго - сработает тревога. Но есть вероятность, что её подтвердят. И тогда при повторной ситуации, тревога просто не сработает. А мне надо, что при подтверждении таймер задержки срабатывания запускался снова.

    Либо я совсем запутался и не понимаю, как работают различные режимы подтверждения.
    Добрый день.

    Вы можете поставить режим подтверждения ACK и при нажатии на кнопку квитирования сбрасывать сами сигналы тревог (я исхожу из того, что у них задан тип "дискретный") и перезапускать таймер(-ы), которые будут определять момент, в который тревоги будет активированы повторно (если их условия к этому моменту все еще выполняются).

    Или можно просто использовать режим ACK_REP - тогда после квитирования тревога все равно останется в таблице, исчезнет только после снятия условия.

  7. #2797

    По умолчанию

    А еще проще всю логику описать в коде, а в Alarm выбрасывать уже готовый флаг тревог. Я со временем к этому пришел. Подумываю уже совсем отказаться от Alarm Manager.

  8. #2798

    По умолчанию

    Цитата Сообщение от Евгений Кислов Посмотреть сообщение
    Добрый день.

    Вы можете поставить режим подтверждения ACK и при нажатии на кнопку квитирования сбрасывать сами сигналы тревог (я исхожу из того, что у них задан тип "дискретный") и перезапускать таймер(-ы), которые будут определять момент, в который тревоги будет активированы повторно (если их условия к этому моменту все еще выполняются).

    Или можно просто использовать режим ACK_REP - тогда после квитирования тревога все равно останется в таблице, исчезнет только после снятия условия.
    Спасибо. Собственно я к этому также и склоняюсь. Жаль, что нет в библиотеке Менеджера тревог такой функции. Как минимум странно, что после деактивации счётчик не запускается снова, а сработка происходит сразу. Или есть в этом смысл?

  9. #2799

    По умолчанию

    Цитата Сообщение от RV9WFJ Посмотреть сообщение
    А еще проще всю логику описать в коде, а в Alarm выбрасывать уже готовый флаг тревог. Я со временем к этому пришел. Подумываю уже совсем отказаться от Alarm Manager.
    Да, видимо вариантов других нет. Жаль только, что придётся таймерами перегружать систему.

  10. #2800

    По умолчанию

    Цитата Сообщение от ComradeBulkin Посмотреть сообщение
    Да, видимо вариантов других нет. Жаль только, что придётся таймерами перегружать систему.
    А много у вас параметров ?
    У себя я организовал обработку тоже в коде
    В alarmGroup вставлен массив строк
    Так же созданы классы тревог ( для закраски разными цветами)

    Далее в коде идет обработка


    Код:
    (*
    1-10 : статусы
    11-30: связь
    31-40: запрос обслуживания
    41-99: ошибка
    
    
    *)
     
    
    //Статусы состояния
    
    
    //Статусы - связи
    awsMessageJournalLatch2[11] :=ptawsName_Mb_dev^[1];
    awsMessageJournalLatch2[12] :=ptawsName_Mb_dev^[2];
    awsMessageJournalLatch2[13] :=ptawsName_Mb_dev^[3];
    awsMessageJournalLatch2[14] :=ptawsName_Mb_dev^[4];
    awsMessageJournalLatch2[15] :=ptawsName_Mb_dev^[5];
    awsMessageJournalLatch2[16] :=ptawsName_Mb_dev^[6];
    
    
    
    afbAlarmTrgiggerDelay[11].IN:=D1_4301_MU210_501.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
    afbAlarmTrgiggerDelay[12].IN:=D2_4301_MV210_101.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
    afbAlarmTrgiggerDelay[13].IN:=D1_3003_MV210_202.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
    afbAlarmTrgiggerDelay[14].IN:=D2_3003_MV210_101.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
    afbAlarmTrgiggerDelay[15].IN:=D3_3003_MU210_410.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
    afbAlarmTrgiggerDelay[16].IN:=D4_3003_MV210_101.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
    // Журнал событий
    awsMessageJournalLatch1: ARRAY [1..100] OF WSTRING(20);
    awsMessageJournalLatch2: ARRAY [1..100] OF WSTRING(60);
    afbAlarmTrgiggerDelay: ARRAY [1..100] OF oscatbasic.TONOF;


    В таком решении, очень просто переносится журнал из проекта в проект, т.к. таблица тревог всегда одна и та же, а весь текст в коде
    Одна и та же дискретная переменная идет в два способа наблюдений:
    Способ наблюдения Дискретный - для текущего журнала ( класс ошибки без архивации)
    Способ наблюдения Изменение - для исторического (класс ошибки с архивацией)

    Screenshot_110.png
    Screenshot_111.png
    Screenshot_112.png
    Последний раз редактировалось VladGC; 12.11.2020 в 09:49.

Страница 280 из 293 ПерваяПервая ... 180230270278279280281282290 ... ПоследняяПоследняя

Похожие темы

  1. Панели оператора ИП320. Вопросы и ответы
    от automat в разделе Панели оператора (HMI)
    Ответов: 550
    Последнее сообщение: 14.01.2021, 16:50
  2. Панели оператора СП3xx. Вопросы и ответы
    от Мурат Ахриев в разделе Панели оператора (HMI)
    Ответов: 1987
    Последнее сообщение: 02.01.2021, 16:58
  3. ИПП120. Вопросы и ответы
    от Р.Александр в разделе Программируемые реле
    Ответов: 206
    Последнее сообщение: 01.12.2020, 12:00
  4. Индикатор ИП120 , вопросы- ответы
    от rovki в разделе Программируемые реле
    Ответов: 56
    Последнее сообщение: 03.11.2017, 15:58
  5. Панели оператора СП270. Вопросы и ответы
    от Давидюк в разделе Панели оператора (HMI)
    Ответов: 930
    Последнее сообщение: 15.05.2017, 17:12

Ваши права

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