реклама на сайте
подробности

 
 
> мини PLC.
Jenya7
сообщение Jan 27 2016, 08:11
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



я хочу програмировать задачи - состояния на выходе в зависимости от условий на входе. этакий мини Programmable Logic Controller.
для примера код
Код
// условие на входе
If (temp > 30 && hum > 80 || input1 ==1)
{
    // условие на выходе
    output2 = 1;
}

Где temp, hum - глобальные переменные но задаваемые пользователем через теринал.
пользователь програмирует такое условие следующим образом.
Код
task 1 param 1 temp > 30 AND
task 1 param 2 hum > 80 OR
task 1 in 1 1
task 1 out 2 1

или так
Код
task 1 param 1 temp > 30
task 1 param 2 hum > 80
task 1 in 1 1
task 1 param 1 AND param 2 OR in 1
task 1 out 2 1

и я это сохраняю и потом проверяю и если условие выполняется - включаю\выключаю нужные выходы. вопрос есть ли какие то готовые библиотеки а-ля-PLC?

Сообщение отредактировал Jenya7 - Jan 27 2016, 08:18
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Огурцов
сообщение Jan 27 2016, 16:46
Сообщение #2


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



если парсер у вас есть, то сядьте и напишите за вечер типа il-интерпретатор
а без парсера можно писать и в кодах
переменные в стек, указатель стека, указатель инструкции, регистр состояния

программа получится, например, такая:

положить в стек номер порта
читать порт
положить в стек константу
сравнить
положить в стек адрес перехода
если больше переход
положить в стек номер порта
положить в стек константу
записать в порт
положить в стек адрес перехода
безусловный переход

делов-то

программу можно хранить во флеше мк или заливать с пк каждый раз в озу
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 27 2016, 16:54
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Огурцов @ Jan 27 2016, 22:46) *
если парсер у вас есть, то сядьте и напишите за вечер типа il-интерпретатор
а без парсера можно писать и в кодах
переменные в стек, указатель стека, указатель инструкции, регистр состояния

программа получится, например, такая:

положить в стек номер порта
читать порт
положить в стек константу
сравнить
положить в стек адрес перехода
если больше переход
положить в стек номер порта
положить в стек константу
записать в порт
положить в стек адрес перехода
безусловный переход

делов-то

программу можно хранить во флеше мк или заливать с пк каждый раз в озу

вы понимаете...я уже тут говорил...советы такого типа они очень абстрактны - как интерфейсы в С#.
так и я умею. столько интерфейсов напишу - закачаетесь.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 27 2016, 16:58
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(Jenya7 @ Jan 27 2016, 16:54) *
вы понимаете...я уже тут говорил...советы такого типа они очень абстрактны - как интерфейсы в С#.

и что не так с интерфейсами в шарпе ?
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 27 2016, 17:05
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(Огурцов @ Jan 27 2016, 22:58) *
и что не так с интерфейсами в шарпе ?

с ними все прекрасно. но их надо реализовывать.
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jan 27 2016, 17:20
Сообщение #6


Знающий
****

Группа: Участник
Сообщений: 598
Регистрация: 22-08-05
Пользователь №: 7 861



Цитата(Jenya7 @ Jan 27 2016, 20:05) *
с ними все прекрасно. но их надо реализовывать.

Lost at C? Forth May Be the Answer

Классический цикл работы FVM
Слова разделены пробелами или переводом строки.

Взяли слово из входного потока.
Ищем слово в словарике.
Нашли слово? то проверяем его признаки: immediate (всегда исполняем) иначе компилируем вызов слова (система в состоянии компиляции) или исполняем.
Если не нашли слово то может это число?
Да число то проверяем состояние системы: компиляция (компилируем литерал) иначе ложим его на стек
Нет - выдаём ошибку


P.S. Immediate слово - слово немедленного исполнения ( : ; IF ELSE THEN. и другие необходимые во время трансляции кода для его добавления к основному "телу" системы
при построении новых слов)
Если для пользователя понадобится Бейсик или какие то другие фишки
то небольшим расширением Форт системы его несложно получить sm.gif
На местном форуме тоже есть несколько тем интересного обсуждения Forth (Форт). Ищется через поле поиска.
Для Форт систем записанных в контроллер, часто в качестве потока ввода/вывода используется UART и терминальная программа общения с контроллером по UART.
(или что то более функциональное). В контроллере может находится и дополнительный сервисый софт - типа встроенного редактора (обычно тоже на Форт добавленного к телу системы)
Программа дописыватся или удаляется в контроллере при использовании режима самопрограммирования контроллера.

Сообщение отредактировал Kopa - Jan 27 2016, 18:51
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   мини PLC.   Jan 27 2016, 08:11
- - _pv   вам скорее всего сюда для начала: http://electroni...   Jan 27 2016, 08:26
|- - Jenya7   Цитата(_pv @ Jan 27 2016, 14:26) вам скор...   Jan 27 2016, 09:10
|- - AlexandrY   Цитата(Jenya7 @ Jan 27 2016, 11:10) распа...   Jan 27 2016, 09:16
|- - iosifk   Цитата(Jenya7 @ Jan 27 2016, 12:10) распа...   Jan 27 2016, 11:05
- - AlexandrY   Цитата(Jenya7 @ Jan 27 2016, 10:11) вопро...   Jan 27 2016, 09:06
- - Jenya7   я подумал сделать что то вроде этого создал структ...   Jan 27 2016, 09:33
|- - AlexandrY   Цитата(Jenya7 @ Jan 27 2016, 11:33) я под...   Jan 27 2016, 09:41
||- - Jenya7   Цитата(AlexandrY @ Jan 27 2016, 15:41) Ну...   Jan 27 2016, 09:50
||- - AlexandrY   Цитата(Jenya7 @ Jan 27 2016, 11:50) а бол...   Jan 27 2016, 10:04
|- - RabidRabbit   Цитата(Jenya7 @ Jan 27 2016, 12:33) но ес...   Jan 27 2016, 10:02
|- - Jenya7   Цитата(RabidRabbit @ Jan 27 2016, 16:02) ...   Jan 27 2016, 10:12
||- - RabidRabbit   задействуйте фантазию как пример: для каждой стр...   Jan 27 2016, 10:17
|- - jcxz   Цитата(RabidRabbit @ Jan 27 2016, 16:02) ...   Jan 28 2016, 06:06
- - arhiv6   ТС, думаю Вам нужно копать в сторону парсеров мате...   Jan 27 2016, 10:14
|- - Jenya7   Цитата(arhiv6 @ Jan 27 2016, 16:14) ТС, д...   Jan 27 2016, 10:24
|- - RabidRabbit   Цитата(Jenya7 @ Jan 27 2016, 13:24) вопро...   Jan 27 2016, 10:36
- - smalcom   Цитатав микроконтролере! вы шутите так? вы пр...   Jan 27 2016, 10:39
- - arhiv6   Цитата(Jenya7 @ Jan 27 2016, 16:24) ну ра...   Jan 27 2016, 10:40
- - =AK=   Цитата(Jenya7 @ Jan 27 2016, 18:41) я хоч...   Jan 27 2016, 11:04
|- - Jenya7   Цитата(=AK= @ Jan 27 2016, 17:04) Ваша за...   Jan 27 2016, 12:14
|- - Herz   Цитата(Jenya7 @ Jan 27 2016, 14:14) от ва...   Jan 27 2016, 14:11
|- - Jenya7   Цитата(Herz @ Jan 27 2016, 20:11) Автор...   Jan 27 2016, 14:27
|- - arhiv6   Цитата(Jenya7 @ Jan 27 2016, 20:27) а поч...   Jan 27 2016, 14:35
||- - Jenya7   Цитата(arhiv6 @ Jan 27 2016, 20:35) Можно...   Jan 27 2016, 15:06
||- - Kopa   Тут уже советовали посмотреть варианты реализации ...   Jan 27 2016, 15:52
|||- - Jenya7   Цитата(Kopa @ Jan 27 2016, 21:52) Тут уже...   Jan 27 2016, 16:15
|||- - Kopa   Цитата(Jenya7 @ Jan 27 2016, 18:57) Желез...   Jan 27 2016, 16:22
||- - adnega   Цитата(Jenya7 @ Jan 27 2016, 18:06) о...   Jan 28 2016, 07:42
||- - Jenya7   честно говоря я мало что понял.   Jan 28 2016, 07:54
|||- - adnega   Цитата(Jenya7 @ Jan 28 2016, 10:54) честн...   Jan 28 2016, 08:50
|||- - adnega   Цитата(Jenya7 @ Jan 28 2016, 10:54) честн...   Jan 28 2016, 09:34
|||- - Jenya7   да. это интересно. но условие (param1 && i...   Jan 28 2016, 09:52
||||- - adnega   Цитата(Jenya7 @ Jan 28 2016, 12:52) да. э...   Jan 28 2016, 10:43
||||- - Jenya7   Цитата(adnega @ Jan 28 2016, 15:43) При и...   Jan 28 2016, 11:22
|||- - =AK=   Цитата(adnega @ Jan 28 2016, 20:04) Из зн...   Jan 28 2016, 20:41
|||- - Kopa   Цитата(=AK= @ Jan 29 2016, 00:41) Окончат...   Jan 28 2016, 21:36
|||- - =AK=   Цитата(Kopa @ Jan 29 2016, 08:06) Кросс Ф...   Jan 28 2016, 22:27
|||- - Kopa   Цитата(=AK= @ Jan 29 2016, 02:27) Ну да. ...   Jan 28 2016, 22:46
|||- - Огурцов   был бы весьма интересен проект под шарп и причем, ...   Jan 29 2016, 02:44
|||- - Dog Pawlowa   Одно не пойму - если автор не знает, чего он хочет...   Jan 29 2016, 02:58
|||- - =AK=   Цитата(Dog Pawlowa @ Jan 29 2016, 13:28) ...   Jan 29 2016, 07:59
||- - jcxz   Цитата(adnega @ Jan 28 2016, 13:42) Компи...   Jan 28 2016, 09:19
||- - iosifk   Цитата(jcxz @ Jan 28 2016, 12:19) Мой ком...   Jan 28 2016, 09:23
|- - demiurg_spb   http://www.beremiz.org   Jan 27 2016, 14:46
- - XVR   ТС изобрел велосипед с квадратными колесами и на л...   Jan 27 2016, 12:23
|- - iosifk   Цитата(XVR @ Jan 27 2016, 15:23) ТС изобр...   Jan 27 2016, 12:38
|- - Jenya7   Цитата(iosifk @ Jan 27 2016, 18:38) Вот т...   Jan 27 2016, 12:44
|- - iosifk   Цитата(Jenya7 @ Jan 27 2016, 15:44) я пре...   Jan 27 2016, 13:05
|- - Jenya7   Цитата(iosifk @ Jan 27 2016, 19:05) Вот т...   Jan 27 2016, 13:22
|- - iosifk   Цитата(Jenya7 @ Jan 27 2016, 16:22) я хоч...   Jan 27 2016, 14:20
|- - syoma   Цитата(Jenya7 @ Jan 27 2016, 15:22) я хоч...   Jan 27 2016, 14:41
- - XVR   'Сложные логические группировки' в простой...   Jan 27 2016, 13:47
- - sigmaN   Warning: Цитатаподумали бы не иначе докторскую н...   Jan 27 2016, 14:34
|- - Jenya7   Цитата(sigmaN @ Jan 27 2016, 20:34) Warni...   Jan 27 2016, 14:35
- - smalcom   Цитатато нам осталось? - увязать логику? - И с эти...   Jan 27 2016, 16:35
|- - Jenya7   Цитата(smalcom @ Jan 27 2016, 22:35) ну д...   Jan 27 2016, 16:43
|- - Kopa   Цитата(Jenya7 @ Jan 27 2016, 19:43) задач...   Jan 27 2016, 16:55
|- - Jenya7   Цитата(Kopa @ Jan 27 2016, 22:55) Выбирай...   Jan 27 2016, 16:57
|- - Огурцов   Цитата(Jenya7 @ Jan 27 2016, 18:05) их на...   Jan 27 2016, 17:26
|- - Jenya7   Цитата(Огурцов @ Jan 27 2016, 23:26) в см...   Jan 27 2016, 19:37
|- - Kopa   Цитата(Jenya7 @ Jan 27 2016, 22:37) совет...   Jan 27 2016, 19:50
||- - syoma   Цитата(Kopa @ Jan 27 2016, 22:50) P.S. До...   Jan 27 2016, 20:07
||- - Jenya7   Цитата(syoma @ Jan 28 2016, 02:07) Самое ...   Jan 27 2016, 20:12
||- - syoma   Цитата(Jenya7 @ Jan 27 2016, 23:12) ну ра...   Jan 28 2016, 05:26
||- - Jenya7   Цитата(syoma @ Jan 28 2016, 10:26) Я вам ...   Jan 28 2016, 06:08
||- - jcxz   Цитата(Jenya7 @ Jan 28 2016, 12:08) у мен...   Jan 28 2016, 06:18
|||- - Jenya7   Цитата(jcxz @ Jan 28 2016, 11:18) Самое н...   Jan 28 2016, 07:14
||- - syoma   Цитата(Jenya7 @ Jan 28 2016, 08:08) мне б...   Jan 28 2016, 07:57
||- - iosifk   Цитата(syoma @ Jan 28 2016, 10:57) . По-м...   Jan 28 2016, 09:02
|- - _pv   Цитата(Jenya7 @ Jan 28 2016, 02:37) в смы...   Jan 27 2016, 21:56
|- - Огурцов   Цитата(Jenya7 @ Jan 27 2016, 20:37) в смы...   Jan 28 2016, 01:25
- - smalcom   Цитатазадача действительно плевая. для сильных спе...   Jan 28 2016, 00:21
- - sigmaN   И это еще Огурцов реально по-Божески заряжает. Так...   Jan 28 2016, 02:07
- - Огурцов   казалось бы причём тут зарядка, это ж чисто на пив...   Jan 28 2016, 02:57
- - k155la3   Судя по "постановке задачи" ТС, это похо...   Jan 28 2016, 07:31
- - syoma   adnega, неужели в наше время, микропроцессорные ре...   Jan 28 2016, 11:06
|- - adnega   Цитата(syoma @ Jan 28 2016, 14:06) adnega...   Jan 28 2016, 12:41
- - syoma   Цитатаоличное решение проблемы. я восхищен, не поб...   Jan 28 2016, 11:31
- - syoma   ЦитатаВот Изаграф ему бы наверное подошел, но толь...   Jan 29 2016, 10:52


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 02:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01507 секунд с 7
ELECTRONIX ©2004-2016