AstraRegul
Руководство системного интегратора
×

6.18. САМОСТОЯТЕЛЬНОЕ ПРАКТИЧЕСКОЕ ЗАДАНИЕ 6.1

Задание. Познакомиться с программной диагностикой работы контроллера.
 
Порядок выполнения.
  • Скачайте архив проекта "Diagn.projectarchive" по ссылке.
  • Запустите среду разработки Astra.IDE.
  • Распакуйте архив проекта.
     
  • Добавьте в "Менеджер библиотек" проекта следующие библиотеки: CmpApp, PsPlcInfo, SysTarget, SysTypes2 Interfaces, CmpErrors2 Interfaces, PsLog.
  • Сохраните и скомпилируйте проект.
  • Запустите виртуальный ПЛК. В сканере сети среды разработки Astra.IDE выполните поиск виртуального ПЛК и назначьте одному из его коммуникационных интерфейсов IP-адрес в подсети сетевой карты компьютера.
  • Выполните "Логин" к виртуальному ПЛК и загрузите в него приложение. Запустите приложение на контроллере кнопкой "Старт" панели инструментов.
  • Перейдите в программу "App_Diag" и оцените представленные в ней данные (описание смотрите в теме "6.12 ПРОГРАММА App_Diag").
    Внесите изменения, добавив новую локальную переменную в программу "App_Diag". Выполните "Логин" к виртуальному ПЛК и загрузите в него приложение. Оцените изменение данных: контрольная сумма приложения, время последнего изменения проекта в ПЛК, данные массивов CodeGuid и DataGuid.
  • Перейдите в программу "AddLog" и изучите ее код (описание смотрите в темах "6.13 ПРОГРАММА AddLog" и "6.14 МЕТОДЫ ПРОГРАММЫ AddLog").
    Откройте журнал "StdLogger" и убедитесь, что в нем присутствует сообщение "message to Std Logger", записанное кодом программы "AddLog".
    Откройте журнал "myLog" и убедитесь, что в нем присутствует сообщение "message to Custom Logger", записанное кодом программы "AddLog".
    Внесите следующие изменения в код программы "AddLog":
    Выполните "Логин" к виртуальному ПЛК и загрузите в него измененное приложение. Запустите приложение на контроллере кнопкой "Старт" панели инструментов.
    Измените значение переменной "bStarted" в FALSE и запишите его в ПЛК комбинацией клавиш CTRL+F7.
    Откройте журналы "StdLogger" и "myLog" и найдите в них новые сообщения "Warning!!!" и "Alarm!!!". Обратите внимание, что у сообщения "Alarm!!!" в журнале "StdLogger" также изменился значок в колонке "Жесткость".
     
  • Перейдите в программу "PLC_DIAG" и изучите ее код (описание смотрите в теме "6.15 ПРОГРАММА PLC_DIAG").
    В виртуальном ПЛК отсутствует поддержка шины RegulBus. Исходя из этого в части кода "//ДИАГНОСТИКА МОДУЛЕЙ НА НАЛИЧИЕ ФЛАГА АППАРАТНОЙ ОШИБКИ" переменные "HWError" будут иметь значение TRUE.
    Откройте журнал "myLog" и найдите в нем сообщение о неисправности модуля AO. Данное сообщение записывается в журнал благодаря выполнению кода под комментарием "//ЗАПИСЬ ОБ ОШИБКЕ МОДУЛЯ В СОБСТВЕННЫЙ ЖУРНАЛ по детектору фронта".
    Оцените данные, записываемые в структурную переменную "sysinfo".
  • Перейдите в программу "POU_test" и изучите ее код (описание смотрите в теме "6.17 ПРОГРАММА POU_test").
    Задайте элементам массива "var_array" произвольные подготовленные значения и запишите их в контроллер комбинацией клавиш "CTRL+F7".
    Задайте переменной "start" подготовленное значение TRUE и запишите его в контроллер комбинацией клавиш "CTRL+F7". Через некоторое время переменные массива "var_array" будут обнулены и ПЛК перейдет в исключение (желтая стрелка покажет участок кода, выполнение которого привело к исключению).
  • Добавьте в приложение проекта POU для неявных проверок "CheckBounds". Сохраните и скомпилируйте проект. Выполните "Логин" к виртуальному ПЛК и загрузите в него измененное приложение. Запустите приложение на контроллере кнопкой "Старт" панели инструментов.
  • Задайте элементам массива "var_array" произвольные подготовленные значения и запишите их в контроллер комбинацией клавиш "CTRL+F7". Задайте переменной "start" подготовленное значение TRUE и запишите его в контроллер комбинацией клавиш "CTRL+F7".
  • Убедитесь, что переменные массива "var_array" будут обнулены и ПЛК в исключение не переходит.
  • В программе "POU_test" переменной "var3" задайте подготовленное значение 0 и запишите его в контроллер комбинацией клавиш "CTRL+F7". Задайте переменной "start" подготовленное значение TRUE и запишите его в контроллер комбинацией клавиш "CTRL+F7".
    Убедитесь, что ПЛК в исключение не перешел и в переменную "strExceptionText" записана строка 'RTSEXCPT_DIVIDEBYZERO', поясняющая о выполнении деления на ноль.