Создание сторожевого таймера (Watchdog) между ПЛК/HMI и Dream Report

Во время генерации отчёта, пользователь может использовать возможность Dream Report записать значение обратно в источник данных: в тэг HMI, регистр ПЛК, используя драйвер доступа к источнику данных реального времени.  Для этого можно создать «пустой» отчёт, который генерируется по расписанию, например каждую минуту, или отчёт, который генерируется по событию – изменению значения переменной в ПЛК/HMI, а затем использовать этот отчёт для записи значения тэга обратно в источник данных - ПЛК/HMI.

Для этого необоримо сделать следующее:

  1. В студии Dream Report создать новый отчёт и в свойствах этого отчёта, на вкладке “Определение времени отчёта”, установить “Выполнять отчёт каждые” 00:01:00 (например, каждую 1 минуту):


2. В настройках отчёта, на вкладке “Формат имени отчёта”, необходимо убедиться в том, что используется только имя, это означает, что отчёт будет перезаписан каждый раз, когда он будет генерироваться, например:


3. Далее нужно добавить в отчёт Объект выражение и установить значение 0:


4. На вкладке «Внешний вид «Объекта выражение», нужно выбрать опцию “Записать результат обратно в тэг” и указать тэг ПЛК/HMI, куда будет записываться это значение:


5. Далее, необходимо сохранить и перезагрузить проектt

Во время работы проекта Dream Report, “пустой” отчёт будет генерироваться каждую минуту и записывать “0” в тэг ПЛК/HMI.  Это позволяет пользователю создавать простую логику для сторожевого таймера в ПЛК или HMI, например, периодическое увеличение значения на 1 значения регистра ПЛК, и, если в алгоритме в течение какого периода времени не встречается значение “0” (или видно, что регистр постоянно увеличивает своё значение и никогда не сбрасывается в 0), то это может означать следующее:

  • Проект Dream Report не работает;

 или

  • Dream Report работает, но не может получить доступ к регистрам ПЛК/HMI для записи значения обратно, что означает, что имеется проблема со связью между Dream Report и ПЛК/HMI.

Существуют также и другие способы создать логику для «сторожевого таймера», но ключевым моментом для всех из них, будет использование опции “Записать результат обратно в тэг”.