Страница 1 из 5 123 ... ПоследняяПоследняя
Показано с 1 по 10 из 48

Тема: Вопросы по программированию в CoDeSys

  1. #1

    По умолчанию Вопросы по программированию в CoDeSys

    уважаемые специалисты, пожалуйста заглядывайте переодически в эту темку =) спасибо =)

    мой перввый вопрос (в этой теме):

    как вернуться из цикла прораммы Sfc в основную программу (в PLC_PRG)?
    а) как это сделать в любом месте программы, при выполнении какого то условия?
    б) как это сделать после выполнения прораммы?

    очень жду ответа. спасибо
    Последний раз редактировалось MagicCat; 14.02.2010 в 15:11.

  2. #2

    По умолчанию

    Второй мой вопрос. Столкнулся с тем что при выполнении последовательности действий в Sfc в определённом местепроисходит несрабатывание задержки времени. Алгоритм такой:

    ....
    Шаг 14 ST

    %QX3.1.0:=TRUE;
    DELAY(TIME_IN:=t9);

    условие дальнейшего перехода
    DELAY.OK


    .....

    Если глянете пример из мануала по кодесис то там реализована такая же задержка времени между включением лампочек светофора.

    Так вот данная цепочка у меня достаточно длинная и вот именно в этом месте (шаг 14 - шаг 15 ) почему то не срабатывает выдержка времени ((( Никак не могу разобраться почему, в остальных подобных блоках всё то же самое( Мистика какая то (((

  3. #3

    По умолчанию

    Третий вопрос. Как сделть чтобы выполнение алгоритма в Sfc начиналось сначала (к примеру после остановки)? Предполагаю что там есть какой то прораммный указатель, который можно сбросить на ноль.

  4. #4

    По умолчанию

    как осуществить программную перезагрузку контроллера ?

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

    По умолчанию

    http://www.alexval2007.ucoz.ru/12345...Sys_V23_RU.pdf может поможет почитайте я там видел описание языка sfc

  6. #6

    По умолчанию

    нету там этого =( по этому тут и спрашиваю. тот мануал я первым делом просмотрел.

  7. #7

    По умолчанию

    1. А кто сказал, что PLC_PRG не может быть на SFC.
    2. Программа выполняется так: выполняется основная программа - далее в ней виден вызов подпрограмы - контроллер переходит в неё, выполняет её с верху до низу и возвращает управление основной программе, и та выполняется дальше.
    3. Ни в коем случае нельзя писать программу, которая перезагружает ПЛК. Это бред в принципе. программа, перезагружающая ПЛК - это БАГ.
    4. В SFC есть определенные флаги, по которым можно переходить безусловно на первый шаг. Более подробно в мануале по CoDeSys (сам никогда не использовал, но знаю, что есть)...

    ЗАБУДЬТЕ ПРО СИ...

  8. #8

    По умолчанию

    у меня Plc_prg на St, а из неё происходит вызов Sfc. в определённый момент може потребоваться (при нажатии кнопки) вернуться в основную программу из Sfc (прервать выполнение алгоритма).

    вопрос 1: как это сделать?

    вопрос 2: как при повторном вызове Sfc (при соблюдении условия для её вызова) сделать чтобы она продолжилась не с места прерывания, а с начала.

  9. #9
    Пользователь
    Регистрация
    28.08.2008
    Адрес
    23..93..123
    Сообщений
    1,671

    По умолчанию

    странно что вы пишете на St Plc_prg ,а подпрограмму на Sfc ,обычно делают все наоборот.
    можно использовать оператор Case ,и вызывать подпрограмму с определенного "шага",по событию (кнопка) делается переход на другой "шаг",где вызова подпрограммы нет.
    чтобы при повторном вызове подпрограммы не было "косяков" с переменными в начале их "сбрасывают" (0,false).
    хотя как это делается в Sfc точно не знаю.
    Но при вызове подпрограмма по любому будет выполнятся с начала,а ветвление будет в зависимости от того,что вы написали(или нарисовали).
    Последний раз редактировалось Sergey666; 14.02.2010 в 22:50.

  10. #10

    По умолчанию

    To Magiccat:
    Пока Вы не усвоите основных правил бесполезно рекомендовать...
    ПРОГРАММА НЕ СТОИТ НИ В ОДНОЙ ПОДПРОГРАММЕ...
    За цикл - 1-2 мс контроллер успевает просчитать всю программу, не зависимо на SFC или ST она написана. Записывает результаты и опять начинает обсчет заново.

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

Ваши права

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