Export TP1500 Comfort Alarm Archives from Multiple HMI Panels
Engineers running a SIMATIC S7-1517 CPU with two TP1500 Comfort operator panels in a Master/Slave topology routinely need to consolidate alarm archives from both panels onto a single USB stick for offline analysis, shift handover, or regulatory record retention. The natural expectation is that one panel can simply reach across the Ethernet network to read the other panel's SD card; in practice, every Comfort Panel runtime owns an isolated alarm archive and a sandboxed file system that does not expose the other panel's directory tree to VBScript, to the runtime scheduler, or to a remote user. This reference documents the engineering solutions that actually work in TIA Portal V17/V18 with WinCC Comfort/Advanced, including centralized network archive paths (SMB share), FTP publishing, PLC-tag-based acknowledgment synchronization, and an external PC poller service. It includes a complete VBScript library for the TP1500 file system, concrete TIA Portal navigation paths, and a commissioning and verification matrix.
1. Architecture Overview
The reference topology consists of:
| Component | Part Number | Firmware / Version | Role |
|---|---|---|---|
| SIMATIC CPU 1517-3 PN/DP | 6ES7517-3AP00-0AB0 | Firmware V2.9 or later | Master controller; rack-mount, PROFINET + PROFIBUS |
| TP1500 Comfort (Master) | 6AV2 124-1MC01-0AX0 | Image V17 / V18 | 15" Touch HMI, 16M colors, ARM Cortex-A9 |
| TP1500 Comfort (Slave) | 6AV2 124-1MC01-0AX0 | Image V17 / V18 | 15" Touch HMI on independent enclosure |
| Industrial Ethernet Switch | SCALANCE XC-208 (6GK5208-0BA00-2AC2) or equivalent | Managed, VLAN-capable | PROFINET backbone |
| SD Card per panel | 6AV2 181-2GA02-0AA0 (Siemens, 32 GB) | Industrial-grade | Local alarm archive and recipe storage |
| Archive / File Server | Windows Server 2019 or SIMATIC IPC | — | Centralized SMB or FTP target |
The Master and Slave panels each hold a separate HMI connection in the TIA project (logical names "Master" and "Slave") that targets the same S7-1517 CPU on different PROFINET or PROFIBUS slots. Each panel is physically separated (different cabinets, different switch ports, sometimes different buildings). The operator workflow currently triggers a VBScript on the Master panel that copies its own alarm archive from \Storage Card SD\Logs\Alarms to a USB stick attached to the Master panel. The user wants the same operation to also pull the Slave's alarm archive, but the Master has no programmatic visibility of the Slave's SD card file system.
2. Why Direct Cross-Panel Archive Export Fails
Three architectural constraints of the Comfort Panel firmware block direct panel-to-panel archive access:
-
Runtime isolation. Each
HMIRuntimeprocess has its own private alarm cache, its own internalSystemLogdatabase, and its own archive writer task. Memory and file handles are not shared across runtime instances, even when the same TIA project is loaded twice on two panels. -
File system sandboxing. Comfort Panel images run a hardened embedded Windows IoT variant. The file system visible to VBScript (e.g.
\Storage Card SD\,\USB\,\flash\) is local to that device. UNC paths (e.g.\\SlavePanel\SD\Logs) are not browsable; the SMB client stack is not exposed to scripts. - No built-in SMB server. The Comfort firmware does not implement an SMB/CIFS file server on PROFINET, so another device cannot read its storage via SMB. (This is one difference from Allen-Bradley PanelView Component, where the File Transfer menu in PanelView Explorer exposes the alarm log export to a chosen destination — see the Rockwell Automation knowledge base entry PanelView Component: Export alarm history list. For Siemens, equivalent functionality is achieved by configuring the archive destination, not by post-hoc retrieval.)
These constraints rule out the obvious approach: "read Slave's SD from Master." Every viable solution therefore either (a) relocates the archive to a shared network path, (b) duplicates the archive during write, or (c) introduces a third party (PC, PLC, FTP server) that mediates the transfer.
3. Pre-requisites
- TIA Portal V17 Update 4 or V18 Update 1 (or later) with the WinCC Comfort/Advanced option installed. The same release train is required for both the project and the panel images. See the Siemens Industry Online Support portal for the latest compatibility matrix.
-
Comfort Panel image V17 / V18 matching the TIA project. Mismatched images cause runtime errors such as
0x80040154(class not registered) when callingHMIRuntime.FileSystemmethods. - Network infrastructure — a managed industrial Ethernet switch (SCALANCE XC, XB, or XR family) with PROFINET QoS prioritization enabled for the archive traffic VLAN.
- A file / FTP server reachable on the same subnet as both panels. A SIMATIC IPC227G (6ES7647-8BD31-0CW1) or any Windows Server 2016/2019/2022 host with a static IP is acceptable. The server does not need to be on the plant PROFINET line; a separate VLAN with firewall pinning is recommended.
-
A domain service account (e.g.
DOMAIN\archive_writer) with read/write rights to the shared folder, used identically by both panels. The account's password should not expire mid-shift; set "Password never expires" and document it in the plant security register. - USB storage on the Master panel, formatted as FAT32 with a single primary partition. NTFS-formatted USB sticks are not supported by all Comfort images and will fail mount silently.
-
VBScript knowledge — familiarity with the WinCC Comfort scripting environment, including
HMIRuntime.SmartTags,HMIRuntime.FileSystem, and the embeddedScripting.FileSystemObject.
4. Solution 1 — Centralized Network Archive via SMB Share (Recommended)
The cleanest engineering solution is to configure both panels to write their alarm archives directly to an SMB share on a server, instead of to the local SD card. The Master panel's existing VBScript can then copy both archives from that shared folder to a USB stick, since UNC paths are visible to the panel's file system when entered as a literal source.
4.1 Server-side preparation
- Create a folder
D:\Alarms\MasterandD:\Alarms\Slaveon the archive server. - Share
D:\AlarmsasAlarms$(hidden administrative share) or as a normal shareAlarmswith permissions:DOMAIN\archive_writer= Read/Write, Modify. - Disable Windows Defender real-time scanning on the share path to avoid file-lock contention. Antivirus quarantine on active archive files will cause
ERROR_SHARING_VIOLATION(0x20) errors on the panel side. - Set NTFS quota to 5 GB per subfolder with an email alert at 80 % to prevent runaway archives from filling the drive.
4.2 TIA Portal — Master panel archive configuration
- Open the Master TP1500 in Devices & Networks.
- Navigate to Runtime settings > Alarms > Archive.
- Enable Archive alarms and set Storage location to Network path.
- Enter the path as
\\<ServerIP>\Alarms$\Master\(use the IP, not the hostname, to avoid DNS dependency on the panel). - Enter the user
DOMAIN\archive_writerand the service account password. TIA Portal stores the credentials encrypted in the panel image; they are not exported in plain text by the transfer card workflow. - Configure the Segment type to Daily and Single segment for predictable filenames. Segment filenames will follow the pattern
ALARM_YYYYMMDD_HHMMSS.csvandALARM_YYYYMMDD_HHMMSS.rtffor the CSV/RTF pair generated by the Comfort runtime. - Set Segment size limit to 50 MB and Behavior when limit reached to Overwrite oldest to bound disk consumption.
4.3 TIA Portal — Slave panel archive configuration
Repeat the steps above for the Slave TP1500, changing the storage path to \\<ServerIP>\Alarms$\Slave\. The two panels can therefore co-write to the same server without colliding because each writes to its own subfolder.
4.4 Master VBScript — consolidated USB export
The Master panel's VBScript now no longer needs to read its own SD card; it copies from the network share to USB. This works because \Storage Card SD\ and a UNC source can both be passed to CopyFile on the Comfort runtime.
' TP1500 Comfort VBScript — Consolidated alarm export to USB
' Trigger: scheduled event "ExportArchive_ShiftEnd" or a button click
' Target: \USB\Alarms_<PlantName>_<ShiftID>.zip
Const SRC_MASTER = "\\10.20.30.45\Alarms$\Master\"
Const SRC_SLAVE = "\\10.20.30.45\Alarms$\Slave\"
Const DST_USB = "\USB\"
Dim fso, shell, ts, today
Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
today = Year(Now) & Right("0" & Month(Now), 2) & Right("0" & Day(Now), 2)
' --- Diagnostics tag updates (HMI tags for traceability) ---
SmartTags("Export_State") = 1 ' 0=Idle, 1=Running, 2=Done, 3=Error
SmartTags("Export_StartTime") = Now
SmartTags("Export_BytesWritten") = 0
' --- Verify USB mount ---
If Not fso.FolderExists(DST_USB) Then
SmartTags("Export_State") = 3
SmartTags("Export_LastError") = "USB not mounted or wrong filesystem"
HMIRuntime.Trace "Export aborted: USB missing on " & DST_USB & vbCrLf
Exit Sub
End If
' --- Verify source reachability ---
If Not fso.FolderExists(SRC_MASTER) Then
SmartTags("Export_State") = 3
SmartTags("Export_LastError") = "Master share unreachable: " & SRC_MASTER
HMIRuntime.Trace "Export aborted: " & SRC_MASTER & vbCrLf
Exit Sub
End If
If Not fso.FolderExists(SRC_SLAVE) Then
SmartTags("Export_State") = 3
SmartTags("Export_LastError") = "Slave share unreachable: " & SRC_SLAVE
HMIRuntime.Trace "Export aborted: " & SRC_SLAVE & vbCrLf
Exit Sub
End If
' --- Iterate source folders and copy CSV/RTF pairs ---
Dim srcFolder, dstFolder, file, bytesTotal
bytesTotal = 0
For Each srcFolder In Array(SRC_MASTER, SRC_SLAVE)
Dim role : role = Mid(srcFolder, InStrRev(srcFolder, "\", Len(srcFolder) - 1) + 1, Len(srcFolder))
role = Replace(role, "$", "") ' strip trailing $ from admin share
role = Replace(role, "\\", "") ' for non-admin share
Set dstFolder = fso.GetFolder(DST_USB)
For Each file In fso.GetFolder(srcFolder).Files
If LCase(fso.GetExtensionName(file.Name)) = "csv" _
Or LCase(fso.GetExtensionName(file.Name)) = "rtf" Then
' Only copy today's segments, controlled by tag EnableDailyOnly
If SmartTags("EnableDailyOnly") = 0 _
Or InStr(1, file.Name, today, vbTextCompare) > 0 Then
fso.CopyFile file.Path, _
DST_USB & role & "_" & file.Name, True
bytesTotal = bytesTotal + file.Size
End If
End If
Next
Next
SmartTags("Export_State") = 2
SmartTags("Export_BytesWritten") = bytesTotal
SmartTags("Export_EndTime") = Now
HMIRuntime.Trace "Export complete: " & bytesTotal & " bytes written" & vbCrLf
Create the following HMI tags on the Master panel so the operator screen can display export status and last error:
| Tag name | Data type | Initial value | Used for |
|---|---|---|---|
| Export_State | UInt | 0 | 0 = idle, 1 = running, 2 = done, 3 = error |
| Export_StartTime | Date_And_Time | DT#1990-01-01-00:00:00 | Start timestamp for current run |
| Export_EndTime | Date_And_Time | DT#1990-01-01-00:00:00 | End timestamp of last successful run |
| Export_BytesWritten | LReal | 0.0 | Total bytes written to USB in last run |
| Export_LastError | WString[128] | "" | Last error message |
| EnableDailyOnly | Bool | 1 | 1 = copy only today's segments; 0 = copy all |
4.5 Why this solution is preferred
- Each panel's runtime writes its own archive without depending on the other panel's availability. If the Master is down, the Slave still records alarms.
- USB export becomes a single scheduled task; no network folder polling on the panel.
- Archiving to SD cards is eliminated, removing the well-known SD-card write-cycle degradation on long-running plants.
- The server can be backed up by the plant historian (WinCC Historian, PCS 7, or third-party) without touching the panels.
5. Solution 2 — FTP Centralized Archive
If SMB is blocked by plant firewall policy (common in regulated environments), Comfort Panels support FTP as an archive target. Configure an FTP server (IIS FTP on Windows, or vsftpd on a Linux server) on a fixed IP reachable from both panels. In TIA Portal, the archive path is set to ftp://10.20.30.46/Alarms/Master/ with FTP credentials.
Use FTP only when SMB is forbidden; FTP transfers run a single TCP connection per file and are 2-3× slower than SMB for large CSV archives. The Master VBScript can still call fso.CopyFile with the FTP path as the source — VBScript on the Comfort runtime resolves the FTP URI via the embedded FTP client. However, expect a 5-15 s pause per file as the connection is established.
425 Can't open data connection errors in the panel's diagnostic buffer.6. Solution 3 — PLC-Tag-Based Acknowledgment Synchronization
A common discussion in engineering forums proposes synchronizing the alarm acknowledgment state between the two panels via the S7-1517, even though it does not solve the archive-export problem directly. It is included here because it is often the first idea proposed and is necessary for a coherent operator workflow once the centralized archive from §4 is in place.
- For every discrete alarm class, create a Boolean PLC tag in the S7-1500, e.g.
"HMI_Ack_Master_Acked","HMI_Ack_Slave_Acked". - On the Master TP1500, configure the alarm's Acknowledgment tag to
"HMI_Ack_Master_Acked"(write direction: HMI → PLC). - On the Slave TP1500, configure the same alarm's PLC acknowledgment tag to
"HMI_Ack_Master_Acked"(read direction: PLC → HMI). When the operator acknowledges the alarm on the Master, the PLC tag flips, and the Slave's runtime mirrors the state, removing the alarm from the Slave's active list. - For PLC-level alarms that originate in the S7-1500 (e.g. drive faults), do the inverse: the alarm is configured with a PLC tag that both panels subscribe to as a read-only acknowledgment source.
This mechanism only synchronizes the live acknowledgment state; the historical archive still resides on the server from §4. Always deploy tag sync and archive pathing together — neither alone satisfies an FDA 21 CFR Part 11-style audit trail.
7. Solution 4 — External PC Synchronization Service
When a network share or FTP server is not available (e.g. the panels are on an isolated PROFINET line with no upstream connection), a small Windows service on a local engineering PC can poll both panels' SD cards and consolidate them. The PC must be allowed to mount the SD cards directly (i.e. physically, by removing the SD card and inserting it into the PC). This is acceptable on commissioning shifts but not as a permanent solution because it requires physical access to both enclosures.
- Insert the Master SD into the PC; copy
\Logs\Alarms\*.csvand*.rtftoD:\Consolidated\Master\. - Insert the Slave SD; copy its logs to
D:\Consolidated\Slave\. - Run a PowerShell scheduled task on the PC that monitors
D:\Consolidatedand writes a rolling 7-day archive to a USB drive attached to the PC.
For automation, write a small PowerShell script with a FileSystemWatcher and a SHA-256 checksum verification step before each copy. The script's status can be exposed to the operator via an HMI tag written back through the S7-1500 — round-trip latency is acceptable for end-of-shift exports.
8. VBScript Reference for TP1500 Comfort Archive Operations
The Comfort runtime exposes two parallel file APIs: the high-level HMIRuntime.FileSystem object and the standard Windows Scripting.FileSystemObject (FSO). The FSO is preferred for cross-version portability; the HMIRuntime object exposes some panel-specific helpers (e.g. clipboard and trace) but its file methods overlap with FSO.
| Operation | FSO method | HMIRuntime.FileSystem | Notes |
|---|---|---|---|
| Test folder exists | fso.FolderExists("\\10.20.30.45\Alarms$\Master\") |
Not direct — use FSO | UNC paths supported |
| Test file exists | fso.FileExists(path) |
HMIRuntime.FileSystem.FileExists(path) |
— |
| Copy file | fso.CopyFile src, dst[, overwrite] |
HMIRuntime.FileSystem.CopyFile src, dst |
Boolean overwrite; default false |
| Move file | fso.MoveFile src, dst |
— | — |
| Delete file | fso.DeleteFile path[, force] |
HMIRuntime.FileSystem.DeleteFile path |
Force=true suppresses UI prompts |
| List folder | For Each f In fso.GetFolder(p).Files |
— | — |
| Get file size | f.Size |
HMIRuntime.FileSystem.FileLen(p) |
Bytes |
| Create folder | fso.CreateFolder(path) |
HMIRuntime.FileSystem.CreateFolder(path) |
Recursive creation not supported — create parents first |
| Read text file | fso.OpenTextFile(p, 1).ReadAll |
— | Use ForReading = 1 |
| Write text file | fso.OpenTextFile(p, 2, True).Write s |
— | ForWriting = 2, create=true |
Common runtime errors raised by the Comfort VBScript host:
| Error number | Hex | Meaning | Likely cause |
|---|---|---|---|
| 52 | 0x800A0034 | Bad file name or number | UNC source string not properly quoted |
| 53 | 0x800A0035 | File not found | Network share disconnected or file deleted mid-script |
| 70 | 0x800A0046 | Permission denied | Service account lacks write on target; ACL on share folder |
| 76 | 0x800A004C | Path not found | USB stick removed between FolderExists and CopyFile
|
| 322 | 0x800A0142 | Can't create temporary file | USB mounted read-only or filesystem corrupted |
| -2147221020 | 0x80040154 | Class not registered | FSO not available on the panel image (older firmware); update to V17 or later |
Wrap every I/O call in On Error Resume Next with explicit Err.Number checks for production reliability:
On Error Resume Next
fso.CopyFile SRC_MASTER & fileName, DST_USB & fileName, True
If Err.Number <> 0 Then
SmartTags("Export_LastError") = "CopyFile failed: 0x" & Hex(Err.Number) & " - " & Err.Description
SmartTags("Export_State") = 3
HMIRuntime.Trace "CopyFile " & fileName & " failed: " & Err.Description & vbCrLf
Err.Clear
End If
On Error Goto 0
9. TIA Portal Configuration Walkthrough
9.1 Project setup
- Open the TIA Portal project and confirm both TP1500 Comfort devices and the S7-1517 are present in Devices & Networks.
- Verify that the Connection in each panel points to the S7-1517 with the correct rack/slot or PROFINET device number. Mismatched connection targets are the most common cause of intermittent archive drops.
- Compile the project (Project > Compile > All) and resolve any warnings about duplicate tag names — Comfort's namespace is global to the panel, and a tag named
Export_Statein two different screens causes undefined behavior.
9.2 Archive path on each panel
- On the Master panel: Runtime settings > Alarms > Archive > Storage location = Network path; enter
\\10.20.30.45\Alarms$\Master\with credentials. - Repeat on the Slave with
\\10.20.30.45\Alarms$\Slave\. - Set the segment mode to Procedure-controlled if you want to close segments from a button press; Daily if shift boundaries are fixed at 06:00/14:00/22:00. The Daily boundary should be a few minutes after the start of the maintenance shift so that archives do not straddle a shift change.
9.3 HMI connection between panels (for tag-based sync)
- Add an HMI-HMI connection on the Master panel: Connections > Add > HMI-HMI connection.
- Set the partner device to the Slave panel; select the Read direction only — the Master does not need to write to the Slave for acknowledgment sync.
- This connection is independent of the PLC connection and is used only to mirror acknowledgment tags, not to copy files.
9.4 VBScript hosting
- Create a new Scheduled task on the Master TP1500 (e.g. ShiftEnd_ArchiveExport), trigger at 06:05, 14:05, 22:05, run on the event "Daily".
- Attach the VBScript from §4.4 to this scheduled task.
- Add a button on the operator screen that calls the same function via Click event > Execute VBScript for ad-hoc exports.
10. Commissioning and Verification
After project download to both panels, perform this verification sequence before declaring the system production-ready.
-
Archive write test. On the Master panel, trigger a controlled alarm (e.g. a simulated drive fault) and confirm within 30 s that a new
ALARM_*.csvappears in\\Server\Alarms$\Master\. Repeat on the Slave. If the file does not appear, check the panel's Diagnostic buffer for archive writer errors. -
Credentials check. From the Master TP1500's VBScript editor, run a one-line test:
fso.FolderExists("\\10.20.30.45\Alarms$\Master\"). If it returnsFalse, the service account is not authenticating against the domain; check that DNS is reachable from the panel and that the panel's time is within 5 minutes of the DC (Kerberos tolerance). -
USB export test. Insert a FAT32 USB stick into the Master panel; trigger the consolidated export. Verify that two file sets appear on the USB: one prefixed
Master_, one prefixedSlave_. VerifyExport_Statetransitions 0 → 1 → 2 on the operator screen. -
Performance baseline. A 1 MB CSV typically copies in 200-400 ms over gigabit Ethernet. If the export takes more than 30 s per file, suspect a duplex mismatch on the switch port, or that the panel's network stack is being saturated by other PROFINET traffic — verify with
Wiresharkfiltered to the panel's MAC. -
Failure mode drill. Disconnect the Slave panel from the network for 5 minutes; verify that the Master export script does not crash but reports
Export_LastError = "Slave share unreachable". Reconnect and verify the next scheduled run succeeds. - Long-term storage. After 7 days of operation, verify that old archive segments are removed according to the configured overwrite policy and that the server's disk usage is bounded.
Diagnostic tags to expose on the operator screen during commissioning:
| Tag | Meaning | Healthy value |
|---|---|---|
Export_State |
Current export state | 2 (Done) at end of run |
Export_BytesWritten |
Bytes written last run | > 0 on active days |
Export_EndTime |
Last successful end time | Within 8 hours of now |
Export_LastError |
Last error message | Empty string |
ArchiveMaster_FreeMB |
Free space on master share | > 1000 MB |
ArchiveSlave_FreeMB |
Free space on slave share | > 1000 MB |
11. Troubleshooting Matrix
| Symptom | Diagnostic check | Root cause | Fix |
|---|---|---|---|
| Master export reports "Master share unreachable" | Ping server from PC on same VLAN | VLAN ACL blocks PROFINET multicast on the share server port | Move server to dedicated archive VLAN; add static route on SCALANCE switch |
| Files copied are empty (0 bytes) | Open ALARM_*.csv in Excel; check header |
Archive segment not yet closed; writer still buffering | Reduce segment size limit or force segment close at end of shift |
| Export_State stays at 1 (Running) | Inspect HMIRuntime.Trace output on panel |
For Each loop blocked on unreachable path |
Add per-iteration error handling; add 5 s timeout per file copy |
| Slave panel loses connection to PLC during export | Check Connections status in panel diagnostic | Ethernet switch port flapping due to broadcast storm from rogue HMI | Enable broadcast storm control on the switch; assign archive server to a separate VLAN |
| Both panels write to same file | Inspect share folder on server | Both panels configured with same path due to copy-paste error | Split paths to Master\ and Slave\ as in §4.2-4.3 |
| USB stick not recognized | Check \USB\ in panel file system viewer |
USB formatted as NTFS or exFAT | Reformat as FAT32; Siemens SD/USB guideline requires FAT32 for < 32 GB |
| Archive writer fails silently (no error, no file) | Check Diagnostic buffer > Archive | Service account password expired | Reset password; update in TIA Portal; re-download project |
| VBScript error 0x80040154 on first run | Check panel image version | Panel image older than TIA project | Update panel image to match TIA Portal version; retransfer |
| Export works in commissioning, fails after 30 days | Check share folder disk space | Quota exceeded; oldest segments not deleted | Verify "Overwrite oldest" is enabled; check NTFS quota is not silently blocking writes |
12. Frequently Asked Questions
Can one TP1500 Comfort panel directly read another panel's SD card over the network?
No. The Comfort Panel firmware does not expose an SMB server or a remote file API. Each runtime is sandboxed to its own local storage (\Storage Card SD\, \USB\, \flash\). The only way to consolidate archives is to write them to a shared network path (SMB or FTP) from the start, or to copy the SD card physically to a PC.
What TIA Portal version and panel image are required for SMB network archive paths?
TIA Portal V15.1 or later supports network archive paths on Comfort Panels. TIA Portal V17/V18 with matching Comfort Panel images V17/V18 is recommended for current deployments. Older images may not encrypt the service account credentials correctly, so always match the image to the TIA Portal version.
Does PLC-tag acknowledgment sync replace the need for centralized archiving?
No. Tag-based acknowledgment sync only mirrors the live acknowledgment state of an alarm between panels; it does not copy historical archive segments. For audit trail and shift handover, you still need the SMB/FTP centralized archive from Solution 1 or 2, and you typically deploy both together.
Why does my VBScript fail with error 0x80040154 "Class not registered"?
This error means Scripting.FileSystemObject is not available on the panel image. It occurs on Comfort Panel images older than V14 or on TIA projects that target an unsupported image. Update the panel image to match the TIA Portal version and retransfer; verify the image build in Panel > System > Image Version after download.
What is the recommended file system for a USB stick used for Comfort Panel archive export?
FAT32 with a single primary partition for sticks up to 32 GB. NTFS and exFAT are not reliably mounted on all Comfort Panel images; a silently-unmounted NTFS stick is a common commissioning time-sink. For sticks larger than 32 GB, use a third-party FAT32 formatter (e.g. fat32format) since the Windows built-in format utility refuses volumes above 32 GB.
Can the same service account be used on both Master and Slave panels, or do they need separate accounts?
The same domain service account is acceptable, and recommended for simplicity, when both panels write to distinct subfolders of the same share. Separate accounts are only needed if audit policy requires per-device attribution; in that case, the ACL on Alarms\Master\ and Alarms\Slave\ should be set to the respective account only, and each panel's TIA Portal configuration must use the matching account.