Keep editable HMI text entries after a project download

5 min read · Published November 11, 2026

Text typed into a tag stored inside the panel project goes with the project, so the next download erases it. Store each name in PLC integer words instead: 10 characters take 5 words, 8 names fit in 40 words, and a manager screen edits them; the names survive every download.

When a screen's own project stores the text an operator types in, the next project download erases it. Move that text into the PLC instead: reserve a block of integer words, map one string tag per name, and edit the names from a manager screen on the panel. A 10-character name fits 5 words at 2 characters per word, so 8 operator names occupy 40 words and survive every download. Here is the layout, the build steps and the test.

What a project download clears

A value typed into a tag that lives inside the panel project ships with that project. Send a revised project to the panel and the value is replaced along with everything else in the file. That is why pre-loading a project-internal tag cannot work: whatever you type is part of the file you will overwrite at the next revision. Which panel-internal tags do hold their values across power off and a download is its own subject; see Where HMI internal tag retention survives: power off, download for that map. The fix in this article sidesteps the question: the text lives in the PLC, and the panel project only points at it.

Put the characters in PLC words

A panel string tag does not need the PLC's native string type. If the panel can map that type, use it; on older PLC families where it cannot, map a block of integer words as individual ASCII characters. The arithmetic is fixed by the word size: a 16-bit integer word holds two 8-bit ASCII characters, so words per name equals characters per name divided by 2. Ten characters take 5 words (10 ÷ 2 = 5). The panel writes the characters when someone edits a name, and the PLC keeps them, because PLC data files are not part of the panel project. Storing HMI text in retained PLC words instead of panel-internal tags is the same pattern covered in the knowledgebase guide to HMI string data in PLC registers.

Reserve words the program does not use

Open the PLC program and its data-file usage, and pick an integer file with enough free words for the whole layout. The addresses below are one example layout, not a reservation: never place names over words the logic uses, and never clear existing data to make room. Back up both the PLC program and the panel project before you write anything. Record the reserved range in the program comments or your project notes so the next person does not reallocate it.

Worked example: eight names in 40 words

Scenario: a plant tracks eight operators rotating across three shifts, and each operator picks a shift button that opens eight selection buttons, one per operator. Budget 10 characters per name. Two characters per word gives 5 words per name (10 ÷ 2 = 5), and eight names fill 40 words (8 × 5 = 40). In integer file N12, words 0 through 39:

Name Starts at Word range
User 1 N12:0 N12:0 to N12:4
User 2 N12:5 N12:5 to N12:9
User 3 N12:10 N12:10 to N12:14
User 4 N12:15 N12:15 to N12:19
User 5 N12:20 N12:20 to N12:24
User 6 N12:25 N12:25 to N12:29
User 7 N12:30 N12:30 to N12:34
User 8 N12:35 N12:35 to N12:39

Longer names change the spacing, so settle the length first. A 12-character name needs 6 words (12 ÷ 2 = 6), and the same eight names then take 48 words (8 × 6 = 48) with starts 6 words apart. Set the spacing once, before you create tags, and never let two names' ranges overlap.

Build the manager screen

  1. Confirm the reserved words are free in the PLC program, and record the range.
  2. Create one string tag per name in the HMI software. Point the first at N12:0, the second at N12:5, and so on down the table. Mapping a string tag to a block of registers is covered in more depth in Display PLC string data on an HMI with N registers.
  3. Set each tag's string length to 10 characters to match the 5-word allocation. Match the length to the panel's declared string limit for that tag: your panel software's manual states the maximum length in its string type definition, and that limit should fit inside the 5 words you reserved.
  4. Add a text-entry object for each tag on a dedicated manager screen, and protect that screen with whatever access control the project already uses for maintenance screens.
  5. On the operator screen, display each string over its selection button, and keep the entry objects off it, so choosing a shift never overwrites a name. Pointing entries at PLC table words this way is the same habit as saving each HMI numeric entry to an indexed PLC table.
  6. Transfer the project to the panel.

Check that the names survive

Run a controlled test before the screen goes back to routine use:

  • Enter a test name in User 1's field at the manager screen. Read N12:0 to N12:4 in the PLC and check the characters landed there and only there; User 2's words at N12:5 must be untouched.
  • If every second word comes back empty, the panel packs one character per word. Widen the allocation to 10 words per name, so the same eight names take 80 words (8 × 10 = 80), re-map the tags, and retest.
  • Send a revised project to the panel and reopen the manager screen. The test name must still be there, read back from N12:0. Rotate to the operator screen and check the name shows over its button.
  • If the characters come back shifted or garbled, read the raw words, find where the characters actually sit, and correct the tag's start word or its character order before entering real names.
  • If the names must also survive a PLC power loss, configure that file's retention in the PLC program and test it separately; the download test above does not cover a power cycle.

When the names do not change at the panel

If the names are fixed until the next planned project edit, a static text object shows them and you edit the project on your own schedule; no PLC words needed. If operators are chosen from a controlled list, a lookup object that the PLC selects by number covers it with no free-text entry at all. PLC-backed storage is the right choice when someone must type a new name at the panel and it must still be there after the next download.

Recommendation: Reserve 40 free words in an unused integer file, allocate 5 words per 10-character name at fixed spacing, map one string tag per name, and keep the text-entry objects on a manager screen. Build it this way whenever an operator types a name at the panel that has to outlive every project download; use static text only when the names change only when you edit the project.

Questions

How many PLC words do I need for names longer than 10 characters?

Divide the character count by 2 and round up. A 12-character name takes 6 words, and an 11-character name also takes 6 (11 divided by 2 is 5.5, rounded up). Multiply by the number of names: 8 names at 6 words each is 48 words. Keep the same spacing between every name so the ranges never overlap.

Will the names also survive a PLC power failure?

Only if the PLC keeps that data file retentive through a power loss, which is a setting in the PLC program, not in the panel project. Test it separately from the download test: enter a name, power the PLC down and up, and read the words back. If startup logic initializes the file, that logic will clear the names too.

Can I type the names into the panel project before the download instead?

No. A value typed into a tag stored inside the project is part of the project file, so the next download replaces it along with everything else. Editable text has to sit in data the download never touches, which is the PLC data file. The project only points at it through the string tag.

Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.

Keep reading

Build your signAsk for a quote