A whole recipe file written over FTP every second keeps the panel busy with file handling while the bar graph tags wait. Move the per-second values to a tag connection, write the file only when a recipe really changes, and give a 0.1-unit change its own narrow-range bar, because a fixed 0 to 200 scale cannot resolve it.
Your panel is not slow; it is busy. A whole recipe file arriving over FTP every second makes the panel copy and process a file each cycle, and the bar graph tags wait behind that work. The panel's FTP service is documented as a way to back up and update history data and recipe data; that is recipe work, done when recipes change. Per-second live values belong on the panel's ordinary tag connection, where each poll updates one register and no file moves. Move the live tags there, fire the file write only when a recipe changes, and the writing message appears only on real recipe loads.
The second problem is arithmetic. On a fixed 0 to 200 scale, a 150 to 150.1 change is 0.05% of full scale, a fraction of a pixel. No single fixed scale can show the startup sweeps and the fine band at once, so the fine band gets its own bar with narrow limits.
What the symptoms point to
Three failures stack up here, and they hide behind each other. Match what you see against this list:
- The writing message stays lit for most of each 1-second cycle. The panel is spending the cycle on file handling. A recipe update is a whole-file copy plus a processing run, far more work than changing one tag.
- Values step only after each file lands. The alarm event fires, the recipe load runs, and only then do the tags update. The display waits for the file every cycle.
- An alarm fires the load every second. An alarm event announces a condition. Pointing it at a recipe load each second turns the alarm system into the data feed, and every firing is another file job.
- The bar looks frozen during the fine band. With limits of 0 and 200, a 0.1-unit step is 0.05% of full scale. Faster file transfer will never fix this; only the scale will.
The writing message marks an active write operation; there is no error code to clear. The fix is to stop running per-second data through the file path.
Time ten cycles before you change anything
Put a stopwatch on the panel and record three times across ten 1-second cycles: how long the writing indication stays lit, when the PC starts each transfer, and when the displayed value actually steps.
- Writing lit more than half of each cycle: the file path is eating the refresh budget. Move the live values off it.
- Writing clears quickly but values still lag: trace one value at three points, the PC value, the recipe entry it lands in, and the tag the bar reads. The point where the value stops moving is where the delay lives.
- Tag steps promptly but the bar barely moves: the scale is the problem. Go to the worked example below.
Change one thing at a time and re-run the ten cycles after each change.
Move the per-second values to a tag connection
Every panel in this class documents the controller and PC connections it supports. Pick the tag protocol the manual lists for your network and put the per-second tags on it. A tag read updates the one register the graph uses on each poll; no file is copied and no recipe database is reloaded. The same path clears the delays described in Fix Modbus TCP data slow to update on an HMI panel.
Keep the expectation realistic at this rate. One update per second per tag set is already a demanding cycle, and the same pressure is why an HMI trend graph will not update every half second when one link is pushed past its pace. If the graph still lags on a clean tag connection, the remaining suspects are the ones in Fix a slow HMI panel: touch, entry and screen update delays.
Keep file writes for real recipe loads
The recipe file still has a job. The panel's FTP service exists to back up and update history data and recipe data after a project download, and an update is a whole-file overwrite: the copy replaces the recipe database on the panel. That cost is fine when an operator saves a recipe or a batch changes, and wasteful at one write per second, which is 3,600 whole-file passes an hour.
Trigger the write on recipe events instead of the alarm tick: a saved recipe, a recipe loaded to the controller, a batch change. Between events the file sits still and the panel does display work.
One more rate to check: if the per-second values also write into retentive memory in a controller, compare the rate against that device's rated write cycles first; a page on whether per-second Modbus RTU writes wear slave memory works through when the rate matters and when it is harmless.
Back up the project and the recipe data before you change the write pattern, and run the first tests with the line idle, because a half-written recipe file can leave a running process with bad setpoints.
Worked example: two scales for one tag
One tag sweeps from 10 to 200 units during startup and then holds between 150.0 and 150.1 during fine work. Take the bar graph at 240 pixels long with fixed limits of 0 and 200.
- Wide bar: 240 px / 200 units = 1.2 px per unit. A 0.1-unit step moves the bar end 0.1 x 1.2 = 0.12 px. A pixel is the smallest mark the panel can draw, so the bar shows nothing, or an occasional 1-pixel jump.
- Narrow bar on the same tag: set the limits to 149 and 151. The span is 2 units, so 240 px / 2 units = 120 px per unit. The same 0.1-unit step now moves the bar 0.1 x 120 = 12 px, visible from across the panel.
As fractions of full scale, 0.1 / 200 = 0.05% and 0.1 / 2 = 5%: the narrow limits buy 100 times the resolution, and 149 to 151 leaves headroom on both sides of the 150.0 to 150.1 band. Run both bars side by side, the 0 to 200 bar for context and the 149 to 151 bar for fine work, each labeled with its range and units. If the project editor's limit fields accept tag values, test them with real low and high values on a bench panel first. A scale that follows the signal also follows a fault upward with it, so fixed narrow limits stay the dependable choice on a running line.
What to change, in order
- Back up the project and the recipe data, and schedule the first test with the line idle.
- Time ten cycles and apply the half-cycle rule from above.
- Move the per-second tags to the tag connection the panel documentation lists.
- Point the recipe file write at recipe events: operator save, recipe load, batch change.
- Add the 149 to 151 bar beside the 0 to 200 bar, labeled with range and units.
- Verify with three runs: a startup sweep on the wide bar, a fine-band run where each 0.1 step moves the narrow bar 12 px, and a real recipe save where the writing message appears once and clears.
A separate screen for shift targets, counts and notices is a slide-based job for shop-floor signage; the live tag work stays on the panel doing it now.
Recommendation: if the writing indication covers more than half of each 1-second cycle, move the per-second tags to the documented tag connection, trigger recipe file writes only on real recipe changes, and add a fixed 149 to 151 bar beside the 0 to 200 bar for the fine band. If the panel documents no tag path to the PC, shrink the file to the values that changed and set the cycle to the fastest rate ten timed writes sustained.
Questions
What if the panel documents no tag connection to the PC?
Keep the file path but shrink it. Write only the values that changed since the last pass, and set the cycle to the fastest rate ten timed writes sustained. Put the update rate on the screen so operators know how fresh each number is. Treat the file as the last choice for per-second data; if a later firmware or driver adds a documented tag connection to the PC, move the live tags onto it.
Can bar graph limits follow the signal automatically?
Only if the project editor's graph limit fields accept tag values, and only after you test them with real low and high values on a bench panel. A tracking scale also tracks a fault: a runaway value keeps the bar looking normal as it climbs, and a stuck sensor stops looking stuck because the scale keeps adjusting around it. Fixed narrow limits are the dependable choice on a running line.
How much file traffic does one write per second add up to?
A write every second is 3,600 whole-file passes an hour, about 31.5 million in a year of three-shift running. At that rate the panel spends most of each cycle copying and processing the file, and a controller receiving per-second writes into retentive memory needs its rated write cycles checked. Moving the cycle to real recipe changes drops the traffic to whatever the plant actually saves.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.