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

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> мини PLC.
Jenya7
сообщение Jan 27 2016, 17:05
Сообщение #46


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

Группа: Участник
Сообщений: 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
Сообщение #47


Знающий
****

Группа: Участник
Сообщений: 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
Огурцов
сообщение Jan 27 2016, 17:26
Сообщение #48


Гуру
******

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



Цитата(Jenya7 @ Jan 27 2016, 18:05) *
их надо реализовывать

в смысле, для вас надо написать программу ?

Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 27 2016, 19:37
Сообщение #49


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

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



Цитата(Огурцов @ Jan 27 2016, 23:26) *
в смысле, для вас надо написать программу ?

в смысле конкретный, реальный пример.
советы - возьми слово, положи в стак, задвинь фортом придави джансоном, ну ты ж дурак не понимаешь что ли это ж так элементарно - лично я, постеснялся бы давать.

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

то на меня бы долго смотрели нехорошим взглядом. а могли бы и что нибудь сказать. ну это у нас на районе такие нравы. как у вас - не знаю.

Сообщение отредактировал Jenya7 - Jan 27 2016, 19:43
Go to the top of the page
 
+Quote Post
Kopa
сообщение Jan 27 2016, 19:50
Сообщение #50


Знающий
****

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



Цитата(Jenya7 @ Jan 27 2016, 22:37) *
советы - возьми слово, положи в стак, задвинь фортом придави джансоном, ну ты ж дурак не понимаешь что ли это ж так элементарно - лично я, постеснялся бы давать.
не знаю как принято у вас но если бы я дал такой совет

Как в известном анекдоте: @"Ну тады Ой!"
Блок-схема тоже не интересна?
Вы похоже разделом ошиблись.

P.S. Должно было звучать так
"Предлагаю сделать за меня PLC, но не знаю как. Требования к PLC придумайте сами и сами себя мотивируйте для выполнения моей задачи!
Ась? Изучать слишком долго для меня, а мне это нужно? Плачу 500р за готовое устройство" sm.gif
Сколько Вам лет профессор(ша)?

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


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

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(Kopa @ Jan 27 2016, 22:50) *
P.S. Должно было звучать так
"Предлагаю сделать за меня PLC, но не знаю как. Требования к PLC придумайте сами и сами себя мотивируйте для выполнения моей задачи!
Ась? Изучать слишком долго для меня, а мне это нужно? Плачу 500р за готовое устройство" sm.gif
Сколько Вам лет профессор(ша)?

Самое смешное, что задача решается в лоб по инструкции на видео за 10 минут и 50 бакинских на железо и софт. И сиди себе спокойно на IL программируй свою логику сколько хочешь.
https://m.youtube.com/watch?v=_MeQBfQObgk

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


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

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



Цитата(syoma @ Jan 28 2016, 02:07) *
Самое смешное, что задача решается в лоб по инструкции на видео за 10 минут и 50 бакинских на железо и софт. И сиди себе спокойно на IL программируй свою логику сколько хочешь.
https://m.youtube.com/watch?v=_MeQBfQObgk

Но нет, мы не ищем легких путей. Нам надо изобрести свои парсеры, фреймворки, джейсоны и форты с компиляторами разработать.

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

Сообщение отредактировал Jenya7 - Jan 27 2016, 20:15
Go to the top of the page
 
+Quote Post
_pv
сообщение Jan 27 2016, 21:56
Сообщение #53


Гуру
******

Группа: Свой
Сообщений: 2 563
Регистрация: 8-04-05
Из: Nsk
Пользователь №: 3 954



Цитата(Jenya7 @ Jan 28 2016, 02:37) *
в смысле конкретный, реальный пример.
советы - возьми слово, положи в стак, задвинь фортом придави джансоном, ну ты ж дурак не понимаешь что ли это ж так элементарно - лично я, постеснялся бы давать.

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

то на меня бы долго смотрели нехорошим взглядом. а могли бы и что нибудь сказать. ну это у нас на районе такие нравы. как у вас - не знаю.

если непонятно что такое стэк то надо открыть какой-нибудь букварь по программированию прочитать что же это такое, а не жаловаться на четырёх уже страницах что советы "неправильные" дают.

у Страуструпа в книжке есть пример калькулятора на сотню строк, с разбором любых выражений со скобочками и переменными, добавить туда ||, &&, ~ для логической арифметики в стиле С, когда 0 = false. И если хочется именно "скомпилировать", чтобы не парсить каждый раз, надо вместо непосредственно вычисления сложить все операции и значения в стэк и потом просто пройтись по нему и выполнить.
кода для этого написать надо куда меньше чем в этой теме нафлужено.

собственно на первой же странице RabidRabbit всё уже рассказал как сделать.
Go to the top of the page
 
+Quote Post
smalcom
сообщение Jan 28 2016, 00:21
Сообщение #54


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

Группа: Свой
Сообщений: 1 292
Регистрация: 26-06-07
Пользователь №: 28 718



Цитата
задача действительно плевая. для сильных спецов.

о-о-о-о, всё ясно. повидал я таких:
> Сделать то-то. Задача лёгкая, но мне некогда. Потому ценник низкий.

Я понимаю, что современный мир крайне неидеален, но отсутствие логики - это проблема для инженера. Чуть-чуть разжую вам, ато мало ли.
Вы не можете категоризировать сложность задачи, которую не выполнили. Все невыполненные задачи априори сложные.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 28 2016, 01:25
Сообщение #55


Гуру
******

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



Цитата(Jenya7 @ Jan 27 2016, 20:37) *
в смысле конкретный, реальный пример

да легко, давайте небольшую реальную задачу, $20 и будет вам программа и интерпретатор под неё
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Jan 28 2016, 02:07
Сообщение #56


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



И это еще Огурцов реально по-Божески заряжает. Так то я слыхал, обычно со ста тыщ рублей ценник начинается! ))))))))))))))))))
Рекомендую немедленно соглашаться!


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 28 2016, 02:57
Сообщение #57


Гуру
******

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



казалось бы причём тут зарядка, это ж чисто на пиво, дабы не скучать
а за стотыщ я вам шарп со студией 16 и фреймворком 6.0 напишу
Go to the top of the page
 
+Quote Post
syoma
сообщение Jan 28 2016, 05:26
Сообщение #58


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

Группа: Свой
Сообщений: 1 817
Регистрация: 14-02-07
Из: наших, которые работают за бугром
Пользователь №: 25 368



Цитата(Jenya7 @ Jan 27 2016, 23:12) *
ну расбери с линуксом это тоже не совсем тот путь который мне подходит.

Я вам показал интерпретатор, парсер и отладчик для ПЛК в одном флаконе - это то, к чему вы собираетесь идти. Распбери с линуксом там только одна из платформ. Не нравится - возьмите другую.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jan 28 2016, 06:06
Сообщение #59


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(RabidRabbit @ Jan 27 2016, 16:02) *
param1
input1
&&
param2
input2
input3
||
&&
||

Это называется "обратная польская нотация". Удобна для обработки стековой машиной.
Цитата(Jenya7 @ Jan 27 2016, 16:12) *
да но вопрос как это сохранить, в какой структре. чтоб потом знать - сделай AND с этой группой а потом сделай OR с той группой а потом сделай AND межу ними. как это практически связать.

Вам уже всё разжевали и даже в рот положили. И правильно указали - что у Вас проблемы уже с парсингом.
Выражения удобно парсить в формат записи обратной польской нотацией. И в ней уже обрабатывать выражения. Скобки проходятся рекурсией.
В обратной польской нотации раньше задавались выражения для программируемых калькуляторов, если кто помнит такие девайсы....
Выражение в обычной записи (a*b+c*(d-e)) в обратной польской нотации будет выглядеть: ab*cde-*+ - это уже удобно для обработки исполнительным алгоритмом и уже без скобок.

Цитата(RabidRabbit @ Jan 27 2016, 16:17) *
если это операция - снимаем со стека 2 значения, выполняем операцию, результат кладём в стек

Не обязательно 2 операнда. 2 - это для бинарных операций. Для унарных - 1 операнд.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 28 2016, 06:08
Сообщение #60


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

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



Цитата(syoma @ Jan 28 2016, 10:26) *
Я вам показал интерпретатор, парсер и отладчик для ПЛК в одном флаконе - это то, к чему вы собираетесь идти. Распбери с линуксом там только одна из платформ. Не нравится - возьмите другую.

мне бы не хотелось уходить в какие то специализированные среды разработки.
у меня есть мощный камень и такой же язык программирования. и я думаю этих двух условий вполне хватает для решения задачи. тем более что она почти решена.

Go to the top of the page
 
+Quote Post

6 страниц V  « < 2 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 4th July 2025 - 12:27
Рейтинг@Mail.ru


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