Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя
Показано с 31 по 40 из 48

Тема: Многопоточность

  1. #31

    По умолчанию

    Кстати, Владислав, судя по вашей фразе
    в ПЛК110 новой редакции мы применили 2 сопроцессора для обработки быстрых входов/выходов.
    И высокоскоростная обработка буде происходить внутри сопроцесоров. На текущий момент поддержан весь "быстрый" функционал ПЛК110
    в ранних версиях ПЛК110 и, наверное ПЛК100 эти функции должны "хромать"?

  2. #32

    По умолчанию

    Идея прерываний противоречит концепции ПЛК в принципе. Однако она удобна, поэтому в ПЛК110 сделан параллельный циклик, который много быстрее основного. Это позволяет эмулировать прерывания, с запаздыванием отклика на время не более этого самого циклика. В ПЛК100 это совсем не реализовано. У меня наворочено довольно много функционала при быстром прерывании 40 мкс и основным циклом 4 мс. Быстрый таймер написан на IL, что быстрее чем аналог на ST процентов на 30, хотя это возможно от способа мышления зависит ))
    ЗЫ. а чему там хромать? прошло 20 мкс - прогоняется циклик, кончился - происходит возврат к выполнению основного.... если в основном много работы - он не вложится в свои рамки... но это уже проблемы программера.... отличие от классических прерываний в том, что основной цикл нормально увидит результаты быстрых, только в начале следующего.... пробрасывать через общие переменные можно, но тогда такооой бардак при выполнении....

  3. #33

    По умолчанию

    Цитата Сообщение от KGB Посмотреть сообщение
    Писать в CoDeSys обработчик прерывания - неблагодарное занятие, да и ненужное.
    Хм. А кто будет делать полезную работу?
    Цитата Сообщение от KGB Посмотреть сообщение
    В самом языке поддерживается идея вытесняющей многозадачности и для контроллеров имеющих быстрые входы можно реализовать переход к более приоритетной задаче при наличии события на таком входе (по сути это и есть прерывание) но при одном условии - если разработчики заложили такую функцию в свое изделие.
    Давайте не будем фантазировать. В языке ничего не поддерживается. Это все дело ОС и соответствующего ПО обработки прерываний.
    Что прерывание таймера в ПЛК110, что вызов задачи по событию в том же СПК - внутри всё одинаковое И очень неоптимальное, к сожалению. В 3-м CODeSys-е еще хуже стало.

    Цитата Сообщение от KGB Посмотреть сообщение
    У Овена есть быстрые входы, в планировщике задач есть вызов задачи по внешнему событию, и даже в этих событиях заложены две позиции TASK_Т01 и TASK_I01, первая из которых - вызов задачи по сигналу таймера. Что означает вторая - похоже военная тайна (ну, или я не заметил ее расшифровки между строк всей документации) хотя судя по написанию - это и есть физический вход, но тогда какой?И самое главное - непонятно, как работает вызов такой задачи, по принципу вытесняющей многозадачности или не вытесняющей. Собственно вот те несколько вопросов на которые я хотел бы услышать ответ.
    Или, хотя бы, "...в током-то и таком-то контроллере такая функция реализована...", но в ответ - тишина....
    Простите, не тишина, а куча идей на отвлеченную тему.
    TASK_Т01 и TASK_I01с - в первый раз такие аббревиатуры вижу. Сриншотик сохранился? Даже стало интересно.
    Последний раз редактировалось Филоненко Владислав; 22.08.2013 в 17:58.
    Тролль-наседка, добрый, нежный и ласковый

  4. #34

    По умолчанию

    Цитата Сообщение от KGB Посмотреть сообщение
    Кстати, Владислав, судя по вашей фразе в ранних версиях ПЛК110 и, наверное ПЛК100 эти функции должны "хромать"?
    Заданные скоростные параметры были реализованы. Но хотелось большего - поставили сопроцессоры.
    Тролль-наседка, добрый, нежный и ласковый

  5. #35

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    Идея прерываний противоречит концепции ПЛК в принципе. Однако она удобна, поэтому в ПЛК110 сделан параллельный циклик, который много быстрее основного. Это позволяет эмулировать прерывания, с запаздыванием отклика на время не более этого самого циклика. В ПЛК100 это совсем не реализовано. У меня наворочено довольно много функционала при быстром прерывании 40 мкс и основным циклом 4 мс. Быстрый таймер написан на IL, что быстрее чем аналог на ST процентов на 30, хотя это возможно от способа мышления зависит ))
    ЗЫ. а чему там хромать? прошло 20 мкс - прогоняется циклик, кончился - происходит возврат к выполнению основного.... если в основном много работы - он не вложится в свои рамки... но это уже проблемы программера.... отличие от классических прерываний в том, что основной цикл нормально увидит результаты быстрых, только в начале следующего.... пробрасывать через общие переменные можно, но тогда такооой бардак при выполнении....
    Всё верно, кроме того, что прерывание не эмулируется, Код обработчика именно в нем и работает.
    Тролль-наседка, добрый, нежный и ласковый

  6. #36

    По умолчанию

    Цитата Сообщение от Филоненко Владислав Посмотреть сообщение
    TASK_Т01 и TASK_I01с - в первый раз такие аббревиатуры вижу. Сриншотик сохранился? Даже стало интересно.
    skr.bmp
    Пожалуйста, Владислав!
    Пополните свои знания о CoDeSys/

  7. #37
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,578

    По умолчанию

    Цитата Сообщение от KGB Посмотреть сообщение
    skr.bmp
    Пожалуйста, Владислав!
    Пополните свои знания о CoDeSys/
    Вот Вы бы лучше Владиславу напомнили эту тему http://www.owen.ru/forum/showthread.php?t=1855 может он бы и вспомнил, а может и Вы бы не задали этот вопрос

  8. #38

    По умолчанию

    Цитата Сообщение от Дмитрий Артюховский Посмотреть сообщение
    Идея прерываний противоречит концепции ПЛК в принципе..
    Дмитрий, давайте не будем углубляться в дебри концепций и принципов ПЛК...
    Ваша идея маленького цикла - это просто выход из положения при отсутствии нормального решения. Тем более, что ее можно реализовать только в случае вытесняющей многозадачности, если многозадачность поточная, то результат будет весьма любопытный...
    А если уж в ПЛК реализована вытесняющая многозадачность, то зачем такие сложности с обработкой входа, если можно просто реагировать на событие этого входа? Отсюда собственно и возник вопрос, повторюсь, а ВОЗМОЖНО ЛИ НА КАКОМ НИБУДЬ КОНТРОЛЛЕРЕ ОВЕН РЕАЛИЗОВАТЬ ПРИОРИТЕТНОЕ ВЫПОЛНЕНИЕ ЗАДАЧИ ПО СОБЫТИЮ НА ФИЗИЧЕСКОМ ВХОДЕ?
    По моему это не слишком сложный вопрос для тех кто разрабатывал и создавал такой контроллер, но почему-то, вместо ответа ухе несколько страниц переливания из пустого в порожнее. Мне кажется, разработчикам должно быть стыдно, если они не знают что сказать... Да и не только им, но и всем кто связан с продвижение этого продукта на рынке. Вывеска красивая, а что под ней..., - да какая разница! Пипл хавает!
    Ничего личного.... Просто - мысли вслух.

  9. #39

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Вот Вы бы лучше Владиславу напомнили эту тему http://www.owen.ru/forum/showthread.php?t=1855 может он бы и вспомнил, а может и Вы бы не задали этот вопрос
    Спасибо за подсказку. Сам не нашел.
    Надо же, как все запущено... Уже пять лет вопрос висит в воздухе и ничего кроме фырканья в ответ не слышно!

  10. #40
    Пользователь Аватар для capzap
    Регистрация
    25.02.2011
    Адрес
    Киров
    Сообщений
    10,578

    По умолчанию

    Цитата Сообщение от KGB Посмотреть сообщение
    Спасибо за подсказку. Сам не нашел.
    Надо же, как все запущено... Уже пять лет вопрос висит в воздухе и ничего кроме фырканья в ответ не слышно!
    там четко сказано что внешнее событие в контроллерах овен не поддерживается
    по поводу собитий от физ.входа приоритетом может служить грамотно составленный код используя if else

Страница 4 из 5 ПерваяПервая ... 2345 ПоследняяПоследняя

Ваши права

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