Полно, на любой вкус автоматов на ST и не только https://owen.ru/forum/showthread.php...=9&p=429061#84
Полно, на любой вкус автоматов на ST и не только https://owen.ru/forum/showthread.php...=9&p=429061#84
Статья нечаянно найденная в инете
Захват-01.png
Автоматное программирование в среде Owen Logic https://disk.yandex.com/d/4o00BfGWpwUfDw
Мой канал на ютубе
https://www.youtube.com/c/ПетрАртюков
Мой канал на РУТУБЕ
https://rutube.ru/channel/23641433/
Библиотека ГМ для СП300
https://disk.yandex.com/d/gHLMhLi8x1_HBg
Спасибо.
В принципе, я также реализовал. Но так как у меня 20 состояний и более разветвленный автомат, то я пришел к выводу, что на практике нужны блоки 6И, 6ИЛИ, 8И, 8ИЛИ, переменная ВСЕГДА_ВКЛ, а еще блоки State и 5State - это фактически RS-триггеры с размноженными по условию ИЛИ входами R и S.
На FBD удобнее вместо кучи триггеров использовать следующую схему:
изображение_2024-04-07_221414013.png
Mikhailo всякие автоматы наверное лучше на ST делать.
з.ы. сам не проверял, но время цикла должно быть меньше, так как на ST часть кода просто не работает. а в FBD весь код будет работать всегда.
Тут же правильно отметили, что я "начинающий профессионал")
Вы думаете, я не знаю, в чем разница между триггерами?
Да, для меня вообще-то ST стал открытием, я написал несколько конечных автоматов в более ранней версии Лоджика. Начинал ещё в ПР110, но там стек переполнялся для некоторых слишком сложных автоматов. Потом год назад был переход на ПР100, но без ST.
Что ж, надо разработать что-то более устойчивое на ST, ибо на FBD очень легко нарваться на гонку переходов. Чтобы не допустить эту гонку, приходится делать громоздкие условия, в которых запросто допустить ошибку. Продолжение когда-нибудь последует в новой теме про автоматное программирование.
Ну да, не докумекал я как использовать SEL вместо MOVE (которого нет, но должен был быть, так как элементарнее, чем SEL)...
Вариант без макроса:
Конечный_автомат.owle
Вариант с макросом:
Конечный_автомат2.owle
Язык ST применять бессмысленно, если быстродействие не требуется (???).
Макрос Transition может иметь варианты с увеличенным количеством входов I1, I2, I3, ... и T_concur1, T_concur2, T_concur3, ...
Ix - это входы условия переходов
T_concurx - это входы для блокировки текущего перехода конкурирующими переходами. Может пригодиться для сильно разветвленных конечных автоматов (как у меня).
И конечно же обязательно должен быть на свободном месте текстовый комментарий типа:
NB: пока практикой не отработано, но примерно так.State:
0 - всё отключено
1 - насос запускается
2 - насос работает
3 - насос заблокирован