У ОВЕН ПЛК200 на вебстранице есть опция перезагрузки по исключению. Вот зачем так делать, если это не работает? Чуть тепловой пункт не заморозил. Не перезагрузился он. Поймал исключение и повис в каком-то своем состоянии Исключение поймать можно и не деля на ноль

Комментарии: 12

  1. Anton

    Вот поэтому и надо перехватывать все исключения и решать, что делать в каждом конкретном случае.

    • Vyacheslav

      Вы правы, но не уверен, что если оно сглючило, то способно что-нибудь выполнить. Работы столько, что нет времени на такие стендовые эксперименты

      • Anton

        Ещё раз: разберитесь, _как_ считает ПЛК. Коротко: очень много ошибок вы просто не_сможете выловить тупыми проверками. Оно не сглючило, а вызвало обработчик по умолчанию, который вы поленились написать. Создатели ПЛК ведь не_знают, что нужно сделать в каждом конкретном применении ПЛК, ибо это знает только тот, кто использует этот ПЛК.

        • Gabrrr

          Пример?

          • Anton

            Пример чего?

            • Gabrrr

              Пример того, когда нельзя поймать деление на ноль проверкой знаменателя. Ну или хотя бы того, того что "не_сможете выловить тупыми проверками" Я, если что не против обработчика, понятно что он нужен. Но не очень понимаю, какая проблема конкретно в этом случае моет таиться

              • Anton

                Откройте список исключений FPU по IEEE-754 и попытайтесь понять, когда они возникают. Проблема в не_правильном подходе к решению. Вместо системного подхода используется латание дыр.

                • Gabrrr

                  Если у тебя не валидный ввод, то его тоже как бы надо править. Ну да ладно.

                • Vyacheslav

                  Вы бы минимальный пример выложили или ссылку на обработчик. Тут не только в лени дело. Когда картошку копать начинаешь, нужно быть уверпнным что ее вскопаешь

                  • Anton

                    Так ведь вы работаете с КДС, а не я. Вас там чё, всех разом в Гугле забанили? Имена коллбэков даже привёл, неужели сами дальше не можете найти описание что и как делать?

                    • Vyacheslav

                      Ну нет не обидно. Там и правда мусора много больше, чем полезной информации и Вы правы - скорее всего не умею гуглить. Но с работой справляюсь. Не с исключениями, а именно с причинами. Просто убрал горы ошибок и сдал объекты

                • Ilya

                  IF divisor = 0 THEN CheckDivInt:=1; ELSE CheckDivInt:=divisor; END_IF; Вот без латания дыр) в КДС

Не нашли ответ?

Вам также может быть интересно