6.18. САМОСТОЯТЕЛЬНОЕ ПРАКТИЧЕСКОЕ ЗАДАНИЕ 6.1
Задание. Познакомиться с программной диагностикой работы контроллера.
Порядок выполнения.
-
Запустите среду разработки 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', поясняющая о выполнении деления на ноль.