PDA

Просмотр полной версии : Сброс переменных при старте ПЛК160



GSK
30.05.2016, 17:00
Добрый день.

Подскажите пожалуйста как сделать так, что бы каждый раз при старте программы сбрасывались в ноль некоторые переменные.
Контроллер ПЛК160 . Кнопка привязки POU к событиям старт-стоп в конфигураторе задач неактивна( Кстати, почему?

Заранее спасибо.

GSK
31.05.2016, 08:22
С кнопкой "Создать POU" разобрался )
Кому интересно последовательность такая:
1. Заходим в конфигуратор задач
2. Выбираем "Системные события"
3. Ставим галочку у события start
4. Теперь самое главное ))) Тупо в столбике "Вызываемый POU" пишем название, например My_START
5. Переходим на любую другую ячейку и кнопка "Создать POU" станет активной

GSK
31.05.2016, 10:20
И в результате этих действий ничего не работает)))

GSK
31.05.2016, 10:27
Попробовал обработать событие stop.
При нажатии кнопки "Создать POU" создается функция
FUNCTION SYS_STOP: DWORD
VAR_INPUT
dwEvent: INT;
dwFilter: INT;
dwOwner: INT;
END_VAR
;

При попытке останова программы происходит сброс памяти контроллера.

Если же в качестве обработчика событий использовать не функцию а программу, то все работает.

PROGRAM SYS_STOP1
VAR
END_VAR
;

Где же "собака порылась?".... В чем проблема?

alex_vk
01.03.2017, 15:56
Поддержу вопрос - у меня так же не выполняется функция, подвешенная на системное событие start. (ПЛК-150)

alewka006
01.03.2017, 16:19
Поддержу вопрос - у меня так же не выполняется функция, подвешенная на системное событие start. (ПЛК-150)

На 150-м не работал, а на 160-м есть в конфигурации есть раздел Statistic, в нем есть переменная Power, которая TRUE если есть питание.
В PLC-PRG пишем:
VAR
trig_on : R_TRIG;


trig_on(clk:=Power);
IF trig_on.Q THEN ...

и пишем действия, которые необходимо выполнять каждый раз при включении контроллера

Serhioromano
06.03.2017, 10:04
Я обычно делаю так.

http://www.owen.ru/forum/attachment.php?attachmentid=29875&stc=1&d=1488783941

slonegd
06.03.2017, 11:03
Зачем такие сложности? Почему бы в инициализации переменных просто не написать значение по умолчанию (которое ноль и так)?
VAR
var1: INT:=0;
var2: WORD:=1;
END_VAR
При включении питания все эти переменные примут свои значения по умолчанию.

alexxx
02.04.2017, 10:18
Я делаю еще проще:
IF a=FALSE THEN a:=TRUE;
...действия при включении плк
END_IF;
a - битовая переменная, не ретайн. При перезагрузке она обнуляется.