Cтраница 2
Схема отладки и количество выполняемых отладочных функций в заданных точках может динамически меняться. [16]
Кроме общего периода печати в директиве TR может быть задан и индивидуальный период печати ( иппч), который отменяет общий период и действует только на отладочную функцию своей перфокарты. Если директива TR предусматривает единственную отладочную функцию, то либо оппч, либо иппч можно не задавать. [17]
Базовый состав комплекса программирования ПЛК состоит из двух обязательных частей: системы исполнения и рабочего места программиста. Система исполнения функционирует в контроллере и, кроме непосредственно исполнения управляющей программы, обеспечивает загрузку кода прикладной программы и отладочные функции. Естественно, система исполнения должна иметь связь с компьютером рабочего места программиста. Как физически организована связь ПК и ПЛК, не столь важно. В простейшем случае ПЛК подключается к компьютеру через стандартный corn - порт ( RS232) нуль-модемным кабелем. [18]
На стадии редактирования формируется объединенный загрузочный модуль, выполнение которого начинается с начальной отладочной секции, По директиве TEST OPEN производится перенастройка указанного отлаживаемого модуля. В заданные отладочные точки заносятся команды SVC, которые в дальнейшем будут вызывать прерывания, перехватываемые интерпретатором Тестрана. Сведения, накапливаемые при исполнении отладочных функций, переносятся в набор данных с именем SYSTEST. Затем эта информация может быть распечатана редактором Тестрана. Общая схема построения отладочного процесса представлена на рис. 6.4. При этом вовсе не обязательно, чтобы указанные шаги выполнялись в пределах одного задания. [19]
Для более серьезной отладки программ, написанных на ассемблере, в составе операционной системы ОС ЕС имеется специальный транслятор - Тестран. То, что мы называли отладочным заданием в ДОС ЕС, в операционной системе ОС ЕС представляет, по сути дела, целую программу. Язык отладочных директив Тестрана предусматривает не только возможность выполнить те или иные отладочные функции в заданных точках отлаживаемой программы. В задании на отладку могут быть определены логические и арифметические переменные, значения которых можно изменять в зависимости от поведения отлаживаемой программы. Эти переменные могут быть подвергнуты анализу, по результатам которого можно изменить порядок выполнения отладочных акций. [20]
Процессор ATNL-интерпретатора состоит из двух блоков: ПОДГ и ИНТ. В блоке ПОДГ реализуется анализ директив языка отладки и подключение соответствующих им РЕФАЛ-модулей к промежуточному представлению ATNL-программы. Таким образом, при реализации языка отладки в ATNL-интерпретаторе используется принцип конвертирования директив отладки в обращения к специальным отладочным функциям. [21]
Кроме того, ограничение поддерживаемых типов данных возможно даже в рамках одного комплекса программирования для разных контроллеров. Так, восьмиразрядный генератор кода CoDeSys не поддерживает действительные переменные, перечисления и переменные, выражающие время суток и календарную дату. Ограничение поддержки типов диктуется достижением минимальной стоимости при максимальной эффективности ПЛК различных категорий. Так, полная реализация ядра системы исполнения CoDeSys ( включая отладочные функции и трассировку значений переменных) для Intel 8051 совместимого микроконтроллера требует всего 6 Кб памяти кода. Естественно, что и код прикладной программы должен быть максимально компактным, для чего приходиться идти на определенные компромиссы. [22]
Программа ATLEDT вносит некоторые изменения в супервизор, обеспечивая за собой право перехвата всех прерываний, возникающих в момент исполнения команды SVC. Поэтому как только отлаживаемая программа выходит на одну из точек отладки, управление передается программе ATLEDT. Последняя анализирует код SVC. Если он оказывается меньше 55, то управление передается супервизору. В противном случае с минимальными накладными расходами выполняются заказанные отладочные функции и по команде SVC с кодом 255 управление возвращается задаче. Между отлаживаемыми точками задача выполняется в таком же режиме, как если бы она работала самостоятельно. [23]