Overview
The Schenck DISOCONT Master PCI is a gravimetric loss-in-weight feeder controller used in batching, dosing, and continuous weighing skids. When integrated as a Profibus DP slave on a Siemens S7-400 running PCS7, the controller exchanges cyclic process data (setpoint, actual flow, status word, command bits) and acyclic parameter data (calibration, recipe setpoints, totals) with the automation system over a single physical segment.
Field experience shows that the integration rarely fails because of incorrect PLC programming. The dominant failure mode is a slave-side process-data configuration mismatch that prevents the controller from publishing the data block the master is requesting, even though the Profibus diagnostic LED on the slave and the master both report a healthy cyclic link.
This reference documents the full integration procedure, including GSD module selection, SFC14/SFC15 call conventions, the PCS7 ANY-pointer workaround, and the slave-side configuration steps that resolve the all-too-common symptom of zero inputs with no SFC error.
Prerequisites
| Item | Specification |
|---|---|
| SIMATIC S7-400 CPU | CPU 414-3 / 416-3 or higher; PCS7 V8.x or V9.x |
| Engineering station | SIMATIC Manager (Step 7 V5.5+) or PCS7 Engineering Toolset |
| Profibus DP master interface | CP 443-5 Extended or integrated DP port on the CPU |
| Schenck GSD file | Vendor-supplied GSD for DISOCONT Master PCI (file dated from controller firmware) |
| Cable plant | Profibus DP cable, 9.6 kbit/s to 12 Mbit/s; terminating resistors at both ends |
| Termination / shielding | Profibus connector with switchable termination, 360° shield contact |
| Slave firmware | DISOCONT controller firmware matched to the GSD revision (verify in controller menu) |
Schenck DISOCONT Communication Profile
The DISOCONT GSD defines the slave as a modular DP device. Four cyclic I/O modules ship in the same GSD, all sharing the same identification string DISOCONT MASTER PCI:
| Module name | I/O length | Bytes per direction | Typical use |
|---|---|---|---|
| DISOCONT MASTER PCI — 32 bytes | 32 B in / 32 B out | 32 | Compact, status-only exchanges |
| DISOCONT MASTER PCI — 64 bytes | 64 B in / 64 B out | 64 | Extended status without floating-point words |
| DISOCONT MASTER PCI — 32 words | 32 W in / 32 W out | 64 | Standard setpoint + actual flow |
| DISOCONT MASTER PCI — 64 words | 64 W in / 64 W out | 128 | Full process image including KME optionals |
Although all four variants carry the same device identifier, only one can occupy the slot in the slave. The selected module determines the I/O length the master must reserve in its process image and the LADDR value passed to SFC14/SFC15.
Hardware Configuration in PCS7
- Copy the DISOCONT GSD file into
Siemens\Automation\SIMATIC Manager\S7libs\gsd(or the equivalent path in the PCS7 installation). - Open HW Config and run Options → Install GSD File. The DISOCONT Master PCI appears under PROFIBUS DP → Additional Field Devices → Weighing → Schenck.
- Drag the slave onto the DP master system and assign the desired Profibus address (typical: 3–32, must match the address set on the DISOCONT front panel).
- Insert the appropriate module into slot 1 of the slave. Choose the 64-word module unless a Schenck sizing study explicitly recommends a smaller variant.
- Compile and download the HW Config to the AS. Confirm with PLC → Compile and Download Objects.
The Address tab in HW Config now displays the base I-address for inputs and Q-address for outputs. These values are the LADDR you must pass to SFC14/SFC15.
Why the 32-Byte Variant Reports a Red Slash
A red slash through the DP slave icon in HW Config online view means the master has detected the slave in a non-dataexchange state. The two common root causes with the DISOCONT are:
- The controller firmware cannot pack the configured process-data block into 32 bytes (it requires at least 64 bytes / 32 words), so it rejects the configuration telegram and remains in Wait Prm.
- The DP slave diagnostic buffer reports
PRM-ERRORbecause the master requested a module length the slave does not support in the active firmware.
Switching to the 64-word module increases the I/O area to 128 bytes per direction, which provides enough room for the standard setpoint, actual flow, status, and command registers. The diagnostic clears once the slave accepts the configuration.
LADDR Derivation for SFC14 and SFC15
The LADDR parameter expects the logical base address of the module in the I area (for SFC14) or Q area (for SFC15). It must be supplied as a WORD in hex.
| HW Config display | Decimal LADDR | Hex LADDR | SFC |
|---|---|---|---|
| Input module base I-address = 1720 | 1720 | 16#06B8 | SFC14 (DPRD_DAT) |
| Output module base Q-address = 656 | 656 | 16#0290 | SFC15 (DPWR_DAT) |
If the HW Config online view reports the input module base at a different value (for example 1270), trust the HW Config online value over any offline calculation: addresses are reassigned automatically by PCS7 after a download. Convert the displayed decimal value to hex before assigning it to the SFC LADDR input.
A common pitfall is to pass a hex value that matches a slot offset instead of the module base. Doing so returns SFC14 RET_VAL = 16#8090 (address error). When RET_VAL is zero but inputs still read zero, the slave is in data exchange but is publishing stale or zero data — the symptom is software-correct on the master side.
SFC14 (DPRD_DAT) and SFC15 (DPWR_DAT) Usage
Because the 64-word module (128 bytes per direction) exceeds the 4-byte consistency limit of standard I/O accesses, consistent data transfer via the DP standard SFCs is mandatory. Direct byte/word/dword load instructions would risk reading a torn image.
// Read 128 bytes from DISOCONT inputs into DB202
CALL "DPRD_DAT"
LADDR := W#16#6B8 // base I-address of 64W input module
RET_VAL := MW100 // 0 = no error
RECORD := P#DB202.DBX0.0 BYTE 128
// Write 128 bytes from DB203 to DISOCONT outputs
CALL "DPWR_DAT"
LADDR := W#16#290 // base Q-address of 64W output module
RECORD := P#DB203.DBX0.0 BYTE 128
RET_VAL := MW102 // 0 = no error
SFC14 / SFC15 RET_VAL diagnostics
| RET_VAL (hex) | Meaning | Likely cause with DISOCONT |
|---|---|---|
| 0000 | No error | Slave in data exchange; problem is data content, not transport |
| 8090 | Address error | LADDR does not match the module base shown in HW Config |
| 8091 | Length error | RECORD length does not match configured module length |
| 8092 | Parameter error | RECORD pointer not aligned, or wrong ANY format |
| 80A0 / 80A1 | Negative acknowledge on read / write | Slave rejected access; usually a slave-side lock or wrong process-data slot |
| 80B0 | Slave not in data exchange | Red-slash condition; configuration telegram rejected |
| 80B1 | Length spec too short | Module selected in HW Config is shorter than the slave expects |
| 80B2 / 80B3 | Inconsistent state / resource unavailable | Slave in transition (firmware update, parameter download) |
| 80C0 – 80C5 | Transient slave-side issues | Slave temporarily busy; retry with a small delay |
ANY-Pointer Handling in PCS7
Classic Step 7 accepts the textual ANY pointer P#DB202.DBX0.0 BYTE 128 directly. In PCS7 the textual input field on an SFC block is not configurable from the CFC editor; you must interconnect the RECORD input to a DB block whose length matches the I/O width.
- Create shared DBs
DB202(inputs) andDB203(outputs) of length 128 bytes each. - On the SFC14 block instance in CFC, drag the RECORD input pin to the start of DB202. PCS7 auto-generates the ANY pointer from the interconnection target.
- On SFC15, interconnect RECORD to DB203. Ensure both DBs are non-optimized (classic) access so byte-level addressing is preserved.
Slave-Side Configuration — The Real Root Cause
A correct master configuration with zero RET_VAL and a green PROFIBUS LED on both sides will still produce all-zero inputs if the DISOCONT itself is not configured to publish the requested process data. Verify the following on the controller's local HMI or its engineering tool:
- Profibus slot enable — the cyclic slot corresponding to the GSD module must be enabled in the controller's communication menu.
- Process-data map alignment — the controller must map its internal registers (setpoint, actual flow, totals, status, KME optionals) into the same byte positions the master reads.
- Word / byte endianness — Schenck and Siemens both use big-endian word ordering, but some GSD revisions swap the high/low word; verify on the first two words of the input block.
- GSD revision match — the controller firmware must be on a build that supports the GSD revision installed in the PCS7 project.
- Bus address parity — the address set on the controller front panel must equal the Profibus address assigned in HW Config.
If the controller is left at factory defaults, it may publish only a subset of registers. In that state the slave still completes parameterization and enters data exchange with the master — which is why the master's SFC14 returns zero — but the slave buffer for the configured slot is all zeros. Resolving this requires a Schenck-side configuration upload, not a PLC-side change.
Process Data Map and KME Optionals
The Schenck address list (typically in the integration manual, page 8 and following) defines two distinct process-data areas:
- Command / output area (master → slave) — setpoint, command bits, recipe select, start/stop, acknowledge.
- Returning / input area (slave → master) — actual flow, totals, status word, error code, and KME optionals.
The command area is roughly half the size of the returning area. The discrepancy is filled by KME optional process-data extensions (Kommunikations-/Mess-Erweiterungen, depending on controller variant) — additional status, totals, and diagnostic registers that are only populated if the corresponding optional modules are licensed and enabled on the controller.
Online Diagnostics Without SFC14 / SFC15
For read-only monitoring during commissioning, the cyclic process image can be observed directly in HW Config online view. Open the slave, right-click the module, and select Monitor/Modify. The values displayed there are read from the slave's cyclic output buffer — identical to what SFC14 would place into the destination DB.
This path is invaluable for separating transport faults (SFC RET_VAL non-zero, red-slash icon) from data-content faults (RET_VAL zero but values are zero or stuck). When HW Config online monitoring shows correct values but the destination DB shows zeros, the SFC call is the problem; when HW Config also shows zeros, the slave is the problem.
For write paths, SFC15 (or its equivalent) is still recommended: the destination DB retains its values across CPU restarts and provides a single source of truth for the cyclic output image. Bypassing SFC15 in favor of direct PIW/PQW writes works for short modules but loses consistency above 4 bytes and is not recommended for the DISOCONT 64-word module.
Commissioning Verification Checklist
- HW Config: slave shows no red slash in online view.
- HW Config: input/output slots report non-zero values from the slave (if the controller is energized and feeding).
- SFC14 RET_VAL = 0 on every call.
- SFC15 RET_VAL = 0 on every call.
- DB202 bytes mirror the HW Config input view byte-for-byte.
- DB203 bytes transferred to slave appear in HW Config output view.
- Disconnect the bus terminator on the slave side and confirm the master raises a diagnostic interrupt (sanity check on the cable plant).
- Force a value into DB203 and confirm the controller acknowledges the new setpoint on its local HMI.
Troubleshooting Matrix
| Symptom | First-line check | Second-line check | Typical root cause |
|---|---|---|---|
| Red slash on slave in HW Config online | GSD module size vs. slave firmware | DP address parity | 32-byte module selected; slave firmware requires 64 bytes or more |
| SFC14 RET_VAL = 16#8090 | LADDR matches HW Config base | Module downloaded to AS | LADDR is wrong, stale, or based on offline configuration |
| SFC14 RET_VAL = 16#8091 | RECORD length equals module length | DB length set to 128 B | Destination DB shorter than the cyclic image |
| SFC14 RET_VAL = 0, DB shows zeros | HW Config online monitoring | Slave-side process-data enable | Slave is publishing an empty buffer; configuration on DISOCONT side incomplete |
| Inputs change, commands have no effect | SFC15 RET_VAL | Slave status word reflects new setpoint | Output DB not transferred; check SFC15 call frequency and RECORD length |
| Intermittent SFC14 RET_VAL = 16#80B0 | Cable plant, terminators | Slave diagnostic buffer | EMC, loose connector, or slave entering parameterization |
| Inputs frozen at last good value | Slave watchdog | Profibus segment length | Slave has dropped out of data exchange but master still uses the cached image |
Related Standards and References
Profibus DP slave registration on a DP master follows the same procedure documented for any modular DP device; the TIA Portal manual collection describes the assignment flow in detail and is a useful cross-reference for engineers migrating from Step 7 Classic to TIA Portal: Assigning the DP slave to a DP master (Siemens TIA Portal documentation).
For general DP slave integration procedure on a third-party HMI / panel the Pro-face manual provides an end-device perspective on Profibus DP slave commissioning: Pro-face PROFIBUS DP Slave Driver manual (PDF).
The Profibus product finder lists modular DP slaves from a wide range of manufacturers, useful for confirming device-class compatibility when expanding the segment: Profibus DP slave product finder (Profibus.com).
FAQ
What causes a red slash on a Schenck DISOCONT DP slave in HW Config?
The slave rejected the master's configuration telegram. The most frequent cause with the DISOCONT is selecting a module length smaller than the controller firmware supports; switch from the 32-byte module to the 64-byte, 32-word, or 64-word module until the diagnostic clears. Always confirm the GSD revision matches the controller firmware.
Why does the 64-word DISOCONT module work while the 32-byte module does not?
The 64-word module reserves 128 bytes per direction, matching the full process image including KME optionals. The 32-byte module is too small for the controller's default process-data layout, so the slave remains in Wait Prm and the master flags the connection with a red slash.
Can SFC14 (DPRD_DAT) be omitted when reading DISOCONT process data?
For modules larger than 4 bytes, consistent data transfer via SFC14 is required to avoid torn reads. During commissioning, the HW Config online monitor can read the same values without SFC14, but production code should still use SFC14 / SFC15 to guarantee consistency and to surface RET_VAL errors.
How is the LADDR hex value calculated for SFC14 / SFC15?
LADDR is the base I-address (SFC14) or Q-address (SFC15) of the DP module, as displayed by HW Config online. Convert the decimal value to hex before assigning it to the LADR parameter. For a 64-word module with input base 1720 and output base 656, use LADDR = W#16#6B8 and W#16#0290 respectively.
What is the most common root cause when DISOCONT inputs read zero despite no SFC error?
The slave is in data exchange with the master but is publishing an empty process-data buffer because the controller's local configuration has not been loaded or has been reset to factory defaults. Verify the controller's communication / process-data settings on its local HMI, confirm GSD revision parity, and re-trigger a configuration upload from the controller to its local project.