Просмотр полной версии : Сброс переменных при старте ПЛК160
Добрый день.
Подскажите пожалуйста как сделать так, что бы каждый раз при старте программы сбрасывались в ноль некоторые переменные.
Контроллер ПЛК160 . Кнопка привязки POU к событиям старт-стоп в конфигураторе задач неактивна( Кстати, почему?
Заранее спасибо.
С кнопкой "Создать POU" разобрался )
Кому интересно последовательность такая:
1. Заходим в конфигуратор задач
2. Выбираем "Системные события"
3. Ставим галочку у события start
4. Теперь самое главное ))) Тупо в столбике "Вызываемый POU" пишем название, например My_START
5. Переходим на любую другую ячейку и кнопка "Создать POU" станет активной
И в результате этих действий ничего не работает)))
Попробовал обработать событие stop.
При нажатии кнопки "Создать POU" создается функция
FUNCTION SYS_STOP: DWORD
VAR_INPUT
dwEvent: INT;
dwFilter: INT;
dwOwner: INT;
END_VAR
;
При попытке останова программы происходит сброс памяти контроллера.
Если же в качестве обработчика событий использовать не функцию а программу, то все работает.
PROGRAM SYS_STOP1
VAR
END_VAR
;
Где же "собака порылась?".... В чем проблема?
Поддержу вопрос - у меня так же не выполняется функция, подвешенная на системное событие 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
Зачем такие сложности? Почему бы в инициализации переменных просто не написать значение по умолчанию (которое ноль и так)?
VAR
var1: INT:=0;
var2: WORD:=1;
END_VAR
При включении питания все эти переменные примут свои значения по умолчанию.
Я делаю еще проще:
IF a=FALSE THEN a:=TRUE;
...действия при включении плк
END_IF;
a - битовая переменная, не ретайн. При перезагрузке она обнуляется.
Powered by vBulletin® Version 4.2.3 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot