PDA

Просмотр полной версии : Не работают точки останова в системных событиях



Сергей_М
09.08.2013, 14:47
Для ПЛК 150И-М создал PLC_PRG из ;

В глобальных переменных создал a: BYTE := 0; и b:BYTE := 0;

В конфигурации задач вставил PLC_PRG как свободную

В Системных событиях добавил обработчик Start -
FUNCTION mmm: DWORD
VAR_INPUT
dwEvent: INT;
dwFilter: INT;
dwOwner: INT;
END_VAR

a := a +1;
Через создать POU

И After Reset -
FUNCTION ooo: DWORD
VAR_INPUT
dwEvent: INT;
dwFilter: INT;
dwOwner: INT;
END_VAR

b := b +1;

В конфигурацию ПЛК добавил Button
Подключаюсь. Загружаюсь. Создаю загрузочный проект.
Старт ещё не нажал, поэтому ещё a = 0 и b = 0
Ставлю точки останова в обработчиках.
Нажимаю Старт.

Нигде не останавливаюсь

и при этом a = 1, b = 0
Старт и после Стоп и a = 2, b = 0
Нажимаю Сброс: a = 0, b = 1

На точках останова не остановился ни разу

А в PLC_PRG - где не ставил точки - останавливался иногда.

Почему? Как сделать чтобы остановиться?

Сергей_М
20.08.2013, 16:38
Да не больно то и надо... Я подумал - они мне зачем? Чтобы заполнить из файла стёршиеся значения при ресете. Локальная переменная - ноль по умолчанию. Если ноль - так я выполняю вытаскивание из файла и пишу в неё единичку. Другой раз ноль случиться лишь из-за тех же start/after_reset event.
Ещё приходилось следить - ссылки на pou в эвентах стираются при смене таргета. Среди трех десятков к 150И-L есть несколько 150И-М - всё опыты...