Результаты опроса: Автоматы, в задачах логического управления

Голосовавшие
64. Вы ещё не голосовали в этом опросе
  • Использую

    26 40.63%
  • Буду использовать, нужная вещь

    18 28.13%
  • Не использую, пишу "влоб"

    6 9.38%
  • Не пойму, о чем речь

    14 21.88%
Страница 1 из 4 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 39

Тема: Switch-технология. Программирование задач логического управления.

  1. #1
    Пользователь
    Регистрация
    12.08.2008
    Адрес
    Белгород
    Сообщений
    63

    Arrow Switch-технология. Программирование задач логического управления.

    Обсуждение применения Switch-технологии. Инструменты.
    т.к. никто не хочет много читать, оставил только самое необходимое...


    По Switch-технологии, 2 книжки и статья:
    1) Шалыто А.А. Алгоритмизация и программирование задач логического управления СПбГУ ИТМО. 1998. 55 с
    Книга не большая, можно и почитать
    2) SWITCH-технология - автоматный подход к созданию программного обеспечения. 27 с
    Все четко, ничего лишнего.
    3) Вавилов К.В. Программирование за... 1 (одну) минуту. 9 с
    Небольшая статья о применении

    + 2 части статьи Татарчевского В.А. по 3 листа. Часть 4 Часть 5

    для общего развития:
    Шалыто А.А. Новая инициатива в программировании. Движение за открытую проектную документацию

    Применение для FBD!
    Книга
    Реальный пример
    Цитата Сообщение от gtfox Посмотреть сообщение
    см. картинки внизу вот этого сообщения
    Применение для C++!
    Конвертор Visio2Switch Головешин А.

    Применение для C++,C#,ASSEMBLER!
    MetaAuto - Преобразование графов переходов, представленных в формате MS Visio, в исходные коды программ для различных языков программирования. Канжелев С.Ю., Шалыто А.А.

    Применение для ST!
    Visio2ST - Предлагаю вариант реализации программы MetaAuto С.Ю. Канжелева, сконфигурированную для языка ST, для практического применения при программировании ПЛК на CoDeSys или другой среде.
    В MetaAuto, для переделки выходного языка не нужно лезть в исходники – достаточно исправить конфиги. Что и было сделано.


    Visio2ST

    СУТЬ программы вкратце:
    1. Создаем в Visio граф переходов автоматов
    2. Используем программу MetaAuto для языка ST
    3. Получаем текст программы

    Приемущества:
    1. Текст программы в точности соответствует графу переходов и вашим мыслям - они изоморфны.
    2. Автоматическая генерация кода. Не тратится время на набор текста и уменьшаются ошибки.
    3. Предлагаются простые и адекватные методы создания проектной документации, которая будет однозначно и полностью понятна всем: Заказчику, Технологу (Проектанту), Разработчику, Программисту, Оператору (Пользователю) и Контролеру.

    SWITCH-технология применительно к ПЛК:
    Основное, что хотелось бы сказать по поводу моего понимания SWITCH-технологии, применительно к программированию ПЛК это:
    1. Один автомат – один CASE.
    2. Нет понятий вложенность, вызываемость, событие. Все автоматы выполняются в каждом цикле ПЛК. Любое "событие" – это изменение переменной, ее и отражаем на графе. Взаимодействие автоматов – по номеру состояния.
    3. Использовать реальные имена переменных, а не абстрактные x5, е20, z35. Улучшается читаемость и понимаемость текста. Описание переменных не на графе, а в экселе, которые целиком копируются в кодесис и являются частью кода.

    Структура кода автомата на ST:
    Каждое состояние автомата состоит из разделов:
    1. (*Действия при первоначальном входе в это состояние*) (необязательный)
    2. (*Действия, постоянно выполняющиеся в этом состоянии*) (необязательный)
    3. (*Запускаем таймер этого состояния*) (необязательный)
    4. (*Запоминаем текущее состояние перед выполнением перехода*) (необязательный, если нет предыдущих)
    5. (*Проверка условий на дугах и выполнение переходов*) (обязательный)

    Visio2ST - качаем тут:
    _METAAUTO_VISIO2_ST_CPP_password=1.zip (42.06 Мб)


    Пожелание: вопросы задавать после прочтения metaAuto.pdf и также материалов 1-3 в начале сообщения.
    Также обсуждение Switch-технологии было здесь


    Собратья по теории:
    1) Стандартный SFC еще
    2) CoDeSys Professional Edition + UML
    3) Визуальный язык ДРАКОН Среда Видеоурок Форум
    4) Язык Рефлекс http://reflex-language.narod.ru
    5) MATLAB PLC Coder + Stateflow
    Изображения Изображения
    Вложения Вложения
    Последний раз редактировалось gtfox; 24.01.2022 в 11:53. Причина: Добавил на форум _METAAUTO_VISIO2ST_password=1.rar (1.69 Мб)

  2. #2

    По умолчанию

    а чем программка нарисованная в SFC с МЭК шагами глобально отличается от диаграмм нарисованных в VISIO ? ( ну конечно кроме того, что первый вариант уже работает, а диаграмму еще через предлагаемый конвертор прогонять нужно! )

  3. #3
    Пользователь
    Регистрация
    12.08.2008
    Адрес
    Белгород
    Сообщений
    63

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    а чем программка нарисованная в SFC с МЭК шагами глобально отличается от диаграмм нарисованных в VISIO ? ( ну конечно кроме того, что первый вариант уже работает, а диаграмму еще через предлагаемый конвертор прогонять нужно! )
    Шалыто А.А. Switch-технология. Алгоритмизация и программирование задач логического управления СПб.: Наука, 1998., 628 с
    стр. 13, последний абзац http://is.ifmo.ru/books/switch_pdf/_switch19.pdf

    глобально отличается
    Глобально, может и ничем, но:
    1. Если это графический язык, то почему такой убогий, в нем нет наглядности, могли бы что-нибудь типа Stateflow Матлабовского сделать...
    2. CoDeSys_V23_RU.pdf стр.182 есть неоднозначности, и я думаю могут возникнуть другие моменты, когда SFC будет ограничивать мои действия
    3. Если в среде программирования есть ST, то я пишу программы только на ST. Это дает свободу действий и уверенность в адекватном поведении.

  4. #4

    По умолчанию

    SFC - это собственно не язык, а средство структурирования программы, повышение ее читабельности и удобства отладки....
    разумеется при серьезной задаче альтернативы ST нет, но уже при размере программы более 2000-3000 строк становиться тупо неудобно и ниразу не наглядно... вот тут то и появляется SFC, в модулях которого и вписываются куски кода, логически разделенные по каким либо признакам.... например: начальная инициализация, рабочее состояние, состояние обслуживания, аварийное состояние и др. Использование чистого ST с вставкой функциональных блоков, либо функций, для повышения читабельности, все же несет дополнительные накладные расходы на вызовы процедур и менее устройчивы из-за возможных перекрытий переменных и прочих неприятностей, например увеличение требуемого количества флагов в селекторах...

    а по самому принципу использования switch, нет смысла спорить с самим капитаном "Очевидность".... для этого даже не нужно читать книжки по 700 страниц ))) (и уж точно не писать их!) .... разве что ТИЦ покрутить нужно )))
    Последний раз редактировалось Дмитрий Артюховский; 25.12.2011 в 16:02.

  5. #5
    Пользователь
    Регистрация
    07.12.2011
    Адрес
    г. Полтава, Украина
    Сообщений
    18

    По умолчанию

    Абсолютно согласен с Дмитрием. SFC, наоборот, считается языком самого высокого уровня из тех, что представлены в CoDeSyS. И если сравнивать по наглядности с ST, то последний однозначно "отдыхает".

    На счёт StateFlow в Matlab: в чем состоит принципиальное "богатство" этого редактора перед SFC? Я лично не заметил.

  6. #6

    По умолчанию

    Логическое управление подразумевает однозначное описание задачи в виде булевых выражений. Зачем нужно изобретать велосипед? Все логические вещи прекрасно реализуются на LD.

  7. #7
    Пользователь
    Регистрация
    07.12.2011
    Адрес
    г. Полтава, Украина
    Сообщений
    18

    По умолчанию

    Вопрос выбора языка сводится, в первую очередь, к удобству решения той или иной задачи при помощи выбранного языка программирования. При этом, кому-то одну и туже задачу будет удобнее осуществить на LD, а кому-то на ST.

    Хотя, я лично не считаю, что LD может полностью заменить тот же ST.

  8. #8

    По умолчанию

    Я и не утверждаю, что LD может заменить ST. С чего это Вы взяли? Чисто релейные алгоритмы однозначно описываются в LD, только это я и сказал. Например там невозможно обработать массивы, написать нормально связь по COM порту и т. п. Это надо конечно делать на ST или IL, хотя на IL сложней, но гибкость и лаконичность выше всяческих похвал.
    Вопрос же применения конечных автоматов, о котором вещает топикстартер, стар, как телефон Белла (или I8080 ). Эффективность применения этих методов в системах управления технологическим оборудованием до сих пор под большим вопросом.

  9. #9
    Пользователь
    Регистрация
    12.08.2008
    Адрес
    Белгород
    Сообщений
    63

    По умолчанию

    Цитата Сообщение от Алексей Дмитриев Посмотреть сообщение
    Вопрос же применения конечных автоматов, о котором вещает топикстартер, стар, как телефон Белла (или I8080 ).
    Не спорю, но телефоны применяли и развивали, потому что это удобнее чем голуби...
    еще цитата
    Не так важно кто нечто придумал первым - важно кто начинает это использовать не от случая к случаю, а как технологию: "Как делаются общественно-политические изобретения. Например, само по себе изобретение паровой машины еще не вело к промышленной революции — нечто подобное создавалось и раньше в других странах Европы. Заслуга Джеймса Уатта была не в том, что он изобрел паровую машину, а в том, что сумел продать первые сто экземпляров. Это и есть опыт цивилизации — когда открытие, возникшее исторически случайно, начинает использоваться сознательно, как технология, и воспроизводится в дальнейшем опыте (Виталий Лейбин. Русский репортер)".
    Я считаю, что так произошло с автоматным программированием, которое распространяется все шире и шире - http://www.state-machine.com/about/customers.php. Название нашего сайта уже много лет связано с автоматным программированием, у этого сайта даже понятие автомат даже входит в его название. Обратите внимание каким компаниям нужны инструменты для автоматного программирования! А мне все не верили, как оно важно.

    Цитата Сообщение от Алексей Дмитриев Посмотреть сообщение
    Эффективность применения этих методов в системах управления технологическим оборудованием до сих пор под большим вопросом.
    Если не трудно, то укажите источники информации.

  10. #10

    По умолчанию

    Программирование с использованием автоматов на CASE и многозначным кодированием является одним из древнейших классических методов. Применяется со времен незапамятных. У меня сохранилась автоматная программа для контроллера охранной сигнализации 20 летней давности.

    Тема многократно разбиралась всячески. Например.

    В работах Шалыто подход отшлифован до технологии, получивший название Switch. Безусловно это здорово.

    Практически главным образом напрягает то, что под Switch технологию так и не появилось никакого интегрированного инструментария. Если я нарисовал граф в Visio, то подключив кабель к ПЛК, я должен видеть оживший граф прямо в Visio. Только тогда можно говорить о какой-то наглядности сопоставимой с SFC и т.п.. Смотреть же на ассемблер, Си или FBD и представлять в голове что этому соответствует в исходном графе... теоретически возможно. Но, нужно быть убежденным сторонником чтобы получать удовлетворение от самого процесса

    Цитата Сообщение от gtfox Посмотреть сообщение
    ..могли бы что-нибудь типа Stateflow Матлабовского сделать...
    Уговорили...
    См. CoDeSys Professional Edition.

Страница 1 из 4 123 ... ПоследняяПоследняя

Похожие темы

  1. Сборник задач
    от antsa в разделе ПЛК1хх
    Ответов: 21
    Последнее сообщение: 01.12.2023, 15:17
  2. конфиг. задач
    от Safron в разделе ПЛК63/73
    Ответов: 8
    Последнее сообщение: 08.09.2010, 15:38
  3. циклично-поточная технология транспортировки сырья
    от AlexP в разделе Подбор Оборудования
    Ответов: 4
    Последнее сообщение: 18.04.2010, 00:43
  4. ПЛК100 по Eternet через switch
    от Денис в разделе Сетевые технологии
    Ответов: 52
    Последнее сообщение: 20.06.2008, 09:43
  5. Подключение ПЛК-150 через Switch
    от Сергей М в разделе ПЛК1хх
    Ответов: 2
    Последнее сообщение: 19.05.2008, 15:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •