Отладка скриптов

<< 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.

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

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov

Теперь запускаем Visual Studio и выбираем пункт Debug - Attach to Process.

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov1

Находим в списке MasterSCADA и жмем Attach.

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov2

Готово. Запускаем проект, появляется окно сбоя, в нем нажимаем на Повтор.

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov3

Это вызовет отладку, и откроется Visual Studio с кодом скрипта.​

Нажимаем на Continue - работа MasterSCADA продолжится. Теперь можно добавить в нужном месте точку останова, и дождаться вызова скрипта.

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov4

Подадим значение на любой из входов - это вызовет открытие студии и остановки на нашей точке отладки.

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov5

Можно добавить переменные в специальное окно Watch - чтобы видеть их значения.

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov6

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov7

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

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov8

В данном случае точка останова сработает только если Параметр1 будет равен 10.

Если вы нашли искомую ошибку, не торопитесь в Visual Studio нажимать на остановку отладки. Исправьте ошибку, закомментируйте метод System.Diagnostics.Debug.Assert(false) если не хотите чтобы Visual Studio открывалась при запуске MasterSCADA, и только после того как ошибка ушла, можно в Visual Studio нажать на Stop Debugging.

sluzhebnie_skript_rukovodstvo_i_primery_nachalo_raboty_otladka_skriptov9

Подробнее про отладку в Visual Studio можно прочитать в статье:

https://docs.microsoft.com/ru-ru/visualstudio/debugger/debugger-feature-tour?view=vs-2019

Пример скрипта с кодом данного урока доступен по ссылке.