Страница 1 из 1
Система проектирования логического управления (требуется пом
Добавлено: 26 мар 2011, 06:44
replic
Есть задание разработать Систему проектирования алгоритмов логического управления дискретными процессами.
Система должна быть основана на сетях Петри. Преобразовывается в конечный автомат, и в конце получаем таблицу переходов.
И вот тут загвоздка. Зачем эта таблица переходов? Сам не могу понять Грустный
Еще нужно привести в пример подобные программные продукты. Не нашел ничего конкретного и однозначного. Под определение Scada-систем точно не подходит, и под программирование ПЛК тоже...
Если кто может помочь, очень прошу...
Re: Система проектирования логического управления (требуется
Добавлено: 26 мар 2011, 12:36
Marrenoloth
Вообще, есть такой язык - 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 я ее не видел, а в нем она больше для рецептов заточена, нежели для представления переходов - функционал, не имеющий отношения к теме), а используктся как промежуточный этап при компиляции графа переходов для генерации кода на асемблероподобном языке, который и понимают контроллеры.
Re: Система проектирования логического управления (требуется
Добавлено: 26 мар 2011, 13:23
CHANt
http://is.ifmo.ru/progeny/ - Наиболее развитая практическая тема применения конечных автоматов, приближающаяся к нотации UML. Много копий на эту тему сломано, но не суть. Сама идея, подходы, популяризация методики, ее применимость в любых системах программирования наверное единственная в рунете, которая держится до сих пор на энтузиазме, ну и наверное за гос. счет :) Там же найдете и некоторые системы похожие на Вашу задачу, скажем так - на начальном этапе.
Re: Система проектирования логического управления (требуется
Добавлено: 26 мар 2011, 19:37
replic
А вот язык SFC и многие другие именно для программирования контроллеров предназначены? Ну то есть именно они генерируют ассемблероподобный код?
Просто как я понял, моя программа всего-то и должна что преобразовать сеть петри в автомат и создать таблицу переходов, которая будет использована для генерации кода для контроллера уже языком программирования... То есть, по идее это будет не язык программирования.
Про конечные автоматы я, конечно, читал, но для меня еще на 3 курсе это было кошмаром, который я не понимал. Сейчас вот вникаю подробнее, раз уж связался.
Большое спасибо за пояснения. Если можно, посматривайте эту ветку, чувствую, я надолго с этим застряну и еще может понадобиться какая-нибудь помощь... Заранее спасибо.
Re: Система проектирования логического управления (требуется
Добавлено: 26 мар 2011, 20:08
Marrenoloth
Угораздило же вас (Исключительно ИМХО!)!
Посмотрите еще раз ссылку на стандарт IEC 61131-3, которую я давал выше - это именно стандарт, описывающий международные стандартные языки программирования PLC. А при компиляции все все-равно на асме. В конце-концов и РС ваш так-же работает!
Насколько я понимаю логику построения компилятора для такого языка, то сначала надо перевести сеть Петри в таблицу, а потом ее в перевести в ассемблер.
По-идее, вы можете выдавать эту таблицу как промежуточный результат для преподавателя, а потом генерить исходник, к примеру, на IL с заточкой под конкретную марку контроллеров. Иначе жизни этой программе не видать!
Эта ветка всем автоматом рассылает события - не волнуйтесь!
Re: Система проектирования логического управления (требуется
Добавлено: 27 мар 2011, 07:34
Михайло
Можно еще у 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
Re: Система проектирования логического управления (требуется
Добавлено: 28 мар 2011, 06:37
CHANt
replic писал(а):Просто как я понял, моя программа всего-то и должна что преобразовать сеть петри в автомат и создать таблицу переходов, которая будет использована для генерации кода для контроллера уже языком программирования...
А зачем в автомат то переводить? Сразу в код, будет проще. Может нужно просто два подхода и сеть Петри и конечный автомат - на практике проще решать задачу на конечных автоматах.
Вот ссылку ранее приводил, там есть пару подобных конвертеров, но для автоматов. В MS Visio шейпами создается граф в соответствии с нотацией и описание требуемой функции, т.е. описание входов/выходов. Из чертежа в MS Visio конвертер, средствами OLE, переводит в С, С#, Ассемблер еще что-то. Причем эти конвертеры снабжены и алгоритмами на тех же автоматах, и исходным кодом, и вполне понятным описанием. Да, последний вариант конвертера работает через шаблон XML необходимого языка. Мне кажется, такая проторенная дорожка проще, чем создавать свою вариацию SFC еще и в одиночку.