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

Тема: Реализация паузы в SFC

  1. #1
    Пользователь
    Регистрация
    06.10.2012
    Адрес
    Киров
    Сообщений
    79

    Question Реализация паузы в SFC

    Имеется необходимость в остановке программы в любом её месте,с дальнейшим продолжением. Т.е. время шага должно остановиться, а после снятия паузы продолжиться. С SFCPause время шага начинает идти с нуля, что не устраивает условиям.

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

    По умолчанию

    Не знаю, что за программа у Вас, но возможно проще к примеру снимать питание с выходных цепей.
    Будет работать в случае, если в устройстве используете датчики.

  3. #3
    Пользователь
    Регистрация
    06.10.2012
    Адрес
    Киров
    Сообщений
    79

    По умолчанию

    Программа мойки резервуаров. Переключение насосов и клапанов происходит по времени (жесткая привязка), датчиков ОС нет. Необходимо по паузе выключать все устройства (с этим проблем нет) и останавливать время шага, после снятия паузы время шага должно продолжиться.

  4. #4
    Пользователь Аватар для petera
    Регистрация
    06.05.2011
    Адрес
    Минск
    Сообщений
    3,841

    По умолчанию

    Цитата Сообщение от KoT'86 Посмотреть сообщение
    Имеется необходимость в остановке программы в любом её месте,с дальнейшим продолжением. Т.е. время шага должно остановиться, а после снятия паузы продолжиться. С SFCPause время шага начинает идти с нуля, что не устраивает условиям.
    Вся программа на упрощенном SFC (не МЭК) состоит из шагов и условий перехода между шагами.
    Я подозреваю, что в основном Ваша программв реализует некотторый алгоритм
    Шаг_N--> включить то-то, выключить то-то, если время активности шага > заданного то, перейти на следующий. И так далее.
    И скорей всего Вы используете простое условие для перехода типа _timeШаг_N > T1
    А кто Вам мешает вместо такого простого условия перехода дважды щелкнуть мышкой на горизонтальной черточке и в качестве условия перехода написать фрагмент кода на IL, LD, FBD или ST, с таймером с возможностью остановки и продолжения работы, который и будет запоминать текущее время работы этого шага?
    Мой канал на ютубе
    https://www.youtube.com/c/ПетрАртюков
    Библиотека ГМ для СП300
    https://disk.yandex.com/d/gHLMhLi8x1_HBg

  5. #5

    По умолчанию

    Либо создать параллельную ветвь, в которой условие будет отслеживание нажатия "пауза"

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

    По умолчанию

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

  7. #7
    Пользователь
    Регистрация
    13.10.2011
    Адрес
    Златоуст
    Сообщений
    1,021

    По умолчанию

    Можно навставлять переменных типа TIME в качестве временных атрибутов каждого шага и уменьшать их, а потом сбрасывать по изменению SFCPause. Но я бы выкинул SFC и написал всё одним большим CASE.

    Собственно, так я и сделал когда от меня потребовали возможность вставать на паузу в совершенно любой момент и учитывать время в отсутствие питания на контроллере. Я переписал таймер TON для своего проекта, чтобы он использовал вместо функции TIME мою PTIME (стало возможным останавливать, перематывать и вообще пускать время вспять — для отладки это гипер-офигенно), и гонял этот таймер в хвост и в гриву в большом кейсе. С SFC такого естественным способом не проделаешь — только городить огород с атрибутами каждого шага.
    Последний раз редактировалось Yegor; 05.06.2013 в 09:36.

  8. #8
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,251

    По умолчанию

    Цитата Сообщение от lara197a Посмотреть сообщение
    Не знаю, что за программа у Вас, но возможно проще к примеру снимать питание с выходных цепей.
    А вообще снимать питание - слабо ?
    А ФБ состоящий из SFC - держать в ретайне

Похожие темы

  1. SFC внутри SFC
    от drvlas в разделе ПЛК1хх
    Ответов: 32
    Последнее сообщение: 24.09.2011, 20:38
  2. ПЛК63 - непонятные паузы в исполнении при опросе по 485
    от Alex_yu в разделе Помощь Разработчикам
    Ответов: 9
    Последнее сообщение: 02.07.2011, 23:54
  3. язык Sfc
    от Евгений Мотренко в разделе ПЛК1хх
    Ответов: 6
    Последнее сообщение: 13.05.2008, 04:34
  4. Таймер в SFC
    от RV9WFJ в разделе ПЛК1хх
    Ответов: 8
    Последнее сообщение: 24.01.2008, 08:43
  5. вопрос по Sfc
    от AlexZ в разделе ПЛК1хх
    Ответов: 1
    Последнее сообщение: 03.04.2007, 18:31

Ваши права

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