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

 
 
6 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> мини PLC.
arhiv6
сообщение Jan 27 2016, 14:35
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 633
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423



Цитата(Jenya7 @ Jan 27 2016, 20:27) *
а почему так нельзя?

Можно, но такой вариант сложно масштабируем. Если делать в таком виде, то как Вы представляете себе решение для вашего же примера: (param1 && input1) || (param2 && (input2 || input3)) ?



--------------------
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 27 2016, 14:35
Сообщение #32


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

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



Цитата(sigmaN @ Jan 27 2016, 20:34) *
Warning: bb-offtopic.gif
мы слышим какие вопросы вы задаете и как реагируете на предложенные решения тут. Так что про докторскую(или хотя-бы про минимально научный склад ума) мысль даже не закрадывается(по крайней мере у меня)...
Видео с курилки в студию, разберем, оценим на досуге )))))))))

вы не объясняйте какой я дурак - вы покажите какой вы умный.
Go to the top of the page
 
+Quote Post
syoma
сообщение Jan 27 2016, 14:41
Сообщение #33


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

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



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

Странно. Задача подпадает под описание PLC, так и используйте PLC. Зачем изобретать еще что-то? Среды разработки для PLC разрабатывали и отлаживали десятилетиями, чтобы вот так, легко и непринужденно загружать и выполнять по 10 задач в реалтайме. Причем под это еще придумали и стандартизировали 5 языков программирования, чтобы каждый программист и непрограммист мог писать проги так, как ему нравится. Ваш синтаксис это нечто среднее между синтаксисом IL и ST.




Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Jan 27 2016, 14:46
Сообщение #34


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



http://www.beremiz.org


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 27 2016, 15:06
Сообщение #35


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

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



Цитата(arhiv6 @ Jan 27 2016, 20:35) *
Можно, но такой вариант сложно масштабируем. Если делать в таком виде, то как Вы представляете себе решение для вашего же примера: (param1 && input1) || (param2 && (input2 || input3)) ?

о! вот в этом вся загвоздка! вот это я и пытаюсь решить. не то чобы я был зациклен на моей имплиментации. просто других альтернатив нет пока.
я думал сделать такую структуру
Код
struct sGroupResults
{
    uint8_t result;
    uint8_t resLogic;

};
struct sConditionGroup
{
    struct sGroupResults groupResults[10];
    uint8_t groupLogic;

};

struct sTaskCondition
{
    struct sConditionGroup condGroup[MAX_COND_GROUPS];
};

и тогда условие
Код
(param1 && input1) || (param2 && (input2 || input3))

расположиться так
Код
sTaskCondition.condGroup[0].groupResults[0].result = param 1;
sTaskCondition.condGroup[0].groupResults[0].resLogic = AND;
sTaskCondition.condGroup[0].groupResults[1].result = input 1;
sTaskCondition.condGroup[0].groupResults[1].resLogic = NONE;
sTaskCondition.condGroup[0].groupLogic = OR;

sTaskCondition.condGroup[1].groupResults[0].result = param 2;
sTaskCondition.condGroup[1].groupResults[0].resLogic = NONE;
sTaskCondition.condGroup[1].groupLogic = AND;

sTaskCondition.condGroup[2].groupResults[0].result = input 2;
sTaskCondition.condGroup[2].groupResults[0].resLogic = OR;
sTaskCondition.condGroup[2].groupResults[1].result = input 3;
sTaskCondition.condGroup[2].groupResults[1].resLogic = NONE;
sTaskCondition.condGroup[2].groupLogic= NONE;

вопрос как в проверке условий объяснить что sTaskCondition.condGroup[0]. groupResults[0].result это param 1

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


Знающий
****

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



Тут уже советовали посмотреть варианты реализации Форт VM (виртуальных машин) готовых хоть C хоть ASM хоть как то ещё sm.gif
Может не стоят эти муки творчества затраченных на них усилий? smile3046.gif
Какое железо, кстати, используется?

P.S. На диалекте Форт языка есть PLC контроллеры ForthLogic Техническая информация
Программирование на языке ForthLogic (PDF, ~4Mb)
(Правда большая часть это копипаст из книги Баранова, Ноздрунова "Форт и его реализации", но есть и оригинальные идеи в языке для данныхконтроллеров)

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


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

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



Цитата(Kopa @ Jan 27 2016, 21:52) *
Тут уже советовали посмотреть варианты реализации Форт VM (виртуальных машин) готовых хоть C хоть ASM хоть как то ещё sm.gif
Может не стоят эти муки творчества затраченных на них усилий?
Какое железо, кстати, используется?

P.S. На диалекте Форт языка есть PLC контроллеры ForthLogic Инструкция по программированию на языке ForthLogic™
(Правда большая часть это копипаст из книги Баранова, Ноздрунова "Форт и его реализации", но есть и оригинальные идеи в языке для данныхконтроллеров) smile3046.gif

Железо STM32F107VC. не думаю что у меня хватит сил реализовать Форт VM.

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

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


Знающий
****

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



Цитата(Jenya7 @ Jan 27 2016, 18:57) *
Железо STM32F107VC. не думаю что у меня хватит сил реализовать Форт VM.

Допиливайте на своё усмотрение любые готовые для STM32 (mecrisp и др.) или есть уже коммерческие самособирающиеся из исходников для STM32 (VFX от MPE c кодовым ограничением на 64Kб что по меркам Форт систем достаточно много даже если полвину займёт полная Форт система)
VFX от МPE по их исходникам запустил на STM32L100 Discovery самостоятельно.
Или такой ресурс SwiftX Embedded Systems Development Tools
Был бы Ваш камень, то это тоже меня не остановило бы от "заливки" в него Форт системы. sm.gif


P.S. Полезный действующий форумный ресурс Рускоязычных Форт пользователей
Матчасть у Форт систем не сложная. Форт почти всегда без фреймворков (т.к. сам самодостаточен при его использовании)
Всяких реализаций FVM СОТНИ!!! и разных схем решений.
Может Вашим идеям будет созвучен такой "грандиозный" фейковый трактат КОМЛОГИЯ

Сообщение отредактировал Kopa - Jan 27 2016, 16:45
Go to the top of the page
 
+Quote Post
smalcom
сообщение Jan 27 2016, 16:35
Сообщение #39


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

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



Цитата
то нам осталось? - увязать логику? - И с этим ИЛИ с тем и для этого мы будем тянуть фреймворки и виртуальные машины?

ну дык вперёд. задача-то плёвая.

разговор с вами - это как в анекдоте: "папа, а где море?".
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Jan 27 2016, 16:43
Сообщение #40


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

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



Цитата(smalcom @ Jan 27 2016, 22:35) *
ну дык вперёд. задача-то плёвая.

разговор с вами - это как в анекдоте: "папа, а где море?".

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

Цитата(Kopa @ Jan 27 2016, 22:22) *
Допиливайте на своё усмотрение любые готовые для STM32 (mecrisp и др.) или есть уже коммерческие самособирающиеся из исходников для STM32 (VFX от MPE c кодовым ограничением на 64Kб что по меркам Форт систем достаточно много даже если полвину займёт полная Форт система)
VFX от МPE по их исходникам запустил на STM32L100 Discovery самостоятельно.
Или такой ресурс SwiftX Embedded Systems Development Tools
Был бы Ваш камень, то это тоже меня не остановило бы от "заливки" в него Форт системы. sm.gif


P.S. Полезный действующий форумный ресурсРускоязычных Форт пользователей
Матчасть у Форт систем не сложная. Форт почти всегда без фреймворков (т.к. сам самодостаточен при его использовании)
Всяких реализаций FVM СОТНИ!!! и разных схем решений.

а можно из СОТНИ!!! хоть одну готовую? одну...из СОТНИ!!!.

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


Гуру
******

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



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

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

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

делов-то

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


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

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



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

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

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

делов-то

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

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


Знающий
****

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



Цитата(Jenya7 @ Jan 27 2016, 19:43) *
задача действительно плевая. для сильных спецов.
а можно из СОТНИ!!! хоть одну готовую? одну...из СОТНИ!!!.

Выбирайте на своё усмотрение что больше будет понятно или достаточно по уровню Ваших технических "претензий"
Применение Форта для ARM, AVR, MSP430, PIC ...
и просмотрите форум, обсуждения, статьи и ссылки на нём по диагонали.
Там же можете доставать непонятными вопросами местных форумчан sm.gif
Книги по Форт на форуме тоже представлены. Начните с 2-ух книг автора Броуди.

P.S. Google есть? sm.gif
Можно прочитать и это Статьи на xabraxabr по Форт тематике

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


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

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



Цитата(Kopa @ Jan 27 2016, 22:55) *
Выбирайте на своё усмотрение что больше будет понятно или достаточно по уровню Ваших технических "претензий"
Применение Форта для ARM, AVR, MSP430, PIC ...
и просмотрите форум, обсуждения и ссылки на нём по диагонали.
Там же можете доставать непонятными вопросами местных форумчан sm.gif

P.S. Google есть? sm.gif

спасибо. посмотрю.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Jan 27 2016, 16:58
Сообщение #45


Гуру
******

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



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

и что не так с интерфейсами в шарпе ?
Go to the top of the page
 
+Quote Post

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

 


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


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