- Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
- Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
- Не надо писать свой вопрос в первую попавшуюся тему - всегда лучше создать новую тему.
- За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
- Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
- Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
- Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.
Ограничение резкого изменения переменной.
Модераторы: Глоб.модераторы, специалисты по PLC
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 19 апр 2021, 21:10
- Имя: Илья
Ограничение резкого изменения переменной.
Добрый день. Вопрос в следующем. Есть энкодер который против часовой стрелки вращается 0-400 испульсов , после 400 сбрасывается в ноль. Нужно каким либо образом программно обезопасить систему от ошибки оператора, если он по часовой стрелке из 0 крутнет сразу в 400. Используется ПЛК160.
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 19 апр 2021, 21:10
- Имя: Илья
Ограничение резкого изменения переменной.
Думаю это не решит проблему. Это же повлияет только на темп роста.
Фактически нужно не дать переменной измениться резко из 0 в 400, то есть из 4мА в 20мА. Программно сделать вращение из точки ноль в отрицательную сторону невозможным.
Фактически нужно не дать переменной измениться резко из 0 в 400, то есть из 4мА в 20мА. Программно сделать вращение из точки ноль в отрицательную сторону невозможным.
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Ограничение резкого изменения переменной.
Сделайте так, чтобы счетчик считал, не сбрасываясь, от -2^31 до +2^31-1. А программно преобразуйте так:
1. Если счетчик<0, то выход=0.
2. Если счетчик>400, то выход=400.
3. Если счетчик от до 400, то выход=счетчик.
Еще вариант: как энкодеры работают при регулировании громкости. Вместо счетчика count используется счетчик freq, который показывает, сколько импульсов было за последнюю секунду или другой промежуток времени. При вращении против часовой стрелки принимает отрицательное значение.
1. выход=выход+freq.
2. Если выход<0, то выход=0.
3. Если выход>400, то выход=400.
1. Если счетчик<0, то выход=0.
2. Если счетчик>400, то выход=400.
3. Если счетчик от до 400, то выход=счетчик.
Еще вариант: как энкодеры работают при регулировании громкости. Вместо счетчика count используется счетчик freq, который показывает, сколько импульсов было за последнюю секунду или другой промежуток времени. При вращении против часовой стрелки принимает отрицательное значение.
1. выход=выход+freq.
2. Если выход<0, то выход=0.
3. Если выход>400, то выход=400.
-
- почётный участник форума
- Сообщения: 3971
- Зарегистрирован: 20 янв 2010, 22:23
- Имя: Никита
- Страна: РФ
- город/регион: Мурманск
- Благодарил (а): 21 раз
- Поблагодарили: 229 раз
Ограничение резкого изменения переменной.
А в чем проблема то? Это простейший условный оператор. Такие задачи еще на втором курсе решали при построении теоретических частотных характеристик, когда вместо того, чтобы показать сдвиг фазы на 180, маткад доводил ее до 90, а потом резким скачком уводил в минус 90. Одной строчкой лечилось, причем в самом маткаде.
В данном случае нужна проверка приращения энкодера из частоты опрос и физических способностей оператора.
В данном случае нужна проверка приращения энкодера из частоты опрос и физических способностей оператора.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" приходит единственный вопрос: "Нахрена? "
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Ограничение резкого изменения переменной.
Не перестают меня умилять такие "вопросы"
Самый простой способ решения задачи - вверните два винтика в панель под рукоятку, чтобы рукоятка физически не смогла провернуться с 400 на 0. Вот и весь алгоритм.
У меня угловые датчики на энкодерах работают именно так и нет проблем.
А где вопрос-то? Да, нужно, наверное. И раз вопроса нет то я сам его и задам: Это зачем нужно и кому нужно? Что случится если это резкое изменение произойдёт?Langoliere писал(а): ↑25 апр 2021, 20:57 Добрый день. Вопрос в следующем. Есть энкодер который против часовой стрелки вращается 0-400 испульсов , после 400 сбрасывается в ноль. Нужно каким либо образом программно обезопасить систему от ошибки оператора, если он по часовой стрелке из 0 крутнет сразу в 400. Используется ПЛК160.
Самый простой способ решения задачи - вверните два винтика в панель под рукоятку, чтобы рукоятка физически не смогла провернуться с 400 на 0. Вот и весь алгоритм.
У меня угловые датчики на энкодерах работают именно так и нет проблем.
По вопросам работы Форума можно обратиться по этим контактам.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
Что мы имеем?
В природе есть два типа дискретных энкодеров - инкрементные и абсолютные. Абсолютные энкодеры, как правило, многооборотные.
На штурвалы обычно ставятся инкрементные энкодеры с 100 имп/об.
Инкрементные энкодеры выдают две последовательности импульсов +A/-A и +B/-B, а также единичный импульс на оборот +Z/-Z (начало отсчёта). Обрабатываются выходы инкрементного энкодера внешним реверсивным счётчиком, в котором и происходит отсчёт координаты (угла поворота энкодера). Направление отчета меняется автоматически в зависимости от следования импульсов последовательностей +A/-A и +B/-B.
Проще всего программируется режим 4-х кратного счета даже "ручками".
Импульс начала отсчёта +Z/-Z на штурвалах обычно не используют.
И есть у нас два утверждения топикстартера Langoliere, которые несколько противоречат друг другу.
Первое утверждение:
Второе утверждение:
А если всё-таки энкодер абсолютный, то почему он сбрасывается? Неисправен?
Кто-то что-то не продумал изначально.
В природе есть два типа дискретных энкодеров - инкрементные и абсолютные. Абсолютные энкодеры, как правило, многооборотные.
На штурвалы обычно ставятся инкрементные энкодеры с 100 имп/об.
Инкрементные энкодеры выдают две последовательности импульсов +A/-A и +B/-B, а также единичный импульс на оборот +Z/-Z (начало отсчёта). Обрабатываются выходы инкрементного энкодера внешним реверсивным счётчиком, в котором и происходит отсчёт координаты (угла поворота энкодера). Направление отчета меняется автоматически в зависимости от следования импульсов последовательностей +A/-A и +B/-B.
Проще всего программируется режим 4-х кратного счета даже "ручками".
Импульс начала отсчёта +Z/-Z на штурвалах обычно не используют.
И есть у нас два утверждения топикстартера Langoliere, которые несколько противоречат друг другу.
Первое утверждение:
Импульсов? Значит, энкодер инкрементный. И на втором обороте в счётчике будет 401, 402, 403...Langoliere писал(а): ↑25 апр 2021, 20:57 Есть энкодер который против часовой стрелки вращается 0-400 испульсов..
Второе утверждение:
Если инкрементный, то сбрасывается не энкодер, а счётчик... Но счётчику всё равно, он должен считать и в минус, и в плюс! Другое дело, как обрабатываются его показания.
А если всё-таки энкодер абсолютный, то почему он сбрасывается? Неисправен?
Кто-то что-то не продумал изначально.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Ограничение резкого изменения переменной.
Не сообщил. Как обычно. И даже вопрос не задал никакой. О чём идёт разговор - я не вполне понимаю.
Какую проблему?
По вопросам работы Форума можно обратиться по этим контактам.
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Ограничение резкого изменения переменной.
Показания обрабатываются так, как топикстартер описал.) А именно: выход изменяется от 0 до 400. Получается, крутишь по часовой стрелке: 0-100-200-300-400-0-100-200-300-400-0-... А хотелось бы другой счетчик, где нет перехода 0-400 и 400-0.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
Так и получается, что как-то криво прикручен энкодер к ПЛК. А уж в чем кривизна, в монтаже или в программе отсюда не скажешь,.
Да и автор куда-то слился.. .
Да и автор куда-то слился.. .
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- здесь недавно
- Сообщения: 7
- Зарегистрирован: 19 апр 2021, 21:10
- Имя: Илья
Ограничение резкого изменения переменной.
Итак. Постараюсь всем ответить.
Изначально вопрос в том , каким образом можно реализовать защиту от резкого скачка 0-400 , при вращении из нуля в отрицательную сторону.
Прикрутить ничего не получится, энкодер по типу для таких манипуляций не подходит.
Михайло во многом прав. Показания действительно вида 0-100-200-300-400-0. Это при вращении в положительную сторону. Если из 0 крутить в отрицательную будет 0-400-399. Вот этого изменения и требуется избежать.
То есть энкодер работает верно. В системе настроено верно. Нужно программно его ограничить.
Энкодер фирмы Autonics модель enh-100-2-t-24. Возможно я несколько ошибаюсь в терминологии относительно энкодера.
Изначально вопрос в том , каким образом можно реализовать защиту от резкого скачка 0-400 , при вращении из нуля в отрицательную сторону.
Прикрутить ничего не получится, энкодер по типу для таких манипуляций не подходит.
Михайло во многом прав. Показания действительно вида 0-100-200-300-400-0. Это при вращении в положительную сторону. Если из 0 крутить в отрицательную будет 0-400-399. Вот этого изменения и требуется избежать.
То есть энкодер работает верно. В системе настроено верно. Нужно программно его ограничить.
Энкодер фирмы Autonics модель enh-100-2-t-24. Возможно я несколько ошибаюсь в терминологии относительно энкодера.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
Итак, у Вас инкрементальный энкодер со штурвалом, 100 импульсами на оборот, без канала Z, с биполярным каскадом на выходе, с синфазными выходными сигналами (нет инверсных сигналов), с остановкой трещётки на низком уровне сигналов.
https://autonics.su/product/encoder-enh ... 500007392/
https://autonics.su/files/ENH_EN_MA_180821_W.pdf
Судя по тому, что Вы описываете, проблема кроется в программе.
Либо счётчик не тот, либо его отрицательные значения криво обрабатываются, либо его предельные значения неверно выставлены.
Нормальное поведение - это когда при вращении в обратную сторону будет {...402, 401, 400, 399, 398 .... 2, 1, 0, -1, -2, -3 ...}
Возможно, ещё где-то в программе при вычислениях вместо DINT затесался REAL.
https://autonics.su/product/encoder-enh ... 500007392/
https://autonics.su/files/ENH_EN_MA_180821_W.pdf
Судя по тому, что Вы описываете, проблема кроется в программе.
Либо счётчик не тот, либо его отрицательные значения криво обрабатываются, либо его предельные значения неверно выставлены.
Нормальное поведение - это когда при вращении в обратную сторону будет {...402, 401, 400, 399, 398 .... 2, 1, 0, -1, -2, -3 ...}
Возможно, ещё где-то в программе при вычислениях вместо DINT затесался REAL.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Ограничение резкого изменения переменной.
А не абсолютный?
А мне кажется, что проблема конструктивно заложена самим выбором такого энкодера, но это видимо связано с технологией - штурвал (рукоятка) нужны круговые.
Действительно, придется устранять программно, хотя я не понимаю почему этого не сделать аппаратно. Мне не вполне понятно, если изначально в конструкции применена рукоятка, которую можно вертеть куда угодно, то почему от этого надо защищаться программно, вместо того чтобы просто ограничить вращение рукоятки? Получается, что реальное положение рукоятки никого не интересует? Оператор крутанёт рукоятку против часовой - и что, никакой реакции на это быть не должно? Тут смотрим на рукоятку, а здесь нет - у оператора крышу не снесёт ли от этого? Сюда крути, туда не крути.
Возможно, механическое ограничение и было сделано когда-то, но кто-то похерил упоры или заменил рукоятку на круговую. Я за аппаратное решение проблемы. Это проще и понятнее оператору - для него же делается.
А по поводу программного устранения - Вячеслав Эриевич выше дал направление, куда копать. Но мне пока видится, что это лечение диареи пробкой - устранять следует физическую причину, а не заплатки ставить. Я применяю энкодеры для контроля углового положения и там такая ошибка никак не обрабатывается - она предотвращается во-первых механическим ограничением вращения, а во-вторых калибровкой выхода энкодера под достигнутое механическое ограничение так, чтобы от минимума до максимума угла перекладки абсолютный энкодер выдавал от минимума до максимума своих значений. С настройками энкодера "по-умолчанию" (0-360 градусов) при переходе через 0 градусов действительно происходит скачок, но в эксплуатации за счёт механических ограничений он просто невозможен.
По вопросам работы Форума можно обратиться по этим контактам.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
Так я же за топик-стартера ссылки на документацию дал.
Назначение таких штурвалов на ЧПУ - выход в точку начала программы. (Программа работы записана в относительных координатах.)
В самых дешевых системах, где экономят на всём и не предусмотрен ручной режим управления, там есть кнопки переключения назначения штурвала. Типа, к какой оси перемещения (к какому параметру процесса) сейчас рукоятка относится. Отключение штурвала от соответствующего параметра может быть организовано по-разному. Чаще всего это делается эникеем или сменой режима.
Назначение штурвала, повторю свою мысль, ввод относительных поправок, а не абсолютных значений параметра. Абсолютное значение вычисляется в мозгах системы.
Поправки могут быть как с плюсом, так и с минусом. Скачков при этом быть не должно никаких.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Ограничение резкого изменения переменной.
Аааа..., теперь понял. Как цифровые регуляторы скажем на любительском трансивере. Ручка одна, но по нажатию определённой кнопки начинает изменять один определённый параметр, потом другой, третий и т.п. Оно?
Тогда да, только программно фиксить. Так выше уже и решения дали, как оно должно быть.
Тогда да, только программно фиксить. Так выше уже и решения дали, как оно должно быть.
По вопросам работы Форума можно обратиться по этим контактам.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
Именно!
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- администратор
- Сообщения: 18758
- Зарегистрирован: 17 июн 2008, 16:01
- Имя: Евгений свет Брониславович
- Страна: Россия
- город/регион: Санкт-Петербург
- Благодарил (а): 973 раза
- Поблагодарили: 1854 раза
Ограничение резкого изменения переменной.
И, соответственно, эта рукоятка не задаёт определённое значение, а именно изменяет его.
А если оператор ручку крутанёт влево из положения "400" в положение "0" - как узнать, что оператор сделал не один оборот вправо, а просто чуть-чуть повернул влево? По промежуточным импульсам? Если их нет - значит влево, если есть - вправо?
Это я для себя ликбез прошу. Если мешаю то скажите и выделимся в отдельную тему.
По вопросам работы Форума можно обратиться по этим контактам.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
Считают (выделяют) фронты и спады на каждой из сигнальных линий А и В.
В зависимости от значения сигнала в другой линии фронт/спад отправляют на CU (счёт вверх) или CD (счёт вниз) реверсивного счётчика.
И всё.
Благодаря тому, что при смене направления меняется взаимное фазовое положение импульсов линий А и В (условно говоря, сигнал линии В инвертируется) направление счёта меняется.
Это я вам алгоритм 4-кратного счета привёл. При таком алгоритме дрожание (дробление) фронтов тоже автоматически учитывается. Дрожит только младший разряд счетчика.
В зависимости от значения сигнала в другой линии фронт/спад отправляют на CU (счёт вверх) или CD (счёт вниз) реверсивного счётчика.
И всё.
Благодаря тому, что при смене направления меняется взаимное фазовое положение импульсов линий А и В (условно говоря, сигнал линии В инвертируется) направление счёта меняется.
Это я вам алгоритм 4-кратного счета привёл. При таком алгоритме дрожание (дробление) фронтов тоже автоматически учитывается. Дрожит только младший разряд счетчика.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Ограничение резкого изменения переменной.
Ну как же Вы не понимаете, что выход должен быть ограничен в диапазоне 0-400? Соответственно к тому неограниченному счетчику прикручивают автосброс при значениях -1 и 401. Но возникает проблема перехода 0->400, 400->0.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
Хосподя! Нахрена прикручивать автосброс, когда можно просто блокировать подачу импульсов на соответствующий вход? Дошёл до ноля - ша, на CD / вход счёта вниз/ импульсы больше не пропускаем. Досчитал до 400 - заблокировали CU /запретили счёт вверх/
(это если Ваша гипотеза верна)
Накой создавать скачки, а потом с ними героически бороться?
(это если Ваша гипотеза верна)
Накой создавать скачки, а потом с ними героически бороться?
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- эксперт
- Сообщения: 3643
- Зарегистрирован: 10 ноя 2009, 04:58
- Имя: Толмачев Михаил Алексеевич
- город/регион: г. Чехов, МО
- Благодарил (а): 8 раз
- Поблагодарили: 286 раз
Ограничение резкого изменения переменной.
Ryzhij,
Тут контроллер ПЛК160... На Сименсе s7-1200 и там-то всего лишь три-четыре года назад появились gate-каналы управления входами аппаратных счетчиков. А так типичный аппаратный счетчик не имеет возможности запрета импульсов.
Langoliere,
Однако можно интерпретировать неограниченный выход счетчика в программе... Замените модуль Fast Z-Encoder+Counter на обычный Fast Encoder, чтобы не ограничивать счетчик в диапазоне 0-400.
В каждом цикле программы запоминайте текущее значение счетчика, чтобы в следующем цикле вычислить смещение. Это смещение прибавляйте к переменной Выход, но если Выход при этом выходит за пределы 0-400, то "подрезать крылья" этой переменной.
Итого у вас:
1. счетчик, который считает от -inf до +inf,
2. запомненное значение счетчика из предыдущего цикла
3. Смещение = п.1 минус п.2
4. Выход = Выход + Смещение, с лимитами 0-400.
Реальные счетчики ограничены, поэтому лучше проверить, насколько реальна ситуация, когда оператор накрутит какие-нибудь 200000 оборотов, счетчик переполнится и произойдет неожиданное уменьшение вместо увеличения.)))
Тут контроллер ПЛК160... На Сименсе s7-1200 и там-то всего лишь три-четыре года назад появились gate-каналы управления входами аппаратных счетчиков. А так типичный аппаратный счетчик не имеет возможности запрета импульсов.
Langoliere,
Однако можно интерпретировать неограниченный выход счетчика в программе... Замените модуль Fast Z-Encoder+Counter на обычный Fast Encoder, чтобы не ограничивать счетчик в диапазоне 0-400.
В каждом цикле программы запоминайте текущее значение счетчика, чтобы в следующем цикле вычислить смещение. Это смещение прибавляйте к переменной Выход, но если Выход при этом выходит за пределы 0-400, то "подрезать крылья" этой переменной.
Итого у вас:
1. счетчик, который считает от -inf до +inf,
2. запомненное значение счетчика из предыдущего цикла
3. Смещение = п.1 минус п.2
4. Выход = Выход + Смещение, с лимитами 0-400.
Реальные счетчики ограничены, поэтому лучше проверить, насколько реальна ситуация, когда оператор накрутит какие-нибудь 200000 оборотов, счетчик переполнится и произойдет неожиданное уменьшение вместо увеличения.)))
-
- не первый раз у нас
- Сообщения: 325
- Зарегистрирован: 17 июн 2016, 14:18
- Имя: Максим
- Благодарил (а): 7 раз
- Поблагодарили: 118 раз
Ограничение резкого изменения переменной.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
1) Не хватает F_TRIG для выделения и спадов тоже. Тогда реализуется 4-кратный помехоустойчивый счётчик. А так у Вас будет 2-кратный счёт без защиты от дребезга фронтов;
2) Вместо RS-триггеров для сортировки на CU/CD выделенных импульсов фронтов и спадов достаточно использовать элементы NOT, AND и OR.
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
-
- не первый раз у нас
- Сообщения: 325
- Зарегистрирован: 17 июн 2016, 14:18
- Имя: Максим
- Благодарил (а): 7 раз
- Поблагодарили: 118 раз
-
- почётный участник форума
- Сообщения: 5790
- Зарегистрирован: 07 окт 2011, 09:12
- Имя: Гаско Вячеслав Эриевич
- Страна: Россия
- город/регион: Рязань
- Благодарил (а): 673 раза
- Поблагодарили: 841 раз
Ограничение резкого изменения переменной.
С отсутствием дребезга согласен, но кратность счёта явно не соответствует уставке в 400.
Вообще, с нужной кратностью в конкретной задаче у меня полного понимания нет.
Дело в том, что маховичок наш с трещёткой, и меньше чем на один щелчок его при всем желании не повернуть.
Судя по документации щелчков на маховике, столько же сколько импульсов на оборот - 100.
Смысл считать с учетверённой кратностью и набрасывать параметр не по единичке, а по 4 ?!
---------------------------------------------------
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)
«У человека в душе дыра размером с Бога, и каждый заполняет её как может.» (Жан-Поль Сартр)
"Ту пустоту, которая остаётся в душе, когда в ней нет Бога, и весь мир не может заполнить." (святитель Николай Сербский)