After the correct memory pattern, data type, and clock path are selected, values load once, remain stored, and leave the block in the intended order. Start by checking the signal sequence; changing memory depth or adding timers will not repair a level signal that generates repeated operations.
Reject the usual quick fixes
Do not start by increasing the shift-register depth. A deeper block stores more values, but it does not correct duplicate writes, skipped reads, or an incorrect load pattern. Likewise, replacing an integer block with a floating-point block changes the data representation, not the sequence.
| Quick fix | Why it fails | Reading to take next |
|---|---|---|
| Add more storage positions | The same bad clock can duplicate or discard values across a larger buffer. | Observe the write and shift commands over consecutive program cycles. |
| Hold the clock input on | A level can be processed repeatedly if the implementation does not include internal edge detection. | Count block operations produced by one field event. |
| Use reset to clear a sequencing fault | Reset removes stored state but leaves the faulty command path in place. | Compare reset, load, and shift commands for overlap. |
| Substitute a latch for a queue | A latch retains one value; it does not preserve the order of several samples. | Determine how many values must remain available simultaneously. |
Get the process running only after identifying which command causes each state change. Then correct the pulse generation and command interlocks.
Check the required data type first
Read the producing signal's type and the consuming block's type. Select an integer memory or int trigger when the complete value is integral. Select floating-point memory or an f trigger when fractional values must survive storage and retrieval.
The proposed sequential memories have depths of 2, 4, or 8 values in both integer and floating-point forms. The parallel-load versions hold four integer or four floating-point values. A type mismatch can cause a rejected connection, an implicit conversion, truncation, or a value that differs at the destination; the actual result depends on the OWEN Logic project configuration.
- Monitor the value immediately before the memory block.
- Monitor the stored or output value at
Q, where that output is provided. - Write one integer test value and, for a floating-point path, one value with a fractional part.
- If the fractional part disappears, stop changing the clock logic and correct the data path first.
Choose sequential or parallel loading
Count how many source values arrive together. This reading decides the storage architecture.
| Observed source behavior | Select | Next check |
|---|---|---|
| One new value arrives per event | Sequential shift-register memory with depth 2, 4, or 8 | Confirm the required first-in/next-out sequence by tracing distinct test values. |
| Four values must be captured from the same process state | Four-value parallel-to-serial memory | Confirm all four inputs are stable when the parallel write occurs. |
| Only the latest value must be retained |
int or f trigger |
Check whether a reset function is required. |
| One value must be retained without a separate reset input |
int or f LATCH form |
Define how the application will overwrite or initialize the retained value. |
Sequential memories accept values one after another, retain them, and expose them through shifting. The proposed blocks also distinguish an open output from a clocked output and provide a clock-pulse output for transferring a value into another block. Treat that pulse as a handshake: the downstream block must accept exactly one value for each upstream transfer.
Trace every clock, reset, and load command
Monitor Data, Clock, Reset, and Q for a trigger. For the proposed counter, monitor U, D, R, C, N, and Q. Use a test sequence in which every stored value is different; repeated values hide ordering faults.
- Hold
Dataat a recognizable test value. - Apply one
Clockevent and record the resultingQ. - Change
Datawithout another clock event. IfQchanges, the selected block or wiring is not acting as the required clocked store. - Apply a second clock event and verify that
Qtakes the new value once. - Apply
Resetonly to a trigger variant that includes that input, then record its reset result rather than presuming a particular numeric state.
The description of the floating-point trigger repeats the write wording around Data before naming Clock. Inspect the actual block interface and test the transition above. Do not wire production logic from that wording alone.
Check the counter at zero before replacing it
The proposed CTN 32-2 differs from CTN 32 and the universal CTN by its stated down-count behavior at zero: a pulse on D while Q is 0 does not move the count to the maximum value. It also separates count-up U, count-down D, reset R, and preset-load C; C writes the integer value at N.
- Use
Cto load a known value fromN. - Pulse
Uand verify thatQincrements once. - Pulse
DuntilQreaches 0. - Apply one more
Dpulse. The resolving branch isQremaining at 0. - If
Qjumps to a maximum value, confirm that the project containsCTN 32-2, notCTN 32or the universalCTN. - Test simultaneous
U,D,R, orCcommands before commissioning. The stated description does not define command priority, so prevent overlap or determine priority by controlled testing.
Commission the resolving branch
Build the path in small stages. First prove pulse generation with a counter or visible diagnostic signal. Next connect the selected trigger or memory block. Add downstream transfer only after one input event produces one stored operation.
- Select integer or floating-point storage from the source and destination types.
- Select a 2-, 4-, or 8-value sequential memory, a four-value parallel-load memory, or a single-value trigger from the capture requirement.
- Create distinct test values and write them in a recorded order.
- Read or shift each value once. Compare the observed order with the required process order.
- Verify the open or clocked output mode used by the application.
- If chaining blocks, verify one downstream write for each clock pulse emitted by the upstream block.
- Interrupt and restore the operating state used by the machine, then verify initialization before releasing automatic operation. Storage across that transition is not defined here and must be measured in the target controller.
Record the selected block, data type, depth, pulse source, reset behavior, and test sequence in the project notes. That prevents a later maintenance change from substituting a similar-looking block with different zero, reset, or output behavior.
FAQ
What happens if Clock stays true for several program cycles?
The block may process more than one write or shift if it expects a pulse and has no internal edge handling. Measure the operation count and convert the field level into one event per required transaction.
What happens if an integer block stores a floating-point value?
The connection may be rejected or converted, and a fractional part may be lost. Test with a value containing a fraction and compare the input with Q.
What happens if CTN 32-2 receives D when Q is zero?
The stated behavior is for Q to remain at 0 instead of changing to the maximum counter value. A different result means the wrong counter variant or different implemented behavior is in use.
What happens if load, reset, and count commands overlap?
The result depends on the block's command priority, which is not specified in the description. Interlock the commands or establish priority with a controlled test using R, C, U, and D.
Stop here if the installed block interface differs from the described inputs, if command priority cannot be established safely, or if stored values change across an operating-state transition without a defined initialization path. Contact official OWEN support with the controller model, OWEN Logic version, project file, selected block name, and a trace showing inputs and outputs around the failed event.