Можно в стек глубиной два писать с периодом равным 3 секунды, тогда можно сравнивать значения:
Вложение 55718
Вид для печати
Можно в стек глубиной два писать с периодом равным 3 секунды, тогда можно сравнивать значения:
Вложение 55718
Такой алгоритм запишет переменную 1 раз в 3 секунды и потом все 3 секунды можно сравнивать эту записанную величину с текущей, т.е. переменную саму с собой 3 секунды назад можно сравнить один раз в 3 секунды, остальное время выполнения программы она будет сравниваться с самой собой, но не 3 секунды назад, а 0,1с, 0,2с ... 2,8с, 2,9 с назад.
Для того, чтобы сравнивать переменную саму с собой 3 с назад каждые 0,1 с нужно построить 30 таких цепочек. Это я и называю дискретно, так я могу сделать...
А можно ли сделать сравнение с самой собой 3 секунды назад каждые 0,1 с не делая 30 цепочек, в он-лайн режиме?
Не знаю как иными словами это описать, первый раз пробую работать с программируемым реле....
Спасибо за ответы!
Непонятно, как хотите сделать? Короче, делаете стек глубиной 30, запись с периодом 100 миллисекунд и сравнивайте любые значения за последние 3 секунды, всё!
Могу предложить стек для целочисленных переменных, вам придётся округлить вещественную переменную до n знаков после запятой и умножить на 10 в степени n, для сохранения в этом стеке, короче, Вам хватит этого стека(при написанных хотелках):
Вложение 55725
Стек на 32 ячейки(разряда), но значение со входа сразу пишется в выбранную ячейку(разряд) для записи, подавая импульсы на входа сдвиг вправо(влево) происходит сдвиг на одну ячейку(разряд) вправо(влево). Каждый импульс сдвигает данные на один разряд(ячейку)! Номера ячеек(разрядов) 0-31, в основном всё!
Примерно как-то так:
Вложение 55726
Вложение 55727
Даже так:
Вложение 55728
Вложение 55729
Для отрицательных значений(если они присутствуют) есть макросы преобразования в INT(DINT) и функции обратного преобразования!
Не совсем понимаю понятие дискретность тут... Если сделать скользящее окно как для входящего сигнала, так и для запомненного 3 минуты назад. Получится всегда сравнивать сигнал 3 минуты назад в любой момент времени.
Сергей0308 да я не подглядывал. Понял, последняя и первая ячейка стека и есть всегда то, что есть и 3 секунды назад... :)
Только было бы прикольно, если бы из макроса было два выхода - последний, первый. Для простоты
Согласен, будет намного удобнее в подобных случаях, у меня имеется матрица памяти с двумя независимыми выходами, можно и в этот макрос добавить второй независимый выход, макрос без пароля, каждый может это сделать! И выходы не жёстко привязаны к какому-то разряду, а имеется выбор какой разряд стека выводить на каждый из выходов!
Вложение 55730