Problem Overview
Engineers commissioning a Siemens ET200SP distributed I/O station with a CM PtP (Communication Module – Point-to-Point) running Modbus RTU master frequently encounter the status code 16#8282 at the STATUS output of the Modbus_Master function block. The controller application sees all Modbus requests fail with this exact diagnostic, even when the serial line parameters (baud rate, parity, stop bits) and the physical wiring have already been verified. The status is reported by the TIA Portal instruction regardless of whether the slave is connected, which makes it appear to be a communications issue when the real fault is in the module configuration and slot assignment.
Siemens documents 16#8282 as a status returned by the Modbus_Master / Modbus_Slave instructions when the PORT parameter references a hardware identifier that does not resolve to an available, configured PtP module, or when the underlying CM PtP is unable to operate because the BaseUnit it is plugged into is incompatible. The wording in the Siemens ET200SP CM PtP manual states: "Status 8282 means that value on PORT has to be checked and module must be available." The remedy is therefore a configuration fix, not a cable or termination fix.
Error Code 8282 Definition
| Field | Value |
|---|---|
| Hex status | 16#8282 |
| Decimal status | 33410 |
| Returned by |
Modbus_Master / Modbus_Slave instruction (FB) |
| Master / Slave | Both directions (asymmetric only when MODBUS_MODE differs) |
| Communication type | Modbus RTU serial via CM PtP (RS-485 half-duplex or RS-422 full-duplex) |
| Sticky / transient | Persistent — repeats on every call of the FB until cause is removed |
| Severity | Configuration error, not a wiring error |
The status word from the instruction uses the high word to identify the instruction (0x0001 for Modbus_Master, 0x0002 for Modbus_Slave) and the low word to identify the error class. 16#8282 places the instruction in the 0x82 error class — a "module resource / PORT binding" fault that is raised before any byte is placed on the wire.
Affected Hardware and Firmware
| Article number | Module | Function |
|---|---|---|
| 6ES7137-6AA00-0BA0 | CM PtP (RS-232, RS-422, RS-485) | PtP serial communication in ET200SP |
| 6ES7137-6AA01-0BA0 | CM PtP (current revision) | PtP serial communication in ET200SP, supports Modbus RTU master from firmware V1.1 |
| 6ES7155-6AU00-0BN0 | IM 155-6PN HF | Interface module, ET200SP Profinet head-end |
| 6ES7155-6BA00-0BN0 | IM 155-6PN ST | Interface module, ET200SP Profinet head-end |
| 6ES7193-6BP00-0BA0 / -0DA0 | BaseUnit BU15-P16+A0+2B / BU20-P16+A0+2B | Required BaseUnit for CM PtP |
The CM PtP module only operates correctly when it is mounted on a type B0 or type B1 BaseUnit (BU15-P16+A0+2B or BU20-P16+A0+2B). Mounting the module on a BaseUnit of type A0 (BU15-P16+A0+12B / BU20-P16+A0+12B) — the standard digital-input BaseUnit — prevents the module from establishing the auxiliary voltage routing and the configuration handshake that the CM PtP needs. In that situation the slot appears in the device view, the module is listed under "available modules," but no Hardware Identifier usable as the PORT input is generated for it, and the FB returns 16#8282.
Root Cause Analysis
Status 16#8282 is generated by the instruction's internal initialization routine, before the request queue is touched. The routine performs the following checks on each FB call:
- Resolve the hardware identifier supplied at
PORTto an active CM PtP module in the configured topology of the S7-1500 / ET200SP CPU or interface module. - Confirm that the module has finished parameterization by PROFINET and reports the "OK" module state on the diagnostics page.
- Confirm that the slot's BaseUnit supports the CM PtP's auxiliary voltage routing (BU type A0 is rejected).
- Confirm that the protocol selected in the module properties matches the FB instance — Modbus RTU master or slave.
If any of these checks fail, the FB skips the request, sets ERROR := TRUE, and writes STATUS := 16#8282. The check is repeated on every call of the FB, which is why the error appears "constant" even though the slave is wired correctly and responds to a scope probe on the bus.
PORT Parameter Configuration
The PORT input of the Modbus_Master instruction is a hardware identifier — not the slot number and not the I-address. The hardware identifier is assigned automatically by TIA Portal when the CM PtP is added to the device configuration. It is shown:
- In the inspector window, Properties → System constants, under the name "Hardware identifier" of the CM PtP.
- Or in the PLC tags of the project as a constant of type
HW_IO, typically in the range256..511for ET200SP slots.
The common configuration errors that yield 16#8282 are:
| Symptom in TIA Portal | Cause |
|---|---|
| Hardware identifier shown greyed out in the FB drop-down | CM PtP module not yet compiled to the hardware configuration, or another device revision is loaded |
| Hardware identifier references an old module removed from the rack | Device was rebuilt and the FB's PORT constant still points to the old slot's identifier |
| Hardware identifier points to the IM 155, not the CM PtP | The wrong element was dragged onto PORT during initial configuration |
| Hardware identifier resolved but module state is "Station failure" | PROFINET connection between CPU and ET200SP head-end is interrupted or wrong GSD loaded |
Correct the FB instance by re-selecting PORT from the drop-down inside TIA Portal. Do not hand-enter a value — let the editor bind to the actual identifier from the device view.
BaseUnit Compatibility Check
Verify the BaseUnit before powering up:
- Power down the ET200SP station.
- Pull the CM PtP out of its slot.
- Read the article number on the front of the BaseUnit. Acceptable article numbers for CM PtP are limited to:
6ES7193-6BP00-0BA0(BU15-P16+A0+2B, push-in, 2 AUX terminals)
6ES7193-6BP00-0DA0(BU20-P16+A0+2B, push-in, 2 AUX terminals)
6ES7193-6BP20-0BA0(BU15-P16+A0+2B, screw-type)
6ES7193-6BP20-0DA0(BU20-P16+A0+2B, screw-type) - If the BaseUnit article number ends in
...+12B(BU type A0 with 12 AUX terminals) it is the wrong unit and must be replaced. - Re-seat the CM PtP firmly so the backplane pins engage on both rows of the BaseUnit.
- Power up and re-download the hardware configuration.
Modbus_Master will return 16#8282.Diagnostic Procedure
- Open TIA Portal and go online with the CPU that hosts the ET200SP.
- Open Devices & Networks, right-click the ET200SP station and select Online & diagnostics.
- Expand Diagnostic status. Confirm that the CM PtP slot reports
OKand notModule faultyorWrong module. - Open the Watch table with the project tags for
Modbus_Master:
REQ,MB_ADDR,MODE,DATA_ADDR,PORT,ERROR,STATUS. - Force
REQ := FALSEand observeSTATUS. IfSTATUSstays16#8282withREQ := FALSE, the error is configuration-side, not protocol-side — proceed to fix the PORT binding. - If
STATUSchanges to a different code withREQ := FALSE, log the new code and consult the Modbus_Master status table for protocol-side troubleshooting.
Step-by-Step Resolution
- Confirm the hardware identifier: In the project tree, right-click the CM PtP → Properties → System constants. Note the numeric value of the Hardware identifier.
-
Re-bind PORT in the FB: Open the
Modbus_Masterinstance DB. On thePORTinput, click the drop-down and re-select the CM PtP. Re-compile the project (Ctrl+B). - Verify the BaseUnit type: Pull the module and read the article number on the BaseUnit. Replace with a BU15/20-P16+A0+2B variant if needed.
-
Verify protocol assignment: Open the CM PtP properties, Operating mode tab. Select "Modbus master (RTU)" for the port being used. If "Freeport" or "USS" is selected,
Modbus_Mastercannot bind and returns16#8282. - Re-download hardware configuration: Drag the station from the project tree onto the CPU, "Hardware and software only" is fine if the program has already been downloaded.
-
Re-download the program blocks: Download the FB instance, the
Modbus_Comm_Loadinstance (if used), and the call site (OB1 / cyclic OB). -
Restart the FB: Set the
REQinput false for one scan, then re-trigger a read with the appropriateMODEandDATA_ADDRvalues.
Verification
After the corrective steps the verification routine is:
- Put the CPU in RUN.
- In a watch table, force
MB_ADDR := 1(or the actual slave address),MODE := 0(FC 03 read holding registers),DATA_ADDR := 0,DATA_LEN := 1,REQ := TRUE. - Confirm that
STATUSreturns16#0000on success or a transient code such as16#7000while busy. - Check the response data at
DATA_PTR[0]— it should now reflect a real register from the slave. - Open the CM PtP diagnostics buffer in TIA Portal and confirm "No errors" for the Modbus master port.
A persistent 16#8282 after these steps indicates either a stale project build that did not re-bind the PORT or a duplicate hardware identifier across two CM PtP modules in the same station. Repeat the binding step after a full project rebuild (Project → Rebuild all).
Related Error Codes and Status Words
| STATUS hex | Meaning | Typical cause |
|---|---|---|
16#7000 |
No job active | Normal idle state |
16#7001 |
Job running, first call | Normal in-flight state |
16#7002 |
Job running, follow-on call | Normal in-flight state |
16#8280 |
Modbus_Comm_Load not yet called | Initialization sequence reversed |
16#8281 |
Modbus port in wrong mode | Port configured for Freeport instead of Modbus RTU |
16#8282 |
PORT invalid / module not available | Hardware identifier does not resolve |
16#8283 |
Data pointer invalid |
DATA_PTR null or wrong size |
16#8285 |
Length out of range |
DATA_LEN exceeds buffer |
16#82C0 |
Slave did not respond | Wiring, addressing, baud rate mismatch |
16#82C1 |
CRC error in response | Bus contention, termination, EMC |
16#82C2 |
Function code not supported | Slave does not implement FC 03/06/16 |
16#82C3 |
Exception code 02 (illegal data address) | Register map out of slave range |
16#82C4 |
Exception code 03 (illegal data value) | Slave rejected value |
Codes in the 0x82 class are always configuration-side. Codes in the 0x82C0..82FF class are protocol- or wiring-side. The transition between the two is the quickest field test for whether the FB has bound correctly: if the failure moves from 16#8282 to 16#82C1 after a re-bind, the configuration is now correct and the remaining work is wiring or slave-side addressing.
Best Practices to Avoid 8282
- Always select
PORTfrom the drop-down list of the FB in TIA Portal. Do not paste numeric values from external documentation. - Standardize on a single BaseUnit article number for every CM PtP slot — write the part number into the rack layout drawing.
- After any hardware change in ET200SP, do a Project → Rebuild all before downloading, so that hardware identifiers regenerate.
- Use the CM PtP's web server or TIA Portal Online & diagnostics → Module information page to read the firmware version of the CM. Modbus RTU master is supported from firmware V1.1 upward on
6ES7137-6AA01-0BA0. - Document the Modbus port's operating mode (RTU, RTU over TCP, ASCII) on the cabinet drawing. Mixing RTU and TCP configurations in the same project is a known cause of status word confusion.
FAQ
What does Modbus RTU error 8282 mean on a Siemens CM PtP?
16#8282 is the status returned by the Modbus_Master or Modbus_Slave instruction when the hardware identifier at the PORT input does not resolve to an available, configured CM PtP module, or when the module's BaseUnit (BU type A0 instead of B0/B1) is incompatible. Check the hardware identifier binding and the BaseUnit article number before troubleshooting wiring.
Which BaseUnit article numbers are compatible with the CM PtP?
The CM PtP (6ES7137-6AA00-0BA0 / -0AA01-0BA0) requires a type B0 or B1 BaseUnit: 6ES7193-6BP00-0BA0, 6ES7193-6BP00-0DA0, 6ES7193-6BP20-0BA0, or 6ES7193-6BP20-0DA0. Type A0 BaseUnits with 12 AUX terminals (article numbers ending in ...+12B) cannot route the auxiliary voltage needed by the CM PtP and will cause the module to be flagged as inaccessible.
Why does 8282 stay present even after I fix baud rate, parity, and wiring?
The status 8282 is raised during the FB's initialization before any byte is transmitted on the wire. It is not a communications error — it is a binding error between the FB and the hardware. Correcting baud rate, parity, stop bits, and termination has no effect on the binding. Re-bind the PORT input from the device view and verify that the CM PtP module reports OK in the online diagnostics.
How do I find the correct hardware identifier for the CM PtP in TIA Portal?
Open the device view, click the CM PtP slot, then go to the inspector window Properties → System constants. The numeric value of the Hardware identifier listed there is what the PORT input must reference. Drag-and-drop the CM PtP element directly onto the PORT input of the FB to ensure the binding is rebuilt automatically.
After fixing the configuration, the FB now returns 16#82C1 — what changed?
Moving from 16#8282 to 16#82C1 confirms that the configuration binding is correct and the FB is now talking on the wire. 16#82C1 means the slave returned a response with a CRC error, which points to bus contention, missing termination resistors on RS-485, a swapped A/B pair, or a baud rate / parity mismatch between the CM PtP and the slave. Proceed with bus-termination checks and verify the slave's serial parameters.