Configuring C-More Animation Without PLC Update Lag

Brian Holt12 min read
AutomationDirectHMI ProgrammingTroubleshooting
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 C-More object skipped through PLC values at V1400; moving the animation count into the HMI cleared the motion in the reported setup. A C-More refresh can show the current PLC value without displaying every intermediate value in a fast sequence, so fix the animation source and panel workload before adding more PLC ticks.

Stop sending fast animation steps through PLC memory

A PLC value that changes through 1, 2, 3, 4, 5 can advance several times between HMI reads. The screen then displays whichever value it reads next, making the object appear to jump or move randomly. That is a sampling effect: a changing register is not a guaranteed frame-by-frame command channel.

In the reported case, the PLC wrote values 1 through 7 to V1400. A PLC timer/counter-driven sequence appeared to skip values, while an analog value at the same address updated rapidly on the display. The analog observation does not prove that the HMI can capture a faster sequence; it shows only that a changing value could be displayed. Likewise, substituting SP4 did not remove the delay.

For an animation that only represents motion, generate its changing count locally in the HMI instead of transmitting each cosmetic step from the PLC. Keep PLC logic responsible for machine state and actual control. If the graphic must show a PLC-owned position or sequence precisely, treat the display as a sampled indication and do not make it the control path.

Check: Watch the PLC register and the graphic together. If the PLC sequence advances through values that the graphic never shows, continue with a local animation counter; do not spend the shift tuning the same fast PLC sequence.

Separate a missed poll from a bad register value

Before changing the drawing, establish whether the PLC value itself is correct. A bad value, an address mismatch, and a valid value that changes faster than the HMI reads it can look similar on screen. One responsive analog display does not rule out missed intermediate updates on another sequence.

  1. Observe the source value in the PLC while the sequence runs. Confirm that the intended values appear in the intended order and that the source does not reset or jump unexpectedly.
  2. Compare the displayed value with the PLC value while the screen is active. If the PLC continues to advance while the HMI repeats or skips displayed values, focus on refresh timing and communication workload.
  3. If the PLC value itself pauses or advances irregularly, inspect the logic that produces it and check PLC scan time and communication diagnostics. A heavily loaded PLC can delay communication service; do not treat every screen delay as an HMI graphics problem.
  4. Repeat the comparison with the animation object removed or simplified. If the screen updates better, the drawing workload is part of the problem; if it does not, investigate data acquisition and PLC response first.

The HMI manages communications with the attached PLC and refreshes variables used by the displayed screen. Reads are transactions, not a continuous feed of each PLC state. A value can be correct at every instant the PLC is checked and still have intermediate states missed by the screen.

Check: Identify whether the source register is wrong, the HMI is missing fast intermediate values, or PLC response is delayed. Make that distinction before adjusting animation scaling or communication layout.

Set up C-More’s built-in counter

The built-in counter supplies a changing value inside the C-More, avoiding the PLC-to-HMI round trip for each animation step. Configure it through the Event Manager; the system tags are not configured by typing directly into their displayed values.

  1. In the Event Manager, create a Tag event action that writes the desired upper limit to SYSCountMax.
  2. Create another Tag action to write the lower limit to SYSCountMin.
  3. Create an action to write the count interval to SYSCountInterval.
  4. Create an action that turns on SYSCountRepeat so the counter repeats across the configured range.
  5. Use SYSCountValue as the value driving the animation. Arrange for the configuration actions to run before the display depends on the counter.

SYSCountValue advances by one at the interval set by SYSCountInterval and runs between the configured minimum and maximum when repeat is enabled. This replaces the PLC sequence for the visual motion; it does not increase the PLC’s polling rate or make every PLC value visible.

A clock-seconds value is a poor substitute for a short animation count when it rolls over at 60. The local counter provides a bounded range suited to the graphic. A separate PLC tick-bit/counter approach was also used, with a 250 ms on/off tick; that still depends on the HMI reading PLC changes and may not help when polling is the bottleneck.

Check: Run the counter in simulation and confirm that the value increments, stays within the chosen limits, repeats as intended, and is available to the animation object. Simulation proves configuration behavior, not target-panel speed.

Map the counter to a useful rotation range

Set the animation’s input-value range and its corresponding rotation-degree range deliberately. These endpoints determine both the rotation shown for each count and the number of count steps available per revolution. A coarse range uses fewer changes but produces larger angular jumps; a finer range provides more positions and requires more updates.

One tested setup used a counter range of 0 to 35, animation PLC-value points of 0 and 36, and rotation-degree points of 0 and 360. Treat those values as a starting example, not a universal mapping: confirm how the configured endpoints render on the target panel and whether the transition from maximum back to minimum creates an unwanted jump.

For a graphic intended to rotate through multiple turns while a run bit is high, a separate setup used animation values 1 to 600 mapped to 0 to 3600 degrees. That represents ten full turns in the configured graphic. When the run condition goes low, stop changing the rotation tag in PLC logic if the graphic must hold its final position; a C-More counter alone does not provide PLC logic for stopping a PLC-owned tag.

Scale the display to the real purpose. A status icon may need only a few recognizable positions; a moving carousel illustration may need repeated rotation. Do not increase the count range by default: extra numerical resolution is useful only if the panel can calculate and draw it at a responsive rate.

Check: Test minimum, maximum, one complete turn, and the repeat transition. Confirm the direction, endpoint, wrap behavior, and held position match the intended visual behavior before increasing resolution.

Tune animation speed without starving operator controls

Choose the counter interval by watching both motion and panel response. An interval that is shorter than the panel can render does not guarantee smoother animation; the HMI may spend more time updating the graphic without presenting more useful frames.

In simulation, interval values below 100 milliseconds showed little speed difference. The observed rate depended on the computer and the other tasks running, and a physical C-More could behave differently. Do not take that result as a guaranteed target interval for a panel. Start with a moderate interval, test on the installed HMI, and shorten it only while the motion visibly improves and operator controls remain responsive.

Rotation calculations are particularly demanding for C-More graphics. In the reported panel, adding a rotation symbol slowed other activity enough that pressing the Start pushbutton took several seconds to respond. Removing that symbol restored responsiveness. This is a production-impacting symptom, not a reason to keep reducing the count interval.

Use the visible result and control response as separate acceptance criteria. If faster movement adds no visible benefit, keep the slower interval. If button response degrades, reduce the animation workload or change the representation rather than asking the screen to calculate more often.

Check: On the physical panel, confirm the animation is acceptably smooth and a pushbutton responds promptly while it runs. If either criterion fails, revert the last interval or graphics change before proceeding.

Reduce PLC reads before adding more display tags

When PLC data must remain on the screen, organize it to reduce separate reads. The C-More can read adjacent memory locations together. Displaying V400 and V2000 requires separate reads, while V400 and V401 can be read as two consecutive words starting at V400.

Data in different memory areas creates additional transactions. A screen needing V memory, C memory, timer memory, and counter memory requires at least four transactions in the described arrangement. Group related display values into contiguous locations where the PLC design permits it, and avoid scattered reads for values that change together.

Also inspect the alarm database. Variables included there are updated whether or not they appear on the currently displayed screen, adding communication work beyond the visible objects. Remove unneeded alarm variables or avoid enrolling high-volume values that do not need alarm monitoring.

One historical application copied PLC values into HMI internal variables through Event Manager once per second. Its Modbus device was limited to 20 words per transaction; six transactions were needed, and the achieved screen update was reliable every two seconds, occasionally every second. That case shows why internal display tags can simplify screens but do not eliminate the time required to acquire source data.

Check: Review the displayed and alarmed variables, group compatible reads, then compare screen update behavior. Confirm the PLC data still refreshes adequately before removing any source values operators depend on.

Remove background work that competes with animation

Screen objects are not the only workload. Line trends and Event Manager activity can run in the background, and alarm variables can add reads even when they are not visible. A panel that animates well in a lightly loaded simulation may slow when the full project is running.

Commission the actual screen with the normal set of active trends, events, alarms, and graphics. Temporarily remove or disable nonessential animation and compare response. If the Start control or other screen elements recover when a costly rotation symbol is removed, the panel has a graphics-processing bottleneck. If values lag but controls remain responsive, look more closely at read transactions and PLC communications.

Do not assume that reducing graphic detail is always the answer: the reported installations varied, and a screen’s response depends on its workload and communication arrangement. Change one class of work at a time so the improvement has a clear cause. Keep essential alarm and operator information; reduce optional animated effects first.

Check: Run the panel with its normal background tasks and compare operator response and data freshness with the animation disabled. Re-enable only work that does not push the panel beyond acceptable response.

Choose between HMI counting and discrete graphic states

Use the built-in counter when smooth numeric rotation is worth its processor cost and the C-More remains responsive. If calculated rotation slows the panel, replace continuous rotation with pre-rotated graphic states. This trades angular resolution for lower calculation demand.

One discrete approach used 35 bits to select pre-rotated graphics. For example, a bit could be true over an angle band of 6 to 15 degrees and display a graphic rotated 10 degrees; the next bit could select a 20-degree version over the next band. The exact number of images and angle bands should match the motion’s visual needs, rather than copying this example blindly.

Discrete selection requires the image set and logic that chooses the active state. A PLC can provide state bits, or the display project can use available tag logic; select the source that fits ownership of the machine logic. If the PLC owns the state, have its logic stop changing the rotation value when the run bit goes low when the graphic must hold. If the display owns only cosmetic movement, use the HMI counter and verify its range and repeat behavior.

Check: Compare the discrete-state version and calculated rotation on the physical panel with the full screen load active. Retain the version that meets the needed visual resolution without delaying operator controls.

Verify the fix on the panel under operating load

Finish commissioning on the actual C-More, not only in simulation. A local counter can solve missed PLC animation steps while exposing a separate rendering limit; a graphics change can appear smooth in an unloaded project and still slow controls under normal background work.

  1. Confirm the configured Event Manager actions load the intended minimum, maximum, interval, and repeat state before animation starts.
  2. Observe SYSCountValue and verify the object follows the count through the range and across the repeat transition.
  3. Run the normal trends, alarms, Event Manager activity, and screen content. Check PLC data freshness separately from local animation movement.
  4. Operate the screen’s pushbuttons while the animation runs. Watch for delayed response, missing measurements, or values that arrive after the operator needs them.
  5. Repeat the test with rotation disabled or replaced by discrete images if response degrades; document the setting that meets both motion and control-response needs.

A successful result is not simply a graphic that moves. The displayed state must be intelligible, actual PLC data must remain fresh enough for its use, and operator controls must remain responsive while the panel performs its normal work.

Check: Accept the configuration only after the target panel passes the full-load animation, data-freshness, repeat/hold, and pushbutton-response checks.

Answer common C-More animation questions

Can I animate a C-More object with SYSCountValue?

Yes. Use Event Manager Tag actions to set SYSCountMin, SYSCountMax, SYSCountInterval, and SYSCountRepeat, then map SYSCountValue to the animation input range.

Does a PLC tick bit eliminate C-More update lag?

No. A PLC tick still has to be read by the HMI, so fast changes can be skipped between refreshes. A 250 ms PLC tick was used as an alternative, but a local counter avoids that polling dependency for cosmetic motion.

Can I use a 0-to-35 counter for one rotation?

A tested configuration used counter limits 0 to 35, input points 0 and 36, and rotation points 0 and 360 degrees. Verify the endpoint and repeat transition on the target panel because the required mapping depends on the object’s configured behavior.

When should I stop tuning and contact AutomationDirect support?

Stop commissioning if pushbutton response remains delayed, required PLC data stays stale, or the Event Manager counter behaves differently on the target panel than in simulation after you have isolated background workload and checked the project settings. Contact AutomationDirect technical support with the panel model, project configuration, observed response, and PLC communication diagnostics.

Back to blog