Просмотр полной версии : ПР100 Retain не работает
Mikhailo
05.04.2024, 11:47
Есть внутренняя переменная Boolean, которая подключена к выходу RS-триггера. Отключаю питание при взведенном триггере, но при включении триггер оказывается сброшен. Хотя R-вход не активен. Я даже отцеплял от него связь, не помогло.
Светодиод F1, связанный с retain-переменной при включении моргает. Как будто бы восстановление значения работает, но почему-то через долю секунды сбрасывается.
Mikhailo так не работает, триггер при старте программы после включения питания не знает, что там true
Ну, так, триггер же не энергонезависимый, поэтому и стартует сброшенным
Если нужен энергонезависимый триггер, то самому надо делать
74982
Сергей0308
05.04.2024, 11:55
Есть внутренняя переменная Boolean, которая подключена к выходу RS-триггера. Отключаю питание при взведенном триггере, но при включении триггер оказывается сброшен. Хотя R-вход не активен. Я даже отцеплял от него связь, не помогло.
Светодиод F1, связанный с retain-переменной при включении моргает. Как будто бы восстановление значения работает, но почему-то через долю секунды сбрасывается.
RS-триггер не обладает энергонезависимостью, в смысле, я выкладывал на форуме RS-триггеры с энергонезависимость:
https://owen.ru/forum/showthread.php?t=9398&page=742
Я так понимаю, Вы начинающий профессионал?
In_Da_Cher_A
05.04.2024, 11:58
RS-триггерапоставьте SR и посмотрите, что будет
Mikhailo
05.04.2024, 12:54
триггер при старте программы после включения питания не знает, что там true
Я теперь понял, выход Q триггера - это не одно и то же, что и retain-переменная.
Вы начинающий профессионал?
:D
поставьте SR и посмотрите, что будет
Ничего не изменится, дело не в этом, как оказывается...
Dimensy, спасибо!
Mikhailo
05.04.2024, 13:09
Лучше всего подошел T-триггер энергонезависимый, я ведь именно это пытался реализовать на RS-триггере.
Кстати, кто-нибудь реализует конечные автоматы на ПР-ках? У меня есть свой рабочий вариант.
kondor3000
05.04.2024, 13:12
Лучше всего подошел T-триггер энергонезависимый, я ведь именно это пытался реализовать на RS-триггере.
Кстати, кто-нибудь реализует конечные автоматы на ПР-ках? У меня есть свой рабочий вариант.
Полно, на любой вкус автоматов на ST и не только https://owen.ru/forum/showthread.php?t=37203&page=9&p=429061#84
Кстати, кто-нибудь реализует конечные автоматы на ПР-ках? У меня есть свой рабочий вариант.
Статья нечаянно найденная в инете
74983
Автоматное программирование в среде Owen Logic https://disk.yandex.com/d/4o00BfGWpwUfDw
Mikhailo
05.04.2024, 14:29
Автоматное программирование в среде Owen Logic
Спасибо.
В принципе, я также реализовал. Но так как у меня 20 состояний и более разветвленный автомат, то я пришел к выводу, что на практике нужны блоки 6И, 6ИЛИ, 8И, 8ИЛИ, переменная ВСЕГДА_ВКЛ, а еще блоки State и 5State - это фактически RS-триггеры с размноженными по условию ИЛИ входами R и S.
In_Da_Cher_A
05.04.2024, 15:45
Ничего не изменится, дело не в этом, как оказывается...дело как раз в этом было, если бы сделали, то
Я теперь понял, выход Q триггера - это не одно и то же, что и retain-переменная.дошли бы до этого сами, без подсказок
Mikhailo
05.04.2024, 16:03
дошли бы до этого сами, без подсказок
А ничего бы не изменилось, и я ничего бы я понял.
In_Da_Cher_A
05.04.2024, 16:28
А ничего бы не изменилось, и я ничего бы я понял.очень жаль, что у вас отсутствует элементарное умение думать и логически мыслить
Mikhailo всякие автоматы наверное лучше на ST делать.
з.ы. сам не проверял, но время цикла должно быть меньше, так как на ST часть кода просто не работает. а в FBD весь код будет работать всегда.
Mikhailo
06.04.2024, 20:15
очень жаль, что у вас отсутствует элементарное умение думать и логически мыслить
Тут же правильно отметили, что я "начинающий профессионал")
Вы думаете, я не знаю, в чем разница между триггерами?
Mikhailo всякие автоматы наверное лучше на ST делать.
з.ы. сам не проверял, но время цикла должно быть меньше, так как на ST часть кода просто не работает. а в FBD весь код будет работать всегда.
Да, для меня вообще-то ST стал открытием, я написал несколько конечных автоматов в более ранней версии Лоджика. Начинал ещё в ПР110, но там стек переполнялся для некоторых слишком сложных автоматов. Потом год назад был переход на ПР100, но без ST.
Что ж, надо разработать что-то более устойчивое на ST, ибо на FBD очень легко нарваться на гонку переходов. Чтобы не допустить эту гонку, приходится делать громоздкие условия, в которых запросто допустить ошибку. Продолжение когда-нибудь последует в новой теме про автоматное программирование.
Спасибо.
В принципе, я также реализовал. Но так как у меня 20 состояний и более разветвленный автомат, то я пришел к выводу, что на практике нужны блоки 6И, 6ИЛИ, 8И, 8ИЛИ, переменная ВСЕГДА_ВКЛ, а еще блоки State и 5State - это фактически RS-триггеры с размноженными по условию ИЛИ входами R и S.
На FBD удобнее вместо кучи триггеров использовать следующую схему:
75013
Mikhailo
07.04.2024, 18:45
На FBD удобнее вместо кучи триггеров использовать следующую схему:
Спасибо, мысль понятна. Именно к этому я и хотел перейти, чтобы уйти от битовых состояний к целочисленным.
Сейчас я к этому добавлю вариант на ST, посмотрим, что выйдет.
Mikhailo
07.04.2024, 19:11
На FBD удобнее вместо кучи триггеров использовать следующую схему:
Что-то в вашей схеме не работает.
У вас какой автомат реализован на схеме?
0 -> 1 -> 2 -> 0?
Mikhailo
07.04.2024, 19:22
Вот полноценный автомат из трех состояний.
75016
Mikhailo
07.04.2024, 19:29
Ну да, не докумекал я как использовать SEL вместо MOVE (которого нет, но должен был быть, так как элементарнее, чем SEL)...
Mikhailo
07.04.2024, 20:20
Вариант без макроса:
75018
Вариант с макросом:
75019
Язык ST применять бессмысленно, если быстродействие не требуется (???).
Макрос Transition может иметь варианты с увеличенным количеством входов I1, I2, I3, ... и T_concur1, T_concur2, T_concur3, ...
Ix - это входы условия переходов
T_concurx - это входы для блокировки текущего перехода конкурирующими переходами. Может пригодиться для сильно разветвленных конечных автоматов (как у меня).
И конечно же обязательно должен быть на свободном месте текстовый комментарий типа:
State:
0 - всё отключено
1 - насос запускается
2 - насос работает
3 - насос заблокирован
NB: пока практикой не отработано, но примерно так.
Сергей0308
07.04.2024, 20:31
Вариант без макроса:
75018
Вариант с макросом:
75019
Язык ST применять бессмысленно, если быстродействие не требуется (???).
Макрос Transition может иметь варианты с увеличенным количеством входов I1, I2, I3, ... и T_concur1, T_concur2, T_concur3, ...
Ix - это входы условия переходов
T_concurx - это входы для блокировки текущего перехода конкурирующими переходами. Может пригодиться для сильно разветвленных конечных автоматов (как у меня).
И конечно же обязательно должен быть на свободном месте текстовый комментарий типа:
NB: пока практикой не отработано, но примерно так.
Не очень давно в одной из тем кажется "capzap" сравнивал аналогичные варианты не сложных алгоритмов и вариант на FBD оказался самый быстрый!
Короче, мне кажется всё правильно, только наоборот и многое зависит от "художника"!
...
T_concurx - это входы для блокировки текущего перехода конкурирующими переходами. Может пригодиться для сильно разветвленных конечных автоматов (как у меня).
...
Возможно этот вход не всегда нужен, т.к. приоритетность одновременно сработавших переходов автоматически определяется по относительным положениям SEL переходов (кто ближе к выходу - тот и запишет номер следующего шага)
Mikhailo
08.04.2024, 10:27
1exan
Все верно.
kondor3000
08.04.2024, 22:09
Вариант без макроса:
75018
Вариант с макросом:
75019
Язык ST применять бессмысленно, если быстродействие не требуется (???).
.
Что это за шляпа на 1.5 экрана вниз, я же вам давал ссылку на шаговые автоматы на ST с разными вариантами, ещё на 1 странице.
Простой автомат - 1 ФБ ( от 2 до нескольких десятков шагов), а не целая страница макросов. При чём ещё и с паузой и выходом времени.
Если выкинуть таймер, то будут просто шаги по нажатию кнопки. Если надо, то и от разных кнопок.
Про быстродействие это всё сказки, что FBD типа быстрее.
Mikhailo
09.04.2024, 18:12
kondor3000
Вы посягаете на святое! ;)
Надо на ST тоже разработать инфраструктуру. Погодите, чуть попозже оформлю.
Mikhailo
09.04.2024, 18:17
Инфраструктура - это когда ты добавляешь состояния и переходы (скелет графа) в одном месте, а условия переходов и управление выходами - в другом месте. Все должно быть при этом наглядно, независимо. Язык ST проигрывает в наглядности. Ну в общем пока ничего не говорю, посмотрим, что можно улучшить.
Mikhailo
11.04.2024, 08:16
До этого я скидывал два варианта конечных автоматов. Первый вариант без макросов, второй - с макросами.
Усовершенствовал второй вариант с макросами, вместо тряхомудии со входами Tconcur я смоделировал шаг (step) - это основной элемент конечного автомата. Три варианта шага: с одним исходящим переходом Step1T, с двумя исходящими переходами Step2T и с пятью Step5T. В Step2T и Step5T приоритетом переходов можно управлять как путем прямого назначения приоритета (чем больше целое число, тем выше приоритет исходящего перехода), либо пользоваться тем фактом, что при равных приоритетах первый переход приоритетнее второго и т.д. Ну и как обычно, можно приоритет изменять также искусственно через входы COND, это в любом конечном автомате можно делать. Кому не нужны эти входы Priority может поудалять их в макросах.
75123
Третий вариант. Тут я реализовал параллельные дивергенцию и конвергенцию по МЭК 61131 (язык SFC) - за это отвечают специальные шаги Step1T2DT и Step2CT1T. Это позволяет распараллеливать выполнение конечного автомата. В названиях макросов зашифровано количество переходов: 1T - один исходящий переход, 2T - два исходящих перехода, 5T - пять переходов, 2DT - 2 исходящих перехода (дивергенция), 2CT - два входящих перехода (конвергенция). Можно даже увидеть, что этот FBD-код очень смахивает на SFC.
75124
Если честно, FBD неудобен, слишком громадные блоки получаются. Поэтому чуть позже я позанимаюсь ST.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot