HMI Shows #### or "Communication Lost": Finding the Broken Link

Every value on the screen turned into ####. Is it the network, the PLC, or the HMI project? A short sequence separates the three.

The symptom

The operator panel shows #### (or *, or red crosses) in every value field, or a banner such as Connection to PLC lost. Sometimes only one screen or a few tags are affected.

All values or only some?

Answer this first, because it halves the search.

If every tag on every screen is affected, the HMI has no connection to the PLC, and you should look at the network and the connection settings. If only some tags are affected, the connection works but those tags are invalid: the address is wrong, the variable was deleted, or the value is out of format.

When all values are lost

  • Physical link: check the link LED on the HMI port and on the switch. Reseat the cable, or replace it.
  • Reachability: ping the PLC's IP address from the HMI's system menu or from a laptop, and confirm both devices are in the same subnet.
  • Connection settings: in the HMI project, check the PLC IP address, the slot/rack (Siemens S7: rack 0, slot 1 for S7-1500; check for older CPUs), the driver type and the station name. A replacement CPU with a new IP address breaks every HMI that pointed to the old one.
  • Access on the PLC side: on an S7-1200/1500, some older HMI drivers need PUT/GET communication to be allowed, and the protection level must permit HMI access. On a Rockwell system, check the controller path in the HMI shortcut.
  • Connection limits: each PLC accepts a limited number of HMI/SCADA connections. One extra laptop or historian can push it over the limit, and then the most recent connection is the one that fails.
  • When some values are lost

    The usual causes are these:

  • The tag points to a variable that was renamed or deleted in the PLC. After a PLC download, recompile the HMI project and download it too.
  • The tag's data type does not match the variable, for example when the HMI expects an INT and the PLC now uses a REAL.
  • On optimized data blocks, absolute addressing from an older HMI project is no longer valid. Switch those tags to symbolic access.
  • The display format is too short. A value of 10000 in a 4-digit field shows ####, which is a formatting problem and has nothing to do with communication.
  • Intermittent loss

    If the banner comes and goes, check for network load (a broadcast storm or a looping cable), a duplicate IP address, and the HMI update rate. Polling hundreds of tags at 100 ms when 1 s would do loads both the PLC and the network.

    Prevent the next one

    Put a clear communication-status indicator on every screen. Keep the PLC and HMI projects versioned together, so that a download of one prompts someone to check the other. The HMI programming guide covers screen design in more depth.

    Frequently asked questions

    Why does my HMI show ####?

    Either the HMI lost connection to the PLC (all values affected) or specific tags are invalid or too long for their display field (some values affected).

    Why did the HMI stop working after a PLC download?

    Renamed or deleted variables, changed data types or a changed PLC IP address break HMI tags. Recompile and download the HMI project to match.