Показать сообщение отдельно
Старый 06.09.2018, 16:06   #76
ViS
Senior Member
 
Регистрация: Aug 2010
Сообщения: 718
Благодарил(а): 1 раз(а)
Поблагодарили: 15 раз(а) в 12 сообщениях
По умолчанию Ответ: Обмениваемся своими макросами

Цитата:
Сообщение от Arsie Посмотреть сообщение
Можно сколько угодно показывать всякие картинки и за какие угодно уши притягивать объяснения, но активность сигнала - это когда сигнал в активной форме.

Активных форм для логического сигнала четыре: фронт, единица, спад и ноль. В любом сочетании.

У вашего сигнала активное состояние - фронт. Все остальные формы игнорируются, т.е. пассивны.

Повторю ещё раз: понятие "единица" и "активен" - не тождественны. Активным может быть и ноль.
У входа активное состояние - момент получения фронта сигнала, а не у сигнала активное состояние фронт.

Активность сигнала и активность входа - суть разные вещи. И никто меня не переубедит в обратном.

Да, активным сигналом может быть и единица, и ноль. Кто б спорил. Именно поэтому я стараюсь писать не "активный сигнал", а "активная 1", может где и оговорился, тогда каюсь.

[Конец лирического отступления]
***

Две версии селектора.
v.2 - с настраиваемыми приоритетами входов на случай одновременного получения фронта несколькими входами.(см. описание)
v.1 - облегченная версия. Весит в два раза меньше блоков и работает быстрее. По приоритетности только вход Mode. Определяет, вход с наибольшим или с наименьшим номером будет назначен папой.

Макросы не совместимы с Pixel 12xx!!!

Описание
Код:
                                     
                                    -----------------------------------------------------------
                                    |  ВНИМАНИЕ!!! Макрос не будет работать на Pixel 12xx !!! |
                                    -----------------------------------------------------------
***************************************************************************************************************************


                                            Селектор на 6 стабильных положений V2


 Входы :

    Enable   -           Разрешает работу макроса.

    ^Set     -           Предустановка. Устанавливает активным выход, номер которого указан на входе Set. 

    Set      -           Задает номер выхода для установки по входу ^Set. При задании на входе числа, выходящего
                         из диапазона 0 ~ 6 активируется выход Set_Error.

    Reset    -           Сброс всех выходов в состояние "0".
                 
    ^S1-^S6  -           Информационные входы.
        
    Приоритет ^S1-^S6    Задание приоритетности входов
    
    Mode     -           Режим приоритетности.
    

 Выходы :

    Set_Error-    Активен при ошибочном значении на входе Set. Допустимый диапазон 0 ~ 6

    № 0+     -    Номер активного выхода с нумерацией от 0.

    № 1+     -    Номер активного выхода с нумерацией от 1.

    Q1-Q6    -    Информационные выходы.

-------------------------------------------------------------------------------------------------------------

    При 0 на входе Enable макрос отключается.Внутренние блоки программой не обрабатываются. Значения выходов 
    "замораживаются" в текущем состоянии. 

    Вход ^Set при "0" на входе Set осуществляет сброс всех выходов в "0" в текущем такте программы.
    Со следующего такта обработка входов продолжается независимо от наличия "1" на данном входе.

    Для входа Set подразумевается "человеческая" нумерация для установки выходов. То есть для устанвки активным
    выхода Q1 и надо задавать на этом входе 1, а не 0. 

    Вход Reset "держит" на всех выходах "0", пока активен. 

    Информационные входы ^S1-^S6 работают по фронту сигнала.

    Входы приоритета ^S1-^S6 определяют "старшинство" при одновременном получении фронта на нескольких входах.
    Приоритет задается положительным числом больше 0. Чем больше число, тем выше приоритет входа. Например для входа
    S1 установлен приоритет 3, а для входа 4 - 24, при одновременном получении фронта активируется выход Q4.
    В том случае, если для входов задан одинаковый приоритет, то номер активируемого выхода определяяется входом Mode.
    Если на входе Mode установлен 0, то будет активирован выход с наименьшим номером, при 1 - с наибольшим.
    При задании приоритеа входа равным 0, вход исключается из обработки. Если в этот момент активирорван соответствующий
    ему выход, то он сохранит свое состояние, до активации другого входа. Блокировка работы входа также распространяется
    На вход предустановки Set - выход с номером, соответствующим входу с приоритетом 0, активирован не будет. Возможность
    Сбросить все выходы в 0 через Set -  остается.
Вложения
Тип файла: msl Селектор 6-стабильный С приоритетом(Closed).msl (108.2 Кбайт, 36 просмотров)
Тип файла: msl Селектор 6-стабильный(Closed).msl (57.2 Кбайт, 31 просмотров)
ViS вне форума   Ответить с цитированием