Configuring Siemens OP270 Screen Change via PLC Job 51

David Krause11 min read
HMI ProgrammingSiemensTutorial / How-to
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

Overview

The Siemens SIMATIC OP270 is a 6-inch STN operator panel from the OP170/OP270 generation that runs ProTool V6.x (and the later ProTool/Pro RT) configuration software. The OP270 ships with function keys, numeric input keys, and a touch-sensitive membrane (depending on variant), and was designed primarily for S7-200/S7-300/S7-400 communication over MPI or PROFIBUS-DP. With the appropriate serial adapter and protocol selection, the OP270 can also exchange data with legacy S5 controllers such as the S5-928B.

A common requirement on the OP270 is to force the panel to display a specific screen from the PLC program without operator action. This is not done through the function-key events of the screen object itself; it is implemented through a PLC job mailbox, and the specific job that changes the displayed screen is PLC job 51.

This article documents:

  • The structure of the ProTool area pointer and job mailbox.
  • The exact payload of PLC job 51.
  • How to configure the area pointer in ProTool.
  • How to drive the job mailbox from an S5 CPU 928B using STEP 5 ladder/FBD/STL.
  • How to verify the screen change in the ProTool runtime simulator.
Note on the term "OP270": this article covers the Siemens SIMATIC OP270 HMI. It is unrelated to the OP270 dual operational amplifier from Analog Devices (5 nV/√Hz low-noise op-amp) - the two products share a part number but not a function.

Prerequisites

Item Requirement
Operator panel Siemens SIMATIC OP270 (6-inch, ProTool/Pro RT runtime)
Configuration software ProTool V6.0 SP2 or later (ProTool/Pro CS recommended)
PLC S5-928B (or 928, 935, 945, 948) with STEP 5 ≥ V6.6
Cable / protocol AS511 (TTY/RS-232 converter) for S5 side, OP270 serial interface set to AS511 emulation, or MPI/PROFIBUS gateway
Interface Siemens PC adapter (PC-TTY or PC-MPI) or equivalent RS-232 to TTY converter
Tags / data Two free flag or data words in the S5 (e.g., FW10, FW12) used as the job mailbox

Before you begin, confirm the ProTool project on the OP270 compiles cleanly and that you can already download the project and go online with the S5-928B through the OP270's serial port. The screen-change function is purely a configuration overlay on top of an already-working link.

Understanding ProTool Area Pointers

ProTool does not let you bind HMI variables 1:1 to every PLC interaction. Instead, it exchanges blocks of contiguous PLC memory called area pointers. Each area pointer has a fixed meaning and a configurable start address in the PLC:

Area pointer Direction Function
User data area Bidirectional Area of bits/words used as the tag database
Job mailbox PLC → HMI Triggers control jobs on the panel (e.g., screen change, set date/time)
Event messages PLC → HMI Bit-triggered alarm buffer
Acknowledgement HMI → PLC Bit-set when operator acknowledges an alarm
Cursor / date / time Bidirectional Synchronises the cursor index and clock
Recipe / data records Bidirectional Used by ProTool/Pro recipes

The job mailbox is the only one we need for screen change. It is a small block of words - typically 4 to 8 words, with word 1 being the job number and the rest being parameters that depend on the job. The OP270 polls the job mailbox each cycle and, when the job number changes, executes the requested job.

PLC Job 51 - Screen Selection

PLC job 51 is the dedicated job that selects the active screen on the OP270. The job is written by the PLC, executed by the panel, and then the job number is reset to 0 by the panel so the job is only fired once.

The job mailbox layout for job 51 is:

Word offset Name Value for job 51
+0 Job number W#16#0033 (= 51 decimal)
+1 Screen number (high) Screen number, high word
+2 Screen number (low) Screen number, low word
+3 Reserved / parameter 0
+4 ... +7 Reserved 0

The full 32-bit screen number is the ProTool-internal screen index. The most common way to identify it is to open the screen in ProTool and read it from the Screen Number field in the properties dialog. By default, ProTool numbers screens in the order they are created, starting at 1, but the assignment can be edited.

Important: the screen number is not the screen name. Job 51 must receive the numeric ProTool ID; sending a string or a function-key event will be ignored.

Configuring the Area Pointer in ProTool

  1. Open your ProTool project in ProTool/Pro CS.
  2. In the project tree, right-click Area Pointers and select New.
  3. Choose Job Mailbox from the list.
  4. Set the Start address to the start of the mailbox in the S5, for example FW 10. With a width of 4 words the mailbox occupies FW 10 - FW 17.
  5. Set the Length to 4 words (8 bytes). This is the minimum to support job 51; if you also plan to use date/time synchronisation (job 40/41) increase to 8 words.
  6. Confirm with OK. ProTool shows the new area pointer in red on the area-pointer overview; it turns black once the configuration is consistent.
  7. Compile and download the project to the OP270.

From the OP270's point of view, the panel will now poll the configured S5 mailbox on every cycle. The PLC owns the mailbox - the panel only reads it.

Driving the Mailbox from STEP 5 (S5-928B)

Below is a compact STEP 5 STL (statement list) example for the S5-928B that monitors the flag bit F10.0. When F10.0 = 0 the panel shows Screen 1 (AUTO); when F10.0 = 1 the panel shows Screen 2 (MANUAL). The example assumes the job mailbox starts at FW10 and that screen numbers 1 and 2 correspond to the two screens in the ProTool project.

  SEGMENT 1  -- build the screen-number parameter
  L   F 10.0            // screen select bit
  L   KF+0
  !=F  
  JC  M002              // F10.0 = 0 → AUTO_SCREEN
  // MANUAL_SCREEN branch
  L   KH 0002           // screen 2
  T   FW 12             // +2 (low word of screen number)
  L   KH 0000           // high word
  T   FW 14             // +1
  JU  M003
M002  // AUTO_SCREEN branch
  L   KH 0001           // screen 1
  T   FW 12
  L   KH 0000
  T   FW 14
M003  NOP 0

  SEGMENT 2  -- write job number 51 (W#16#0033) into +0
  L   KH 0033           // 51 decimal = 0x33
  T   FW 10             // +0 job number
  L   KB 1              // one-shot trigger
  T   FB 10             // optional: pulse flag for diagnostics

  SEGMENT 3  -- optional: clear the mailbox back to 0 after the panel
              -- has consumed the job (ProTool clears the job word
              -- to 0 itself; this segment is only for PLC-side
              -- housekeeping if you want to log or suppress re-fire)
  L   FW 10
  L   KH 0000
  ==F
  JC  M099
  // wait until the panel clears the job word
  L   FW 10
  L   KH 0000
  <>F
  JC  M099
  L   KH 0000
  T   FW 10
  T   FW 12
  T   FW 14
M099  NOP 0

Three things to check after loading this block:

  • The job word (FW10) must oscillate between KH 0033 and KH 0000 on the S5 programming device's status display.
  • The screen-number words (FW12, FW14) must hold the value of the active screen at the moment the job is written.
  • The flag bit F10.0 should toggle on the S5 PG to confirm the conditional logic.

Detecting a screen change from the PLC

If the application also needs the PLC to know which screen is currently shown (for example, to suppress certain alarms while a manual screen is open), bind the screen number area pointer in ProTool. The panel writes the current screen number into a second S5 area on every screen change, so the PLC can read it back.

Step-by-Step Configuration Checklist

  1. Open the ProTool project and add the Job Mailbox area pointer at a free word area (e.g., FW10, 4 words).
  2. Confirm the start address in ProTool matches the STEP 5 program.
  3. Make sure the screens in question are assigned explicit, stable screen numbers (open each screen, properties → Screen Number).
  4. Compile the ProTool project and resolve any warnings about the area pointer.
  5. Transfer the project to the OP270 via serial or PC-TTY adapter.
  6. Edit the STEP 5 program: build the screen number from the PLC logic, write job number 51 to the mailbox.
  7. Download the STEP 5 program to the S5-928B (PLC must be in STOP for the initial load, then RUN).
  8. Observe the OP270 - the active screen should follow the PLC flag.
  9. Run the ProTool runtime simulator in parallel to validate the job mailbox payload off-line.

Using the ProTool Runtime Simulator

ProTool ships a runtime simulator (ProTool/Pro RT) that runs the compiled project on a PC. The simulator can be configured to read the job mailbox from a connected PLC or, with a small extension, from a simulated memory block. This is useful to validate job 51 without disturbing the live system:

  1. From ProTool CS, choose Tools → Start Runtime.
  2. Select Simulation with PLC tags if you want the simulator to read from a tagged file (CSV) that contains the mailbox content.
  3. Toggle the simulated flag, observe the screen change on the simulator screen.
  4. Repeat for every screen you want to verify.

Verification

Check Expected result
OP270 displays the configured screen on power-up Initial screen, then jumps to the screen selected by the first valid job 51
Job word returns to 0 after the job OP270 clears FW10 to 0 within one cycle
Flipping F10.0 swaps screens Panel switches between the two configured screens without operator action
Alarm/event messages still work Event-message area pointer (if configured) is unaffected
Date/time on OP270 is correct Optional PLC job 40/41 can also be issued in the same mailbox; expand the area to 8 words

Troubleshooting Matrix

  • Wrong job number (decimal 51 must be sent as W#16#0033)
  • Symptom Likely cause Remedy
    Screen never changes Check FW10 on the S5 PG; confirm the hex value
    Screen changes once, never again OP270 did not clear the job word; PLC keeps re-triggering it on the same value Add a change-of-state test before re-issuing the job (only trigger when F10.0 actually toggles)
    Screen number out of range Screen was renamed or renumbered in ProTool after the area pointer was set Re-check the screen number in ProTool, update FW12/FW14 accordingly
    Random screens appear Area pointer overlaps with tag data Pick a non-overlapping word range, e.g., FW100
    OP270 reports "Communication error" AS511 / serial link failed Check baud rate, cable, handshake; verify the S5-928B port settings
    Compiler warning on the area pointer Pointer width too small for the chosen job Increase the area pointer length to 4 or 8 words
    Screen flickers between two screens PLC writes the job faster than the panel can clear it Wait for FW10 == 0 before writing the next job

    Reference: Area Pointer Width and Job Number Reference

    Job # (hex) Job # (dec) Function
    0x0000 0 No job / idle
    0x0011 17 Set date
    0x0012 18 Set time
    0x0028 40 Set date + time
    0x0029 41 Read date + time
    0x0032 50 Acknowledge error (alarm)
    0x0033 51 Select screen
    0x0038 56 Update tag
    0x0039 57 Update recipe

    The list above is a subset of the most-used jobs. For the full list, see the Siemens support entry 24229825 (formerly accessible at support.automation.siemens.com/WW/view/en/24229825) and the ProTool/Pro online help under Communication → Area Pointers → Job Mailbox.

    Notes on S5-928B Specifics

    The S5-928B belongs to the higher-end S5-135U/155U CPU family. Two practical points when wiring it to an OP270:

    • The S5-928B communicates natively over the AS511 serial protocol (TTY, 20 mA current loop) on its programming port. The OP270 in this configuration must run the AS511 protocol variant in its connection settings.
    • If the OP270 is wired to the S5-928B over PROFIBUS-DP using a DP/AS-i or external gateway, the panel sees the S5 as a PROFIBUS-DP slave and the area-pointer addresses must be re-mapped to PROFIBUS I/O. Job 51 still works the same way; only the transport changes.

    For STEP 5 programming, the KH (constant hex) and KF (constant fixed-point) formats are the most efficient way to load the job number and the screen number. Avoid KY for jobs - the byte order would swap and ProTool would not interpret the word correctly.

    FAQ

    Can the OP270 change screen automatically without operator input?

    Yes. Configure a Job Mailbox area pointer in ProTool (e.g. starting at FW10) and have the PLC write job number W#16#0033 (decimal 51) with the target screen number in the next words. The OP270 executes the job, displays the screen, and clears the job word to 0.

    What is the exact screen-number value for job 51?

    It is the ProTool-internal screen number, found in the screen properties dialog. Load the high word in FW14 and the low word in FW12 (little-endian within the mailbox). For most projects screen numbers are 1, 2, 3, ... but they can be edited freely.

    Do I need a function-key event to change screens?

    No. Function-key events are operator-driven; job 51 is PLC-driven and is the correct mechanism for automatic screen change based on a flag or process condition.

    Can I test the screen change without the S5-928B running?

    Yes. Use the ProTool runtime simulator (ProTool/Pro RT) on a PC and feed the simulated job mailbox with a tag file or DDE server. The simulator will exercise the screen logic without touching the real PLC.

    Why does the screen change only once and then stop?

    Most likely the PLC re-issues job 51 faster than the panel can clear the job word, so the panel sees a steady state instead of a change. Add a "job completed" check (wait for FW10 = 0) before re-writing, or only trigger the job on a real change of the controlling flag.

    Back to blog