Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Mitsubishi Electric. Контроллеры, преобразователи частоты, HMI _ Программирование _ Наблюдение за выполнением процесса отработки.

Автор: VAL_64 1.10.2018 - 11:32

Всем доброго времени суток, прошу помощи.
Кто подскажет как организовать наблюдение за выполнением определенного куска кода (программы)?
Если будет превышено время выполнения этого кода, должно все остановится и выдать аварию.
Время выполнения задается в ручную к примеру от 0 до 1000 сек.

Я имею виду изменять время не находу процесса отработки, а выставил время например 3сек. и запустил процес на отработку, если этот процесс за 3сек.
не добрался до концевика окончания процесса прервать процесс (безопасный останов), или возвратится в исходную позицию,
а если укладывается в эти 3сек. то продолжать дальше...

Автор: m_by 2.10.2018 - 10:21

... так понимаю цикл обработки чего-либо, при том общее выполнение программы не предусматривается.
Поставьте счетчик циклов, если будет превышено разумное значение - выйти из цикла.

Автор: m_by 2.10.2018 - 10:27

... а ещё есть сторожевой таймер, только не уточнял - он сразу выдает ошибку работы контроллера или вызывает определенное прерывание (как на микроконтроллерах).

Автор: Sergei Troizky 2.10.2018 - 16:49

Неясно, в чем конкретно сложность, так как задача совершенно обычная.
А во-вторых, ответы m_by никакого отношения к вопросу не имеют.

Автор: VAL_64 8.10.2018 - 13:44

Цитата(Sergei Troizky @ 2.10.2018 - 17:49) *
Неясно, в чем конкретно сложность, так как задача совершенно обычная.
А во-вторых, ответы m_by никакого отношения к вопросу не имеют.

Не разжуете по подробнее.
С чего начать?

Автор: Sergei Troizky 8.10.2018 - 16:03

Разжевывать нечего, ибо никакого конкретного вопроса не задано, как и не показано, что уже есть.
А делать за вас всю работу никто не будет.

Автор: VAL_64 8.10.2018 - 16:20

Вот в GX_Works3 есть такое, типы выполнения программ
у меня FX5U
Fixed Scan (циклический по прерыванию таймера),
Event (по событию),
Standby (по требованию)
Эти три типа выполнения программ в моем случае пойдут?
Или делать программно например:

var
циклы : (исходная_позиция, отработка, продолжать_дальше, прервать_процесс ...);
t : time;
время_например : time := t#3s;
определися_таки : bool;
-------------
case циклы of
исходная_позиция:
if запустил_процес_на_отработку then
t := time();
циклы := отработка;
end_if
отработка :
if концевик then
циклы := продолжать_дальше;
elsif time() - t > время_например then
циклы := sel(определися_таки, исходная_позиция, прервать_процесс);
end_if
продолжать_дальше:
... ;
прервать_процесс:
... ;
end_case

 

Автор: Sergei Troizky 9.10.2018 - 16:08

Делать программно, в обычной циклической программе.

Автор: VAL_64 8.10.2019 - 12:24

var
циклы : (исходная_позиция, отработка, продолжать_дальше, прервать_процесс ...);
t : time;
время_например : time := t#3s;
определися_таки : bool;
-------------
case циклы of
исходная_позиция:
if запустил_процес_на_отработку then
t := time();
циклы := отработка;
end_if
отработка :
if концевик then
циклы := продолжать_дальше;
elsif time() - t > время_например then
циклы := sel(определися_таки, исходная_позиция, прервать_процесс);
end_if
продолжать_дальше:
... ;
прервать_процесс:
... ;
end_case
Кто подскажет как это все организовать в FBD или LD

Автор: paul-th 7.12.2019 - 10:34

Цитата(VAL_64 @ 8.10.2019 - 13:24) *
var
циклы : (исходная_позиция, отработка, продолжать_дальше, прервать_процесс ...);
t : time;
время_например : time := t#3s;
определися_таки : bool;
-------------
case циклы of
исходная_позиция:
if запустил_процес_на_отработку then
t := time();
циклы := отработка;
end_if
отработка :
if концевик then
циклы := продолжать_дальше;
elsif time() - t > время_например then
циклы := sel(определися_таки, исходная_позиция, прервать_процесс);
end_if
продолжать_дальше:
... ;
прервать_процесс:
... ;
end_case
Кто подскажет как это все организовать в FBD или LD

Вам же ответили, есть так называемые циклические шаговые программы, это всё пишется элементарно в LD.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)