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

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

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

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

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

    13 22.41%
Страница 4 из 4 ПерваяПервая ... 234
Показано с 31 по 39 из 39

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

  1. #31

    По умолчанию

    Цитата Сообщение от gtfox Посмотреть сообщение
    ...Matlab стоит дороже Visio
    С MATLAB и PLC Link фишка в том, что мы строим математическую модель системы управления. Например, для ветряков известна система диф уравнений. Матлаб способен их решать с нужным шагом и точностью. Параллельно рисуем систему управления. Запускаем это все на компьютере, смотрим. Можем попробовать разные регуляторы, четкие, нечеткие. Выбираем лучшее решение. Дальше делается волшебство. Оно заключается в том, что управляющая модель автоматически конвертируется в CoDeSys и запускается в ПЛК параллельно. Мало того, система сравнивает точность результатов вычислений в компьютере и ПЛК и строит графики. Мы можем менять настройки. Например, указываем применять REAL переменные либо более тяжелые библиотеки высокой точности. Результатом моделирования является рабочая, верифицированная программа в ПЛК. Программирования нет вообще. Понятно, что все это передовая наука и пока не дешево. Но, впечатляет

  2. #32

    По умолчанию

    Цитата Сообщение от gtfox Посмотреть сообщение
    Вот поэтому я и не хотел заводить разговор о параллельности
    Фон Неймана никто не отменял, несмотря на прерывания
    Причем тут прерывания? Уже существуют ПЛК под CoDeSys Control c несколькими процессорами и физически параллельными вычислениями в МЭК языках. ОС РВ уже норма для ПЛК. Фон Нейманы освоили бригадный метод
    Цитата Сообщение от gtfox Посмотреть сообщение
    Не очень понял конечно, какой такой готовый механизм синхронизации... Это, если в 1 ветви 1 шаг, а в параллельной 10, то 1-я ветвь будет ждать завершения соседних 10-ти...
    В современных ПЛК широко применяется реальная многозадачность. Она сильно упрощает жизнь. Механизмы мьютексов, событий и исключений придуманы не зря. Синхронизация процессов не такое простое дело. Если отказаться от нормальной многозадачности, сделать шаг назад в эволюции ПЛК, то такой простой механизм синхронизации будет исправно работать.
    Цитата Сообщение от gtfox Посмотреть сообщение
    Если в SFC сделать 2 параллельных шага, в одном шаге будет выполнятся быстрый код, в другом долгий код.
    Вопрос: Не используя событийных задач с высшим приоритетом, чему будет равен цикл ПЛК (быстрому или долгому коду)?
    Параллельные ветви SFC никак не решают проблемы РВ. И switch тут тоже ничем не помогает.
    Используя менеджер задач CoDeSys, сделаем циклические задачи с разными приоритетами и временами цикла. 5 движений мышкой и проблема надежно решена. Все системные проблемы решает планировщик рантайм. Этим не должен ломать голову прикладной программист.
    Цитата Сообщение от gtfox Посмотреть сообщение
    + Ничто не мешает нам использовать событийные задачи с высшим приоритетом в "switch-технологии"
    Как?
    Цитата Сообщение от gtfox Посмотреть сообщение
    Не совсем "суперкувалду", а один из работающих вариантов реализации автоматного подхода
    Я на учебных курсах по программированию ПЛК показываю свич технологию. Хотелось бы дать четкие критерии, когда ее стоит применять, а когда нет. Вы можете описать недостатки switch технологии и задачи, для которых она не подходит?
    Цитата Сообщение от gtfox Посмотреть сообщение
    Язык Рефлекс - замечательная вещь
    Если бы с него можно было в ST код генерить - было бы замечательно, однако я не нашел.
    См. тут. http://reflex-language.narod.ru/arti...nd-S-STenh.pdf

    Обсуждая подобные темы в ветке по CoDeSys возникает законный вопрос: что из предлагаемого имело бы смысл поддержать в данном комплексе?

    С Рефлексом все четко. Весь необходимый функционал есть в рантайме. Нужно ввести в ST несколько ключевых. Вполне реально написать плагин и получим поддержку Рефлекса в CoDeSys.

    Со свичем не так очевидно. Добавили UML диаграммы в CoDeSys Professional Edition. Автоматный подход реализован графически, изящно, живой обратной связью при отладке. Никаких конвертеров и промежуточных ST или C кодов. Что плохо?

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

    По умолчанию

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    С MATLAB и PLC Link фишка в том...
    Ну давайте по порядку.
    Модель объекта получили : 1) аналитически
    2) по диф урвнениям
    3) по переходной хар-ке в Систем идентификейшн
    Это хорошо
    Пробуем разные регуляторы: четкие, нечеткие.
    Настроили, отладили. Это хорошо
    Регуляторная часть работает
    Дальше нужно еще написать логическую часть, систему аварий, архивов, интерфейс пользователя
    и прикрутить это к сгенерированному коду, который как бы должен быть читаемым и понимаемым...
    Допускаю, что логическую часть можно хорошо сделать в Стейтфлоу, но остальное без программирования трудно представить.

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Причем тут прерывания? Уже существуют ПЛК под CoDeSys Control c несколькими процессорами и физически параллельными вычислениями в МЭК языках. ОС РВ уже норма для ПЛК. Фон Нейманы освоили бригадный метод
    Согласен с Вами. Но разговор начался с вопроса о переходе в 2 состояния одновременно, и на форуме Овен . На сколько мне известно у Овена пока нет бригады Фон Нейманов . Предлагаю закрыть "параллельную" тему.

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    В современных ПЛК широко применяется реальная многозадачность. Она сильно упрощает жизнь. Механизмы мьютексов, событий и исключений придуманы не зря. Синхронизация процессов не такое простое дело. Если отказаться от нормальной многозадачности, сделать шаг назад в эволюции ПЛК, то такой простой механизм синхронизации будет исправно работать.
    Уговорили, пойду читать про мьютексы, события и исключения.

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Параллельные ветви SFC никак не решают проблемы РВ. И switch тут тоже ничем не помогает.
    Используя менеджер задач CoDeSys, сделаем циклические задачи с разными приоритетами и временами цикла. 5 движений мышкой и проблема надежно решена. Все системные проблемы решает планировщик рантайм. Этим не должен ломать голову прикладной программист.
    Все таки я не понимаю, как же работает планировщик рантайм и какое будет время цикла и что при этом будет с длинными, по времени, задачами. Поищу где нибудь...
    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Как?
    на быстрый вход ПЛК вешаем событийную задачу с высшим приоритетом.
    Она мгновенно останавливает цикл и делает то, что должна: Вырубает оборудование, пишет аварию в журнал.

    Вообще конечно ооочень хотелось бы увидеть реальный пример системы с задачами/приоритетами и понять какие части программы Вы доверяете им а какие пишете по старинке

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Я на учебных курсах по программированию ПЛК показываю свич технологию. Хотелось бы дать четкие критерии, когда ее стоит применять, а когда нет. Вы можете описать недостатки switch технологии и задачи, для которых она не подходит?
    Попробую.
    На счет плюсов и применяемости написано в шапке темы. Там всего много, и никто не читает. Я ее отредактирую оставлю только самое самое...

    От меня: "когда ее стоит применять, а когда нет?" - применять только для алгоритмизации (для задач логического управления), причем правильным будет рисовать графы состояний вместе с технологом на этапе обсуждения ТЗ или "как это все должно работать". Потом нарисовать в visio, расставить переменные, получить код алгоритмической части. (либо можно обойтись без visio, рисовать сразу в SFC)
    Применительно к FBD минусом можно считать накладные расходы на память и кол-во блоков (в Овен Лоджике нет мультиплексоров Адрес=Int, Вх/Вых=Int, есть только Адрес=Bool, Вх/Вых=Int, пришлось делать свои Int/Int). Пример реализации в картинках.
    Применительно к ST минусом можно считать: программа в текстовом виде (кому минус, кому плюс ), нет визуальной динамики (решается визуализацией кодесис)
    Применительно к SFC: ограниченная графика; не конвертирует в ST. (хочу возможности графики Stasteflow )


    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    См. тут. http://reflex-language.narod.ru/arti...nd-S-STenh.pdf
    С Рефлексом все четко. Весь необходимый функционал есть в рантайме. Нужно ввести в ST несколько ключевых. Вполне реально написать плагин и получим поддержку Рефлекса в CoDeSys.
    По этой статье:
    1) это только предложение изменений, причем 2009 года. (воз и ныне там )
    2) "PROC" и "STATE" - это полный функциональный аналог "CASE" и "N:"
    3) "START" и "STOP" - это полный функциональный аналог состояния "Начало" (см. картинку гафа автомата )
    4) "ERROR" - это полный функциональный аналог состояния "Авария" (см. картинку гафа автомата )
    5) "TIMEOUT" - T_Zaver_progr :TON:=(PT:=T#10m); (*Время Завершения программы прогрева*)
    Вывод: эти изменения не нужны.

    По Рефлексу:
    1) в ST код не генерит
    2) кто будет писать плагин. У меня нет квалификации для его написания
    К чему я это все: MetaAuto конвертер уже делает то что необходимо. Если бы были средства использования рефлекса то не появился бы конвертер.

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Обсуждая подобные темы в ветке по CoDeSys возникает законный вопрос: что из предлагаемого имело бы смысл поддержать в данном комплексе?
    Нормальную графику SFC, это графический язык, должен радовать глаз . Адекватный конвертер в ST.

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Со свичем не так очевидно. Добавили UML диаграммы в CoDeSys Professional Edition. Автоматный подход реализован графически, изящно, живой обратной связью при отладке. Никаких конвертеров и промежуточных ST или C кодов. Что плохо?
    Все просто великолепно!
    Еще из первого поста
    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    посмотрел английскую пдф-ку, полез на сайт, информацию не нашел, пол часа тыкался по меню и ссылкам.
    В пдф-ке есть
    Product name Order code
    CoDeSys UML 602003
    из чего ясно что за деньги...
    Вопросы:
    1) Где взять CoDeSys Professional Edition
    2) Сколько стоит
    3) Есть ли Training(Free) версия
    Изображения Изображения
    Последний раз редактировалось gtfox; 12.01.2012 в 18:33.

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

    Lightbulb

    Шапка темы изменена

  5. #35

    По умолчанию

    Professional Edition относится к V3. Подготовлю по нему отдельную тему. Аналогично CoDeSys Application Composer. Он растет из идей ООП, далековато от этой темы.
    Цитата Сообщение от gtfox Посмотреть сообщение
    Предлагаю закрыть "параллельную" тему.
    Тяжело без нее. В новых ПЛК Овен с Linux многозадачность вытесняющая. Можно проектировать основную часть программы, не напрягаясь разбиением на короткие циклы. Задача с более высоким приоритетом пробьет длинные циклы других задач.

    Многозадачные примеры? Однозадачные трудней придумать. 2 светофора = 2 задачи... Климатическая камера: Архивация на диск – отдельная низкоприоритетная задача с циклом 1 минута (кстати, свич на ST). Синхронизация встроенных часов - циклическая задача 1 час. Опорос кнопок режимов – высокий приоритет цикл 20 мс. Подготовка данных для графиков – фоновая задача. Все работает параллельно.
    Запись строки на USB флешку делается 1 функцией. В нашем контроллере (на чипе Beck) она иногда (с износом флешки чаще) задумывается надолго. Пускай себе, другие задачи это не тормозит. Как тут ‘по старинке’? Только внешним самописецем.

    Каждая отдельная задача отлично описывается автоматом. Вопрос как наглядно описать их взаимодействие в РВ?
    Цитата Сообщение от gtfox Посмотреть сообщение
    на быстрый вход ПЛК вешаем событийную задачу с высшим приоритетом. Она мгновенно останавливает цикл и делает то, что должна
    Она срабатывает и ударяет кувалдой по всей технологии. В программе получается ход конем, который никак не описан в исходной диаграмме. Так?

    По Рефлексу:
    1. Плагин есть кому написать. Была бы материальная необходимость.
    2. Зачем ему генерировать ST код? Генерировать надо машинный код и никому не показывать. Отладка в онлайне должна идти в самом Рефлексе. Если я запустил пошаговое выполнение или точки останова, то наблюдать я должен работу Рефлекса, а не ST.
    Обязательно нужна не только конвертация в текст, но и обратная связь из работающего ПЛК в диаграмму. О какой наглядности можно говорить, если проектируем диаграмму, а в онлайне смотрим в текст?
    Цитата Сообщение от gtfox Посмотреть сообщение
    SFC: ... не конвертирует в ST
    Полноценный МЭК SFC предполагает, что всю полезную работу выполняют действия. В программе есть неявный массив действий, десятки или сотни. Говорить ‘выполнение шагов’ вообще не корректно. Исполнитель SFC моментом просматривает все активные шаги и меняет действиям флажки активности и таймеры. На этом ‘выполнение’ шагов заканчивается. Далее внутри исполнителя SFC сидит ядро маленькой операционной системы. Она запускает все активные действия (квази)параллельно. Действиями могут быть либо подпрограммы, либо переменные, либо выходы ПЛК. Задачи последовательностного логического и временного управления решаются на ‘чистом МЭК SFC’ в лоб, без применения других МЭК языков. Рисуем SFC диаграмму и она сразу оживает и работает. В онлайне шикарно просматривается работа шагов и действий. ИМХО нагляднее некуда.

    Не понимаю если без visio сразу рисуем в SFC, то зачем потом конвертировать ST?

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

    По умолчанию

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Professional Edition относится к V3. Подготовлю по нему отдельную тему. Аналогично CoDeSys Application Composer. Он растет из идей ООП, далековато от этой темы.
    1) Не нашел тему про CoDeSys Application Composer ни на форуме owen ни на 3s-software
    2) так и не понял:
    2.1) Где взять CoDeSys Professional Edition
    2.2) Сколько стоит
    2.3) Есть ли Training(Free) версия, для энтузиастов
    3) Можно ли в Professional Edition использовать UML в качестве "исполняемого языка алгоритмизации", или он там только для нужд ООП?

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Многозадачные примеры? Однозадачные трудней придумать. 2 светофора = 2 задачи... Климатическая камера: Архивация на диск – отдельная низкоприоритетная задача с циклом 1 минута (кстати, свич на ST). Синхронизация встроенных часов - циклическая задача 1 час. Опорос кнопок режимов – высокий приоритет цикл 20 мс. Подготовка данных для графиков – фоновая задача. Все работает параллельно.
    Запись строки на USB флешку делается 1 функцией. В нашем контроллере (на чипе Beck) она иногда (с износом флешки чаще) задумывается надолго. Пускай себе, другие задачи это не тормозит. Как тут ‘по старинке’? Только внешним самописецем.
    Благодарю за примеры. Я надеялся увидеть пример реального проекта (куска проекта), но и за это благодарен.
    Из приведенных примеров к задачам логического управления относятся только светофоры, и каждый из них выполняется в одной задаче...
    У Вас были примеры, где Вы алгоритм (условно "Светофора") разбивали на задачи?

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Каждая отдельная задача отлично описывается автоматом. Вопрос как наглядно описать их взаимодействие в РВ?
    например, можно вот так, 2 стр., внизу. (см. картинку)
    вместо "Контроль кнопки стоп" рисуем весь автомат, который будет работать паралельно...
    будет полнота функционирования но меньше наглядности

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Она срабатывает и ударяет кувалдой по всей технологии. В программе получается ход конем, который никак не описан в исходной диаграмме. Так?
    Так. Над этими вопросами надо подумать. С реальными примерами, касаемо задач логического управления, думалось бы быстрее

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    По Рефлексу:
    1. Плагин есть кому написать. Была бы материальная необходимость.
    2. Зачем ему генерировать ST код? Генерировать надо машинный код и никому не показывать. Отладка в онлайне должна идти в самом Рефлексе. Если я запустил пошаговое выполнение или точки останова, то наблюдать я должен работу Рефлекса, а не ST.
    Обязательно нужна не только конвертация в текст, но и обратная связь из работающего ПЛК в диаграмму. О какой наглядности можно говорить, если проектируем диаграмму, а в онлайне смотрим в текст?
    1) По Рефлексу: когда Вы его упомянули в первый раз, я его спутал с ДРАКОНОМ, графическим языком программирования. Потом выяснилось, что Рефлекс мало чем отличается от ST.
    2) ДРАКОН также генерирует исходные тексты на разных языках программирования, но их реализация базируется на операторе GOTO

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Полноценный МЭК SFC предполагает, что всю полезную работу выполняют действия. В программе есть неявный массив действий, десятки или сотни. Говорить ‘выполнение шагов’ вообще не корректно. Исполнитель SFC моментом просматривает все активные шаги и меняет действиям флажки активности и таймеры. На этом ‘выполнение’ шагов заканчивается. Далее внутри исполнителя SFC сидит ядро маленькой операционной системы. Она запускает все активные действия (квази)параллельно. Действиями могут быть либо подпрограммы, либо переменные, либо выходы ПЛК. Задачи последовательностного логического и временного управления решаются на ‘чистом МЭК SFC’ в лоб, без применения других МЭК языков. Рисуем SFC диаграмму и она сразу оживает и работает. В онлайне шикарно просматривается работа шагов и действий. ИМХО нагляднее некуда.
    Согласен... если у него появится нормальная графика (пример stateflow)

    Цитата Сообщение от Игорь Петров Посмотреть сообщение
    Не понимаю если без visio сразу рисуем в SFC, то зачем потом конвертировать ST?
    ST код можно перенести в другую среду программирования при минимальных затратах, а вот графические языки переносить сложнее, проще все перерисовать в другой среде.
    ST освобождает от возможных ограничений графической среды. Ну и, в конце концов, я люблю текстовые языки

    PS
    долго отсутствовал по рабочим причинам
    Изображения Изображения
    Последний раз редактировалось gtfox; 23.02.2012 в 22:12.

  7. #37

    По умолчанию

    где то прокатит, где то нет, и не факт что время цикла стабильное, и сигнал как назло может появится на входе сразу после того как контроллер прочитал состояние входов и реакция выходом может занять по времени почти два цикла. Задачи разные бывают, я с такими часто сталкиваюсь.

  8. #38

    По умолчанию

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

    или другое, станочек из двух рулонов клеит пакетики, на пакетиках рисунок и метка. Привод на шаговике, выход на позиции для операций расчётный (кроме реза там ещё две штамповки), по рампе с разгоном и торможением, но бумага проскальзывает в валах, меняет размер при нагреве. По метке Просто ведётся корректировка позиции шаговика, метку всегда проходит на разной скорости, в цикле заметное непопадание под операцию в прерывании идеальный результат. но это уже не на Овене. Станочек у меня с секундомером принимали.
    Последний раз редактировалось BETEP; 24.02.2012 в 13:10.

  9. #39

    По умолчанию

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

    не так всё просто с временем цикла контроллера, не зря ведь придумали обработку части входов и выходов вне основного цикла, Наверно это кому то нужно.
    управление через SysLibPort и timer.lib
    Последний раз редактировалось BETEP; 24.02.2012 в 16:08.

Страница 4 из 4 ПерваяПервая ... 234

Похожие темы

  1. Сборник задач
    от antsa в разделе ПЛК1хх
    Ответов: 20
    Последнее сообщение: 03.06.2015, 06:18
  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

Ваши права

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