Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 16 из 16

Тема: помогите с программированием

  1. #11

    По умолчанию

    Цитата Сообщение от Gans Посмотреть сообщение
    Взгляни эту темку. http://owen.ru/forum/showthread.php?t=9067 Особенно вложения. Про кнопку стоп смотреть во вложении сообщения №9 :-) и конечно поиск по форуму рулит!!!
    Посмотрел...после каждого шага добавлять проверку на нажатие грибка и переход на начало цикла - на маленьком цикле пойдет....а когда у него пару десятков шагов это уже напрягать начинает....реализовывал проще в одну команду через SFCInit, SFCReset, но везде пишут что эти механизмы только для отладки и использовать в рабочих программах не рекомендуется...вот и искал решение красивее

  2. #12
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от demetriuse Посмотреть сообщение
    искал решение красивее
    Я пофанитазирую, потому что сам только начинаю осваивать SFC.
    А если в SFC-программе запустить параллельно основной ветви некий шаг, который только и делает, что проверяет условие СТОПа? Ну, и вытворяет всякие безобразия, когда видит нажатие грибка. Т.е. останавливает все пучком.
    Параллельность этого шага основной ветви что означает? Что он исполняется каждый цикл. Значит реакция будет мгновенной. И в основной ветви (ветвях) ничего можно не проверять.

    Примечание. А при использовании МЭК-шагов такая штука, ИМХО, будет реализовываться просто действием, активизированным на каком-то шаге и не умирающим, когда шаг не активен. Или не так?

  3. #13

    По умолчанию

    Цитата Сообщение от drvlas Посмотреть сообщение
    Я пофанитазирую, потому что сам только начинаю осваивать SFC.
    А если в SFC-программе запустить параллельно основной ветви некий шаг, который только и делает, что проверяет условие СТОПа? Ну, и вытворяет всякие безобразия, когда видит нажатие грибка. Т.е. останавливает все пучком.
    Параллельность этого шага основной ветви что означает? Что он исполняется каждый цикл. Значит реакция будет мгновенной. И в основной ветви (ветвях) ничего можно не проверять.

    Примечание. А при использовании МЭК-шагов такая штука, ИМХО, будет реализовываться просто действием, активизированным на каком-то шаге и не умирающим, когда шаг не активен. Или не так?
    В предыдущих проектах я так и делал. Вешал парл шаг который контролировал грибок, в случае его нажатия сбрасывал основной цикл.

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

  4. #14
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

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

  5. #15
    Пользователь
    Регистрация
    11.01.2009
    Адрес
    Кострома
    Сообщений
    3,144

    По умолчанию

    при нажатии кнопки стоп, обычно сбрасываю реле (функция Rs, см. библиотеки).
    установка производится или отдельной кнопкой "сброс", на которую завожу сброс всех аварий. или к примеру при нажатии кнопки пуск. также рекомендую, по фронту, после включения питания плк.
    Выход функции RS можно использовать через АND, при включении исполнительных механизмов.
    К Примеру включить выход 1 при наличии сигнала на входе 3 и ненажатой кнопке стоп(вход 1).
    RS_Stop(SET:= In2,RESET1:= NOT In1);
    Out1:=In3 AND RS_Stop.Q;
    как только кнопка будет нажата Out1 выключится.
    Последний раз редактировалось lara197a; 06.12.2010 в 23:43.

  6. #16
    Пользователь Аватар для drvlas
    Регистрация
    30.09.2010
    Адрес
    Киев
    Сообщений
    700

    По умолчанию

    Цитата Сообщение от demetriuse Посмотреть сообщение
    подскажите пожалуйста, как лучше всего на языке Sfc реализовать обработку нажатия аварийного стопа станка (красный грибок).
    на Sfc реализован длинный цикл описывающий работу станка, на каждом шаге проверять нажат грибок или нет кажется глупо...поделитесь, пожалуйста, опытом.
    То есть, смотрим самое просьбу трудящихся. И удовлетворяем ее. Сказано, что есть SFC и много шагов, в которые не хочется впихивать проверки. Параллельный шаг (ветвь, если хотите) - это и есть нечто, вызываемое каждый рабочий цикл и живущее своей короткой жизнью. Практически то же, что

    Сhek_STOP( );
    Длинный_цикл_на_SFC( );

    И все это - не выходя за пределы SFC.

Страница 2 из 2 ПерваяПервая 12

Ваши права

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