<< Click to Display Table of Contents >> Navigation: Проект > Элементы дерева объектов > Палитра ФБ > Служебные > Скрипт > Руководство и примеры > Начало работы > Отладка скриптов |
Какого либо механизма пошаговой отладки для скриптов в MasterSCADA нет. Как правило это не является проблемой, так как скрипты редко превышают 50-70 строк кода, а в таком коде ошибку можно найти и без отладчика. Но если вы пишите большой скрипт, со сложным алгоритмом или с обращением к объектной модели MasterSCADA, то отладчик пригодится - в этом случае можно воспользоваться внешней отладкой в Visual Studio.
Начать нужно с того, что установить на компьютер Visual Studio - вы можете скачать данный пакет с сайта Microsoft. При установке достаточно указать только компоненты для разработки проектов на языке C#.
В скрипте нужно добавить специальный метод:
System.Diagnostics.Debug.Assert(false);
Когда скрипт исполняется данную функцию, то срабатывает исключение и код скрипта перехватывается Visual Studio, после чего можно начинать отладку.
Лучше всего разместить такой код в методе Start - исключение появится сразу при старте MasterSCADA.
Отключим у нашего скрипта режим библиотечного, и добавим данный метод.
Теперь запускаем Visual Studio и выбираем пункт Debug - Attach to Process.
Находим в списке MasterSCADA и жмем Attach.
Готово. Запускаем проект, появляется окно сбоя, в нем нажимаем на Повтор.
Это вызовет отладку, и откроется Visual Studio с кодом скрипта.
Нажимаем на Continue - работа MasterSCADA продолжится. Теперь можно добавить в нужном месте точку останова, и дождаться вызова скрипта.
Подадим значение на любой из входов - это вызовет открытие студии и остановки на нашей точке отладки.
Можно добавить переменные в специальное окно Watch - чтобы видеть их значения.
Если вам нужно "поймать" работу скрипта при определенных значениях, то можно задать условную точку останова. Для этого нужно вызвать контекстное меню у точки останова, нажать на Conditions и прописать нужное условие.
В данном случае точка останова сработает только если Параметр1 будет равен 10.
Если вы нашли искомую ошибку, не торопитесь в Visual Studio нажимать на остановку отладки. Исправьте ошибку, закомментируйте метод System.Diagnostics.Debug.Assert(false) если не хотите чтобы Visual Studio открывалась при запуске MasterSCADA, и только после того как ошибка ушла, можно в Visual Studio нажать на Stop Debugging.
Подробнее про отладку в Visual Studio можно прочитать в статье:
https://docs.microsoft.com/ru-ru/visualstudio/debugger/debugger-feature-tour?view=vs-2019
Пример скрипта с кодом данного урока доступен по ссылке.