Наблюдение за выполнением процесса отработки. |
Здравствуйте, гость ( Вход | Регистрация )
Наблюдение за выполнением процесса отработки. |
1.10.2018 - 11:32
Сообщение
#1
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
Всем доброго времени суток, прошу помощи.
Кто подскажет как организовать наблюдение за выполнением определенного куска кода (программы)? Если будет превышено время выполнения этого кода, должно все остановится и выдать аварию. Время выполнения задается в ручную к примеру от 0 до 1000 сек. Я имею виду изменять время не находу процесса отработки, а выставил время например 3сек. и запустил процес на отработку, если этот процесс за 3сек. не добрался до концевика окончания процесса прервать процесс (безопасный останов), или возвратится в исходную позицию, а если укладывается в эти 3сек. то продолжать дальше... |
|
|
2.10.2018 - 10:21
Сообщение
#2
|
|
Гигант мысли Группа: Пользователи Сообщений: 252 Регистрация: 15.11.2007 Пользователь №: 6407 |
... так понимаю цикл обработки чего-либо, при том общее выполнение программы не предусматривается.
Поставьте счетчик циклов, если будет превышено разумное значение - выйти из цикла. |
|
|
2.10.2018 - 10:27
Сообщение
#3
|
|
Гигант мысли Группа: Пользователи Сообщений: 252 Регистрация: 15.11.2007 Пользователь №: 6407 |
... а ещё есть сторожевой таймер, только не уточнял - он сразу выдает ошибку работы контроллера или вызывает определенное прерывание (как на микроконтроллерах).
|
|
|
2.10.2018 - 16:49
Сообщение
#4
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
Неясно, в чем конкретно сложность, так как задача совершенно обычная.
А во-вторых, ответы m_by никакого отношения к вопросу не имеют. -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
8.10.2018 - 13:44
Сообщение
#5
|
|
Гигант мысли Группа: Пользователи Сообщений: 253 Регистрация: 21.01.2017 Пользователь №: 10799 |
|
|
|
8.10.2018 - 16:03
Сообщение
#6
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
Разжевывать нечего, ибо никакого конкретного вопроса не задано, как и не показано, что уже есть.
А делать за вас всю работу никто не будет. -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
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
Прикрепленные файлы
|
|
|
9.10.2018 - 16:08
Сообщение
#8
|
|
Гигант мысли Группа: Пользователи Сообщений: 377 Регистрация: 30.12.2004 Пользователь №: 108 |
Делать программно, в обычной циклической программе.
Сообщение отредактировал Sergei Troizky - 9.10.2018 - 16:12 -------------------- Делать надо сразу хорошо. Плохо само получится.
|
|
|
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 |
|
|
7.12.2019 - 10:34
Сообщение
#10
|
|
Писатель Группа: Пользователи Сообщений: 55 Регистрация: 15.11.2008 Пользователь №: 8998 |
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. |
|
|
Текстовая версия | Сейчас: 25.09.2024 - 13:50 |