Есть задание разработать Систему проектирования алгоритмов логического управления дискретными процессами.
Система должна быть основана на сетях Петри. Преобразовывается в конечный автомат, и в конце получаем таблицу переходов.
И вот тут загвоздка. Зачем эта таблица переходов? Сам не могу понять Грустный
Еще нужно привести в пример подобные программные продукты. Не нашел ничего конкретного и однозначного. Под определение Scada-систем точно не подходит, и под программирование ПЛК тоже...
Если кто может помочь, очень прошу...
- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Система проектирования логического управления (требуется пом
Модератор: Глоб.модераторы
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 26 мар 2011, 06:32
- Имя: Иван Лысиков
-
- завсегдатай
- Сообщения: 524
- Зарегистрирован: 05 окт 2009, 11:51
- Имя: Тихомиров Дмитрий Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 17 раз
- Поблагодарили: 20 раз
Re: Система проектирования логического управления (требуется
Вообще, есть такой язык - SFC (http://ru.wikipedia.org/wiki/Sequential_Function_Chart). Есть еще его младший брат s7-Graph, но только у Siemens'а. Т.к. это стандарт IEC 61131-3 (http://ru.wikipedia.org/wiki/IEC61131-3), то он присутствует практически в любых средах программирования от любых производителей (названия в по линкам). Есть еще PlantiT от ProLeiT, но там так реализуется только процедура объекта с общеизвестным названием Sequence. Если нужно, расскажу подробнее.
А таблица переходов, как правило не выходит к пользователю (за исключением PlantiT я ее не видел, а в нем она больше для рецептов заточена, нежели для представления переходов - функционал, не имеющий отношения к теме), а используктся как промежуточный этап при компиляции графа переходов для генерации кода на асемблероподобном языке, который и понимают контроллеры.
А таблица переходов, как правило не выходит к пользователю (за исключением PlantiT я ее не видел, а в нем она больше для рецептов заточена, нежели для представления переходов - функционал, не имеющий отношения к теме), а используктся как промежуточный этап при компиляции графа переходов для генерации кода на асемблероподобном языке, который и понимают контроллеры.
-
- эксперт
- Сообщения: 1467
- Зарегистрирован: 25 июл 2008, 10:25
- Имя: Эдуард Владимирович
- Страна: СССР
- город/регион: Оренбург
- Благодарил (а): 46 раз
- Поблагодарили: 105 раз
Re: Система проектирования логического управления (требуется
http://is.ifmo.ru/progeny/ - Наиболее развитая практическая тема применения конечных автоматов, приближающаяся к нотации UML. Много копий на эту тему сломано, но не суть. Сама идея, подходы, популяризация методики, ее применимость в любых системах программирования наверное единственная в рунете, которая держится до сих пор на энтузиазме, ну и наверное за гос. счет :) Там же найдете и некоторые системы похожие на Вашу задачу, скажем так - на начальном этапе.
--------------------------------------------------------------------------------------------
-
- здесь недавно
- Сообщения: 2
- Зарегистрирован: 26 мар 2011, 06:32
- Имя: Иван Лысиков
Re: Система проектирования логического управления (требуется
А вот язык SFC и многие другие именно для программирования контроллеров предназначены? Ну то есть именно они генерируют ассемблероподобный код?
Просто как я понял, моя программа всего-то и должна что преобразовать сеть петри в автомат и создать таблицу переходов, которая будет использована для генерации кода для контроллера уже языком программирования... То есть, по идее это будет не язык программирования.
Про конечные автоматы я, конечно, читал, но для меня еще на 3 курсе это было кошмаром, который я не понимал. Сейчас вот вникаю подробнее, раз уж связался.
Большое спасибо за пояснения. Если можно, посматривайте эту ветку, чувствую, я надолго с этим застряну и еще может понадобиться какая-нибудь помощь... Заранее спасибо.
Просто как я понял, моя программа всего-то и должна что преобразовать сеть петри в автомат и создать таблицу переходов, которая будет использована для генерации кода для контроллера уже языком программирования... То есть, по идее это будет не язык программирования.
Про конечные автоматы я, конечно, читал, но для меня еще на 3 курсе это было кошмаром, который я не понимал. Сейчас вот вникаю подробнее, раз уж связался.
Большое спасибо за пояснения. Если можно, посматривайте эту ветку, чувствую, я надолго с этим застряну и еще может понадобиться какая-нибудь помощь... Заранее спасибо.
-
- завсегдатай
- Сообщения: 524
- Зарегистрирован: 05 окт 2009, 11:51
- Имя: Тихомиров Дмитрий Викторович
- Страна: Россия
- город/регион: Москва
- Благодарил (а): 17 раз
- Поблагодарили: 20 раз
Re: Система проектирования логического управления (требуется
Угораздило же вас (Исключительно ИМХО!)!
Посмотрите еще раз ссылку на стандарт IEC 61131-3, которую я давал выше - это именно стандарт, описывающий международные стандартные языки программирования PLC. А при компиляции все все-равно на асме. В конце-концов и РС ваш так-же работает!
Насколько я понимаю логику построения компилятора для такого языка, то сначала надо перевести сеть Петри в таблицу, а потом ее в перевести в ассемблер.
По-идее, вы можете выдавать эту таблицу как промежуточный результат для преподавателя, а потом генерить исходник, к примеру, на IL с заточкой под конкретную марку контроллеров. Иначе жизни этой программе не видать!
Эта ветка всем автоматом рассылает события - не волнуйтесь!
Посмотрите еще раз ссылку на стандарт IEC 61131-3, которую я давал выше - это именно стандарт, описывающий международные стандартные языки программирования PLC. А при компиляции все все-равно на асме. В конце-концов и РС ваш так-же работает!
Насколько я понимаю логику построения компилятора для такого языка, то сначала надо перевести сеть Петри в таблицу, а потом ее в перевести в ассемблер.
По-идее, вы можете выдавать эту таблицу как промежуточный результат для преподавателя, а потом генерить исходник, к примеру, на IL с заточкой под конкретную марку контроллеров. Иначе жизни этой программе не видать!
Эта ветка всем автоматом рассылает события - не волнуйтесь!
-
- эксперт
- Сообщения: 3632
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 284 раза
Re: Система проектирования логического управления (требуется
Можно еще у Adastra скачать бесплатную версию TraceMode. Там есть красивый SFC. Результатом работы этого модуля SFC является рабочий код для определенных контроллеров. Про Сименс тебе сказали... там генерится код для контроллера только своих моделей.
Естественно этот стандарт по бОльшей части пригоден для контроллеров, так как именно они плотно работают с дискретными сигналами. Но никто не мешает сделать такой код-генератор для персонального компьютера. Например, для Visual Basic. Только оно надо?
http://www.asutpforum.spb.ru/viewtopic.php?f=33&t=900
http://www.asutpforum.spb.ru/viewtopic.php?f=35&t=1450
Естественно этот стандарт по бОльшей части пригоден для контроллеров, так как именно они плотно работают с дискретными сигналами. Но никто не мешает сделать такой код-генератор для персонального компьютера. Например, для Visual Basic. Только оно надо?
http://www.asutpforum.spb.ru/viewtopic.php?f=33&t=900
http://www.asutpforum.spb.ru/viewtopic.php?f=35&t=1450
-
- эксперт
- Сообщения: 1467
- Зарегистрирован: 25 июл 2008, 10:25
- Имя: Эдуард Владимирович
- Страна: СССР
- город/регион: Оренбург
- Благодарил (а): 46 раз
- Поблагодарили: 105 раз
Re: Система проектирования логического управления (требуется
А зачем в автомат то переводить? Сразу в код, будет проще. Может нужно просто два подхода и сеть Петри и конечный автомат - на практике проще решать задачу на конечных автоматах.replic писал(а):Просто как я понял, моя программа всего-то и должна что преобразовать сеть петри в автомат и создать таблицу переходов, которая будет использована для генерации кода для контроллера уже языком программирования...
Вот ссылку ранее приводил, там есть пару подобных конвертеров, но для автоматов. В MS Visio шейпами создается граф в соответствии с нотацией и описание требуемой функции, т.е. описание входов/выходов. Из чертежа в MS Visio конвертер, средствами OLE, переводит в С, С#, Ассемблер еще что-то. Причем эти конвертеры снабжены и алгоритмами на тех же автоматах, и исходным кодом, и вполне понятным описанием. Да, последний вариант конвертера работает через шаблон XML необходимого языка. Мне кажется, такая проторенная дорожка проще, чем создавать свою вариацию SFC еще и в одиночку.
--------------------------------------------------------------------------------------------