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

Counter

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

counter

Описание

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

Порты

Вход

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

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

Зависимости

  • Блок включает порт Inc (прибавление), если для параметра Count direction установлено значение Up.

  • Блок включает порт Dec (убавление), если для параметра Count direction установлено значение Down.

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

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

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

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

Зависимости

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

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

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

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

Зависимости

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

Типы данных: Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128

Выход

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

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

Зависимости

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

Типы данных: Float16, Float32, Float64, Int8, Int16, Int32, Int64, Int128, UInt8, UInt16, UInt32, UInt64, UInt128, Bool

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

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

Зависимости

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

Типы данных: Bool

Параметры

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

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

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

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

Count event — тип события запуска
Rising edge (по умолчанию) | Falling edge | Either edge | Non-zero sample | Free running

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

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

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

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

counter 1

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

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

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

counter 2

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

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

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

Зависимости

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

Counter size — диапазон целых значений для подсчета
8 бит (по умолчанию) | 16 бит | 32 бита | User defined | Specify via input port

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

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

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

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

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

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

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

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

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

Maximum count — максимальное значение счетчика
255 (по умолчанию) | положительное целое число

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

Зависимости

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

Initial count — начальное значение счетчика
0 (по умолчанию) | неотрицательное целое число

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

Output — значение счета, значение попадания или оба значения
Count (по умолчанию) | Hit | Count and Hit

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

Hit values — подсчет значений для пометки
32 (по умолчанию) | скаляр | вектор

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

Зависимости

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

Reset input — включение порта ввода Rst
включено (по умолчанию) | выключено

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

Samples per output frame — число выборок в каждом выходном векторе
1 (по умолчанию) | целое положительное число

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

Зависимости

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

Sample time — время выборки в режиме Free Running
1 (по умолчанию) | -1 | неотрицательный скаляр

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

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

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

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

Зависимости

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

Count data type — Тип данных порта Cnt
double (default) | single | int8 | uint8 | int16 | uint16 | int32 | uint32

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

Зависимости

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

Hit data type — Тип данных порта Hit
Logical (по умолчанию) | Bool

Алгоритмы

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

Если установить для параметра 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 представляет собой вектор-строку на 1, время выборки порта входного порта Inc/Dec равно периоду кадра входного сигнала или кратному времени выборки входного сигнала. Время выборки порта выходных портов Cnt и Hit равно времени выборки входного порта Inc/Dec.

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

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

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

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

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