BRX FREQTMR: Normal I/O, Not High-Speed Input Scaling

Brian Holt6 min read
AutomationDirectPLC HardwareTechnical Reference
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

The X4 frequency value may read low, jump, or stay at zero when FREQTMR is applied to an input assigned to $HsCtrTmr. The instruction does not consume the scaled high-speed measurement. It watches the normal I/O state through software, while the BRX high-speed frequency timer measures edges in dedicated hardware and applies its configured scaling to the resulting numeric value.

Reject the quick fixes first

Do not keep changing the scaling values to make FREQTMR agree with the process. Scaling in the BRX high-speed input setup does not multiply, divide, or regenerate the electrical pulses on X4. It transforms the measurement produced by the hardware function.

Quick fix Why it fails Correct next check
Change $HsCtrTmr scaling FREQTMR does not read that scaled result. Identify whether the program consumes the software instruction result or the hardware function result.
Watch X4 online and accept visible toggling as proof The monitor and normal input image can display occasional state changes while missing transitions between scans. Compare the signal transition rate and pulse width with the PLC scan behavior.
Use both frequency methods and average them Averaging cannot restore edges already missed by the software path. Select one measurement path that matches the signal speed.
Move logic around to shorten one scan A single improved scan does not provide deterministic capture of asynchronous high-speed edges. Use the BRX hardware frequency timer for a high-speed source.

Check which measurement path is active

Start at the destination used by the control logic, display, alarm, or calculation. The name of the physical input alone does not identify the measurement path.

  1. Find the FREQTMR instruction whose input is X4.
  2. Trace its output to the value used by the rest of the program.
  3. Open Setup BRX High Speed Input Function and confirm whether X4 is assigned to $HsCtrTmr.
  4. Trace the result produced by that hardware function, including the configured scaled result.

If the application consumes the FREQTMR output, it is on the normal-I/O software branch. Go to the transition-rate check. If it consumes the $HsCtrTmr result, it is on the hardware branch; inspect the scaling setup and destination mapping next. If both results exist, determine which one actually reaches the process logic before changing configuration.

Measure whether software can observe the transitions

FREQTMR is the non-high-speed, software implementation intended for general I/O. It detects changes that become visible through ordinary I/O processing. A complete pulse can occur between input updates or program evaluations, so the instruction may never see it. Variable scan time also changes which edges are sampled, producing an unstable or biased frequency result.

Take three readings: the source frequency, the high and low pulse widths, and the PLC scan-time range under normal production load. Use a scope, logic analyzer, or suitable frequency instrument at the input terminals. A displayed input bit is not a substitute for these measurements.

Reading Outcome Next action
Both pulse states remain visible across multiple input/program evaluations The source may be slow enough for the software method. Check input conditioning, instruction execution, and program gating.
Either pulse state can begin and end between evaluations The software path can miss complete pulses. Use the hardware frequency timer.
Scan time changes with machine state The software result can change with program load even when the source stays constant. Test at the longest observed scan or move to hardware capture.
Hardware result is stable but FREQTMR is not The signal is reaching X4; software sampling is the limiting mechanism. Remove FREQTMR from the measurement path.

Think of approximately 20 Hz or 100 Hz as examples of the slower transition range associated with the software instruction, not as guaranteed limits. The deciding values are the actual pulse widths, input update behavior, and worst-case scan time. The BRX hardware function is the path intended for high-speed timing, with hardware operation identified for signals up to 1 MHz.

Choose raw state or scaled measurement deliberately

The question is not whether FREQTMR receives raw or scaled impulses. Scaling does not create a second pulse stream. There is one electrical state at X4 and two different ways to process it:

  • FREQTMR observes the normal Boolean input state and calculates its own result in software.
  • $HsCtrTmr uses BRX high-speed hardware to time the input and then exposes a measurement that can be scaled by its setup.

Use the raw hardware measurement when downstream logic must perform its own conversion. Use the scaled hardware result when the high-speed setup already converts the measurement into the required engineering value. Do not apply the same conversion again in ladder logic; double scaling produces a stable but incorrect value.

If the configuration screen or program symbols do not make the raw and scaled destinations clear, inspect the high-speed function mapping before editing logic. Stop here if you cannot identify which destination carries the hardware result. Guessing at an address can redirect alarms, speed regulation, or production counts without producing an obvious program fault.

Restore production through the hardware branch

  1. Record the present FREQTMR output, hardware-function settings, and scaling entries so the change can be reversed.
  2. Confirm that X4 is assigned to $HsCtrTmr in Setup BRX High Speed Input Function.
  3. Confirm that the physical signal reaches X4 cleanly and remains within the input rating shown in the BRX hardware documentation.
  4. Select the hardware frequency-timer result as the source for the process logic.
  5. If engineering-unit conversion is required, use the scaled result from the high-speed setup. Otherwise, use its unscaled measurement and perform one documented conversion downstream.
  6. Remove or bypass the FREQTMR result from the active control path. Do not leave two competing frequency values feeding different parts of the sequence.
  7. Download or apply the configuration using the site change-control procedure, then restart only the affected sequence if the controller permits it.

Get it running, then fix it properly: label the selected measurement path, document where scaling occurs, and remove abandoned comparison logic after the production test.

Verify the resolving branch under load

  1. Apply a stable source frequency and record it with an independent instrument.
  2. Read the BRX hardware frequency-timer result. It should remain stable while the normal program scan changes with machine operation.
  3. Read the scaled destination and compare it with the conversion entered in the high-speed setup.
  4. Run the machine through the operating range, including the highest expected transition rate and the program state with the greatest scan load.
  5. Confirm that alarms, displays, totals, and control calculations all reference the same selected result.
  6. Trend the result through starts, stops, and steady operation. Investigate discontinuities at the signal source, wiring, input conditioning, or configuration before altering scaling.

A correct result remains tied to the physical frequency rather than to PLC scan load. If the hardware value is stable but the displayed engineering value is wrong, correct the scaling or downstream conversion. If the hardware value itself is missing or unstable, return to the electrical signal and high-speed function assignment.

FAQ

Why does BRX FREQTMR miss pulses on X4?

FREQTMR observes normal I/O through software. Pulses that complete between input updates or instruction evaluations are not counted, so use $HsCtrTmr for the high-speed measurement.

Why does changing HSIO scaling not change FREQTMR?

The scaling belongs to the hardware frequency-timer result; it does not modify the electrical pulses or the normal X4 bit. FREQTMR calculates a separate software result.

Why can X4 toggle online while FREQTMR reads incorrectly?

An online display can show sampled state changes without showing every edge. Measure frequency and pulse widths at the terminal, then compare them with the input-update and scan behavior.

When should I stop troubleshooting and call official support?

Stop if the hardware result remains missing with a verified electrical signal, if the $HsCtrTmr destination cannot be identified, or if changing the assignment would affect active interlocks. Record the configuration, signal measurements, scan-time range, and observed values, then contact AutomationDirect through its official support channel. Do not keep changing addresses or scaling on a running control path.

Back to blog