Problem Description
In Siemens WinCC V7.3 runtime, the WinCC Alarm Control object can render alarm messages with correct column widths. Date, time, state, and text columns display with the appropriate number of characters, the row layout is readable, and the user can sort, filter, and acknowledge events normally. The same Alarm Control, however, produces a truncated or compressed printout when the integrated print button (or a custom print trigger) is activated.
Typical symptoms reported in the field:
- Date column shows
##/##/####or is cut to the right edge of the cell. - Time column displays only
HH:MMinstead ofHH:MM:SSorHH:MM:SS.ms. - State/Priority column is squeezed, so values such as
Incoming,Outgoing, orAcknowledgedoverflow. - The first visible column becomes very narrow in the exported
.xpsdocument, even though the same column is wide in the on-screen Alarm Control. - Editing the report @Alarm Control – Table and adding columns to the WinCC Control Runtime Printprovider.Table object does not change the output.
The issue is reproducible on every printout until the column properties are explicitly adjusted in the correct configuration location.
Affected Versions and Components
The behavior is documented against the following configuration baseline:
| Component | Value | Notes |
|---|---|---|
| WinCC Version | V7.3 (incl. Update 1–14) | Issue confirmed on V7.3 baseline; similar behavior on V7.2 and V7.4 when Printprovider is used |
| WinCC Alarm Control | ActiveX / .NET control embedded in a Graphics Designer picture | Used with the integrated Print toolbar button |
| Print provider | WinCC Control Runtime Printprovider.Table | Drives the print layout of the table control |
| Report template | @Alarm Control – Table | Layout file that contains the printprovider object |
| Output | Local printer, .xps, .pdf (via virtual printer) | All output channels show the same compression |
| Archive source | Alarm Logging Runtime, short-term and long-term archive | Affects both live and historical printouts |
Root Cause Analysis
The WinCC Alarm Control uses a layered configuration model. The visible column widths in runtime are determined by the control's own message block properties, while the printout column widths are determined by the Printprovider that receives the data. The two layers do not always inherit from each other.
Specifically:
- When the option Apply project settings in Properties → Message blocks is enabled (default), the control applies the project-wide column definitions stored in the WinCC Alarm Editor. These settings govern only the on-screen display.
- The print path (Printprovider.Table) captures the column metadata at print time. If the project settings are still active, the print provider receives the default project widths, not any runtime override applied via the Alarm Control's Columns dialog.
- Unchecking Apply project settings in the Alarm Control changes the runtime column widths but does not propagate these new widths to the Printprovider, because the print provider reads the column definition from its own configuration source at the moment the print job is built.
- The report @Alarm Control – Table contains a Printprovider.Table object. Adding columns to this object only changes which columns are printed, not the width of each column. The width is governed by properties of each column within the Printprovider object.
Therefore, the printout is "stuck" on the project-level column widths even after the Alarm Control runtime is reconfigured.
Runtime vs. Print: How Column Widths Are Resolved
The following decision flow shows how WinCC resolves the width of each column at runtime and at print time:
The two configuration trees share the Alarm Editor only when the Apply project settings flag is on. Once it is unchecked, the runtime view diverges from the print view, and each side must be configured independently.
Solution 1: Configure Message Block Column Widths
Use this procedure to set a baseline that applies to both runtime and print when project settings are the source of truth.
- Open WinCC Explorer and select the Alarm Logging editor.
- For each message block you need (Date, Time, State, Priority, Number, Text, etc.), open the column properties.
- Set the Length property in characters. Recommended starting values:
Message Block Recommended Length Notes Date 10 For DD.MM.YYYYformatTime 8 For HH:MM:SS; use 12 for millisecondsState 12 Fits Incoming/Outgoing/AcknowledgedPriority 4 Numeric 0–16 Number 10 Up to 10-digit alarm numbers Text 40–60 Truncate longer messages or use ellipsis - Save and close the Alarm Logging editor.
- Open the picture that contains the WinCC Alarm Control in Graphics Designer.
- Select the Alarm Control and open Properties → Message blocks.
- Leave Apply project settings checked so the widths propagate to Printprovider.Table.
Solution 2: Override Column Widths in the Alarm Control
Use this procedure when you need a different layout at runtime than what is configured globally in the project (for example, a wider text column on the operator screen).
- Open the picture with the WinCC Alarm Control in Graphics Designer.
- Select the control and open Properties → Message blocks.
- Uncheck Apply project settings. The Length and other column-specific fields become editable.
- Adjust the Length of the Date, Time, and any other column until the runtime display is satisfactory.
- Save the picture and test in runtime. The on-screen view should now reflect the new widths.
- The printout will not change yet — proceed to Solution 3.
Solution 3: Adjust the Printprovider.Table Column Widths
This is the procedure that resolves the actual print output. The print provider keeps its own per-column width values that are independent of the Alarm Control's runtime overrides.
- Open the Report Designer in WinCC Explorer.
- Open the layout @Alarm Control – Table (located under Report Templates → Alarm Logging).
- Select the WinCC Control Runtime Printprovider.Table object on the layout page.
- Open its Properties dialog and switch to the column configuration (selection depends on the WinCC version: Columns, Column properties, or Selected columns).
- For each column that appears truncated in the printout, set its Width in characters or in the unit used by the control (typically characters, sometimes millimeters depending on the report). Use the values from the table in Solution 1 as a starting point.
- Click OK and save the report layout.
- Trigger a print from runtime and verify the output.
Column width values entered in the Printprovider.Table are stored inside the layout file @Alarm Control – Table.rpl (and the matching .emf/.xml companions). Distribute the updated layout with the project if you work with a multi-user or multi-server setup.
Solution 4: Modify the Long-Term Archive Report Layout
If the printout originates from the historical Long-term archive report instead of the live Alarm Control, a different object is responsible for the column widths.
- Open the Report Designer and locate the layout @Alarm Logging Runtime Long-term archive report (under Report Templates → Alarm Logging).
- Open the column list of the table object on the layout.
- Edit the Width property of each column to match the desired print layout.
- Save the report and re-trigger the long-term archive print job (typically scheduled in Time-Scheduled Tasks in the Alarm Logging editor).
The two report templates (live Alarm Control vs. long-term archive) are not synchronized; both must be configured individually if your plant uses both.
Alternative: Export to Excel and Adjust Externally
When the print provider cannot be reconfigured (e.g., third-party restrictions on report templates), export the alarm data to Excel and fix the column widths in the workbook before printing. This is a documented Microsoft Office procedure:
- In Excel, open the exported alarm file.
- Press Ctrl+A to select all cells.
- On the Format menu, click Style.
- In the Style name list, click Normal and then Modify.
- On the Number tab, clear the Locked option so column widths can be set; on the Alignment tab, clear Wrap text if you do not want rows to expand vertically.
- Click OK, then select all columns (click the column header) and use Format → Column → Width to set a consistent width.
- Save and print.
For more details on this Microsoft Office procedure, refer to the official Microsoft Support article KB9756DB9 on column-width discrepancies when printing Excel files.
Page Setup and Output Channel Considerations
Even when the Printprovider column widths are correct, the output device can truncate the data. Verify these settings after adjusting the column widths:
| Setting | Location in Report Designer | Recommended Value |
|---|---|---|
| Page orientation | Page Setup on the report layout | Landscape for more columns |
| Page size | Page Setup → Paper | A4 or Letter to match the target printer |
| Margins | Page Setup → Margins | ≤ 10 mm on all sides |
| Print scaling | Page Setup → Options | Fit to page width if total width exceeds page |
| Print output target | Control properties → Print | Match the configured printer driver |
If you print to .xps for electronic archiving, remember that the .xps viewer honors the layout as it was rendered. A column that was truncated by the print provider is truncated in .xps as well, which is why addressing the print provider directly is the only durable fix.
Verification Steps
After applying any of the solutions above, perform the following sequence to confirm the fix:
- Start WinCC Runtime and open the picture that contains the Alarm Control.
- Trigger a print of the Alarm Control (toolbar Print button or the configured hotkey).
- Inspect the preview or printed page: every message block (Date, Time, State, Number, Text, etc.) must be fully visible without trailing
###or ellipsis. - Compare the column widths between the on-screen Alarm Control and the printout. They do not need to be identical, but each must be wide enough to display the longest expected value.
- Repeat the test on the long-term archive report (if used) by printing a date range that includes a known event.
- Document the final Width values in the project documentation so future service engineers do not re-apply the project defaults.
Troubleshooting Matrix
| Symptom | Likely Cause | First Action |
|---|---|---|
| Date column truncated in printout but OK on screen | Printprovider.Table column width too small | Solution 3: widen the Date column in @Alarm Control – Table |
| Time column truncated in printout but OK on screen | Same as above, Time column | Set Time column width to 8 (HH:MM:SS) or 12 (with ms) |
| First column squeezed in .xps output | Layout page width smaller than combined column widths | Solution 1 + Page Setup: switch to Landscape, reduce margins, or enable Fit-to-width |
| Printout shows project defaults after editing Alarm Control columns | Printprovider does not inherit runtime overrides | Solution 3: edit the Printprovider.Table column widths directly |
| Long-term archive printout has wrong widths | Wrong report layout was edited | Solution 4: edit @Alarm Logging Runtime Long-term archive report |
| Printout still wrong after layout edit | Project still running with old cached layout | Stop WinCC Runtime, re-deploy the project, then start Runtime |
| Excel export shows correct data, wrong column width on print | Excel Normal style overrides column width | Follow the Microsoft KB procedure (Alternative section) |
| Columns visible in runtime are missing in printout | Report layout does not include those columns | Edit @Alarm Control – Table → add columns to Printprovider.Table |
Best Practices for Long-Term Maintainability
- Treat the Alarm Control and the Printprovider as two separate configurations. Document the intended width for each column on each side.
- Prefer Apply project settings = ON unless the operator screen has a strict layout requirement. With project settings on, you only edit column widths in one place (the Alarm Editor) and both runtime and print stay in sync.
- Use the same paper size and orientation in the project standard and in the operator station printer driver to avoid fit-to-width scaling artifacts.
- When upgrading WinCC, re-validate the report templates. Siemens has historically carried Printprovider changes between V7.3, V7.4, and V7.5 that affect default widths.
- Keep a printout sample from a known event in the project documentation. It makes future regression checks straightforward.
FAQ
Why do my Alarm Control columns look correct in runtime but are truncated in the printout?
The WinCC Alarm Control uses one set of column widths for the on-screen display, and the Printprovider.Table inside the report layout @Alarm Control – Table uses a separate set for the print job. Unchecking Apply project settings only changes the runtime view; the print provider keeps its own widths. Edit the columns of the WinCC Control Runtime Printprovider.Table object in the Report Designer to fix the printout.
Which WinCC version does this column-width issue apply to?
It is confirmed on WinCC V7.3 (any update level). The same root cause applies to V7.2 and V7.4 because they share the same Printprovider architecture. The fix procedure (edit the Printprovider.Table columns inside the report layout) is the same across these versions.
Do I need to edit the @Alarm Control – Table layout for the long-term archive printout?
No. The long-term archive uses a different layout called @Alarm Logging Runtime Long-term archive report. Both layouts must be configured individually if your plant prints from both sources.
What column width should I use for the Date and Time message blocks?
Use a Length of 10 characters for the Date (for DD.MM.YYYY) and 8 characters for the Time (for HH:MM:SS). Increase Time to 12 if the project includes milliseconds. Apply the same values in the Alarm Editor, the Alarm Control properties, and the Printprovider.Table columns to keep runtime and printout aligned.
I exported the alarms to Excel and the columns are still wrong when I print. What now?
The Excel Normal style is overriding the column width. Open the workbook, press Ctrl+A, then on the Format menu click Style, choose Normal and click Modify, clear the Locked option on the Protection tab, and clear Wrap text on the Alignment tab. Then select all columns and use Format → Column → Width to set a consistent width. The full procedure is documented in the official Microsoft Support article KB9756DB9.