Документация Engee

Counter

Прямой и обратный счет по заданному диапазону чисел.

Тип: Counter

Путь в библиотеке:

/Signal Operations/Signal Management/Switches and Counters/Counter

Описание

Блок Counter осуществляет прямой и обратный счет по заданному диапазону чисел. Блок включает порт Inc (прибавление), если для параметра Count direction установлено значение Up. Если для параметра Count direction установлено значение Down, то блок включает порт Dec (убавление). Если для параметра Count event установлено значение Free running, то блок отключает порты Inc/Dec и производит счет с постоянным интервалом времени. При любых других настройках параметра Count event блок увеличивает или уменьшает счетчик каждый раз, когда на входном порту Inc/Dec возникает событие запуска. При возникновении события запуска на дополнительном порту Rst блок сбрасывает счетчик в исходное состояние.

Порты

Выход

# Cnt — текущее значение счетчика
скаляр | вектор

Details

Текущее значение счетчика, возвращаемое в виде скаляра или вектора. Если для параметра Count event установлено значение Free running, то выходной сигнал Cnt представляет собой вектор-строку на , содержащий значение счета в каждый из последовательных моментов выборки, где — значение, заданное в параметре Samples per output frame.

Зависимости

Чтобы использовать этот порт, установите для параметра Output значение Count или Count and Hit.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Поддержка комплексных чисел

Нет

# Hit — статус совпадения
скаляр | вектор

Details

Статус совпадения целых значений, указанных в параметре Hit values. Когда в счетчике встречается указанное значение, блок выводит 1 на порт Hit.

Зависимости

Чтобы использовать этот порт, установите для параметра Output значение Count или Count and Hit.

Типы данных

Bool

Поддержка комплексных чисел

Нет

Вход

# Inc — входной сигнал для запуска события подсчета
скаляр | вектор

Details

Входной сигнал, заданный в виде вещественного скаляра или вектора, используется для увеличения счетчика. Если входной сигнал является вектором, то блок рассматривает вектор как кадр. Каждый раз, когда на входном порту Inc происходит событие запуска, блок увеличивает счетчик. Управление типом события запуска производится с помощью параметра Count event.

Зависимости

Чтобы использовать этот порт, установите для параметра Count direction значение Up.

Блок не использует порты Inc и Dec и производит счет с постоянным интервалом времени, если для параметра Count event установлено значение Free running.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Поддержка комплексных чисел

Нет

# Rst — сигнал сброса
скаляр

Details

Входной сигнал, заданный в виде вещественного скаляра, используется для определения момента сброса счетчика блоком. Сигнал на порту Rst должен иметь то же время выборки, что и сигналы на входных портах Inc или Dec. Каждый раз, когда на порту Rst происходит событие запуска, блок сбрасывает счетчик до начального значения.

Зависимости

Чтобы использовать этот порт, установите флажок Reset input.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Поддержка комплексных чисел

Нет

# Max — максимальный размер счетчика
скаляр

Details

Максимальный размер счетчика в виде любого целого числа без знака, которое может представлять параметр Count data type. Значения счетчика варьируются от 0 до значения, которое указано в качестве входа в порт Max.

Зависимости

Чтобы использовать этот порт, установите для параметра Counter size значение Specify via input port.

Типы данных

Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128

Поддержка комплексных чисел

Нет

# Dec — входной сигнал для запуска события подсчета
скаляр | вектор

Details

Входной сигнал, заданный в виде вещественного скаляра или вектора, используется для уменьшения счетчика. Если входной сигнал является вектором, то блок рассматривает вектор как кадр. Каждый раз, когда на входном порту Dec происходит событие запуска, блок уменьшает счетчик. Управление типом события запуска производится с помощью параметра Count event.

Зависимости

Чтобы использовать этот порт, установите для параметра Count direction значение Down.

Блок не использует порты Inc и Dec и производит счет с постоянным интервалом времени, если для параметра Count event установлено значение Free running.

Типы данных

Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

Поддержка комплексных чисел

Нет

Параметры

Основные

# Count direction — прямой или обратный счет
Up | Down

Details

Параметр Count direction определяет, какой будет осуществляться счет: прямой или обратный. В зависимости от значения этого параметра используется порт Inc (прибавление) или Dec (убавление).

  • Если для параметра Count direction установлено значение Up и счетчик достигает верхней границы диапазона, то при следующем событии запуска на порту Inc блок начинает отсчет с нуля.

  • Если для параметра Count direction установлено значение Down и счетчик достигает нуля, то при следующем событии запуска на порту Dec блок начинает отсчет с максимального значения диапазона.

Значения

Up | Down

Значение по умолчанию

Up

Имя для программного использования

CountDirection

Настраиваемый

Да

Вычисляемый

Нет

# Count event — тип события запуска
Передний фронт | Задний фронт | Either edge | Non-zero sample | Free running

Details

Укажите тип события, которое запускает блок на увеличение, уменьшение или сброс счетчика при поступлении на порты Inc/Dec или Rst:

  • Передний фронт — запускает операцию подсчета или сброса, когда сигнал на входных портах Inc/Dec или Rst изменяется следующим образом:

    • Повышается от переднего фронта до положительного или нуля.

    • Повышается от нуля до переднего фронта, когда повышение не является продолжением повышения от заднего фронта до нуля, как показано на рисунке.

      counter 1

  • Задний фронт — запускает операцию подсчета или сброса, когда сигнал на входных портах Inc/Dec или Rst изменяется следующим образом:

    • Понижается с переднего фронта на отрицательное или на ноль.

    • Понижается от нуля до заднего фронта, когда понижение не является продолжением понижения от переднего фронта до нуля, как показано на рисунке.

      counter 2

  • Either edge — запускает операцию подсчета или сброса, когда на входных портах Inc/Dec или Rst происходит событие запуска Передний фронт или Задний фронт.

  • Non-zero sample — запускает операцию подсчета или сброса в каждый такт выборки, когда сигнал на входных портах Inc/Dec или Rst не равен нулю.

  • Free running — отключает порт Inc/Dec и включает параметры блока Samples per output frame и Период дискретизации. Блок увеличивает или уменьшает счетчик с постоянным интервалом , который задается с помощью параметра Период дискретизации. В этом режиме блок сбрасывает счетчик всякий раз, когда получает ненулевую выборку на порт Rst.

Зависимости

Когда параметр Count event имеет значение Free running, блок отключает порт Inc/Dec и увеличивает или уменьшает счетчик с постоянным интервалом, заданным в параметре Период дискретизации.

Значения

Rising edge | Falling edge | Either edge | Non-zero sample | Free running

Значение по умолчанию

Rising edge

Имя для программного использования

CountEvent

Настраиваемый

Нет

Вычисляемый

Нет

# Counter size — диапазон целых значений для подсчета
8 bits | 16 bits | 32 bits | User defined | Specify via input port

Details

Укажите диапазон целых значений, по которым считает блок. Если блок считает весь диапазон счетчика, то при следующем возникновении события запуска на порту Inc/Dec блок сбрасывает счетчик следующим образом:

  • Если для параметр Count direction имеет значение Up и счетчик достигает верхней границы диапазона счетчика, то блок начинает отсчет с нуля.

  • Если для параметр Count direction имеет значение Down и счетчик достигнет нуля, блок начнет отсчет с максимального значения диапазона.

Для параметра Counter size можно установить одно из следующих значений:

  • 8 bits — задает счетчик с диапазоном от 0 до 255.

  • 16 bits — задает счетчик с диапазоном от 0 до 65535.

  • 32 bits — задает счетчик с диапазоном от 0 до 232-1.

  • User defined — включает параметр Maximum count, который позволяет указать верхний предел счета в виде любого произвольного целого числа без знака, которое может быть представлено параметром Count data type. Значения счетчика варьируются от 0 до значения параметра Maximum count.

  • Specify via input port — включает порт ввода Max, который позволяет указать верхний предел счета в виде произвольного целого числа без знака, которое может быть представлено параметром Count data type. Значения счетчика варьируются от 0 до значения, указанного в качестве входного параметра порта Max.

Значения

8 bits | 16 bits | 32 bits | User defined | Specify via input port

Значение по умолчанию

User defined

Имя для программного использования

CounterSize

Настраиваемый

Нет

Вычисляемый

Нет

# Maximum count — максимальное значение счетчика
Целое число типа Int64

Details

Укажите максимальное значение счетчика в виде произвольного целого числа без знака, которое может быть представлено параметром Count data type.

Зависимости

Чтобы использовать этот параметр, установите для параметра Counter size значение User defined.

Значение по умолчанию

255

Имя для программного использования

MaximumCount

Настраиваемый

Да

Вычисляемый

Да

# Initial count — начальное значение счетчика
Целое число типа Int64

Details

Укажите начальное значение счетчика как любое целое число без знака в диапазоне, определяемом параметром Counter size. Блок использует начальное значение счетчика в начале моделирования и сбрасывает счетчик обратно к этому начальному значению каждый раз, когда событие запуска происходит на порту Rst.

Значение по умолчанию

0

Имя для программного использования

InitialCount

Настраиваемый

Да

Вычисляемый

Да

# Output — значение счета, значение попадания или оба значения
Count | Hit | Count and Hit

Details

Выберите, какие выходные порты использовать. Допустимые значения параметра для портов: Count, Hit или Count and Hit.

Значения

Count | Hit | Count and Hit

Значение по умолчанию

Count and Hit

Имя для программного использования

Output

Настраиваемый

Нет

Вычисляемый

Нет

# Hit values — подсчет значений для пометки
Скаляр / вектор целых чисел типа Int64

Details

Укажите целое число или вектор целых чисел, появление которых в счетчике должно быть отмечено 1 на выходном порту Hit.

Зависимости

Чтобы использовать этот параметр, установите для параметра Output значение Hit или Count and Hit.

Значение по умолчанию

32

Имя для программного использования

HitValues

Настраиваемый

Да

Вычисляемый

Да

# Reset input — включение входного порта Rst
Логический тип

Details

Установите этот флажок, чтобы включить входной порт Rst. При включении порта Rst блок сбрасывает счетчик до начального значения каждый раз, когда на порту Rst происходит событие запуска. Тип события, вызывающего сброс счетчика, устанавливается в параметре Count event. Если снять флажок Reset input, сброс счетчика во время моделирования будет невозможен.

Значение по умолчанию

true (включено)

Имя для программного использования

ResetInput

Настраиваемый

Нет

Вычисляемый

Нет

# Samples per output frame — число выборок в каждом выходном векторе
Целое число типа Int64

Details

Укажите число выборки в каждом выходном векторе в виде целого положительного числа.

Зависимости

Чтобы использовать этот параметр, установите для параметра Count event значение Free running.

Значение по умолчанию

1

Имя для программного использования

SamplesPerOutputFrame

Настраиваемый

Нет

Вычисляемый

Да

# Период дискретизации — время выборки в режиме Free running
Вещественное число

Details

Укажите постоянный интервал , через который блок увеличивает или уменьшает счетчик в режиме Free running. Допустимые значения параметра:

  • неотрицательный скаляр — скаляр, который больше или равен нулю.

  • -1 — наследование времени выборки.

Например, чтобы блок увеличивал счетчик каждые 5 секунд, установите для параметра Count direction значение Up, для параметра Count event значение Free running, а для параметра Период дискретизации укажите значение 5. В режиме Free running время выборки выходных портов всегда равно .

Зависимости

Чтобы использовать этот параметр, установите для параметра Count event значение Free running.

Значение по умолчанию

1.0

Имя для программного использования

SampleTime

Настраиваемый

Нет

Вычисляемый

Да

# Count data type — тип данных порта Cnt
double | single | Int8 | UInt8 | Int16 | UInt16 | Int32 | UInt32

Details

Укажите тип данных для вывода на порт Cnt.

Зависимости

Чтобы использовать этот параметр, установите для параметра Output значение Count или Count and Hit.

Значения

double | single | int8 | uint8 | int16 | uint16 | int32 | uint32

Значение по умолчанию

double

Имя для программного использования

CountDataType

Настраиваемый

Нет

Вычисляемый

Нет

Алгоритмы

Операция ввода скаляра

Если установить для параметра Count direction значение Up, событие запуска на входном порту Inc (прибавление) приводит к тому, что блок увеличивает счетчик на единицу. При условии отсутствия событий сброса блок продолжает увеличивать значение счетчика при событии на порту Inc, пока значение счетчика не достигнет верхнего предела счета. При следующем событии запуска на порту Inc блок перезапускает счетчик с 0 и возобновляет увеличение счетчика на единицу при каждом последующем событии запуска на порту Inc.

Если установить для параметра Count direction значение Down, событие запуска на входном порту Dec (убавление) приводит к тому, что блок уменьшает счетчик на единицу. При условии отсутствия событий сброса блок продолжает уменьшать значение счетчика при событии на порту Down, пока значение счетчика не достигнет значения 0. При следующем событии запуска на порту Dec блок перезапускает счетчик с верхнего предела счета и возобновляет уменьшение счетчика на единицу при каждом последующем событии запуска на порту Dec.

Между событиями запуска блок удерживает выход на его последнем значении. Блок сбрасывает счетчик в исходное состояние, когда на дополнительном входном порту Rst происходит событие запуска, заданное параметром Count event. Если порты Inc/Dec и Rst получают события запуска одновременно, то блок сначала сбрасывает счетчик, а затем увеличивает или уменьшает его соответствующим образом. Чтобы отключить сброс счетчика во время моделирования, нужно отключить порт Rst, сняв флажок Reset input.

Параметр Output позволяет указать, какие значения выводит блок:

  • Count включает порт вывода Cnt на блоке. Порт Cnt предоставляет текущее значение счетчика в виде скаляра. Выходной порт Cnt имеет то же время выборки, что и входной порт Inc/Dec.

  • Hit включает порт вывода Hit на блоке. Порт Hit выдает нули, если значение счетчика не равно ни одному из целых чисел, указанных в параметре Hit values. Для параметра Hit values можно указать целое число или вектор целых чисел. Когда значение счетчика равно одному или нескольким значениям, указанным для параметра Hit values, блок выводит значение 1 на выходной порт Hit. Выходной порт Hit имеет то же время выборки, что и входной порт Inc/Dec.

  • Count and Hit включает оба выходных порта Cnt и Hit.

Операция ввода вектора

Блок рассматривает векторные входные данные на порт Inc/Dec как кадр. Работа с вектором аналогична работе со скаляром, за исключением того, что блок увеличивает или уменьшает счетчик на общее количество событий запуска, содержащихся во входном векторе Inc/Dec. Таким образом, счетчик может изменяться несколько раз в процессе обработки одного входного вектора Inc/Dec.

Если блок имеет порт Hit, он выдает значение 1, если любое из значений Hit совпадает с любым из значений счетчика во время обработки входного вектора Inc/Dec.

Если событие запуска возникает между двумя последовательными векторами, это событие учитывается в том векторе, который содержит завершение события. Когда порт Rst получает событие запуска одновременно с портом Inc/Dec, блок сначала сбрасывает счетчик. Затем блок увеличивает или уменьшает счетчик на количество событий запуска, содержащихся во входном векторе Inc/Dec.

Если входной сигнал порта Inc/Dec представляет собой вектор-строку на , время выборки порта входного порта Inc/Dec равно периоду кадра входного сигнала или кратному времени выборки входного сигнала. Время выборки порта выходных портов Cnt и Hit равно времени выборки входного порта Inc/Dec.

Автоматический счет

Блок работает в режиме автоматического счета если для параметра Count event установлено значение Free running.

Входной порт Inc/Dec в этом режиме отключен, и блок увеличивает или уменьшает счетчик с постоянным интервалом , который задается в параметре Период дискретизации.

В этом режиме порт Rst всегда ведет себя так, как если бы параметр Count event был установлен в значение Non-zero sample. Таким образом, блок запускает событие сброса в каждый момент времени выборки, когда на входном порту Rst не ноль.

В этом режиме выход Cnt представляет собой вектор-строку на , содержащий значение счета в каждый из последовательных моментов выборки, где — значение, заданное для параметра Samples per output frame. Выходной порт Hit — это вектор-строка на , содержащий статус совпадения (0 или 1) в каждый из последовательных моментов выборки. Оба выходных порта Cnt и Hit имеют время выборки порта .