powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Програмно задать поведение двигателей в С.
10 сообщений из 10, страница 1 из 1
Програмно задать поведение двигателей в С.
    #39489935
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть системы с довольно сложным поведением.

Скажем есть система где

1. пользователь нажимает на кнопку ОТКРЫТЬ
2. Мотор №1 начинает двигаться - открывается крышка - мотор останавливается достигнув концевого выключателя №1.
3. Мотор №2 начинает двигаться - выезжает экран - мотор останавливается достигнув концевого выключателя №2.

4. пользователь нажимает на кнопку ЗАКРЫТЬ
5. Мотор №2 начинает двигаться - экран заезжает обратно - мотор останавливается достигнув концевого выключателя №3.
6. Мотор №1 начинает двигаться - закрывается крышка - мотор останавливается достигнув концевого выключателя №4.

Естественно на любом участке пути пользователь может применять команды СТОП, ОТКРЫТЬ, ЗАКРЫТЬ и логика отрабатывает команды в соответствии с положением моторов.
То есть если нажать на кнопку ОТКРЫТЬ при закрытой крышке - начнет двигаться Мотор №1. А если нажать на кнопку ОТКРЫТЬ в середине пути - начнет двигаться Мотор №2.
И отслеживаются все положения - скажем Мотор №2 не может начать движение пока крышка полностю не открыта (концевик №1 нажат)

До сих пор я этот сценарий жестко кодировал в микроконтроллере и все было хорошо.
Сейчас есть требование сделать эти сценарии движения програмируемые.
У меня в принципе есть проект где пользователь по UART заливает скрипт я его обрабатываю и произвожу действия. Но там простой PLC - по входным условиям
(значениям на аналоговых и дигитальных входах) я выставляю значения на выходах.

В данном случае никак не соображу какую структуру создать под сценарий движения и как учитывать все логические условия.
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39489937
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39489939
jenya7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
OoCc конечный автомат
да. пожалуй. но какую структуру передать в конечный автомат.
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39489955
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7,

Конечный автомат описывается табличкой.
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39490091
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OoCcjenya7,

Конечный автомат описывается табличкой.


почитайте про синтез конечных автоматов, есть Мили и Мура, книжка автора Баранова, например.
"Синтез конечных автоматов"
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39490146
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivOoCcjenya7,

Конечный автомат описывается табличкой.


почитайте про синтез конечных автоматов, есть Мили и Мура, книжка автора Баранова, например.
"Синтез конечных автоматов"
Не морочь ТС голову. Для вопроса ТС ничего читать ненужно - хватит простенькой логической таблички которая имплементируется в простом массиве.
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39490414
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
jenya7До сих пор я этот сценарий жестко кодировал в микроконтроллере и все было хорошо.
Сейчас есть требование сделать эти сценарии движения програмируемые.
У меня в принципе есть проект где пользователь по UART заливает скрипт я его обрабатываю и произвожу действия. Но там простой PLC - по входным условиям
(значениям на аналоговых и дигитальных входах) я выставляю значения на выходах.

В данном случае никак не соображу какую структуру создать под сценарий движения и как учитывать все логические условия.
Странно что ты кодил PLC но не исследовал возможности самого компиллятора.

По сабжу верно сказали. Бери табличку. Делай в одной колонке состояния и условия. А в другой - переходы.

По поводу инструмента. Способов - масса. Самый близкий к языку конечно полиморфизм. Но у нас - язык "C".
Поэтому КМК стоит подождать пятницы.

Просто самые вкусные темы ждут конца недели. Будем эмулировать полиморфизм на сях.
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39490415
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton...Просто самые вкусные темы ждут конца недели. Будем эмулировать полиморфизм на сях.Косвенную адресацию изобрели 50лет назад даже на ассемблере. Изобретатели....
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39490418
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Балин.... Зяма! Всю контору спалил
...
Рейтинг: 0 / 0
Програмно задать поведение двигателей в С.
    #39490423
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonБалин.... Зяма! Всю контору спалил
ничего страшного
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Програмно задать поведение двигателей в С.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]