Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.84/25: Рейтинг темы: голосов - 25, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141

Програмно задать поведение двигателей в С.

16.07.2017, 10:06. Показов 5261. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть системы с довольно сложным поведением.

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

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

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

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

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

В данном случае никак не соображу какую структуру создать под сценарий движения и как учитывать все логические условия.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.07.2017, 10:06
Ответы с готовыми решениями:

Задать запрос програмно к файлу MS Access
Добрый день форумчане! Необходимо программно задать SQL запрос на С++ Visual Studio CLI, как это сделать? Большое спасибо!

Как в DBGrid програмно задать ширину столбца?
Скажите пожалуйста, как в DBGrid програмно задать ширину столбца. Спасибо.

Как програмно задать значение для DateTimePicker
в программе надо из записи БД вытащить значения на форму для редактирования пробовал так edit.dateTimePickerBirthday.Value.Date =...

26
1 / 1 / 0
Регистрация: 08.05.2015
Сообщений: 225
16.07.2017, 17:11
Студворк — интернет-сервис помощи студентам
К стате, где вы собираетесь хранить ваш скрипт ?
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
16.07.2017, 17:27
[QUOTE="orm999"][QUOTE="Цитата:[/QUOTE][QUOTE]До сих пор я этот сценарий жестко кодировал в микроконтроллере и все было хорошо.
Сейчас есть требование сделать эти сценарии движения програмируемые. (Пользователь загружает скрипт.)[/QUOTE]

Прикрутить простенький скритовый движок, Lua или упрощенный JS. Их много, и хороших тоже.

[URL="https://github.com/cesanta/mjs"]https://github.com/cesanta/mjs[/URL]
https://github.com/elua/elua
Да но скрипт не решает проблему алгоритмики в самом контролере.
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
16.07.2017, 17:33
ребята я вас понял. вы предлагаете скриптовый движок а я думаю это через чур. по простому передали параметры через терминал и алгоритм работает с этими параметрами. что там уж такого сложного. и потом нет готового движка под motion. все равно нужно перекраивать под себя.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 3,113
16.07.2017, 17:42
Рука лицо.
Видеокарты когда-нибудь видели? В них есть "BIOS", который инициализирует и настраивает аппаратуру этой видеокарты. Если вы думаете, что BIOS пишется на языке С, С++ или похожих, то смею вас рассстроить. Программа BIOS написана на языке виртуального процессора. Т.е. файл BIOS состоит из 3х элементов - загрузчика, интерпретатора (виртуального процессора) и, собственно, самого "кода".
Я к чему ... "интерпретатор" - это стандартное решение для выполнения подобных задач. В него вводятся правила и проверки, и он им следует.
0
0 / 0 / 0
Регистрация: 13.02.2016
Сообщений: 141
16.07.2017, 17:50
Цитата Сообщение от u37
Рука лицо.
Видеокарты когда-нибудь видели? В них есть "BIOS", который инициализирует и настраивает аппаратуру этой видеокарты. Если вы думаете, что BIOS пишется на языке С, С++ или похожих, то смею вас рассстроить. Программа BIOS написана на языке виртуального процессора. Т.е. файл BIOS состоит из 3х элементов - загрузчика, интерпретатора (виртуального процессора) и, собственно, самого "кода".
Я к чему ... "интерпретатор" - это стандартное решение для выполнения подобных задач. В него вводятся правила и проверки, и он им следует.
это материал для новой темы - как прикрутить скриптовый движок к контроллеру. но я ее не создам. получу море теории в котором захлебнусь. а мне нужно практическое решение.
0
1 / 1 / 0
Регистрация: 08.05.2015
Сообщений: 225
16.07.2017, 17:56
Не надо ничего изобретать ! Возьмите yacc, составьте файл описания - чего вы хотите и он вам с генерит готовый интерпретатор.
0
0 / 0 / 0
Регистрация: 06.05.2015
Сообщений: 11
17.07.2017, 10:55
Программа BIOS написана на языке виртуального процессора. Т.е. файл BIOS состоит из 3х элементов - загрузчика, интерпретатора (виртуального процессора) и, собственно, самого "кода".
Когда 4 года назад код AMI BIOS был "выложен" там все было на чистом C, или может в плюсах (не помню точно), по крайней мере не припоминаю никаких скриптов. Нужно покапаться в бекапах, посмотреть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.07.2017, 10:55

Задать элементу PictureBox определенную картинку програмно
Подскажите пожалуйста, как задать элементу pictureBox определенную картинку програмно, а не через окно свойств.

Как в GridView програмно задать нужное количество строк?
Есть не привязанный грид, заполняется данными и это заполнение, зависит от действий пользователя. Но вот неувязка, при наполнении,...

Как програмно задать цвет шрифта опции ListBox
Всем доброе время суток! При запуске формы формируется двумерный массив Data и передаётся в ListBox. Private Sub...

Знатокам API - как програмно задать положение Band'а на CoolBar'е
Нужно просто задавать положение Band'а на кулбаре. Идеально было бы увидеть работающий пример. Очень нужно!

Как задать свойство Binding для столбца не xaml, а програмно?
Здравствуйте мне необходимо при нажатии на кнопку менять свойство binding для столбца datagridview в wpf. Я знаю как xaml указать биндинг...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru