Показано с 1 по 10 из 10

Тема: Требуется помощь по CoDeSys. Разобраться с вызовом программы по входу для ПЛК110.

  1. #1
    Пользователь Аватар для Валерий Бурик
    Регистрация
    15.01.2010
    Адрес
    г. Лебедин
    Сообщений
    112

    По умолчанию Требуется помощь по CoDeSys. Разобраться с вызовом программы по входу для ПЛК110.

    Никак не могу разобраться, как в CoDeSys, вызвать подпрограмму по прерыванию. Точнее без внешнего воздействия подпрограмма сама вызывается, хотя в Конфигураторе задач ставлю галку по событию, и указываю событие, воздействие на вход контроллера.
    И еще вопрос, может ли CoDeSys управлять двумя программами одновременно, т.е. параллельно? Тогда и прерывание не нужно.
    Задача такая. Нужно управлять одним механизмом. Здесь все понятно. Порядок действий этого механизма ясен. Одно действие идет за другим, по кругу. Но нужно еще, управлять небольшим механизмом, имеющим два датчика, и мотор. Пришел сигнал с датчика, включился мотор в одну сторону. Сигнал пропал, контроллер выключил мотор. Так и с другим датчиком, если тот сработал, то тот же мотор включился в другую сторону, сигнал с другого датчика пропал, мотор снова выключился. Так и работает от датчика к датчику.
    Перепробовал все. Написал простую программу, выставил приоритеты по прерыванию. Никак не могу понять логику. Может надо пробовать на живом контроллере, а то я использую режим эмуляции.
    Посмотрите что не так в программе. Имена задавал, как рука легла. Плохо то, что негде прочитать, кроме как в "сухом" "Руководстве по CoDeSys"
    Вложения Вложения

  2. #2

    По умолчанию

    Вопрос: Зачем прерывания и приоритеты? Вам необходима скорость свыше чем время цикла контроллера?

    Думаю вашу задачу можно реализовать обычным алгоритмом управления.
    Что касается параллельных процессов, то принципиально-можно! Но выполняются они все равно в режиме разделения времени центрального процессора. Поэтому можно все сделать в одном процессе с тем же успехом.

  3. #3
    Пользователь Аватар для Валерий Бурик
    Регистрация
    15.01.2010
    Адрес
    г. Лебедин
    Сообщений
    112

    По умолчанию

    Спасибо за ответ! Дело в том, что у меня семь датчиков в основной программе, плюс два на стороне. Опрашиваются они последовательно. В этом случае программу удобней писать на языке SFC. Шаги будут идти от датчика к датчику. А те два могут включиться в любой момент, и есть комбинация, когда они оба выключены. Когда писал ответ, подумал, да, можно опрашивать состояние трех датчиков, и обойтись без прерывания. То – же получится, но с прерыванием проще организовать работу. Меньше ветвлений.
    Кстати прерывания заработали. Не могу однозначно ответить, что было, но здесь есть одно правило. PLK_PRG, нужно убрать, и создать программу с другим именем. В конфигураторе создать новую задачу, добавить имя созданной программы, и указать в конфигураторе, что она свободная, т.е. если она закончит свою работу, то начнет все сначала. Приоритет ставим 1. PLK_PRG в этом случае будет не активна, думаю, из-за ее специфических свойств. А дальше пишем нужную программу (подпрограмму). В конфигураторе создаем задачу, вставляем нашу подпрограмму. Ставим приоритет 2 и указываем, что она работает по событию. Указываем событие, имя входа ПЛК. И все заработало. Создавал для проверки две программы. Одна работала, другая сразу же вызывалась. Помогло, когда удалил старую, и по новой ее создал. И все - таки, есть неоднозначности. Мне кажется, что дело в режиме эмуляции. Нужно такие вещи пробовать на "живом" контроллере. Спасибо за ответы, помогли, в особенности с присвоением в конфигураторе имени, автоматически получаем глобальную переменную. Непонятно мне что делать с вложением TASKPRIMER.EXP, если не затруднит, объясните. С уважением!

  4. #4
    Пользователь Аватар для Валерий Бурик
    Регистрация
    15.01.2010
    Адрес
    г. Лебедин
    Сообщений
    112

    По умолчанию

    Если я правильно понял, этот файл необходимо поместить в дирректорию где находится проект? В этом я не очень силен!

  5. #5
    Пользователь Аватар для Валерий Бурик
    Регистрация
    15.01.2010
    Адрес
    г. Лебедин
    Сообщений
    112

    По умолчанию

    Получается CoDeSys по умолчанию просматривает дирректорию где находится проект, и если видит файл с расширением EXP, то загружает в себя конфигурацию?

  6. #6
    Пользователь Аватар для Валерий Бурик
    Регистрация
    15.01.2010
    Адрес
    г. Лебедин
    Сообщений
    112

    По умолчанию

    Получилось, но не совсем. Не смогло открыть конфигурацию ПЛК, не хватает библиотек. Отсюда не видит входа, и дает ошибки "push", "flag". Все равно огромное Вам спасибо! Приобрел опыт.

  7. #7

    По умолчанию

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

    Библиотеки, если их не хватает, надо уже как раз самостоятельно добавить в директорию, где они по умолчанию храняться. После этого на ошибку библиотеки ругаться перестанет.

  8. #8
    Пользователь Аватар для Валерий Бурик
    Регистрация
    15.01.2010
    Адрес
    г. Лебедин
    Сообщений
    112

    По умолчанию

    Цитата Сообщение от capzap Посмотреть сообщение
    Скорее всего у вас не установленны таргеты для плк100 поэтому и конфигурация не открывается, я кромсал старый проект поэтому он не "заточен" под 110 и с библиотеками тоже, вполне возможно что то от старого осталось
    Я так и понял. Спасибо!

  9. #9
    Пользователь Аватар для Валерий Бурик
    Регистрация
    15.01.2010
    Адрес
    г. Лебедин
    Сообщений
    112

    По умолчанию Решение задачи.

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

  10. #10

    По умолчанию

    Конечно надо. Только кто бы её читал...
    http://www.owen.ru/uploads/rp_plk110.160.pdf

Ваши права

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