TP177A Alarm Logging WinCC flexible 2005 Buffer Limits

David Krause17 min read
HMI / SCADASiemensTechnical Reference
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: TP177A Alarm Logging Reality

The SIMATIC TP177A (6AV6 642-0AA11-0AX0 / 6AV6 642-0BA11-0AX0 / 6AV6 642-0BC11-0AX0 / 6AV6 642-0CA11-0AX0 variants) is an entry-level 5.7-inch STN panel configured with WinCC flexible 2005 (or any later WinCC flexible build, including SP5 and the maintenance branch WinCC flexible SMART). It supports discrete alarms, analog alarms, and a 256-entry circulating alarm buffer, but it does not support persistent alarm logging to internal flash, an SD card, or a USB stick. Attempting to bind a log name to the alarm window in the panel's properties dialog results in the "Alarm log" entry being permanently greyed out, and the WinCC flexible 2005 Help text explicitly states that alarm logging is unavailable on the TP177A. Any history the user sees on the panel exists only in the volatile buffer and is lost on power-cycle. For applications that require auditable alarm history (FDA 21 CFR Part 11, ISO 50001 energy logs, fault analytics), the TP177A cannot satisfy the requirement on its own and must be supplemented with a controller-side archive, a higher-tier panel, or an external historian.

This reference documents the exact behavior of the TP177A alarm buffer, the engineering reason the log field is unavailable, the verification steps an engineer can run on the bench, and three field-proven workarounds: PLC archive via the Coordination area pointer, script-triggered logging to a network file, and migration to a TP177B/DP, TP177B PN/DP, OP177B, or KTP panel. Each workaround is documented with parameter tables, sample data-block structures, and verification recipes so a commissioning engineer can deploy it without re-discovering the limitation on site.

Hardware and Software Constraints of the TP177A

The TP177A belongs to the SIMATIC 170/270 series generation (170 = 5.7", 270 = 7.5"/10.4") and was designed as a replacement for the older OP3 / OP7 / OP17 micro-panels. Its design center is cost-sensitive single-machine visualization, not process historian. The constraints that matter for alarm logging are listed in the table below.

Resource TP177A Value Effect on Alarm Logging
User memory (recipe + project) 768 KB on 6AV6 642-0AA11, 1024 KB on 6AV6 642-0BC/0CA No room for a persistent alarm database file
Removable storage None (no MMC, SD, CF, USB) No physical media to write a CSV/TXT log to
Battery backup None (no RTC buffer coin cell) Buffered alarms vanish on power loss; clock resets to 01.01.2000 if no PLC date/time is provided
Number of alarms per project 1,000 (discrete) + 50 (analog) Plenty for buffering, but pointless without storage
Number of alarm logs 0 (greyed out in the project tree) Cannot add a log file under "Historical Data > Alarm logs"
Alarm buffer entries (alarm view window) 256 (circular) Only the last 256 status transitions are retained in RAM
Pending alarms 512 active at any one time Number of alarms that can be raised simultaneously before overflow
Recipe records 20 (each 32 fields) Unrelated to alarms, but illustrates the budget mindset of the platform
WinCC flexible edition required 2005 SP1 or higher; compatible with WinCC flexible 2008 SP5 and WinCC flexible SMART Same restriction regardless of ES version

The combination of zero removable storage and zero battery-backed RAM is the single reason the WinCC flexible 2005 engineering station does not even allow you to associate an alarm log with the panel: the runtime cannot honour the configuration, so the editor hides the field. The greyed-out property is therefore not a defect of a particular service pack, it is enforced by the panel's device capability set that ships inside the WinCC flexible 2005 ES image.

Why the "Alarm Log" Option Is Greyed Out in WinCC flexible 2005

When you open the project tree in WinCC flexible 2005 (Project > Device Properties > Alarms), the "Alarm logs" node is either invisible or, in some builds, present but read-only. Double-clicking on "<Add Alarm log>" is also blocked. The same is true for the "Properties > General" page of any alarm window placed on a screen: the "Alarm log" combo-box shows only "<No log>" with the pick-list disabled. Three checks confirm the cause:

  1. Open the WinCC flexible 2005 Help index and look up Alarm log - availability. The text states that alarm logs are only available on panels whose device record declares the capability flag ALARM_LOG. The TP177A device record (file TP177A.GSD-equivalent descriptor inside the ES, not the PROFIBUS GSD but the device capability XML) does not set this flag.
  2. Switch the panel in the project tree from TP177A to a TP177B/DP and reopen the alarm window properties. The combo-box immediately becomes editable. This proves the option is capability-gated, not licensed.
  3. Compare the Properties dialog of an event log (Historical Data > Data logs). On TP177A the "Storage location" combo-box offers only "File (CSV)" with the file-system entry greyed out. The capability chain is the same.

The reference documentation for WinCC flexible describes the conceptual model for alarm logs in Alarm Logging in WinCC (RT Professional) and for WinCC flexible SMART (the maintenance-line successor) in Creating an alarm log - SIMATIC HMI WinCC flexible SMART (Siemens Support entry 109989784). Both documents list the panels that support the feature; the TP177A is absent, while the TP177B (DP and PN/DP variants), OP177B, TP277, MP277, and the Comfort/UNT panels are present.

Do not mistake the alarm buffer for an alarm log. The buffer is a ring-store of the last 256 status transitions (raise, acknowledge, clear). It is not written to a file, has no time stamp beyond the panel's volatile clock, and is wiped on power-cycle. Alarm logs, by contrast, are CSV or RDB files stored on a removable medium or a network share and survive reboots.

The 256-Entry Alarm Buffer: Behavior, Limits, and Volatility

The TP177A alarm buffer is implemented as a 256-slot FIFO inside the panel's working RAM. The following rules govern it:

  • FIFO discipline. When slot 257 is reached, slot 1 is overwritten. There is no user-defined wrap depth; you cannot ask the panel to "keep the last 1000" - the maximum is hard-coded to 256 entries.
  • State coverage. Each entry records one state transition of one alarm: raised, acknowledged, or cleared. A single alarm that goes R > A > C therefore consumes three buffer slots. A 100-alarm project can exhaust the buffer after fewer than 86 full R-A-C cycles.
  • Volatility. On power-down or a warm restart triggered by the watchdog, the buffer pointer is reset to 0 and every slot is invalidated. The first alarm raised after reboot will occupy slot 1.
  • No battery backup. The TP177A PCB does not carry a coin-cell holder. Unlike the OP3 and the OP7 (which used a CR2032 for the alarm buffer), the TP177A is fully volatile.
  • Pending alarm ceiling. Independently of the buffer, the runtime tracks a separate counter of currently pending (raised-and-not-cleared) alarms. Once that counter exceeds 512, additional raises are silently dropped and the new alarm never appears in the buffer. The pending counter is also volatile.
  • Display ceiling. The alarm window can be configured to display only the most recent N entries (1 to 256). This is a view filter, not a storage filter; older entries are still in the buffer until overwritten.

For audit purposes the buffer is therefore useful only for the brief interval between the operator's last screen refresh and a power cycle. It cannot satisfy a "show me the alarm history of the last shift" requirement.

Diagnostic Verification of Buffer Behavior

Before commissioning a workaround, reproduce the limitation on the bench so that the customer accepts the panel's actual behavior. The recipe below uses WinCC flexible 2005 SP1, a TP177A on PROFINET or MPI/PPI, and a SIMATIC S7-300/400 or S7-1200/1500 CPU.

  1. Create 250 dummy alarms. In the project tree select "Alarms > Discrete alarms" and use Insert > Generate to create 250 alarms, each driven by a different bit in DB100. Wire bit 0.0 of DB100 to alarm #1, bit 0.1 to alarm #2, etc.
  2. Wire the trigger. In the PLC (STEP 7 V5.5 or TIA Portal V13+) generate a one-shot that sets bits DB100.DBX0.0 through DB100.DBX31.7 one after the other at 100 ms intervals.
  3. Boot the panel and let the buffer fill. Power the TP177A, transfer the project, and start the trigger. Open an alarm window sized to display 256 rows.
  4. Verify FIFO. After all 250 alarms are raised, clear the first alarm from the PLC. The acknowledge event appears in the buffer. Confirm that the oldest pending entry is now alarm #1, not alarm #250.
  5. Power-cycle test. Switch off the 24 V supply to the panel for 10 s, restore power, and refresh the alarm window. All 256 entries are gone - the window shows "No alarms". This proves the buffer is volatile.
  6. Overflow test. Force more than 512 alarms to be pending by holding the trigger and re-raising. After the 513th raise the runtime stops logging transitions, confirming the pending-alarm ceiling.

Capture the screenshots and the buffer-state as shown by the WinCC flexible 2005 ES online > "Panel > Buffer diagnostics" tool. Keep the evidence with the project documentation so that future engineers do not waste time chasing a "missing log" issue that is by design.

Workaround 1: Archiving Alarms on the PLC via the Coordination Area Pointer

The most common field workaround is to move the alarm history into the PLC, where the S7-300/400/1200/1500 data block is battery-backed (or retentive-tag-backed). The TP177A pushes the time/date and the alarm number to a Coordination area pointer that the PLC can read. You then increment your own ring buffer in the PLC and persist it to a data block. The pointer layout is documented in the WinCC flexible communication manual.

Coordination Word (PLC <- Panel) Bit / Word Meaning Sample Use
DBW0 Word Coordination bits (bit 0 = "panel in operation", bit 1 = "panel ready", bit 2 = "life-bit toggle 1 Hz") Detect panel crash via missing life-bit
DBW2 Word Current screen number Log screen transitions
DBD4 Double word Date / time encoded as PLC DATE_AND_TIME (BCD, 8 bytes) Stamp each alarm entry
DBW12 Word Number of the active alarm Determine which alarm class and which trigger bit
DBW14 Word Alarm state (0 = raised, 1 = acknowledged, 2 = cleared) Track R/A/C transitions

Configure the area pointer in WinCC flexible 2005: open the panel's "Connections" editor, select the S7 connection, and click "Area pointer". Add the Coordination pointer and assign DB100, starting at byte 0, length 16 bytes. In the PLC, generate a free-running OB1 logic that on every life-bit toggle copies DB100.DBD4 (DATE_AND_TIME) into a 200-slot ring buffer DB200 and appends the alarm number from DBW12 plus the state from DBW14. Use SFC 20 BLKMOV for the 8-byte date/time copy and a simple pointer arithmetic for the ring index. With 200 slots the ring covers roughly the last 200 transitions - similar in depth to the TP177A buffer, but the data is now in retained memory.

S7-300/400 STL Skeleton

// OB1 - ring buffer append on each transition
// Inputs : DB100 (Coordination), DB200 (history, 200 slots x 16 bytes)
// Outputs: DB200.DBX0.0 life-bit edge, DB200.DBX0.1 write complete

A     DB100.DBX0.2        // Panel life-bit
FP    M    100.0          // Edge flag
=     M    100.1          // One-cycle pulse

A     M    100.1          // Only on rising edge
JCN   END

L     DB200.DBW    4     // Slot index (0..199)
L     16                // Slot size in bytes
*D    
LAR1                     // Pointer into DB200 starting at DBX6

L     DBTAR              // pseudo - actually use ITD + DTB
// Copy DATE_AND_TIME (8 bytes) from DB100.DBD4 to DB200 at offset 6+slot*16
CALL  SFC   20
  SRCBLK := DB100.DBD4    // 8-byte source = DB100.DBD4
  RET_VAL:= MW102
  DSTBLK := P#DB200.DBX [AR1,P#0.0] BYTE 8

// Append alarm number
L     DB100.DBW   12
T     DBW [AR1,P#8.0]     // offset 8

// Append state
L     DB100.DBW   14
T     DBW [AR1,P#10.0]    // offset 10

// Increment slot index modulo 200
L     DB200.DBW    4
+     1
T     DB200.DBW    4
L     200
MOD                      // ACCU2 := ACCU1 mod 200
T     DB200.DBW    4

END: NOP   0

The above is a simplified demonstration. In production, replace the ring index math with a library FB (e.g., from the "Standard Library > S7 Communication") and protect writes with a semaphore. Reset the slot index on operator command via HMI tag.

For S7-1200/1500, the same logic fits inside an FB in SCL; the DATE_AND_TIME type is named DTL, so use a single MOVE_BLK_VARIANT instruction to copy eight bytes plus an integer and a word.

Workaround 2: Script-Based Logging to a Network File

If a network share is available on the plant, the panel can push alarm lines to a Windows (SMB) share or, with a TP177B PN/DP substituted for the TP177A, to an FTP server. The TP177A does not support WriteFile-style scripting, so this workaround requires either: (a) using the WinCC flexible 2005 SP3+ "Event" trigger to call a function that sets a tag the PLC then writes to a file via its own FTP client, or (b) running an FTP push from a PC-based WinCC Runtime (which is not a panel but a SCADA) that polls the coordination pointer. Approach (a) is the only on-panel option and looks like this:

  1. Define an event "Alarm_Triggered" with function SetBit on tag ArchiveRequest.
  2. In the PLC, on the rising edge of ArchiveRequest, open an FTP connection to \\ALARM-SRV\archive$\TP177A.csv using SIMATIC CP343-1 IT or CP1543-1, append a line DTL,alarmNo,state,value,text, and close the connection.
  3. Reset ArchiveRequest from the PLC after a successful write.

This produces an unlimited, persistent, time-stamped alarm log on a server share and is the standard mitigation on plants that cannot replace the panel. Expect latency in the 1-3 s range per alarm; it is not suitable for sub-second burst logging.

Workaround 3: Migrate to a Panel That Supports Persistent Logs

If budget allows, swap the TP177A for a panel that implements the ALARM_LOG capability. The drop-in replacements are listed below. In WinCC flexible 2005, the project converts in place when you right-click the panel and choose "Change device > SIMATIC Panels".

Replacement Panel Order Number (MLFB) Alarm Log Support Removable Media Approx. Log Size Limit
TP177B 4" mono PN/DP 6AV6 642-0BD01-0AX0 Yes, RDB or CSV MMC up to 128 MB Limited by MMC size
TP177B 6" mono DP 6AV6 642-0BC01-0AX0 Yes MMC up to 128 MB Limited by MMC size
OP177B 6" mono DP 6AV6 642-0BA01-0AX0 Yes MMC up to 128 MB Limited by MMC size
KTP400 Basic mono PN 6AV6 647-0AA11-3AX0 Yes (WinCC flexible SMART) None - log to USB stick USB stick size
KTP600 Basic color PN 6AV6 647-0AB11-3AX0 Yes USB stick USB stick size
TP277 6" color PN/DP 6AV6 643-0CB01-0AX0 Yes, RDB + CSV MMC/SD up to 1 GB 1 GB
MP277 10" color PN/DP 6AV6 643-0CD01-0AX0 Yes, RDB + CSV + DB MMC/SD/CF up to 2 GB 2 GB
Comfort Panel TP900 6AV2 124-1JC01-0AX0 Yes (TIA Portal/WinCC) SD/USB up to 32 GB 32 GB

When swapping to a TP177B/DP the wire-cut is identical: the same PROFINET name or MPI address slot can be reused, the same DB layout works, and the WinCC flexible 2005 project converts without re-engineering. This is the cheapest path to a real, persistent alarm log.

Configuring the PLC-Side Archive

The TP177A buffer is volatile, so the controller-side DB becomes the source of truth. Configure it as follows.

  1. Create DB200 with retentive attribute in STEP 7 V5.5 or TIA Portal. Mark DB200 as retentive in the DB properties > "Non-retain" column set to "No" (i.e. retain on warm restart).
  2. Define the slot structure: 16 bytes per slot = 8 bytes DATE_AND_TIME + 2 bytes alarm number + 2 bytes state + 2 bytes process value + 2 bytes reserved. With 200 slots the DB is 3 200 bytes.
  3. Initialize the ring index (DBW4) to 0 on OB100 (restart OB).
  4. Guard writes with a semaphore word (DBW0) so that the panel's coordination read cannot collide with the PLC's archive write. Use a "writing" flag and a check-back.
  5. Read on demand from the panel via an alarm-window data record. Display the last 50 entries by mapping them into a recipe view or a curve window - whichever fits the screen size.

For S7-1500 with TIA Portal V16+, the data block can be a "Global DB with optimized access"; DATE_AND_TIME is then DTL. Copy the time using MOVE_BLK_VARIANT. Make sure the tag archiveRequest is configured as retentive as well to avoid losing the trigger on warm restart.

Retention, Acks, and Status Transition Behavior

The TP177A classifies alarms into 16 classes (Class 0 = Error with single acknowledgement, Class 1 = Error with always-acknowledge, etc.). Each class behaves differently in the buffer:

Alarm Class Ack Required Buffer Entries per Cycle Visible After Ack Visible After Clear
Errors (Class 0 / "ALARM_S" with single ACK) Yes, once 3 (R, A, C) Until C Until buffer wrap or power loss
Warnings (Class 1) Yes, every recurrence 3 (R, A, C) per recurrence Until next C Until wrap or power loss
Messages / "Information" (Class 2 / Class 3) No 1 (R) or 2 (R, C) Until C Until wrap or power loss
System alarms (Class 100+) No (auto-ack) 1 (R) typically Auto-cleared Auto-cleared

The PLC-side archive should mirror the same logic so that the operator sees identical semantics on the panel and in the exported CSV. Implement the rules in an FB and call it once per scan, not per alarm, to keep the OB1 budget predictable.

Troubleshooting Matrix

Symptom Likely Cause Confirm Fix
"Alarm log" pick-list greyed out in alarm window properties Panel does not support ALARM_LOG capability Check Device > Properties > Alarms; "Alarm log" entry absent Use Workaround 1 (PLC archive) or Workaround 3 (panel swap)
Alarm buffer empties after power cycle TP177A buffer is non-retained Raise 50 alarms, power-cycle, observe buffer is empty Document the limitation; do not attempt battery install (none on PCB)
Some raises not visible in the buffer Pending-alarm counter > 512 or buffer overflow at slot 257 Count pending alarms in panel diagnostics Reduce alarm count or acknowledge faster
Date column shows 01.01.2000 00:00:00 No PLC date/time area pointer; TP177A has no RTC battery Check Connections > Area pointer > Date/Time Wire the Date/Time area pointer to the PLC clock
Coordination area pointer not updating Connection not in "RUN" or wrong DB number Online > Monitor/Modify on DB100 Verify the S7 connection ID matches in the panel and the PLC
PLC-side archive DB growths beyond expected Ring index not reset or MOD math wrong Compare DB200.DBW4 modulo 200 Recompute on every OB100 restart
FTP push drops rows Network jitter or CP343-1 IT buffer overflow Check CP343-1 IT syslog Batch events; add retry with back-off
Replacement TP177B panel does not log either Log path points to MMC slot that is empty Check project tree > Historical Data > Alarm logs > Storage location Insert a formatted MMC into the TP177B

Does the TP177A support persistent alarm logging to a file?

No. The TP177A has no MMC/SD/USB slot and no non-volatile storage. WinCC flexible 2005 hides the alarm-log property because the runtime cannot honour it. Only an in-RAM 256-entry circular buffer is available, and it is wiped on every power-cycle. See Siemens Support entry 109989784 for the list of panels that do support alarm logs.

Why is the "Alarm log" combo-box greyed out in the alarm window properties?

The TP177A device record in WinCC flexible 2005 does not set the ALARM_LOG capability flag. The engineering station enforces this at edit time. Switching the panel type to a TP177B/DP, OP177B, TP277, MP277, or Comfort panel in the project tree restores the option without changing your alarm definitions.

What happens to the TP177A alarm buffer when power is removed?

The buffer is fully volatile. There is no battery, so the ring pointer resets to slot 0 and every entry is invalidated. Power cycling the 24 V supply for any length of time will empty the buffer. This behaviour is documented in the WinCC flexible 2005 device manual for the TP177A and reproduced in bench tests.

How many buffer entries does the TP177A actually keep?

256 entries maximum, in a circular FIFO. Because each alarm transition (raised, acknowledged, cleared) consumes a slot, a project with frequent R-A-C cycles can fill the buffer in fewer than 86 full cycles. The pending-alarm ceiling is independent and is 512 active alarms.

What is the lowest-cost way to get a real alarm log without replacing the TP177A?

Implement the PLC-side archive described in this article using the Coordination area pointer and a 200-slot ring buffer in a retentive DB on the S7 controller. With the date/time area pointer enabled, each transition is stamped with the controller's clock and survives power cycles. For a larger log or one that needs to be opened in Excel, add an FTP push from a CP343-1 IT or CP1543-1 to a network share.

Back to blog