HMI keyboard CAPS lock fails: check the keypad screen assignment

5 min read · Published November 14, 2026

A CAPS lock button that fails in simulation and on the panel almost never needs a new key code. The keyboard objects sit on a normal screen, and keypads only work from the keypad screen section, called by the text entry object. Move the objects, set the call, and append CR and LF in the PLC for any message that needs a terminator.

If the CAPS lock button on an HMI text entry keyboard does nothing in simulation and does exactly the same on the panel, the key code is almost never the fault. The button's property can already read Control Key Code: 'CAPS LOCK' and the key still sits dead. The usual cause is where the keyboard was built: it was drawn on a normal screen. Keypads cannot be defined as a normal screen type. They have to be put on the Keypad screen section, and the Text Entry object has to call that keypad from there.

Move the keyboard objects into the keypad section, point the call at them, and CAPS lock starts working with no change to its properties. This page lists the symptoms, the checks to make first, the cut-and-paste route into the keypad section, and the separate job of ending a message with CR and LF, which the PLC appends.

Symptoms and what each one points to

  • CAPS lock dead in simulation and on the panel. Both contexts run the same project, so this points at the project, not at the panel hardware. Start with the screen assignment.
  • The keyboard objects sit on an ordinary screen. A keypad defined as a normal screen type is the classic cause. The keyboard draws, the buttons press, and no entry field ever takes the text. The fix is the move described below.
  • The CAPS lock property already reads Control Key Code: 'CAPS LOCK'. The code is correct, so leave that property alone and look at placement and the keypad call.
  • The user object library will not open while you edit the keypad section. That restriction is why ready-made QWERTY keyboards from the User Object Library look unusable. Stage them on a normal screen first, then cut and paste.
  • Text reaches the PLC but the receiving device never accepts a line. The message has no CR or LF terminator. Keypad entries of those characters are not interpreted properly, so the PLC appends them.

Check the three assignments first

  1. Read the control key setting. Open the CAPS lock button's properties and read the Control Key Code field. It should name CAPS LOCK. If it already does, the code is not the fault and reselecting it changes nothing. Move to check 2.
  2. Read the screen type the keyboard lives on. Find the keyboard objects in the screen selector. If they sit on an ordinary process screen, that is the fault: keypads cannot be defined as a normal screen type, they belong on the Keypad screen section.
  3. Read the call from the Text Entry object. Open the Text Entry object and find where it calls its keypad. In the arrangement that works, the keypad is called in the lower right corner of the Text Entry object and is defined in the keypad screen section. If the call points at nothing, a perfectly built keyboard never opens.

Move the keyboard into the keypad screen section

Save a copy of the project before cutting anything; a misplaced cut is easy to restore from a known-good file.

  1. Place the QWERTY keyboard from the User Object Library on a normal screen. The library cannot be imported while the keypad section is open for editing, so the normal screen is the staging area.
  2. Select every object that makes up the keyboard and cut them.
  3. On the right hand side of the screen selector window there is an icon that looks like a keypad. Press it to open the keypad screen selection window.
  4. Paste the keyboard objects into the Keypad screen section.
  5. Open the Text Entry object and set its keypad call to this keypad. In the working arrangement the call sits in the lower right corner of the Text Entry object.
  6. Run the simulation and test three things: the keyboard opens from the entry field, CAPS lock switches the letters between upper and lower case, and ordinary characters still enter in order.
  7. Send the project to the panel and repeat the same three tests there.

One safety note: if the panel is attached to a running machine, load the corrected project at a planned stop and confirm the entry object writes to the intended register before the line runs again.

The keypad section serves every entry object in the project, which is why the keyboard is built once there. The same arrangement is what you need when you link a user-defined keypad to an HMI numeric entry object; a numeric keypad that misbehaves on an ordinary screen gets the same move.

Example: a 10-character work-order line and its terminator

Scenario: a counting station sends text lines to a line computer that treats a message as complete only when it ends with CR followed by LF. The operator, typing with a working CAPS lock, enters SHIFT2 118. Count the characters: S, H, I, F, T and 2 are 6 characters, the space is 1, and 118 is 3, so the entry is 10 characters long.

The keypad delivers exactly those 10 characters and no terminator. The PLC appends them: CR is ASCII 13 and LF is ASCII 10, so the line computer receives 10 + 1 + 1 = 12 characters, the last two being 13 then 10. Leave the terminator to a keypad key and the line stops at 10 characters with nothing after it, so the line computer never sees a complete command. Keep the two jobs apart: the keypad supplies the payload, the PLC supplies the terminator.

When everything is assigned and CAPS lock still fails

Then stop editing. Confirm once more that the objects sit on the Keypad screen section, the Text Entry object calls that keypad, and the control key setting reads CAPS LOCK, then retest in simulation and on the panel. A key that stays dead with all three correct is a question for the HMI vendor's support, with the project file attached and a note of what you typed and what appeared in each context.

Wrong screen type explains other dead-looking objects too. The same assignment logic sits behind an HMI popup that shows a frame but no text, so when a drawn object does nothing everywhere, check which screen type it is on before touching its properties.

Recommendation

Recommendation: Check the two assignments before you change any key property. If CAPS lock fails in simulation and on the panel, move the keyboard objects into the Keypad screen section by the cut-and-paste route, set the Text Entry object's keypad call to that keypad, and retest in both contexts. Leave the control key setting untouched when it already reads Control Key Code: 'CAPS LOCK', and append CR (ASCII 13) and LF (ASCII 10) in the PLC for every message that needs a terminator.

Questions

What does a user-defined keypad change?

It changes the layout or size of the keypad that opens for a password field, a numeric entry object, or a text entry object. The help for the keypad editor names those three keypad types. The letter keys, the CAPS lock control and the keypad call you already tested stay the same objects; only their arrangement on the keypad screen changes.

Which characters end an ASCII text message?

Carriage return is ASCII 13 (0x0D) and line feed is ASCII 10 (0x0A). Devices that take text commands usually expect CR alone or CR followed by LF, and the receiving device's manual names the one it wants. Type the readable text on the keypad and let the PLC add the terminator characters to the string before it goes out.

Does the keyboard need a rebuild after the move?

No. Cut and paste carries the objects into the keypad screen section, so the keyboard is built once. Realign the keys on the keypad screen, set the call from the Text Entry object, and retest in simulation and on the panel. Nothing inside the keyboard, including the CAPS lock control key setting, needs to change for the move itself.

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