With a blank CF card in the primary slot, an HMI panel looks for the project on the card first and shows no user program instead of loading internal memory. Pulling the card is a stopgap. Leave the primary slot empty and log to a second card, or keep the project on the card; a year of 1-minute logs takes about 42 MB.
An HMI panel that boots to NO USER PROGRAM PRESENT with a blank CF card seated has not lost its project. The panel reads the primary card slot, CF1, first at power-up, finds no project on the card, and stops there instead of loading internal memory. Pulling the card and cycling power brings the screen back, and that is all it does. The lasting fix is one of two layouts: leave CF1 empty and log to the second slot, CF2, or make the card itself carry the project. The checks below tell the cases apart, both layouts come with their steps, and the worked example sizes the logging card for a year of furnace records.
Why the panel stops at a blank card
The panel treats CF1 as its first program source so that a project can travel to a plant on a card. A card in the slot means load from the card. A blank card produces NO USER PROGRAM PRESENT, and the panel never falls back to the project sitting in internal memory. Neither the manual nor the programming software offers a setting that changes this, because the card is read at power-up, before any project loads.
The same design explains why a card saves a shift when a screen breaks: swap the panel, move the card, and the replacement boots the project with no laptop. It is also what bites you the moment the card is blank. Most plants run more than one panel like this, and shop-floor screens and andon-style boards collects the questions that come up on all of them.
What each symptom points to
- NO USER PROGRAM PRESENT with the card seated, a working screen with the card out: boot order. CF1 is read first and the card is blank.
- The error after every power cycle, including overnight dips: the same boot order, with nobody at the panel to pull the card.
- The panel runs with the card seated: the card already holds a project. Confirm it is the current version, because a stale card loads ahead of a newer internal project at every power-up.
- The error with the card out too: internal memory holds no project. Reload from the programming software over the programming port. That is a project problem and the card was never the fault.
Confirm it in two power cycles
Power-cycle the panel once with the card out and once with the card in.
| Card out | Card in | What it means | Next step |
|---|---|---|---|
| Runs | NO USER PROGRAM PRESENT | Boot order, blank card | Pick a layout below |
| Runs | Runs | The card holds a project | Check the card's version is current |
| Same error | Same error | Internal memory is empty | Reload the project; not a card fault |
Pulling the card is a stopgap and fails three ways as a permanent answer. Trend logging to the card cannot run while the card sits in a drawer. Every power cycle needs a person at the panel, and a dip at night drops the screen again with nobody there. A card pulled while the panel writes a log row can come back with a broken file or an unreadable volume. Power the panel down before any card moves; that is the one handling rule for the rest of this page.
The two lasting fixes
Fix 1: leave CF1 empty, log to CF2
Read the memory description in the panel's manual: logging to a second card slot, CF2, is a documented option on panels that have it, so confirm your model before ordering hardware. With the logging card in CF2 and CF1 empty, the panel boots from internal memory on every power cycle and the card stays seated for logging.
- Confirm internal memory holds the current project: power-cycle with all cards out and watch the runtime load.
- Power down, leave CF1 empty, seat the logging card in CF2.
- Check that the trend graph's logging is enabled at the interval the record needs and that the log target is the second card, then install the project.
- Enable the web server if the files will be read over the network.
Pick the interval from what the record is for. Logging switch states every 10 minutes is enough for on-off history, while a furnace zone record needs each minute. Push an interval down far enough and the trend itself stops keeping up, the same limit that stops a trend graph updating every half second.
Fix 2: make the card carry the project
Write the project to the CF1 card from the programming software; the manual documents the transfer command for your software version. The panel then boots from the card and the card becomes the master copy. The advantage shows on a swap: a damaged panel gets replaced, the card moves across, and the line runs without a laptop. The cost is discipline. Every project change must be written to the card as well, because the stale card overrides the newer internal project at every power-up. Keep a labeled spare card at the same version and update panel, card and spare together after each change. The same trick is how a program update travels to a site on a flash card.
A card in CF1 needs a project on it. A blank card, or one holding only log files, produces the error either way.
Example: sizing a year of 1-minute logs on a 2 GB card
The inputs, with where each comes from:
- Interval: 1 minute. The furnace record needs each zone's value every minute, the interval this case calls for.
- Rows per day: 1,440, from 24 h × 60 min, one row per interval.
- Bytes per row: 80. This is the input you measure, not assume: the file writes date, time and each zone value as text on one line, and the example uses a row with eight zone values. After the first day, read one row's size in your own file and recompute.
- Card: 2 GB, the size some panel enclosures ship pre-installed for logging; call it 2,000 MB usable.
- Keep window: 365 days, the archive period this example plans for.
The rule in words: daily file size = rows per day × bytes per row, and years on the card = card capacity ÷ (daily size × 365).
The arithmetic:
- 1,440 rows × 80 bytes = 115,200 bytes per day, about 0.12 MB.
- 115,200 bytes × 365 days = 42,048,000 bytes, about 42 MB per year.
- 2,000 MB ÷ 42 MB ≈ 48 years of one-minute records on one 2 GB card.
The result: a full year of logs takes about 42 MB, roughly 2 percent of the card. At a 1-minute interval the card never forces an archive, so the review schedule sets the pull date, not capacity. The interval is what moves the answer. The same 80-byte row at a 1-second interval gives 86,400 × 80 = 6,912,000 bytes, about 6.9 MB per day, and 2,000 ÷ 6.9 ≈ 290 days, so the card fills inside ten months. The threshold to carry is 2,000 ÷ 365 ≈ 5.5 MB per day, the rate that fills a 2 GB card in one year. Under 5.5 MB per day, copy files off whenever the engineers want them. Above it, put an archive date on the calendar.
Read the files without pulling the card
The trend graph's logging feature writes one text file per day, each row carrying the date, the time and every logged value, and the rows import straight into a spreadsheet. Enable the panel's web server, and anyone on the plant network can open those daily files from a desktop with the card still seated. That removes the pull-the-card habit that creates the boot error in the first place. The files carry process data, so keep the panel on the plant network and off the internet. If the panel goes down mid-run, what the card saw is what it kept, and whether an HMI panel can store PLC data for later retrieval covers the storage question behind that.
Three behaviors to plan around
- A project install while the trend is graphing restarts the graph. The picture history resets and the daily text files remain the record, so schedule installs between runs anyway.
- Screen captures saved under a repeating name overwrite the older file. The working pattern is a capture 2 minutes before each shift ends and one at 11 pm for the day's numbers, named by weekday, which keeps a rolling 7-day set. Treat captures as the shift board and the text logs as the archive.
- Logging is write-heavy work for a card. Panel storage documentation warns that extensive data logging and other write-heavy use is what wears flash, so keep the card seated, read files over the network, and pull cards only at power-off.
Prove the fix held
- Power-cycle the panel with the logging card seated. The runtime must load and NO USER PROGRAM PRESENT must stay gone.
- Cycle power twice more, once by pulling the plug, and get the same result each time.
- Wait through several logging intervals, then open the day's file: rows at the set interval, with the date, time and values showing live on the screen.
- Look for a new file after midnight.
- From a desktop, open a file through the web server and compare one row against the live value on the panel.
- On the card-carries-project branch, write every project change to the card the day you make it and keep the labeled spare at the same version.
Which fix to choose
Recommendation: if the panel has a second card slot, leave CF1 empty, log to CF2, and read the files over the web server; the panel boots from internal memory on every power cycle and the logging card never leaves the machine. Put the project on the CF1 card only when you need panel swaps with no laptop, and then write every project change to the card the day you make it.
Questions
Should the logging card be FAT16 or FAT32?
CompactFlash cards present themselves to a PC and to the panel as FAT volumes, which is why any card reader opens the log files. Cards of 2 GB and below usually ship formatted FAT16 and larger cards FAT32. Format a fresh card in a PC reader before it goes in, let the panel's software create its own folders, and keep a formatted spare on the shelf so a swap never waits on a format.
Do newer panels still boot from the card first?
Not all of them. Later designs treat the card slot as storage for logs and recipes and keep the boot project in internal memory, with the slot often an SD card behind a cover on the back of the unit. The memory description in each manual states what the slot is for and what the panel tries first, so read it before you plan where the project and the logs live.
Will a bigger card make the error go away?
No. The panel stops because the card in CF1 has no project, and a 2 GB blank card and a 32 GB blank card produce the same screen. Size matters only for the log archive: a year of 1-minute text logs takes about 42 MB, so capacity is rarely the limit. Spend the attention on which slot holds what.
Planning information, not legal or engineering advice. Rules differ by place: check codes and permits with your local authority and your licensed trades.