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

Тема: Тренироваться на кошечках

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #11
    Пользователь Аватар для rovki
    Регистрация
    03.01.2010
    Адрес
    Чехов
    Сообщений
    12,150

    По умолчанию

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

    Мне еще надо время понять полеты Вашей мысли, я так быстро не умею. Но наперед закину вот что: наш сиквенсер (степпер, фазовый управитель, как его назвать?) должен иметь такие параметры:

    1) Реагирование не только на события, но и на постоянно существующие условия. Это значит, вот что. Допустим, в фазе 5 анализируется некое "событие". Так вот, нужно реагировать на это "событие" не только в случае, когда оно происходит (условие начинает выполняться) непосредственно в фазе 5. Нужно также реагировать на это событие, если оно произошло еще до наступления фазы 5.
    Пример: вместо сигнала "Разрешение разгрузки" я ставлю перемычку. И хочу, чтобы в нужной фазе ПР увидел эту перемычку и пошел дальше "мгновенно", пусть там и прощелкает несколько циклов работы контроллера. Если же перемычки не будет, то ПР постоит в фазе ожидания разрешения разгрузки и по получению "события" пойдет дальше.
    Я для реализации такого поведения наставил кучу таймеров по 0,2 с - это ужасное решение

    2) "Произвольный условный переход"
    В любой фазе мы можем принять решение о переходе не к следующей фазе, а к какой-то иной. Теоретически, можно требовать, чтобы из любой фазы при некоторых условиях можно было улетать на любую другую. Но практически это громоздко и трудно. Поэтому я бы рассмотрел чуть менее универсальное умение: в каждой фазе есть одно условие "нормального" выхода (к следующей фазе) и одно условие выхода к произвольной фазе. Скажем, у нас есть сигнал "Днище закрыто". Его исчезновение в некоторых фазах должно вызывать отработку аварийной ситуации. Сейчас я тупо сбрасываю счетчик фаз. И в состоянии INIT должен побеспокоиться о сбросе всего что нужно и переходе или не переходе в фазу BottomWait. А можно было бы зарезервировать некую фазу 8, предназначенную для отработки аварии "Днище упало во время подачи или ожидания фиксации результата дозирования". И именно туда направлять степпер (теперь уже джампер?) в случае такой аварии. Тогда в системе есть место и для других аварий - заведу фазу 9 для аварии "Слишком долго идет насыпка", фазу 10 для аварии "Не могу дождаться разргрузки" и т.д....
    Одним словом, добавить условный переход, как в обычных программах, есличьо...

    3) Конечно же, хотелось бы иметь масштабируемый степпер, чтобы фаз могло быть больше, чем 8. Мне просто повезло с моим первым проектом, но расширяться уже некуда. А может понадобиться.

    Я не слишком размечтался?
    Как обещал новые макросы фазатрона .Первый макрос (2шт) фиксатор событий ,второй- счетчик событий с преобразованием в код целочисленный ,третий экстрактор .Если в счетчик поставить 2ППзу ,то можно отрабатывать 32 события ,но тогда нужно ставить 5фиксаторов .Данный способ(абстракционизм) имеет право на существование ,но я предпочитаю классику ,когда смотришь на картину(проект) и понимаешь ,что хотел сказать автор....
    Вложения Вложения
    Последний раз редактировалось rovki; 05.08.2014 в 22:14.
    электронщик до мозга костей и не только

Похожие темы

  1. Ответов: 4
    Последнее сообщение: 03.03.2017, 08:25
  2. Файловый менеджер на Delphi на основе утилиты plc_io
    от kandiral в разделе Помощь Разработчикам
    Ответов: 18
    Последнее сообщение: 09.12.2016, 14:52
  3. Ответов: 6
    Последнее сообщение: 11.05.2011, 16:19
  4. Ответов: 7
    Последнее сообщение: 26.01.2011, 07:58
  5. Ответов: 2
    Последнее сообщение: 05.09.2010, 16:27

Ваши права

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