Определение причины перехода в состояние STOP
Если CPU переходит в состояние STOP из-за ошибки, первое, что нужно
сделать для определения причины перехода в это состояние, - это вывести
для чтения содержимое диагностического буфера. CPU вводит в
диагностический буфер все сообщения, в том числе, сообщение о причине
перехода в состояние STOP и сообщения об ошибках, которые привели к
этому.
Для вывода содержимое диагностического буфера переключите
программатор PG в интерактивный (online) режим, выберите S7-программу и
активируйте вкладку Diagnostics Buffer (Диагностический буфер) с помощью
опций меню: PLC -> Module Information (PLC -> Информация о модуле).
Последнее событие из буфера (первое событие имеет номер 1) и есть
причина перехода CPU в состояние STOP, например, "STOP because
programming error OB not loaded" ("Состояние STOP из-за ошибки программы -
блок ОВ не загружен").
Ошибка, которая привела к переходу CPU в состояние STOP, описана в
предыдущем сообщении, например: "FC not loaded" ("FC не загружен").
Щелчком на номере сообщения Вы можете вывести на экран
дополнительный комментарий в следующем нижнем поле экрана.
Если сообщение касается ошибок программирования в блоке, Вы сможете открыть и отредактировать тот блок, нажав кнопку "Open Block" ("Открыть блок").
Если, например, причиной перехода CPU в состояние STOP является ошибка программирования, Вы можете установить "обстоятельства окружения" фрагмента программы, содержащего ошибку, с помощью вкладки "Stacks" ("Стеки"). Когда Вы откроете вкладку "Stacks" ("Стеки"), Вы увидите B-стек block stack - стек блоков), который показывает расположение вызова всех незавершенных блоков вплоть до блока, в котором находится точка прерывания. Используя кнопку "I stack", Вы получите данные стека прерываний (interrupt stack), показывающего содержание регистров CPU
(аккумуляторов, адресного регистра, регистра блока данных, слово
состояния) в точке прерывания в тот момент, когда произошла ошибка.
Используя кнопку "L stack" (local data stack - стек локальных данных), Вы получите доступ к локальным данным блока, который можно выбрать в окне B-стека. Перейти к окну B-стека можно с помощью щелчка манипулятора "мышь" на соответствующей кнопке.
Мониторинг и модификация переменных (Monitoring and Modifying Variables)
Есть замечательное средство для отладки пользовательской программы -
функция для мониторинга и модификации переменных (Monitoring and Modifying of Variables), использующая VAT-таблицу (таблицу размещения переменных). Состояния сигналов или значения переменных простых типов данных могут быть отображены с помощью этого средства. При наличии доступа к пользовательской программе Вы можете также модифицировать переменные, т.е. изменять состояния сигналов или назначать новые значения.
Предупреждение: Вы должны избегать опасных состояний в Вашей
установке, могущих возникать при изменении значений переменных!
Создание таблицы переменных
Для того, чтобы использовать функцию для мониторинга и модификации переменных (Monitoring and Modifying of Variables), Вы должны создать VAT-т таблицу (таблицу размещения переменных), содержащую переменные и форматы соответствующих данных. Вы можете генерировать до 255 таблиц переменных (VAT1 . VAT255) и назначить им имена в таблице символов (Symbol Table). Максимальный размер VAT-таблицы составляет 1024 строки с содержанием до 255 символов (см. рис. 2.11).
Вы можете создать VAT-таблицу автономно (offline), выбрав
пользовательскую программу Blocks (Блоки), а затем опции меню: PLC -> Monitor/Modify Variables (PLC -> Мониторинг/модификация переменных).
Вы можете определять переменные с помощью абсолютной или символьной адресации и выбрать для них тип данных (формат отображения переменной).
Для изменения выберите строки, затем: View -> Display Format (Вид -> Отобразить формат), или просто щелкните правой кнопкой мыши на заголовке столбца "Display Format" ("Отобразить формат").
Пример таблицы переменных (Variable Table)
Используйте строки комментариев для разделения таблицы на отдельные секции и придания отдельным частям таблицы заголовков. Вы можете также определять вид таблицы, а именно, какие столбцы должны быть отображены.
В любое время Вы можете изменить переменные или формат их
отображения, добавить или удалить строки таблицы. Таблица переменных должна быть сохранена в каталоге объекта Blocks (Блоки) с помощью опций: Table -> Save (Таблица -> Сохранить).