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

Тема: пошаговое выполнение Sfc-программы

Комбинированный просмотр

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

    По умолчанию

    Спасибо, начинаю вкуривать твой пример. Есть НИПАНЯТКИ.

    Добавлено: пропускайте это, если спешите. Читайте следующий пост.

    Итак, у тебя 3 идентичных (не МЭК) шага, в которых на входе стопится таймер и сбрасывается разрешение следующего шага blnNextStep.
    Хорошо. Таймер нужен только для того, чтобы показать, как в автомате программа сама будет скакать зайчиком. Верно? Я могу вместо проверки
    TON_Delay.Q AND NOT blnStepWork
    поставить нечто свое вместо TON_Delay.Q

    В теле шага таймер запускается (я так ин е понял, зачем его стопить, но ЩАС подойдем до этого)

    А в переходах между шагами ты поставил параллельные ветви. Я читал про параллельность, а додуматься не смог, что и переходы бывают параллельными, сдуру писал всегда горбатые выражения через OR. Хотя, по сути это одно и то же. Или нет?

    Итак, переход происходит либо по таймеру, если сброшен признак пошаоговости, либо по условию:

    blnNextStep AND blnStepWork

    Вроде бы тоже ясно. Единственное, что я хочу: переходы в пошаговом режиме происходят по прежним условиям, к которым дополнительно добавлено условие РАЗРЕШИТЬ ОДИН ШАГ.
    То есть, верно ли будет добавить во вторую ветвь переходов проверку
    TON_Delay.Q AND
    чтобы было по-моему?
    Тогда, ИМХО, и стопить таймер в Entry Action не нужно. Так?

    Видишь, ты не знал, что комментировать. Ответь на все мои знаки вопроса - вот и наговоришься

    Но теперь главное. Допустим, все это я верно понял (я и сам могу проверить, но то все было цветочки). А вот как именно связать blnNextStep с кнопкой?

    Не смейся, пожалуйста. Либо МЭК от упрощенного CoDeSys сильно отличаются, либо у меня лыжи не едут. Смотри.
    Я ставлю на кнопку триггер R_TRIGGER и взвожу его по перепаду. Выход триггера будет коротким? Один цикл, если я правильно понимаю. Этот самый выход я перемножаю с тем, что у тебя названо blnStepWork и запускаю на S-вход RS-триггера. Теперь я знаю, что нажатие на кнопку ШАГ вызовет установку RS-триггера в пошаговом режиме. Ура. А сбрасывать его когда? Тут пошли размышлизмы:
    Считаю, что каждое нажатие кнопки ШАГ произойдет где-то в середине шага (т.е. не непосредственно в момент входа в шаг). Поэтому в Entry Action каждого шага я поднимаю R-вход триггера, сбрасывая его и само разрешение перехода по шагу. А где-то чуть позже (хоть на такт) мне нужно этот R-вход деактивировать. И именно это не получается! Ставлю действие, например, с идентификатором
    L T#2000ms
    в котором R-вход сбрасывается. А он не сбрасывается.
    Ну, и другие варианты тоже не пашут.
    Т.е., возвращаюсь из своих путаных якобы пояснений к простому вопросу:

    как связать переменную blnNextStep с нажатием кнопки?
    Последний раз редактировалось drvlas; 29.10.2010 в 09:27.

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

    По умолчанию

    Цитата Сообщение от drvlas Посмотреть сообщение
    Т.е., возвращаюсь из своих путаных якобы пояснений к простому вопросу:

    как связать переменную blnNextStep с нажатием кнопки?
    Прилагаю свое проектик, мож проще будет понять поток сознания

    Вот в этом варианте действие ReleaseReset не активизируется на 2 секунды, как ожидалось. Оно вообще не активизируется!
    Прошу учесть, что само это действие мне до лампочки. Мне бы bRes передернуть в начале шага. А еще правильнее - bOneStep связать с нажатием по входу _bStep правильным образом.
    Вложения Вложения
    Последний раз редактировалось drvlas; 29.10.2010 в 09:25.

Ваши права

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