Цитата:
Как быть со 190? Очень легко. Нужно прочесть те немногочисленные строчки описания к макросу - там всё написано. Синхронизировать ничего не нужно. Просто ведёте параллельный буфер и всё
|
Как продавец мороженного, я привык все вешать в граммах. Давайте взвесим ваше предложение.
1. То что предлагаемый вами макрос масштабируемый - это хорошо. Но он работает с уже готовыми значениями. Для корректной работы макроса в плане определения минимума и максимума значений тренда ему нужен внешний буфер. Самый простой вариант буфера - блоки типа Spdelay.
2. Элемент тренд имеет изменяемое периода выборки. Оно может меняться в процессе работы контроллера. Так что для того, что бы данные в буфере тренда и во внешнем буфере выбора меньшего/большего значения хоть более мене совпадали, они должны быть
синхронизированы. Хотя бы по периоду выборки.
3. Рассмотрим следующую ситуацию: тренд с числом точек 190, период выборки минимальный - тик. Внешний буфер синхронизирован с буфером тренда. Согласно описанию предлагаемого Arsie макроса он за 1 тик обрабатывает 1 вход. Пусть в тике n обрабатывается вход m на котором значение x. В тике n+1 обрабатывается вход m+1 на котором опять значение х, так как блок Spdelay сдвинул значение со своего выхода m на выход m+1. И так далее до последнего обрабатываемо входа. Все время будет обрабатывать одно и то значение, но на разных входах. То есть из 190 значений, находящихся в буфере будет обрабатываться 1. 189 значений покинут буфер необработанными.
4. При другом значении выборки тренда все будет чуть лучше, но одно остается неизменным: не будут обрабатываться все значения в буфере, часть значений покинет буфер так и не дождавшись обработки.
5. Корректная обработка всех значений в буфере возможна только при одном условии: все значения буфера обрабатываются за 1 период выборки тренда. Как это сделать Arsie знает лучше меня.