B&R System Diagnostics Manager (SDM) & Automation Studio Diagnostics
Target audience: Automation engineers maintaining undocumented B&R CP1584 machines with zero OEM documentation. This guide covers how to access, configure, and use SDM and Automation Studio diagnostic tools to troubleshoot and understand a B&R controller you did not originally program.
1. Overview
B&R System Diagnostics Manager (SDM) is a built-in diagnostic web interface available in Automation Runtime V3.0 and higher. It provides browser-based access to the controller’s internal state—CPU load, memory usage, task execution, I/O module health, and the system logbook—without requiring Automation Studio, a project file, or any OEM documentation.
For CP1584 machines where no project exists in your archive, SDM is often the first and only tool you have to understand what the controller is doing, why it may have stopped, and what hardware is actually installed.
SDM is complemented by Automation Studio’s Logger tool, which can import system dump files (.tar.gz) exported from SDM for deeper offline analysis.
2. Prerequisites & Configuration
2.1 What Must Be Enabled on the Controller
SDM does not work out of the box on every B&R controller. Two services must be enabled in the Automation Runtime configuration:
| Setting | Location | Required Value |
|---|---|---|
| Web Server | Automation Studio → System → Configuration → Web Server | Enabled |
| SDM | Automation Studio → System → Configuration → SDM | Enabled |
If you have no project file (common when inheriting undocumented machines), you cannot change these settings via Automation Studio. Options:
- Check if SDM is already running — open
http://<PLC_IP>/sdmin a browser. If it loads, you’re good. - Use Automation Studio’s “Upload from PLC” — connect to the PLC IP, upload the configuration, enable web server and SDM, then download. This requires at minimum a compatible Automation Studio version matching the runtime on the target.
- Default configuration — many B&R default configurations ship with the web server enabled. SDM is not always enabled by default on older images.
2.2 Network Access
SDM communicates over HTTP (not HTTPS by default). Ensure:
- The PLC IP is reachable from your workstation (ping test).
- Port 80 is open on the PLC (standard HTTP).
- For remote/internet access, a VPN or port-forward must be configured — SDM has no built-in authentication mechanism in older versions. Treat exposed SDM interfaces as sensitive.
3. Accessing SDM
3.1 Web Browser Access
Open any standard web browser and navigate to:
http://<PLC_IP>/sdm
For example, if the CP1584 has IP 192.168.1.10:
http://192.168.1.10/sdm
No installation, no plugins, no Java required. SDM renders a standard HTML interface.
3.2 Access Without Project Files
This is the critical advantage of SDM for undocumented machine scenarios:
- You do not need Automation Studio installed.
- You do not need the OEM project file or source code.
- You do not need to know the PLC’s configuration.
- You only need the PLC’s IP address and network connectivity.
SDM reads directly from the controller’s runtime, showing you the live state of the system as it runs.
3.3 Remote / Internet Access
Because SDM is web-based, it can be accessed from any location—intranet or internet—provided network routing is in place. This is useful for:
- Remote troubleshooting of field machines.
- Monitoring a line of machines from a central engineering office.
- Supporting multiple plants without traveling.
4. SDM Interface — Sections & What They Show
4.1 System Logbook
The System Logbook (also called Event Log or System Log) is a chronological record of system events recorded during:
- Startup — boot sequence, module initialization, firmware loading, configuration application.
- Runtime operation — warnings, errors, state changes, communication events, module insertion/removal (if hot-swappable).
Logbook entries include:
- Timestamp (controller time)
- Event class (Info, Warning, Error, Fatal)
- Event ID / error code
- Source module (which hardware or software component generated the event)
- Description text
The logbook is the primary tool for understanding why a controller went into Error or Stop state. Always check it first after a fault.
4.2 CPU Usage
SDM displays the current CPU utilization of the controller as a percentage. This shows:
- Overall CPU load across all tasks.
- Whether the controller is CPU-bound (sustained >80% is a concern).
- Spikes that correlate with specific events (e.g., cyclic communication timeout causing retry storms).
4.3 Task Monitor
The Task Monitor is one of the most valuable SDM sections. It shows every cyclic task configured on the controller with:
| Column | Description |
|---|---|
| Task Name | The configured task identifier (e.g., Cyclic#1, Cyclic#2, Timer) |
| Cycle Time (current) | Most recent cycle execution time |
| Cycle time (min) | Minimum observed cycle time |
| Cycle time (max) | Maximum observed cycle time |
| Cycle time (avg) | Average cycle time |
| Task Load | Percentage of CPU time consumed by this task |
| Priority | Task priority level |
| State | Running, Waiting, Error, etc. |
What to look for:
- A task with a max cycle time approaching its configured watchdog limit → imminent watchdog trip.
- A task showing error state → that task has crashed or is stuck.
- High task load on a low-priority task stealing time from critical I/O tasks.
4.4 Memory Information
SDM shows memory usage broken down into:
- User memory — how much of the available user RAM is allocated.
- System memory — memory used by the operating system and runtime.
- File system — usage on the onboard file system (if applicable).
Memory exhaustion can cause subtle failures (task not starting, unable to allocate buffers) before any explicit error is raised.
4.5 I/O Module Status
SDM lists all I/O modules detected in the controller’s hardware tree with:
- Module type and identifier.
- Slot/bus position.
- Status — OK, Error, Not responding, Initializing.
- Module firmware version.
This is critical on undocumented machines because it reveals the actual hardware configuration without needing the project file. You can use this to reconstruct a hardware overview of the machine.
5. System Dump Files
5.1 What Is a System Dump
A system dump is a snapshot of the controller’s entire diagnostic state, packaged as a .tar.gz archive. It contains:
- Hardware information — controller type, serial number, firmware version, module inventory.
- System logbook entries — all recorded events up to the moment of the dump.
- Diagnostic data — task states, memory maps, I/O status, error registers.
- Configuration snapshot — relevant runtime configuration parameters.
System dumps are created on the controller via SDM and then downloaded to your PC for offline analysis in Automation Studio.
5.2 Creating a System Dump in SDM
- Navigate to
http://<PLC_IP>/sdm. - Locate the System Dump or Create Dump section.
- Click Create or Generate.
- Wait for the controller to collect and package the data (can take 30 seconds to several minutes depending on system complexity).
- Download the resulting
.tar.gzfile to your workstation.
The dump is created from the controller’s current state. If the controller is in Error/Stop, create the dump before cycling power—the dump captures the fault state, which is what you need to analyze.
5.3 Opening System Dumps in Automation Studio
To analyze a system dump file in Automation Studio’s Logger:
- Open Automation Studio.
- Open or create a project — the Logger tool requires at least a project to be open. If you do not have the real project, create a dummy project (any valid B&R project with the same or similar controller target). The Logger uses the project context only as a container; it reads the dump data from the file itself.
- Workaround: Create a new project, add a single controller of the same type as the PLC (e.g., CP1584), and save it. This is enough.
- Open the Logger — use Ctrl+L or go to Tools → Logger.
- In the Logger, click Load Data (or File → Load Data).
- Navigate to the
.tar.gzsystem dump file and open it. - The Logger will parse the dump and display all contained diagnostic data.
5.4 Limitations of Logger with Dummy Projects
When using a dummy project to analyze a dump from an unknown machine:
- Hardware tree mismatch — the dummy project won’t match the real hardware. Logger may show some modules as “unknown.” This is acceptable; the logbook and diagnostic data are still fully readable.
- No variable cross-reference — without the real project’s variable declarations, Logger cannot resolve variable names in the dump’s memory snapshots. You see raw addresses, not symbolic names.
- No source-level debugging — Logger shows diagnostic data, not source code. To trace logic, you still need the actual project.
Despite these limitations, the logbook data, error codes, and task state information alone are often enough to diagnose the root cause of a fault.
6. Common Error Codes
The following error codes are frequently encountered in B&R CP1584 and similar controllers. They appear in the SDM System Logbook and in Automation Studio diagnostics.
| Error Code | Severity | Description | Typical Cause | Recommended Action |
|---|---|---|---|---|
| 8021 | Error | Configuration error / invalid configuration | Missing or corrupt configuration on controller | Re-upload configuration via Automation Studio; check if SDM/config files are intact |
| 8099 | Error | General system error / unspecified fault | Various — check logbook for surrounding entries for context | Review full logbook around the 8099 timestamp; look for preceding warnings |
| 9204 | Fatal | Temperature shutdown — controller exceeded safe operating temperature | Blocked ventilation, failed fan, ambient temperature too high, high CPU load generating excess heat | Immediately check cooling/ventilation; reduce CPU load if possible; let controller cool before restart; inspect fan operation |
| 9206 | Error | Hardware fault / module error | I/O module failure, bus communication failure, module not responding | Check I/O module status in SDM; reseat modules; inspect bus cables; check for loose connections |
| 9210 | Fatal | Watchdog timeout / system reset — a task exceeded its maximum cycle time | Task stuck in infinite loop, blocking I/O call, excessive interrupt load, communication timeout | Check Task Monitor for which task is near/exceeding its limit; review that task’s code (if project is available); check for communication timeouts (PVI, fieldbus) |
| 9212 | Error | Memory error / insufficient memory | Memory allocation failure, buffer overflow, too many instances | Check Memory Information in SDM; reduce dynamic allocations; check for memory leaks in user program |
| 9214 | Error | Communication error / connection lost | Lost connection to upstream/downstream device, network cable issue, protocol mismatch | Check network cables; verify IP configuration; check ANSL connection (port 11169); verify PVI connection parameters |
Error Code Investigation Procedure
- Note the error code and timestamp from the SDM logbook.
- Look at 5-10 entries before the error — preceding warnings often indicate the root cause (e.g., a communication timeout followed by a watchdog trip).
- Look at entries after the error — does the controller recover, or does it go to Stop?
- Cross-reference the error code in the table above.
- If the error is recurring, download a system dump and analyze in Automation Studio Logger.
7. ANSL Communication (PVI Port)
7.1 ANSL TCP Port
B&R controllers use the ANSL (Automation Network Service Layer) protocol for PVI (Process Visualization Interface) and automation communication. The default TCP port is 11169.
This port is used by:
- Automation Studio to connect to the PLC for programming, debugging, and configuration.
- PVI-based HMI applications (e.g., VNC, Panel Builder, custom SCADA) to exchange data with the PLC.
- OPC UA and other higher-level protocols that run on top of PVI.
7.2 Port Accessibility
- Ensure port 11169 is reachable from your Automation Studio workstation (test with
telnet <PLC_IP> 11169or a similar tool). - Firewalls between your PC and the PLC must allow TCP/11169.
- If Automation Studio cannot connect to the PLC but SDM (port 80) works, the ANSL port may be blocked or the PVI service may not be running.
7.3 Troubleshooting Connection Issues
| Symptom | Possible Cause | Check |
|---|---|---|
| Automation Studio cannot discover PLC | ANSL port blocked | telnet <PLC_IP> 11169 |
| SDM works but AS cannot connect | PVI service disabled | Check AR configuration; ensure PVI/ANSL is enabled |
| Connection drops intermittently | Network issue / switch problem | Check cables, switch ports, network load |
| “Unknown target” in AS | Controller type mismatch | Ensure AS version matches runtime; correct target type selected |
8. Practical Procedures for Undocumented Machines
8.1 First Contact — What to Do When You Have No Documentation
-
Find the PLC IP address.
- Check the machine’s network switch/router for B&R MAC addresses (OUI: 00:0C:CD or similar).
- Use B&R IP Address Finder tool (part of Automation Studio installation) to scan the subnet.
- Check if a label on the controller shows an IP (common on well-maintained machines).
- Try common B&R defaults:
192.168.1.10,192.168.0.10.
-
Open SDM in a browser.
- Navigate to
http://<PLC_IP>/sdm. - If SDM loads, proceed. If not, try enabling it via Automation Studio (see Section 2.1).
- Navigate to
-
Record the hardware configuration.
- In SDM, go to I/O Module Status.
- Document every module: type, slot, status, firmware version.
- This becomes your hardware reference.
-
Download and review the System Logbook.
- Look for recurring errors.
- Note the controller firmware version (shown in SDM header or hardware info).
- Check if the controller is in Run, Error, or Stop state.
-
Create a system dump.
- Download the
.tar.gzfile. - Open it in Automation Studio Logger (Ctrl+L → Load Data).
- Review all diagnostic data offline.
- Download the
-
Attempt to upload the configuration.
- In Automation Studio, use Online → Upload to pull the configuration from the PLC.
- This gives you the configuration (hardware tree, task structure, network settings) without the source code.
- Upload does not give you the PLC program logic, but it gives you the project skeleton.
8.2 Routine Health Check Procedure
For machines you maintain but did not program, perform these checks periodically:
- Open SDM → System Logbook — scan for new warnings/errors since last check.
- Task Monitor — verify no task is approaching its watchdog limit; check for any task in Error state.
- CPU Usage — ensure not consistently above 80%.
- Memory Information — ensure not above 90% (leave headroom for peak operation).
- I/O Module Status — verify all modules show OK.
- If anything looks off, create a system dump before the situation degrades.
8.3 Post-Fault Investigation Procedure
- Do not cycle power yet. The fault state contains diagnostic information.
- Open SDM → System Logbook — read the last 20+ entries to understand the fault sequence.
- Create a system dump immediately — this captures the fault state.
- Task Monitor — check if any task is in Error or has an extreme max cycle time.
- I/O Module Status — check if any module is in Error or Not Responding.
- Download the dump and analyze in Automation Studio Logger.
- Cross-reference error codes with the table in Section 6.
- Only after gathering all diagnostic information, address the root cause and restart the controller.
9. SDM Advanced Features
9.1 Alarm Visualization
SDM provides an alarm overview section that aggregates active alarms and warnings from the system logbook. On newer AR versions (V4.0+):
- Active alarm count — grouped by severity (Warning, Error, Fatal).
- Alarm list — each row shows timestamp, alarm class, alarm ID, source module, and description. Clicking may reveal additional detail on some versions.
- Alarm acknowledgment — newer versions allow acknowledging alarms from the web interface, clearing them from the active display (does not fix the underlying cause).
- Historical alarm filter — some versions include date/time range and severity filters.
On CP1584 controllers running older AR versions (V3.x), the alarm view is typically limited to a simple scrolling list of the most recent logbook entries with no filtering or acknowledgment capability.
9.2 Trending and Graphing Capabilities
SDM does not include built-in trending. Workarounds: programmatic polling with time-series storage (Section 10), B&R mapp View widget trends, Automation Studio Watch/Trace, or OPC-UA subscriptions to external tools like Grafana.
9.3 Firmware and Software Version Display
SDM shows key identifiers in the hardware information area:
| Field | Description |
|---|---|
| Automation Runtime version | AR version (e.g., V4.12, V4.73). Determines feature availability. |
| Target type | Controller model (e.g., CP1584, CP1585). |
| Serial number | Hardware serial of the controller. |
| Hardware revision | PCB revision level. |
| System software version | Additional software component versions. |
| Module firmware versions | Firmware of each I/O module (shown in I/O Module Status). |
This information determines whether a specific SDM feature is available, whether firmware updates are needed, and which Automation Studio version is required to connect.
9.4 SDM Access via HTTPS (Newer AR Versions)
Starting with Automation Runtime V4.0, the B&R web server supports HTTPS:
https://<PLC_IP>/sdm
Requirements and notes:
- TLS certificate — controller ships with a self-signed certificate (browsers show a security warning). CA-signed certificates can be uploaded via Automation Studio.
- Must be explicitly enabled in AR configuration under System → Configuration → Web Server. Not enabled by default.
- Port — HTTPS typically uses 443, configurable in web server settings.
- HTTP redirect — some versions can redirect HTTP (port 80) to HTTPS (port 443).
For undocumented machines, try HTTP first (http://<PLC_IP>/sdm). If it fails, try HTTPS. If both fail, the web server or SDM may not be enabled.
9.5 SDM REST API for Programmatic Access
Newer Automation Runtime versions (V4.50+) expose a limited REST-like interface alongside the SDM web pages. This is not a fully documented public API, but the following endpoints are observable on V4.x controllers:
| Endpoint | Method | Description |
|---|---|---|
/sdm/api/system/info | GET | Controller type, AR version, serial number, uptime |
/sdm/api/taskmonitor | GET | Task monitor data (names, cycle times, states) |
/sdm/api/memory | GET | Memory usage breakdown |
/sdm/api/logbook | GET | Recent logbook entries; supports ?count=N and ?severity=Error |
/sdm/api/modules | GET | I/O module status list |
/sdm/api/dump | POST | Triggers system dump creation |
Caveats: these endpoints are not officially documented and may change between firmware versions. On V3.x they generally do not exist. No auth on older firmware; newer may require credentials. Probe http://<PLC_IP>/sdm/api/system/info with curl to test.
9.6 SDM User Authentication
Starting with Automation Runtime V4.20, SDM supports optional user authentication:
- Username/password login — credentials managed in AR configuration under System → Configuration → Users.
- Default credentials — many controllers ship with a default admin account. Check default settings or machine documentation.
- Role-based access — users can be assigned roles limiting access to certain SDM sections.
- Anonymous access — on controllers where authentication is not configured, SDM remains open. Default on older firmware.
If you encounter a login prompt without credentials, check with the previous maintainer or OEM. Authentication cannot be bypassed via the web interface.
9.7 SDM System Configuration Display
SDM includes a read-only view of system configuration parameters. Typically visible:
- Network configuration — IP address, subnet mask, gateway, DNS servers, hostname.
- Time synchronization — SNTP/NTP server settings, current time, timezone offset.
- Communication settings — ANSL port, OPC-UA endpoint, POWERLINK settings.
- Task configuration — task names, configured cycle times, watchdog limits.
- File system paths — default directories for logs, configuration, user data on CF card.
This read-only view is valuable for undocumented machines as it reveals operational settings without needing the project file. Not all parameters are visible through SDM — some are only accessible via Automation Studio.
9.8 SDM File Browser
On controllers with CompactFlash storage, some SDM versions include a file browser for viewing and downloading files:
- System log files — text log files written by the runtime.
- Configuration files —
.cfg,.xmlconfiguration files on the CF card. - User files — files placed on the CF card by the application or user.
- System dump files — previously created dumps stored on the controller.
Limitations: availability depends on AR version and web server configuration. Upload and deletion are typically not available — this is a read-only interface. Large files or deep directory trees may cause slow rendering or timeouts.
10. Programmatic SDM Data Access
10.1 Python Script to Scrape SDM Web Pages
For controllers running AR V3.x where no REST API exists, the HTML pages served by SDM can be parsed programmatically using requests and BeautifulSoup (pip install requests beautifulsoup4):
import requests
from bs4 import BeautifulSoup
from datetime import datetime
import json
PLC_IP = "192.168.1.10"
SDM_BASE = f"http://{PLC_IP}/sdm"
def get_sdm_page(path):
url = f"{SDM_BASE}/{path}"
resp = requests.get(url, timeout=10)
resp.raise_for_status()
return resp.text
def parse_task_monitor(html):
soup = BeautifulSoup(html, "html.parser")
table = soup.find("table")
if not table:
return []
headers = [th.get_text(strip=True) for th in table.find_all("th")]
tasks = []
for row in table.find_all("tr")[1:]:
cells = [td.get_text(strip=True) for td in row.find_all("td")]
if len(cells) == len(headers):
tasks.append(dict(zip(headers, cells)))
return tasks
snapshot = {
"timestamp": datetime.utcnow().isoformat() + "Z",
"tasks": parse_task_monitor(get_sdm_page("taskmonitor")),
}
print(json.dumps(snapshot, indent=2, default=str))
Important notes:
- The URL paths (
/sdm/cpu,/sdm/taskmonitor,/sdm/memory) are illustrative. Actual paths vary by AR version. Inspect the SDM page source in a browser to determine correct paths for your controller. - Table structures in the SDM HTML change between firmware versions. Adjust the parsing logic accordingly.
10.2 Parsing the SDM HTML Interface Programmatically
The SDM interface is standard server-rendered HTML. To parse any SDM page:
- Inspect page source in your browser (F12 developer tools) to find
<table>elements containing target data. - Handle pagination — some pages paginate with URL parameters (e.g.,
?page=2&count=50). Loop through pages to collect all entries. - Handle frame-based layouts — older SDM versions use HTML framesets. Fetch frame URLs individually by inspecting
<frame src="...">attributes. - Character encoding — controllers may serve ISO-8859-1 or UTF-8. Check the
Content-Typeheader or setresp.encodingexplicitly.
10.3 Using Requests + BeautifulSoup to Extract Task Monitor Data
The task monitor page is the most useful data to scrape. Key considerations:
- Refresh rate — SDM shows snapshots. Poll every 30-60 seconds.
- Max cycle time — running maximum since last restart. A sudden jump between polls indicates a recent anomaly.
- Task state changes — transition from “Running” to “Error”/“Waiting” is an immediate alert.
- Watchdog proximity — ratio of max cycle time to watchdog limit. Above 80%: warning; above 95%: critical.
10.4 Using SDM Data in Automated Monitoring Systems
SDM data can be integrated into monitoring tools: write a Prometheus exporter for Grafana dashboards, a Nagios/Icinga check plugin, use Telegraf’s http_json/exec plugins, or publish to MQTT for Node-RED subscribers. Key considerations: rate-limit polling (CP1584 web server has limited capacity), cache if multiple consumers need data, handle reboots gracefully, and track uptime to detect unexpected restarts.
11. System Dump Deep Dive
11.1 What Is Inside the .tar.gz File
A system dump .tar.gz archive typically contains:
system_dump/
info/
hardware.txt, software.txt, configuration.txt, network.txt
log/
logbook.txt, logbook_alarms.txt
diagnostic/
tasks.txt, memory.txt, io_status.txt, cpu.txt
trace/
cyclic_trace_*.dat, bus_trace_*.dat (binary)
files/
*.cfg, *.xml (config snapshots)
runtime/
global_vars.bin, task_stacks.bin (binary)
Exact contents vary by AR version and controller type. Trace and runtime sections may be empty if no tracing was configured. The info/ and log/ directories are always present.
11.2 Extracting and Examining Specific Dump Files Without Automation Studio
The .tar.gz archive is a standard tar+gzip file. No B&R software needed:
mkdir dump_extracted
tar xzf system_dump_20260710_143022.tar.gz -C dump_extracted
Key files to examine directly with any text editor:
info/hardware.txt— controller type, serial, AR version, hardware revision.log/logbook.txt— complete logbook; most immediately useful for fault analysis.diagnostic/tasks.txt— task cycle time statistics at dump time.diagnostic/io_status.txt— I/O module listing and status.diagnostic/memory.txt— memory usage at dump time.
Binary files (.dat, .bin) require Automation Studio Logger.
11.3 Log File Format Inside the Dump
The log/logbook.txt uses a structured text format:
[2026-07-10 14:30:22.123] [Error ] [9210] [TaskMonitor] Cyclic#1 exceeded watchdog limit (cycle=52.3ms, limit=50.0ms)
Field breakdown: Timestamp (YYYY-MM-DD HH:MM:SS.mmm, controller local time), Severity (Info/Warning/Error/Fatal), Event ID (numeric, matching Section 6 codes), Source (subsystem or module), Description (may include numeric values). Some entries have additional fields or multi-line descriptions, especially hardware fault events.
11.4 Configuration Snapshot Content
The info/configuration.txt file contains key-value pairs. Typical entries:
Controller Type: CP1584
Automation Runtime: V4.73
Uptime: 14d 06h 23m 11s
Network.IP: 192.168.1.10
ANSL.Port: 11169
OPC-UA.Enabled: true
WebServer.Enabled: true
SDM.Enabled: true
Powerlink.CycleTime: 1000us
This captures only operational parameters the diagnostic subsystem can read. For complete configuration (hardware tree, task mappings, variables), you need the project file.
11.5 Comparing Dumps Over Time (Diff Analysis)
When troubleshooting intermittent issues, comparing dumps from different time points reveals state changes:
diff -u dump_20260709/log/logbook.txt dump_20260710/log/logbook.txt
diff -u dump_20260709/diagnostic/tasks.txt dump_20260710/diagnostic/tasks.txt
diff -u dump_20260709/diagnostic/memory.txt dump_20260710/diagnostic/memory.txt
What to look for:
- New error entries — errors in the later dump indicate a developing fault.
- Memory growth — increasing user memory across dumps without a corresponding decrease suggests a memory leak.
- Max cycle time increase — a task’s max cycle time growing progressively indicates accumulating latency.
- Module status changes — a module going from OK to Error points to hardware degradation.
- Configuration changes — differences in
configuration.txtmean someone changed runtime settings between dumps.
11.6 Retention and Storage of Dumps for Compliance
For environments requiring diagnostic retention:
- Naming convention —
PLC01_CP1584_FAULT_20260710.tar.gz(machine ID, controller, reason, date). - Storage — network share alongside maintenance logs.
- Retention — at least warranty period or regulatory requirement (typically 2-5 years for ISO 9001).
- Metadata log — spreadsheet tracking date, machine ID, serial, AR version, reason, file location, analysis notes, root cause.
- Size — 5-50 MB compressed. Store compressed; dispose per data retention policy when expired.
11.7 System Dump via CLI: systemdump.py (Open Source)
The systemdump.py tool by the hilch community contributor automates system dump creation, upload, and inventory extraction from the command line — no browser or Automation Studio required.
Installation:
pip install systemdumpy
Creating, uploading, and saving a dump from CLI:
py -m systemdumpy 192.168.1.10 -cuv -p MyMachine_
Output:
create a systemdump on 192.168.1.10
upload systemdump from 192.168.1.10
saving MyMachine__BuR_SDM_Sysdump_2026-07-10_14-30-55.tar.gz (2820986) bytes
Flags:
| Flag | Action |
|---|---|
-c | Create a dump on the remote PLC |
-u | Upload/download the dump from PLC to local file |
-d | Delete the last dump from the PLC (free storage) |
-n | Create dump without data files (logger, NCT, profiler — smaller) |
-p PREFIX | Prepend a prefix to the output filename |
-i | Create an inventory list (.xlsx) from an existing dump file |
-v | Verbose output |
Batch automation example — dump all machines on a subnet:
for ip in 192.168.1.10 192.168.1.11 192.168.1.12; do
py -m systemdumpy "$ip" -cuv -p "$(hostname)_${ip}_" || echo "FAILED: $ip"
done
Creating hardware inventory from an existing dump file:
py -m systemdumpy BuR_SDM_Sysdump_2026-07-10_17-43-05.tar.gz -iv
This extracts all hardware module information (type, serial, firmware, status) into an .xlsx spreadsheet — invaluable for building spare parts inventories on undocumented machines. See spare-parts.md for the inventory methodology.
Viewing dumps without Automation Studio:
The SystemDumpViewer (GPL v3, desktop app) can open .tar.gz system dump files on any platform without Automation Studio installed. It displays hardware info, logbook, task timing, IO status, and memory data from the XML inside the archive.
12. AR Logbook Deep Analysis
12.1 Logbook Entry Format Details
The Automation Runtime system logbook records events in a structured format. Understanding the exact field layout is essential for programmatic parsing and filtering:
[YYYY-MM-DD HH:MM:SS.mmm] [Severity ] [EventID] [Source ] Description text
Severity levels in order of increasing criticality:
| Level | Meaning | Controller Response |
|---|---|---|
| Info | Informational (startup, normal state change) | Logged only. No action. |
| Warning | Non-critical anomaly | Logged. May trigger user alarm. Controller continues. |
| Error | Fault affecting a subsystem | Logged. Affected subsystem may halt. Other tasks continue. |
| Fatal | Critical fault requiring restart | Logged. Controller goes to Error/Stop state. Manual intervention required. |
Timestamps use the controller’s local time. If the clock is wrong (no SNTP sync, dead backup battery), timestamps will be offset from real time. Always verify time sync before relying on timestamps for forensic analysis.
12.2 Filter Patterns for Common Issues
When searching the logbook for specific problem categories:
Communication issues:
- Event IDs:
9214,5xxxrange. Sources:ANSL,PVI,Powerlink,EtherCAT,Modbus. - Descriptions:
timeout,connection lost,cable,retry.
Task/execution issues:
- Event IDs:
9210,5xxxrange. Sources:TaskMonitor,Cyclic,Timer. - Descriptions:
exceeded,watchdog,cycle time,overflow.
Hardware issues:
- Event IDs:
9204(temperature),9206(module fault). Sources:Hardware,I/O,Bus. - Descriptions:
temperature,fault,not responding,inserted,removed.
Memory issues:
- Event ID:
9212. Descriptions:memory,allocation,buffer,insufficient.
Startup issues:
- Severity
Fatalin the first 60 seconds after boot timestamps. - Descriptions:
configuration,firmware,initialization,boot.
12.3 Logbook Capacity and Rollover Behavior
The AR system logbook has finite capacity:
- Memory buffer — stored in a fixed-size memory buffer, typically 64 KB to 1 MB depending on controller and configuration.
- Ring buffer — when full, oldest entries are overwritten. No archive to non-volatile storage by default.
- Entry size — 80-200 bytes typical. A 512 KB buffer holds approximately 2,500-6,000 entries.
- Estimated capacity — moderate event activity retains 1-3 days; many warnings may only retain a few hours.
Implications:
- Dumps are essential for long-term analysis — the buffer rolls over, so creating a system dump is the only way to preserve data.
- After a fault, dump immediately — root-cause entries will eventually be pushed out by subsequent events.
- Logbook-to-file — AR V4.x can optionally write logbook entries to a file on the CF card (check AR configuration under System → Configuration → Logbook).
12.4 Exporting Logbook to CSV or Text
Via SDM file browser: navigate to logbook file (typically /log/logbook.txt on CF card) and download.
Via Automation Studio Logger: load dump or connect live, select Logbook view, use File → Export Data.
12.5 Correlating Logbook Entries with POWERLINK Events
On machines using POWERLINK as the fieldbus:
- POWERLINK cycle errors — logbook entries with source
Powerlinkor event IDs in the 6xxx range indicate fieldbus issues, correlating with I/O module status changes in SDM. - Timing correlation — a POWERLINK cycle error followed by a task watchdog timeout (event 9210) within the next few entries indicates the communication fault caused a task to block waiting for I/O data.
- Node-related events — POWERLINK entries referencing specific node numbers cross-reference to I/O modules in SDM to identify the affected physical module.
- Isochronous mode violations — entries mentioning
isochronousortiming violationindicate the network cycle was disrupted, potentially causing motion control or synchronized I/O errors.
For deeper POWERLINK analysis, the dump’s trace/cyclic_trace_*.dat files contain captured cycle data (requires Automation Studio Logger).
12.6 Logbook Retention Policy
| Scenario | Method | Duration |
|---|---|---|
| In-memory ring buffer (default) | Overwrites oldest entries | 1-3 days |
| Logbook to CF card file (V4.x) | Append to file | Weeks to months |
| System dump export | Static .tar.gz on PC | Permanent |
| External log collection | Programmatic scraping + storage | Configurable |
Recommended: configure logbook-to-file on CF card (if supported), create periodic system dumps, and use a Python scraper to capture entries to a central database.
12.7 Reading Logbook via OPC-UA or PVI
For controllers with OPC-UA enabled, logbook entries can be read programmatically:
- OPC-UA logbook node — under
Objects > System > Logbook, provides recent entries as an array. Subscribing gives near-real-time updates. - PVI logbook access — PVI provides a logbook object readable via the PVI .NET, C++, or Python API.
- Event subscriptions — OPC-UA event subscriptions push logbook events as they occur, eliminating polling. Server-side filtering by severity, source, and event ID is supported.
- Endpoint — typically
opc.tcp://<PLC_IP>:4840. Requires OPC-UA enabled in AR configuration and a user account with sufficient permissions.
13. SDM Configuration Without Automation Studio
13.1 Checking if SDM Is Enabled via FTP
When you cannot use Automation Studio, check SDM status by inspecting configuration files via FTP:
- Connect:
ftp <PLC_IP>(default credentials vary; common:admin/adminor no auth on older firmware). - Navigate to configuration directories (e.g.,
/System/Config/,/CF/). - Look for files controlling web server and SDM:
Config.ini(may contain[WebServer]withEnabled=1),SysConfig.xml(XML configuration),BRSystemConfig.cfg(B&R proprietary).
ftp 192.168.1.10
ftp> cd System/Config
ftp> get Config.ini
ftp> get SysConfig.xml
ftp> bye
13.2 Enabling SDM by Modifying Configuration on CF Card
If SDM is not enabled, it may be possible to enable it by modifying configuration files:
In Config.ini — add or modify:
[WebServer]
Enabled=1
Port=80
[SDM]
Enabled=1
In SysConfig.xml — set the enabled attribute:
<WebServer Enabled="true" Port="80">
<SDM Enabled="true" />
</WebServer>
After modification: upload the file via FTP, restart the controller (cold boot is most reliable), and verify at http://<PLC_IP>/sdm.
13.3 What Configuration Files Control SDM and Web Server
| File | Format | Controls | Location |
|---|---|---|---|
Config.ini | INI | Web server enable, port, SDM enable | /System/Config/ or CF root |
SysConfig.xml | XML | Web server, SDM, OPC-UA, network, time sync | /System/Config/ |
BRSystemConfig.cfg | B&R proprietary | System-wide config including web services | /System/ |
WebServer.cfg | B&R proprietary | Web server specific settings | /System/WebServer/ |
Exact file names and locations vary between AR versions. V3.x uses primarily .ini/.cfg; V4.x uses more XML. Inspect the file system via FTP to determine what is present.
13.4 Risks of Modifying Configuration Files Manually
Modifying configuration files directly on the CF card bypasses all validation that Automation Studio performs. Key risks:
- Syntax errors — an incorrectly formatted INI or XML file may cause the controller to fail to boot or refuse to start services.
- Encoding issues — configuration files must use ASCII or ISO-8859-1. Editing on Windows may introduce BOM markers or CRLF line endings the controller cannot parse.
- File permissions — modifying files via FTP may change permissions, preventing the runtime from reading them.
- No validation — invalid port numbers or misspelled settings are silently ignored or cause unpredictable behavior.
- Recovery difficulty — if the modified configuration prevents boot, recovery requires a known-good CF card image or Automation Studio (which may also fail to connect).
Mitigation: always back up the original file first, make one change at a time, keep a record of changes, and have a recovery plan (known-good CF card image or B&R support contact). Prefer Automation Studio’s “Upload from PLC, Modify, Download” workflow whenever possible.
14. Key Findings Summary
- SDM is built into Automation Runtime V3.0+ and requires no additional software to access.
- Web-based access at
http://<PLC_IP>/sdmfrom any browser — no project file, no Automation Studio, no documentation needed. - System logbook is the primary diagnostic tool for understanding controller faults.
- Task Monitor reveals task cycle times and loads — critical for diagnosing watchdog timeouts (error 9210).
- System dumps (
.tar.gz) can be exported from SDM and analyzed offline in Automation Studio Logger (Ctrl+L → Load Data). - Logger requires a project to be open — use a dummy project if the real project is unavailable.
- ANSL default port 11169 is required for Automation Studio and PVI communication — separate from SDM’s HTTP port 80.
- Common error codes include 8021 (config error), 8099 (general), 9204 (temperature shutdown), 9210 (watchdog/reset), and others documented in Section 6.
- Temperature shutdown (9204) is a critical physical fault — always check ventilation and cooling before restarting.
- SDM configuration (web server + SDM enabled) must be set in the AR configuration — if not already enabled on the target controller, you need Automation Studio to enable it.
15. Security Vulnerabilities in SDM
CVE-2025-3450 — SDM Denial-of-Service (Improper Resource Locking)
| Detail | Value |
|---|---|
| CVE | CVE-2025-3450 |
| CVSS | v3.1 7.5 (High), v4.0 8.2 (High) |
| Affected | AR < 6.3 and AR = 6.0 |
| Impact | System node stop via crafted HTTP request to SDM |
| Authentication | Unauthenticated (network-based) |
| Advisory | B&R SA25P002 (2025-10-07) |
All CP1584 systems running AR 4.x are affected. An attacker who can reach port 80/443 can crash the entire controller by sending a specially crafted message to the SDM web interface. This is not theoretical — B&R discovered it through internal security testing.
Mitigations (for systems that cannot update to AR R4.93):
- Disable SDM in the Automation Studio project if not actively needed for maintenance. AR Help GUID:
1d915d67-07f7-4034-a472-c204b5cabbfe - Enable HTTPS with mutual TLS (mTLS) — in AS project, option “Validate SSL communication partner” (GUID:
01ced6c0-28ef-4aaa-bd05-2442b971859c). Note: mTLS also affects other web applications using the AR webserver (mapp View, etc.) - Restrict webserver access to trusted IPs using the AR host-based firewall (GUID:
75b8994b-f97a-4e0f-8278-43c2a737e65f) - Block port 80/443 at the network firewall except during active maintenance windows
- Never expose SDM to the internet or untrusted networks
CVE-2022-4286 — SDM Reflected XSS
| Detail | Value |
|---|---|
| CVE | CVE-2022-4286 |
| CVSS | 6.1 (Medium) |
| Affected | AR >= 3.00 and <= C4.93 |
| Impact | Reflected cross-site scripting — JavaScript execution in authenticated user’s browser |
| Authentication | Requires user interaction (click malicious link while authenticated) |
| Patched | AR R4.93 |
Mitigation: Update to AR R4.93. On older versions, avoid clicking untrusted links while authenticated to SDM.
CVE-2025-3449 — SDM Session Takeover (Predictable Session ID)
| Detail | Value |
|---|---|
| CVE | CVE-2025-3449 |
| CVSS | v3.1 4.2 (Medium) |
| CWE | CWE-340 (Generation of Predictable Numbers or Identifiers) |
| Affected | AR < 6.4 (all AR 4.x versions) |
| Impact | Unauthenticated attacker can take over an already-established SDM session by predicting the session ID |
| Advisory | B&R SA25P003 (2025-10-07), CISA ICSA-26-141-04 |
Practical implications: Since SDM on older AR 4.x versions has no authentication, the predictable session ID means an attacker could hijack a maintenance engineer’s active SDM session. However, B&R notes SDM does not currently process session-specific data, so the practical impact is limited.
Mitigation: Block SDM access at the network firewall when not actively debugging. Never access SDM over untrusted networks. See ar-rtos.md Section 14.15 for full details.
CVE-2025-3448 — SDM Reflected XSS (New, Distinct from CVE-2022-4286)
| Detail | Value |
|---|---|
| CVE | CVE-2025-3448 |
| CVSS | v3.1 6.1 (Medium) |
| CWE | CWE-79 (Improper Neutralization of Input During Web Page Generation) |
| Affected | AR < 6.4 (all AR 4.x versions) |
| Impact | Reflected XSS — attacker can execute arbitrary JavaScript in victim’s browser via crafted SDM URL |
| Advisory | B&R SA25P003 (2025-10-07), CISA ICSA-26-141-04 |
Note: This is a separate vulnerability from CVE-2022-4286 (which was patched in R4.93). CVE-2025-3448 remains unpatched on all AR 4.x versions.
Mitigation: Do not click untrusted links while authenticated to SDM. Deploy a Web Application Firewall (WAF) to filter reflected XSS attempts. Never follow hyperlinks to SDM from emails, social media, or messaging apps.
CVE-2025-11498 — SDM CSV Injection
| Detail | Value |
|---|---|
| CVE | CVE-2025-11498 |
| CVSS | v3.1 6.1 (Medium) |
| CWE | CWE-1236 (Improper Neutralization of Formula Elements in a CSV File) |
| Affected | AR < 6.4 (all AR 4.x versions) |
| Impact | Attacker injects formula data into SDM-generated CSV exports via crafted URL; victim must click link AND manually open CSV in spreadsheet app |
| Advisory | B&R SA25P003 (2025-10-14), CISA ICSA-26-141-04 |
Mitigation: Never use hyperlinks from untrusted sources to access SDM. If you export CSV diagnostic data from SDM, verify the URL was manually typed. Open CSV files from untrusted sources in a text editor first, not directly in Excel.
CVE-2021-22275 — AR Webserver Buffer Overflow (Stops Cyclic Program)
| Detail | Value |
|---|---|
| CVE | CVE-2021-22275 |
| CVSS | 8.6 (High) |
| Impact | Unauthenticated DoS — stops cyclic program via crafted HTTP request |
| Affected | Automation Runtime |
Distinct from CVE-2025-3450 (which targets SDM specifically), this older vulnerability targets the AR webserver more broadly. On affected AR 4.x versions, any HTTP request to port 80 can potentially crash the cyclic program.
SDM Security Recommendations Summary
| Risk Level | Action |
|---|---|
| Immediate | Disable SDM on all production CP1584s that don’t need active monitoring |
| Short-term | Configure HTTPS with mTLS; restrict webserver to trusted IPs via AR firewall |
| Medium-term | Block ports 80/443 at network firewall; enable only during maintenance windows |
| Long-term | Update to AR R4.93 (patches CVE-2025-3450, CVE-2022-4286, CVE-2023-3242, CVE-2025-11044). Note: SA25P003 CVEs (CVE-2025-3449/3448/11498) require AR >= 6.4 and cannot be patched on any AR 4.x version — further reason to disable SDM on production PLCs. |
See ar-rtos.md Section 14 for the complete vulnerability catalog and cp1584-forensics.md for the forensic workflow with security considerations.
16. B&R Automation Academy SDM Learning Content (2026)
In March 2026, B&R released a free microlearning module for the System Diagnostics Manager (SDM) as part of the Automation Academy. This is specifically targeted at end users and service engineers who need quick, reliable diagnostic insights without deep Automation Studio knowledge.
What it covers:
- How to navigate the SDM web interface
- Reading and interpreting the system logbook
- Task monitor usage for performance diagnostics
- I/O module status interpretation
- Creating and downloading system dumps
- Common error code identification
Access: Free through the B&R Automation Academy. Search the B&R Community for “Learning Content for End Users and Service Engineers: SDM” or visit the Automation Academy portal.
Relevance for undocumented machine maintainers: If you are new to B&R systems (inheriting a machine from a defunct OEM), this free training module is an efficient way to learn SDM without needing an Automation Studio license or B&R service contract. It complements this document by providing structured, vendor-approved training material.
Related: B&R also released a “Service & Diagnostics” training track in 2026 covering broader diagnostic techniques. See community.br-automation.com/t/release-2026-new-training-service-diagnostics/11444.
Key Findings
-
SDM is the central diagnostic hub for B&R systems. It aggregates hardware status, task monitoring, IO state, logbook entries, alarm events, and firmware information into a single web-based interface accessible from any browser.
-
SDM is accessible without Automation Studio. The built-in web server (default port 80/443) provides full diagnostic access to any device on the network — no project files, no AS license, and no OEM credentials required.
-
The SDM logbook is the primary forensic data source. Every AR boot, error, warning, and configuration change is timestamped and stored in the logbook. Bulk export via FTP provides the raw material for post-mortem analysis.
-
SDM has known security vulnerabilities. Multiple CVEs affect the SDM web interface (reflected XSS, DoS, authentication weaknesses). On isolated networks this is manageable; on connected networks, the SDM port should be firewalled.
-
Hardware tree in SDM reveals the complete system topology. The hardware tree shows every module, its status, firmware version, and connection path. For undocumented machines, this is the fastest way to map out what hardware is installed.
-
Task Monitor data correlates directly with execution-model.md. SDM shows real-time task cycle times, jitter, and watchdog status — making it the operational complement to the theoretical execution model documentation.
17. Cross-References
| Related File | Relevance |
|---|---|
| firmware.md | Automation Runtime versions, firmware update procedures, version compatibility with SDM features |
| execution-model.md | Task configuration, cycle times, task priorities, watchdog behavior — directly relevant to Task Monitor data in SDM |
| alarm-logging.md | User-level alarm and event logging — complements the system-level logbook in SDM |
| system-variables.md | B&R system variables accessible via Automation Studio that provide additional diagnostic data beyond what SDM shows |
| python-diagnostics.md | Python scripts for SDM data scraping, automated health checks, and logbook parsing |
| opcua.md | Reading diagnostic data via OPC-UA — logbook subscriptions, task monitor access, and alarm event feeds |
| hardware-monitoring.md | Temperature monitoring, fan status, and environmental sensor data — complements SDM hardware info |
| time-sync.md | Timestamp correlation between controller clock, SNTP, and PC time — critical for accurate logbook analysis |
| cp1584-forensics.md | Forensic analysis workflow for CP1584 controllers — combining SDM dumps, logbook analysis, and hardware inspection |
| ftp-web-interface.md | FTP access to config/log files on the CF card — enabling SDM, inspecting configuration, and retrieving logbook files |
| io-card-hardware.md | IO module LED diagnostic patterns — interpreting ‘r’, ‘e’, ‘S’, ‘l’ LEDs that SDM also reports digitally |
| io-sniffing.md | Protocol-level IO diagnostics for X2X and POWERLINK — when SDM shows communication errors |
| network-architecture.md | Network topology and device enumeration — mapping all devices visible in SDM’s hardware tree |
| config-file-formats.md | Configuration files controlling SDM enable/disable and webserver settings |
| access-recovery.md | Password recovery when SDM requires authentication |
| cybersecurity-hardening.md | SDM security vulnerabilities and hardening — SDM is a critical attack surface |
| pvi-api.md | PVI API for programmatic access to SDM diagnostic data from external applications |
| acopos-drives.md | ACOPOS drive status monitoring via SDM — drive fault codes, DC bus voltage, temperature |
| grounding-emc.md | EMC troubleshooting when SDM reports intermittent communication errors |
| online-changes.md | Runtime changes visible in SDM — how SDM reflects configuration modifications |
| cf-card-boot.md | CF card backup procedures using SDM system dump export |
| diagnostic-workstation.md | Setting up a workstation that uses SDM as a primary diagnostic tool |
| bootloader-recovery.md | Recovery procedures when SDM is inaccessible due to boot failure |
| remanufacturing.md | Using SDM data to document a machine before control system replacement |
Document generated for undocumented CP1584 maintenance scenarios. Verify all procedures against the specific controller firmware version in your environment.