IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> Наблюдение за выполнением процесса отработки.
VAL_64
сообщение 1.10.2018 - 11:32
Сообщение #1


Гигант мысли
****

Группа: Пользователи
Сообщений: 253
Регистрация: 21.01.2017
Пользователь №: 10799



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

Я имею виду изменять время не находу процесса отработки, а выставил время например 3сек. и запустил процес на отработку, если этот процесс за 3сек.
не добрался до концевика окончания процесса прервать процесс (безопасный останов), или возвратится в исходную позицию,
а если укладывается в эти 3сек. то продолжать дальше...
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
m_by
сообщение 2.10.2018 - 10:21
Сообщение #2


Гигант мысли
****

Группа: Пользователи
Сообщений: 252
Регистрация: 15.11.2007
Пользователь №: 6407



... так понимаю цикл обработки чего-либо, при том общее выполнение программы не предусматривается.
Поставьте счетчик циклов, если будет превышено разумное значение - выйти из цикла.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
m_by
сообщение 2.10.2018 - 10:27
Сообщение #3


Гигант мысли
****

Группа: Пользователи
Сообщений: 252
Регистрация: 15.11.2007
Пользователь №: 6407



... а ещё есть сторожевой таймер, только не уточнял - он сразу выдает ошибку работы контроллера или вызывает определенное прерывание (как на микроконтроллерах).
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 2.10.2018 - 16:49
Сообщение #4


Гигант мысли
****

Группа: Пользователи
Сообщений: 377
Регистрация: 30.12.2004
Пользователь №: 108



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


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 8.10.2018 - 13:44
Сообщение #5


Гигант мысли
****

Группа: Пользователи
Сообщений: 253
Регистрация: 21.01.2017
Пользователь №: 10799



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

Не разжуете по подробнее.
С чего начать?
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 8.10.2018 - 16:03
Сообщение #6


Гигант мысли
****

Группа: Пользователи
Сообщений: 377
Регистрация: 30.12.2004
Пользователь №: 108



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


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 8.10.2018 - 16:20
Сообщение #7


Гигант мысли
****

Группа: Пользователи
Сообщений: 253
Регистрация: 21.01.2017
Пользователь №: 10799



Вот в 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
Прикрепленные файлы
Прикрепленный файл  2018_10_08_16_07_09.png ( 27.13 килобайт ) Кол-во скачиваний: 10
 
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
Sergei Troizky
сообщение 9.10.2018 - 16:08
Сообщение #8


Гигант мысли
****

Группа: Пользователи
Сообщений: 377
Регистрация: 30.12.2004
Пользователь №: 108



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

Сообщение отредактировал Sergei Troizky - 9.10.2018 - 16:12


--------------------
Делать надо сразу хорошо. Плохо само получится.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения
VAL_64
сообщение 8.10.2019 - 12:24
Сообщение #9


Гигант мысли
****

Группа: Пользователи
Сообщений: 253
Регистрация: 21.01.2017
Пользователь №: 10799



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
Сообщение #10


Писатель
**

Группа: Пользователи
Сообщений: 55
Регистрация: 15.11.2008
Пользователь №: 8998



Цитата(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.
Вернуться в начало страницы
 
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия Сейчас: 28.03.2024 - 18:26