Export the controller project to its .L5K tag-definition file, import it into the HMI project, then verify each tag by name and data width before a screen object links to it. A clean import report starts the check; an online value comparison against the running controller closes it.
You do not have to retype a controller tag list into an HMI project one line at a time. The controller programming software exports the project to a tag-definition file, the .L5K text file for a Logix 5000 project, and the HMI software imports that file to create the tags with names and data types filled in. The import is the fast half of the job. The half that keeps the machine honest is verification: every tag your screens need, under the right name, at the data width the controller set, checked against live values before a screen object links to it. This article walks through the export, the import and the verification pass. It ends with the checks for the two failures to expect from this workflow: a missing tag and a mismatched data width.
What the import transfers
The import reads the export file and creates tag definitions in the HMI project: name, data type and controller address, as the export records them. Everything else in the application stays yours to build: screens, access levels, alarm display and the communication driver. The import also cannot create a value the controller project does not define as a tag. If a screen needs a signal that lives only inside the control program, expose it as a controller tag first and export again.
What you need
- The controller project that matches the machine the HMI talks to, at its current revision. An export from a sibling machine produces tags that look right and read the wrong controller.
- The controller programming software, to produce the export.
- The HMI project, with the import function for its controller driver.
- The screen-by-screen list of values the HMI must read or write, sorted into three groups: read-only statuses, operator-entered setpoints, and commands. The groups set the verification order, and commands wait until last.
Export the controller tag file
- Open the controller project in the programming software and confirm it is the project for the controller the HMI will talk to, down to the revision number.
- Run the project export to produce the .L5K file. Command names vary between software versions, so use the export command your own software manual documents for Logix 5000 projects.
- Name the file for the project and revision, and keep an unchanged copy beside the HMI project. The file is a snapshot, so regenerate the export after every controller change and import again.
- Open the file in a text editor before you import. It is plain text, the tag definitions and their types are readable in it, and a ten-second look confirms the export came from the right project.
Import the file into the HMI project
- Open the HMI project and go to its tag list.
- Run the import command for the controller driver and select the .L5K file. The exact menu path differs between HMI packages, so use the import your package's own manual documents for the controller driver, and skip any path the manual does not show.
- Read the import report before you close it, and note every omission, rename and type remark it prints.
- When the controller changes later, export again and import again. Before the second pass, read what your package documents about tags that already exist, so the update runs the way the manual describes.
How to check that the import worked
Work down this table for every tag your screens use, then run the live comparison. A clean import report starts the check; the comparison is what closes it.
| What the check finds | What it means | What to do |
|---|---|---|
| Tag present, name and data type match the controller project | The definition is usable | Link the object and run the online comparison |
| Tag absent | The export or the import left it out | Confirm the export's project and revision, then find the name in the import report |
| Type or width differs from the controller definition | The object will read or write the value wrongly | Correct the HMI tag's type before anything links to it; changing a data type without rebuilding every object is the follow-up job |
| The import reports an error | The importer rejected part of the file | Record the HMI software version, the controller software version and the exact message before you change anything |
Then put the controller online. Link one read-only status tag first, run the screen, and watch the displayed value for 30 seconds or more, long enough to cover several HMI update periods; screen and controller have to move together. Test an operator-entry tag last, under the plant's approved conditions and with the machine in a safe state, and confirm the entered value lands at the controller tag the logic expects. The write-test order in operator panel PLC link setup: test writes before motion covers that sequence.
Recommendation: Import the file whenever the screens need more than about 10 tags; below that, hand entry with the same verification usually finishes sooner and leaves no export to regenerate. Whichever route you take, hold every screen object until its tag has passed the online comparison, link read-only tags first, and leave write objects until the machine can safely accept a value.
Example: verifying a 32-bit counter tag against a 16-bit screen entry
Inputs, and where each comes from:
- Tag under check: a production counter, defined in the controller project as a DINT, which is 32 bits. Source: the controller tag definitions, which the export file prints.
- Line rate: 60 parts per minute. Source: the example line's rated speed.
- HMI entry under check: a 16-bit integer type, entered by hand when the tag list was typed. Source: the HMI project's tag table.
- Value at test time: 14,720 parts, showing the same on the controller and on the screen. Source: the online comparison.
The rule in words: a screen tag must carry the same data width as the controller tag it mirrors, and a signed integer 16 bits wide tops out at 2^15 - 1 = 32,767, while a 32-bit DINT tops out at 2^31 - 1 = 2,147,483,647.
Arithmetic: 32,767 parts / 60 parts per minute = 546 minutes = 9.1 hours. The 16-bit entry reaches its ceiling 9.1 hours into a run at that rate, and the next part rolls the display over to a negative number. The controller's 32-bit DINT is good for 2,147,483,647 / 60 = 35,791,394 minutes, about 68 years.
Result: the value comparison passes today, because both sides read 14,720; the width check fails, and the width check is the one that matters.
Decision: set the HMI tag to the controller's 32-bit type before any object links to it. The threshold to remember: any value above 32,767 on a 16-bit entry rolls over, so a width that differs from the controller fails verification no matter what the screen happens to show during the test.
When the import fails or misses tags
A missing tag traces to one of three places, in this order: the export, the import report, or a tag type the package does not carry. Confirm the export first, because a file from the wrong project or an older revision looks perfectly normal until a screen goes live. If one tag's controller address will not import at all, work through fix an HMI tag whose PLC address will not import. If a linked object shows scrambled or nonsense numbers, suspect the data type first; why an HMI panel shows nonsense numbers from a PLC BCD analog register is that failure in detail.
When a screen has to go back up before the import is resolved, hand-enter only the minimum tags, verify each one against the controller definition, and keep a written list of what you typed. Re-run the full verification once the import works, so the project ends with one checked tag set instead of a quiet mix of imported and unverified entries.
If the cell also needs a notice screen
The HMI stays the machine interface: it reads and writes the controller, and the workflow above keeps that link checked. A separate screen for shift notes, quality alerts or an andon-style status page is a different job with a different product. Our shop-floor signage is made for that second job, playing its pages from its own storage, and it stays out of the control loop.
Questions
Does the HMI need to be connected to the controller to import the tag file?
No. The import reads the exported file only, so you can build and check the tag list at a desk before the panel is mounted. The controller connection comes at the online comparison: put the controller online, run the screen, and compare live values tag by tag. Keep the export and its revision note with the HMI project so the next person can trace where the definitions came from.
Do imported tags cover structures and arrays?
Check them one member at a time. A controller tag can be a structure or an array, and the object you draw usually needs a single member or element, not the whole parent tag. Treat each member a screen will display as its own line in the verification table: find it under its imported name, confirm its type matches the controller, and compare one live value before you link anything.
What should I record with the project after the import?
Three things: which controller project and revision produced the .L5K file, the date of the import, and any tag you entered by hand. When the controller changes later, the new export and re-import follow the same trail, and the hand-entered list tells you exactly which tags the re-import will not touch.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.