====== Counter ====== {{:en:mervis-ide:35-help:bd30.png}} ===== Block name ===== BD30_COUNTER ===== ST call ===== PROGRAM BD30_COUNTER_DEMO VAR L1: LINT; FB1: LIB.CORE.V1_0.BD30_COUNTER; FB2: LIB.CORE.V1_0.BD2_PULSE_GENERATOR; END_VAR FB2(); FB1(BX := FB2.OUT); L1 := FB1.OUT; END_PROGRAM ===== Library ===== LIB\CORE ===== Version ===== V1.0 ===== Description ===== The block is a pulse counter. Number of pulses is brought to the output //OUT//. The //OUT// value may be increased by 1 at rising edge on the //BX// input, or at falling edge of the //BXF// input. It may be also decreased by 1 at rising edge on the //BXD// input, or at falling edge of the //BXDF// input. The //MINIMUM// parameter specifies the lower limit of the counting range of //OUT,// while //// //MAXIMUM// is the upper limit. All possible values are thus //MINIMUM,MINIMUM+1,MINIMUM+2,...,MAXIMUM-1,MAXIMUM//. The behaviour at MINIMUM and MAXIMUM is given by the parameter //BRING//: * //BRING=TRUE//: Ring (cyclic) counter. If //OUT=MAXIMUM// and the value has to be increased, then it starts at //MINIMUM//. If //OUT=MINIMUM// and the value has to be decreased, it is set to MAXIMUM and counts down. * //BRING=FALSE//: If //OUT=MAXIMUM// and the value has to be increased, no operation is done (the value stops at MAXIMUM). If //OUT=MINIMUM// and the value has to be decreased, the value stops at MINIMUM. The counter may be reset by a rising edge at the //BR// input. If //BR=TRUE// then //OUT=MINIMUM// and counting is stopped. ===== Inputs ===== |Input |Type|Description |Default value| |BX |BOOL|Rising edge increases the //OUT// value by 1 |False | |BXF |BOOL|Falling edge increases the //OUT// value by 1 |False | |BXD |BOOL|Rising edge decreases the //OUT// value by 1 |False | |BXDF |BOOL|Falling edge decreases the //OUT// value by 1 |False | |BR |BOOL|Reset – if //BR=TRUE// then //OUT=MINIMUM// |False | |MINIMUM|LINT|Minimum value of //OUT// |0 | |MAXIMUM|LINT|Maximum value of //OUT// |10000 | |BRING |BOOL|Overflow switch. If //BRING=TRUE// then the counter is a cyclic counter, if //BRING=FALSE// then the counter stops at //MINIMUM// or //MAXIMUM// values.|False | ===== Outputs ===== |Output|Type|Description | |OUT |LINT|Counter value (//OUT// may be equal to //MINIMUM,MINIMUM+1,MINIMUM+2,...,MAXIMUM-1,MAXIMUM//)| ===== Application example ===== {{:en:mervis-ide:35-help:bd30_example.png}}\\ The counter counts pulses generated by the BD2 block. Each rising edge increases the counter by 1. The counter is used to count events or to control a cascade heating plant.