Integration Overview
The Endress+Hauser Promass 80F is a Coriolis mass flowmeter that supports the HART 5/6 protocol on its 4–20 mA current output channel. The flowmeter is widely used for high-accuracy measurement of mass flow, density, temperature, and (with two-channel versions) volumetric flow or concentration. Integrating the device into a SIMATIC S7-300 automation system requires an analog input module that can decode the HART signal superimposed on the 4–20 mA loop, not a standard AI or AO module.
The most common engineering mistake when connecting a Promass 80F to an S7-300 is the selection of a HART analog output module such as the 6ES7332-5TB00-0AB0 because of the "HART" suffix in the catalog description. A HART AO can write to a HART field device but it cannot read the HART variables out of a transmitter; only a HART AI module can interrogate the device. This article documents the correct module, the ET 200M distributed I/O topology required by S7-300 HART modules, the STEP 7 (SIMATIC Manager V5.4 + SP5 + HF1) configuration procedure, and the SFC 58/59 data-record interface used to read HART variables beyond the primary variable.
Two integration paths are covered in detail:
- Native STEP 7 path – SFC 58 / SFC 59 read/write data records, with the primary variable read as a 4–20 mA process value.
- SIMATIC PDM path – Siemens Process Device Manager used for commissioning, parameterization, and diagnostics of the Promass 80F over HART.
Prerequisites
| Item | Specification | Notes |
|---|---|---|
| S7-300 CPU | 31x series (e.g. 315-2 DP/PN, 317-2) | CPU must support PROFIBUS-DP or PROFINET for ET 200M coupling. |
| STEP 7 | SIMATIC Manager V5.4 + SP5 + HF1 (or later) | Required for HART AI module GSD/HSP support. |
| ET 200M station | IM 153-1 (PROFIBUS) or IM 153-4 PN (PROFINET) | S7-300 HART modules cannot sit on the central rack; they require an ET 200M. |
| Power supply | PS 307 (5 A or 10 A) | Loop-powered transmitters also need 24 V loop supply. |
| Endress+Hauser Promass 80F | HART current output, channel 1 = 4–20 mA + HART | Up to 4 HART variables assignable in the device menu. |
| SIMATIC PDM (optional) | V6.0 + SP5 or later, EDD for Promass 80F | Simplifies commissioning. |
| HART handheld (optional) | 475/375 Field Communicator | Useful for loop checkout before PLC connection. |
Why a HART AI Module Is Mandatory
The Promass 80F transmitter superimposes a 1200/2200 Hz Frequency Shift Keying (FSK) HART signal on its 4–20 mA current loop. The flowmeter outputs the primary variable (mass flow by default) as the 4–20 mA analog value, and additional process variables (density, temperature, totalizer, etc.) are available only through HART command 3 (read dynamic variables) or command 1 (read primary variable).
An S7-300 standard analog input module samples the 4–20 mA current and converts it to a 16-bit integer, but it does not demodulate the HART FSK. The result is that the AI sees a slightly noisy 4–20 mA value (the HART signal is too small to disturb the A/D conversion) but it cannot read variables 2, 3, or 4. To extract all four HART variables, an input module that contains an internal HART modem and a dedicated HART controller is required.
The 6ES7332-5TB00-0AB0 is the HART analog output module (2 × 0/4…20 mA, 16-bit, HART). It is used when an S7-300 needs to write setpoints to a HART-positioned valve, damper, or variable-speed pump. It is electrically capable of generating a HART waveform, but its data-record interface is write-only from the controller's perspective; it cannot service a HART command 3 read from a transmitter. Therefore it cannot be used to interrogate the Promass 80F.
Correct HART Analog Input Module: 6ES7331-7TF01-0AB0
For an S7-300 + ET 200M system, the HART AI module is the SM 331 with HART support, 8 channels, 0/4…20 mA, 16-bit resolution, designed for ET 200M distributed I/O. Two order numbers appear in the field:
| Order Number | Channels | Resolution | HART | Mounting |
|---|---|---|---|---|
| 6ES7331-7TF01-0AB0 | 8 AI | 16 bit | Yes (HART rev 5/6) | ET 200M only |
| 6ES7331-5TF01-0AB0 | 8 AI | 14/15 bit | Yes (predecessor) | ET 200M only |
| 6ES7332-5TB00-0AB0 | 2 AO | 16 bit | Yes (write only) | S7-300 central / ET 200M |
The module supports up to 8 HART field devices, one per channel, with the HART modem active on each channel. Each channel has its own independent HART communication path, so the Promass 80F must be wired to its own dedicated input channel; do not share a single channel between two transmitters.
The module provides the following HART-related data records on each channel:
- DS 0 – Channel diagnostic (HART communication error, primary variable out of range, etc.)
- DS 1 – Process value (4–20 mA scaled, with HART status byte)
- DS 2 – HART variable assignment (mapping of channel to transmitter tag, primary variable code, units, range)
- DS 3 through DS 14 – HART dynamic variables (PV, SV, TV, QV) and device-specific variables
- DS 80 – HART communication status (number of retries, burst mode, response code)
- DS 81 – Manufacturer and device type codes
The Siemens manual SIMATIC S7-300 SM 331 HART Analog Input Module (6ES7331-7TF01-0AB0) Manual contains the full data-record table, the index tables for read/write access, and the error-code definitions used by SFC 59.
ET 200M Distributed I/O Requirement
S7-300 HART modules are mechanically and electrically S7-300 modules, but Siemens does not list them in the S7-300 central rack hardware catalog. The module must be inserted into an ET 200M station, which is a PROFIBUS-DP or PROFINET slave consisting of an IM 153 interface module and one or more S7-300 I/O modules.
A typical reference architecture for the Promass 80F integration is:
+-------+ PROFIBUS-DP / PROFINET +-----------+ backplane bus +-----------------+ | S7- | ------------------------- | IM 153-1 | --------------- | 6ES7331-7TF01 | | 315- | (or IM 153-4 PN) +-----------+ | 8AI HART ch.0 | | 2DP | | -> Promass 80F| +-------+ +-----------------+
Configuration steps in HW Config:
- Insert the ET 200M station (IM 153-1 or IM 153-4 PN) on the PROFIBUS or PROFINET subnet.
- Open the ET 200M rack and drag the 6ES7331-7TF01-0AB0 into a free slot.
- Set the channel parameters: measuring range = 4…20 mA, integration time = appropriate for the process (typically 20 ms or 50 Hz rejection), HART enabled = yes.
- Assign the channel diagnostic interrupt and HART diagnostic interrupt to OB82 / OB83 as required.
- Compile and download the hardware configuration to the CPU.
Wiring and Topology
Wire the Promass 80F current output to the AI channel of the HART module using shielded twisted pair. HART communication is sensitive to capacitance and inductance on the loop, so observe the following:
- Maximum loop length: 1500 m with shielded twisted pair, depending on cable capacitance. Endress+Hauser specifies < 60 pF/m for reliable HART communication.
- Loop resistance: 250 Ω minimum to 600 Ω maximum at 24 V. The internal 250 Ω sense resistor of the AI module is in the loop, so the total loop resistance is the sum of the AI input impedance, the wiring, and any external resistor.
- Grounding: ground the cable shield at one end only, typically at the panel entry to avoid ground loops that would inject 50/60 Hz noise on top of the 4–20 mA signal.
- Power the transmitter from a separate 24 V loop supply or use the AI module's loop-power capability if available on the channel.
For commissioning, a HART handheld can be connected in parallel across the loop at any junction box to verify that the device responds to HART command 0 (read unique identifier). The expected response is:
- Manufacturer ID = 17 (0x11) – Endress+Hauser
- Device type = 50 (0x32) – Promass 80
- Device ID = device serial number
Reading the Primary Variable as a Standard 4–20 mA Input
The simplest and most efficient way to read mass flow is to treat the 4–20 mA primary variable as a standard AI value. The HART module scales the 0/4 mA to 0 and 20 mA to 27648 (as per S7 conventions), so the application program can read the input directly from the process image:
// L PEW 256 // First AI word of the ET 200M HART module (channel 0)
// T MW 100 // Move to flag word for scaling in FC 105 (SCALE)
Typical scaling for a 0–1500 kg/h Promass 80F with 4 mA = 0 kg/h and 20 mA = 1500 kg/h:
CALL "SCALE"
IN := MW100
HI_LIM:= 1500.0
LO_LIM:= 0.0
BIPOLAR:= FALSE
RET_VAL:= MW110
OUT := MD120 // REAL, kg/h
This path uses zero HART bandwidth and is recommended for closed-loop control where deterministic update of the primary variable is required.
Reading All HART Variables via SFC 58 / SFC 59
To read the secondary, tertiary, and quaternary variables (density, temperature, totalizer, etc.), the application must issue a HART command 3 (read dynamic variables) by writing the request to data record 3 of the HART AI module and reading the response from data record 4. STEP 7 provides the system functions SFC 58 (WR_REC, write data record) and SFC 59 (RD_REC, read data record) for this purpose.
Data record 3 layout for HART command 3 request (write to module):
| Byte | Content | Value |
|---|---|---|
| 0 | Reserved | 0x00 |
| 1 | Channel | 0x00 (channel 0) |
| 2 | HART command | 0x03 (CMD 3, read dynamic variables) |
| 3 | Byte count | 0x00 |
| 4 | Response code expected | 0x00 |
| 5 | Data length | 0x00 |
Data record 4 layout for HART command 3 response (read from module):
| Byte | Content |
|---|---|
| 0 | Response code (0 = success, <>0 = error) |
| 1 | Channel |
| 2 | HART command echoed (0x03) |
| 3 | HART status (first byte, 0 = success) |
| 4 | HART status (second byte) |
| 5…8 | PV code, units, value (IEEE 754 float) |
| 9…12 | SV code, units, value |
| 13…16 | TV code, units, value |
| 17…20 | QV code, units, value |
Sample STL code to read dynamic variables from channel 0:
// Trigger HART CMD 3 write to data record 3
CALL "WR_REC" // SFC 58
REQ := TRUE
IOID := B#16#54 // Input/output identifier (ET 200M slot)
LADDR := W#16#0100 // Logical address of HART module (set in HW Config)
RECNUM := B#16#03 // Data record 3 (HART command request)
RET_VAL:= MW200
BUSY := M210.0
RECORD := P#DB100.DBX0.0 BYTE 6
// Wait for completion
U M 210.0
SPB WAIT
// Read the HART response from data record 4
CALL "RD_REC" // SFC 59
REQ := TRUE
IOID := B#16#54
LADDR := W#16#0100
RECNUM := B#16#04 // Data record 4 (HART response)
RET_VAL:= MW202
BUSY := M211.0
ERROR := M211.1
STATUS := MW204
LEN := MW206
RECORD := P#DB101.DBX0.0 BYTE 24
After the call, the four dynamic variables are available as 32-bit IEEE 754 floats in DB101 starting at byte offset 5. Convert with the standard S7 helper to extract them into process variables. The values arrive in the units configured on the Promass 80F (e.g. kg/h, kg/m³, °C). For closed-loop control, prefer reading the primary variable as the 4–20 mA scaled value to avoid the HART round-trip latency (typically 250–500 ms per command).
SIMATIC PDM Path for Commissioning
SIMATIC Process Device Manager (PDM) is the Siemens tool for configuring HART and PROFIBUS field devices. PDM integrates with STEP 7 and is the recommended tool for the initial setup of the Promass 80F, after which the application reads variables via SFC 58/59 in run time.
PDM commissioning steps:
- Install SIMATIC PDM and the Endress+Hauser EDD library for Promass 80 (downloadable from the Endress+Hauser support portal or via the PDM Device Library). Use the EDD that matches the firmware revision reported by the device in its HART command 0 response.
- Open the S7 project in SIMATIC Manager, right-click the ET 200M HART module and select "Start SIMATIC PDM".
- PDM enumerates the HART device on each enabled channel. Select the Promass 80F when it appears.
- Configure the measurement: assign the primary variable to mass flow, the secondary variable to density, the tertiary variable to temperature, and the quaternary variable to totalizer 1 (or another available variable).
- Set the 4 mA and 20 mA scaling to match the desired engineering range (e.g. 0–1500 kg/h).
- Download the configuration to the device. PDM writes HART command 6 (write dynamic variable assignment) and HART command 35 (write primary variable range values) via the HART module's data record interface.
- Save the configuration in the STEP 7 project so it is downloaded with the rest of the program.
PDM provides a device-specific faceplate for the Promass 80F that shows the four dynamic variables, totalizers, and device status without writing any extra S7 code. The faceplate can be embedded in WinCC flexible / WinCC (TIA) for operator visualization.
Promass 80F HART Variable Map
The Promass 80F has four dynamic variable slots. The recommended default mapping for mass flow applications is:
| Slot | Variable | Unit | HART Cmd 3 Code |
|---|---|---|---|
| PV (primary) | Mass flow | kg/h | Code per EDD |
| SV (secondary) | Density | kg/m³ | Code per EDD |
| TV (tertiary) | Temperature | °C | Code per EDD |
| QV (quaternary) | Totalizer 1 | kg | Code per EDD |
Endress+Hauser publishes the EDD with the official HART variable codes. The codes are required if the S7 application decodes the HART command 3 response bytes directly; if the application uses the Siemens standard block "HART_FB" from the HART library, the engineering values are returned as REAL and the codes are not required.
Verification Procedure
- After hardware configuration is downloaded, place the CPU in RUN. The HART module's channel status LED should be green (no fault) and the HART activity LED should flash at the HART poll rate (default once per second when not in burst mode).
- Open the VAT table in STEP 7 and monitor the process input word for channel 0. Apply a 4 mA signal (or block the flow) and confirm the scaled value in MD120 reads 0. Apply a 20 mA signal (or a known calibration flow) and confirm the scaled value reads 1500.0 kg/h.
- Trigger a HART command 3 read using SFC 58/59. Confirm that the response code in DB101.DBX0.0 is 0 (success) and the HART status bytes in DB101.DBX3.0 and DB101.DBX4.0 are both 0.
- Verify the secondary, tertiary, and quaternary values against a HART handheld. The values must match within the resolution of the IEEE 754 float conversion.
- In SIMATIC PDM, open the device faceplate and confirm that the four dynamic variables display the expected values and the device reports no diagnostic warnings (e.g. "Sensor OK", "Tube frequency OK").
- Disconnect the HART loop and verify that the HART module raises a diagnostic interrupt (OB82), the HART status byte in DS 0 indicates communication loss, and the primary variable is held at the last value or replaced with a substitute value depending on the channel configuration.
Troubleshooting Matrix
| Symptom | Likely Cause | Corrective Action |
|---|---|---|
| Primary variable is 0 or 7FFF (overflow), no HART communication | Wrong module installed (e.g. 6ES7332-5TB00-0AB0 AO) | Replace with 6ES7331-7TF01-0AB0 in ET 200M station. |
| HART module does not appear in HW Config | HSP / GSD file not installed for the module or STEP 7 too old | Install SIMATIC Manager V5.4 + SP5 + HF1 or later and the matching HSP for the 6ES7331-7TF01-0AB0. |
| Module is in the S7-300 central rack | HART AI module not approved for central rack | Move the module to an ET 200M station on PROFIBUS or PROFINET. |
| HART response code = 2 (invalid command) | Transmitter in write-protected state or HART revision mismatch | Check the Promass 80F HART revision in the device menu; the module supports HART rev 5 and 6. |
| HART communication intermittent, primary variable noisy | Loop resistance out of range, capacitance too high, ground loop | Check loop resistance (250–600 Ω). Use shielded twisted pair, ground shield at one end only. |
| SFC 59 returns RET_VAL = 0x80C0 / STATUS = 0x7000 | Request still in progress | Wait for BUSY to go FALSE before reading the response. |
| SFC 59 returns STATUS = 0x0A0A / 0x0F0F | HART protocol error in the response | Check wiring and the device's burst-mode setting; reduce HART poll rate to < 3 commands/second. |
| PV value present but SV/TV/QV are zero | Channel not configured for HART or SV/TV/QV mapping not set in transmitter | Enable HART on the channel in HW Config. Use SIMATIC PDM to set the dynamic variable mapping on the Promass 80F. |
| Totalizer resets unexpectedly | Device reset by HART command or power cycle | Confirm that HART command 6 (write PV assignment) is not also resetting totalizer. Use a non-volatile HART command where supported. |
Field-Engineering Notes and Edge Cases
The Coriolis measurement principle used by the Promass 80F is largely independent of viscosity and density, so HART dynamic variables are stable across a wide operating envelope. However, two field conditions affect HART communication quality and should be checked at commissioning:
- Two-phase flow / aerated liquids. If the process carries entrained gas, the Promass 80F raises a diagnostic warning and may enter "measuring mode with reduced accuracy". The HART status bytes reflect this; the S7 application should monitor the HART status in DS 0 and flag the corresponding PV as suspect in WinCC.
- Process pressure variation. The Promass 80F density measurement is sensitive to absolute pressure. Endress+Hauser recommends a pressure-compensated density reading using a Cerabar M or Cerabar S absolute pressure transmitter. If the density reading is critical to the application (e.g. concentration or net-oil-computing), install a second HART AI channel for the Cerabar and combine the values in the S7 program.
For high-availability applications, configure the HART AI channel for value substitution: when HART communication is lost, the module substitutes the last valid primary variable. This avoids nuisance trips in the S7 program when the loop is briefly disconnected for maintenance. The default behavior is to overflow (32767) which will cause the S7 SCALE block to flag an error.
Related Documentation
- SIMATIC S7-300 SM 331 with HART (6ES7331-7TF01-0AB0) Manual
- Operating Instructions Proline Promass F 300 HART (BA01485D/06/EN/01.16)
- Technical Information Proline Promass 80F, 83F (TI101D/09/EN/10.09)
- Endress+Hauser Proline Promass F 300 product page
Frequently Asked Questions
Can I use the 6ES7332-5TB00-0AB0 to read the Promass 80F?
No. The 6ES7332-5TB00-0AB0 is a HART analog output module and can only write to a HART field device. The Promass 80F is a transmitter; reading its dynamic variables requires a HART analog input module such as the 6ES7331-7TF01-0AB0.
Can the 6ES7331-7TF01-0AB0 be installed in the S7-300 central rack?
No. The module is approved for ET 200M distributed I/O only. It must sit behind an IM 153-1 (PROFIBUS) or IM 153-4 PN (PROFINET) interface module. It will not be accepted by HW Config in a central rack.
How do I read variables 2, 3, and 4 from the Promass 80F in STEP 7?
Use SFC 58 (WR_REC) to write a HART command 3 request to data record 3 of the HART AI channel, then use SFC 59 (RD_REC) to read the response from data record 4. The four dynamic variables are returned as 32-bit IEEE 754 floats.
Does the HART primary variable use the same 4–20 mA input word as the standard AI?
Yes. The HART AI module scales the 4–20 mA primary variable to 0–27648 in the process image, identical to a standard AI module. The application can read the primary variable directly from the input word with no HART-specific code required.
Is SIMATIC PDM required to integrate the Promass 80F?
No. The integration can be done entirely in STEP 7 with SFC 58/59. SIMATIC PDM is recommended for the initial parameterization of the device and for operator diagnostics, but it is not required for the PLC to read HART variables.