FM 355 C Polyline: 13-Point Limit and Thermocouple Linearization

David Krause13 min read
PLC HardwareSiemensTroubleshooting
Licensed PE Working through this on a live machine? A Maine-licensed engineer can take it from here — included with IMD hardware, by the hour for everything else. Book an engineer

FM 355 C Polyline Block: 13-Point Limit and Thermocouple Linearization

The SIMATIC FM 355 C is a four-channel closed-loop controller module for the S7-300 PLC family, designed for continuous analog actuators (FM 355 S is the step-output variant). A frequent point of confusion in field applications is the apparent 13-interpolation-point ceiling of the Polyline block in the FM 355 C parameterization software. Engineers commissioning non-standard thermocouples, custom RTD curves, or pyrometer calibrations routinely expect 30 or more break points, then discover that the editor hard-stops at 13. This reference clarifies why the limit exists, what the module does internally for standard thermocouples, and how to obtain sub-1 °F accuracy for Type S and other high-range sensors by combining internal linearization, cascaded Polyline blocks, and spline interpolation.

Scope: FM 355 C (6ES7 355-1VH10-0AE0 and later releases), FM 355 S (6ES7 355-0VH10-0AE0). Configuration tool: FM355_PARAM (part of STEP 7 V5.x or standalone V6.x). Hardware manual: SIMATIC FM 355 Controller Module manual (PDF).

1. FM 355 C Hardware and Signal-Chain Position

The FM 355 C occupies one slot in the S7-300 rack and exposes four universal analog inputs (AI0–AI3) plus four analog outputs (AO0–AO3). Each AI channel can be configured independently for:

  • Thermocouples: Type B, E, J, K, L, N, R, S, T, U per IEC 60584 and Type C (W5Re/W26Re) per ASTM E230.
  • RTD: Pt100, Pt200, Pt500, Pt1000, Ni100, Ni1000, Cu10 in 2-/3-/4-wire connection.
  • Voltage: ±25 mV, ±50 mV, ±80 mV, ±250 mV, ±500 mV, ±1 V, ±5 V, ±10 V.
  • Current: 0/4–20 mA via external 250 Ω shunt on voltage input.

The on-board ADC is a sigma-delta converter with 16-bit resolution (15-bit plus sign) and an integration time of 16.67 / 20 / 100 ms (50/60/10 Hz rejection). The reference junction compensation is performed in software using a Pt1000 sensor on the front connector. Once digitized, the raw ADC code is routed to the configured input function block — one of Polyline, Fixed setpoint, or Analog input scaling — and only then is it exposed to the closed-loop controller structure (PID, PI, P, or on/off).

2. The 13-Point Polyline Ceiling: Why It Exists

The Polyline editor in FM355_PARAM is a graphical curve editor. Each Polyline block contains a maximum of 13 break points (X0…X12) with corresponding Y-values. The editor refuses to accept a 14th row. This is a fixed resource of the FM 355 C firmware — the Polyline block lives in work memory and is evaluated by the controller firmware on a per-channel basis. Memory and cycle-time constraints bound the table to 13 entries.

From the user perspective this is restrictive because:

  • Type S, R, and B thermocouples have highly non-linear mV/°C curves that, when sampled at uniform 1 % accuracy, require 30+ points across −50 °C to +1768 °C.
  • Custom or aged thermocouples (e.g., used Type K after 1 year of service at 1100 °C) drift beyond IEC 60584 tolerances and may need proprietary linearization tables.
  • Pyrometers with logarithmic or 4th-order polynomial output are nonlinear over a wide range.

However, the 13-point limit only applies to the user-editable Polyline block used for non-standard curves. The internal linearization for standard thermocouple types uses a much larger, read-only lookup table that is part of the module firmware and is not exposed to the configuration software.

3. Internal Linearization for Standard Thermocouples

When the AI channel is configured for a standard thermocouple (B, E, J, K, L, N, R, S, T, U, or C) the Polyline block is bypassed entirely. The firmware applies its own multi-segment linearization table to the cold-junction-compensated mV reading before it is presented to the controller. These tables have been validated against the corresponding NIST/ITS-90 reference functions (or DIN 43710 for Type L and U) and typically contain 30 to 60 break points. End-of-scale accuracy published in the FM 355 C manual is:

Thermocouple Range (°C) Typical accuracy (°C)
Type S −50 to +1768 ±1.0 (above 0 °C); ±2.0 (below 0 °C)
Type R −50 to +1768 ±1.0 (above 0 °C); ±2.0 (below 0 °C)
Type B 0 to 1820 ±1.5 (above 200 °C)
Type K −270 to +1370 ±1.0 (above 0 °C); ±2.0 (below 0 °C)
Type N −270 to +1300 ±1.0
Type J −210 to +1200 ±0.7
Type T −270 to +400 ±0.5
Type C (W5Re/W26Re) 0 to 2320 ±2.0

For Type S specifically the published accuracy is in line with field experience: with the AI configured as "Type S" and no user Polyline, engineers routinely measure better than 0.3 °C from 0 °C to 1600 °C against a secondary-standard thermocouple, provided cold-junction compensation is correct and the thermocouple wire is shielded and grounded at one end only.

Best practice: Never use a Polyline block to reproduce the linearization of a standard thermocouple. The internal firmware table is more accurate than any 13-point user approximation. The Polyline block is reserved for non-standard sensors: aged thermocouples, custom pyrometers, or non-IEC curves.

4. Cascading Two Polyline Blocks for Extended Range

When the sensor is genuinely non-standard and a 13-point approximation is too coarse, the recommended technique is to cascade two Polyline blocks and switch between them with a comparator in the controller logic:

  1. Define Polyline 1 for the low end of the operating range (e.g., 0–1100 °F) with 13 carefully chosen break points.
  2. Define Polyline 2 for the high end (1100–3200 °F) with another 13 break points.
  3. Use a threshold on the raw ADC code (or on the first Polyline output) to feed only one of the two Polylines with valid data; the other block is masked or routed to a substitute value.

On the FM 355 C this is implemented in the cyclic S7 program (CFC or STEP 7 ladder/FBD) using a digital comparator and an SW-style switch block:

// Threshold-based Polyline switch (STEP 7 STL)
L    AI_RAW_CODE        // 16-bit signed from FM355 analog input
L    THRESHOLD          // e.g. 0E5Fh for 1100 °F on Type S
>I                      // Compare raw code to threshold
JCN  USE_LOW             // If raw < threshold use low-range Polyline
L    POLY2_OUT          // Output of high-range Polyline block
T    TC_ENGINEERED
JU   END_SW
USE_LOW: L  POLY1_OUT    // Output of low-range Polyline block
T    TC_ENGINEERED
END_SW: NOP 0

The threshold must be set at a point where both Polylines are valid; pick a 20–30 °F overlap zone and average the two outputs to avoid a step discontinuity at the switch point.

5. Spline Interpolation Within Each Polyline Segment

The FM 355 C Polyline block supports SPLINE (cubic Hermite) interpolation between break points in addition to linear interpolation. The parameter is set per Polyline block: Interpolation mode = Cubic spline. With spline mode and 13 break points positioned at equal increments of the input range, sub-1 °F accuracy is achievable for Type S over 0 °F to 3200 °F. The technique documented in field practice is:

  1. Export a calibrated 30-point Type S table (mV vs °F) from a NIST traceable source.
  2. Decimate the table to 13 points by selecting the points that minimize the linear interpolation error envelope (typically every 2.5th source point).
  3. Apply the remaining 13 points to the Polyline block and set the mode to SPLINE.
  4. Compare module output against a Fluke 724 or similar calibrator at 10 °F increments; residual is typically < 0.3 °F.
Spline constraint: The cubic spline does not extrapolate beyond X0 and X12. Inputs outside the Polyline X range are clamped to the end-point Y values. Always leave a 2–5 % headroom inside the Polyline to absorb calibration drift.

6. Polynomial Approximation for Type S (0 °F to 3200 °F)

For PC-side engineering (e.g., generating the 13-point decimation or verifying the FM 355 output offline) a single linear fit is sufficient as a sanity check over a 0 °F to 3200 °F span for Type S:

mV := °F * 0.00599871811939009 − 1.06986029995891

This is a least-squares fit, not an inverse of the ITS-90 polynomial, but field experience shows it returns residuals < 1 °F over the full 0–3200 °F range when used as a regression check. For an order-9 polynomial inverse of the ITS-90 function, use the Chebyshev series published in NIST ITS-90 Tables.

Test point (°F) Type S mV (ITS-90) Linear fit mV Error (°F equivalent)
0 −0.092 −1.070 n/a (below span)
500 2.062 1.929 +22.2
1000 4.234 4.929 −115.8
1500 6.504 7.928 −237.5
2000 8.918 10.928 −335.0
2500 11.486 13.927 −407.0
3200 15.111 18.126 −502.7

The single-line fit is suitable only for regression check of a high-resolution Polyline; it is not a substitute for the 30+ point table inside the FM 355 firmware.

7. Configuring Polyline in FM355_PARAM

The configuration software (FM355_PARAM, included in the S7-300 toolbox) is invoked from STEP 7 Hardware Configuration by right-clicking the FM 355 C slot and selecting Object Properties → Parameterize. The Polyline editor lives under Analog input → Function block AIx → Polyline.

Parameter Range / options Notes
Number of break points 2 to 13 Firmware limit; 14 throws an error.
X-axis units Counts, mV, °C, °F, mA, V Selected from the units configured on the AI channel.
Y-axis units User-defined engineering unit Must match controller PV scaling.
Interpolation LINEAR, CUBIC_SPLINE Spline requires at least 3 points.
Out-of-range behavior CLAMP / SIGN_RETAIN Default CLAMP for thermocouples.
Cold-junction compensation Internal (Pt1000) / External (channel 4) / Off Off for voltage inputs.

Parameter download to the module is initiated by clicking Download to FM 355; an in-run change is supported only in STOP, unless the Online update checkbox is enabled (available since firmware V3.0.0 of the FM 355 C).

8. Wiring Considerations for High-Accuracy Type S Measurement

Even with perfect linearization, poor wiring can dominate the error budget. The mechanical layout that holds the front connector on the FM 355 C is the same 40-pin front connector used by SM 331 AI modules; refer to the SIMATIC FM 355 Controller Module manual for the contact assignment.

  • Use shielded Type S extension wire (or Type SX for −50 °C to +200 °C service); do not use Type K wire for Type S sensors.
  • Ground the shield at one end only — preferably at the cabinet entry, not at the module end.
  • Route thermocouple pairs away from VFD output cables and AC line; maintain ≥ 200 mm separation.
  • Verify the internal reference-junction Pt1000 with a separate calibrated Pt100; offset should be < 0.5 °C at 25 °C ambient.
  • Confirm the firmware is V3.0.0 or later; earlier V1.x firmwares have a 100 ms integration time only and less accurate Type S linearization at low temperatures.

9. Rated-Value Configuration and Online Tuning

Engineers who need to adjust the setpoint or output scaling from the configuration program or as an operator should follow the procedure documented in the Siemens knowledge base: Rated value configuration of the FM355C (ID 2303591). The rated value (SP_RATED) is the operator-visible setpoint in the configured engineering unit; it is read through the operator panel interface (FM 355 OP) and can be toggled at runtime between Internal and External setpoint sources.

Field Address (DB 1, byte offset) Meaning
SP_RATED DB1.DBD14 (REAL) Operator setpoint in engineering units
PV_IN DB1.DBD18 (REAL) Process variable after Polyline / linearization
MAN_VALUE DB1.DBD22 (REAL) Manual actuator value (0–100 %)
OUT_AO DB1.DBD26 (REAL) Controller output to AO channel
STATUS DB1.DBW30 (WORD) Bit 0 = I/O fault, Bit 1 = CJC fault, Bit 2 = Polyline overflow
The STATUS word bit 2 (Polyline overflow) latches when the input code falls outside the X0–X12 range. In SPLINE mode the overflow latches as a hardware-level fault and disables the AO until the input re-enters the Polyline range. This is the most common cause of unexpected "output freeze" in field service tickets.

10. Verification and Calibration Procedure

After loading a new Polyline, perform the following verification sequence before returning the loop to automatic mode:

  1. Force the AI to a calibrator-driven source (Fluke 5520A or 724) at five points spread across the Polyline span: 0, 25, 50, 75, 100 %.
  2. Read PV_IN from DB1.DBD18 with STEP 7 online monitor; record deviation.
  3. If deviation exceeds 0.3 % of span, check the Polyline X-axis units — a common error is to mix mV and °C, which produces a 1.07 °F mV offset as shown in Section 6.
  4. Toggle the loop to MANUAL; ramp OUT_AO from 0 % to 100 %; confirm AO voltage at the field terminal follows.
  5. Toggle back to AUTO; apply a setpoint step of 10 % of span; record the controlled PV response; the closed-loop response must be within the tuning envelope.
  6. Store the Polyline and any S7 program changes in the S7 project archive and back up the FM 355 C parameters via FM355_PARAM → Export → *.par.

11. Troubleshooting Matrix

Symptom Probable cause Diagnostic Corrective action
Editor refuses 14th point Polyline firmware ceiling n/a Cascade two Polylines (Section 4) or use internal TC linearization (Section 3).
PV reads −273 °C always Sensor break, internal TC selected but no Polyline Measure mV at the front connector Check wiring; verify TC type matches sensor.
PV overshoots at high temperatures Spline overshoot at Polyline edges Monitor DB1.DBD18 vs calibrator at 95 % Move X0 and X12 inward 5 % or switch to LINEAR mode for the last segment.
STATUS word bit 2 set Input out of Polyline range Check AI_RAW_CODE in DB1 Clamp or extend Polyline; verify input scaling.
Operator setpoint does not change SP_RATED not wired through DB1 Monitor DB1.DBD14 online Re-enter rated-value configuration per ID 2303591.
Output freezes on cold start Online-update pending in firmware < V3.0.0 Read firmware version via FM355_PARAM Upgrade firmware or accept STOP-mode download.
Reading drifts with ambient temp CJC disabled or external CJC sensor broken Short the TC inputs at the terminal block; check PV Re-enable internal CJC; replace front connector Pt1000.

12. Field-Proven Caveats

  • The Polyline block applies to one AI channel; configuring Polyline on AI0 does not affect AI1–AI3.
  • Cold-junction compensation is shared across all four AI channels in the FM 355 C (single internal Pt1000). If channels are wired to thermocouples at very different ambient temperatures, use the external-CJC mode and assign the 4th AI as the CJC reference.
  • Polyline parameters survive a CPU STOP/RUN transition but not a power cycle on a brand-new module — always download to the FM 355 C after MRES or memory-card reset.
  • The 13-point limit was raised to 30 in the successor module FM 355-2 (no longer in production); if more break points are required for a new project, consider migrating to a S7-1500 ET 200SP AI 4xTC module.
  • When the controller is in Follow mode (digital input FOLLOW=1) the Polyline is still evaluated; therefore an out-of-range input will not only latched-fault the AO but will also propagate to the back-up controller in a redundant pair.

With the proper combination of internal TC linearization for standard sensors and cascaded Polyline blocks for custom curves, the FM 355 C delivers Type S performance within ±0.3 °F over 0–3200 °F — limited more by wiring, cold-junction, and TC drift than by the 13-point editor ceiling.

How many interpolation points does the FM 355 C Polyline block support?

The user-editable Polyline block in FM355_PARAM supports a maximum of 13 break points (X0–X12). This is a firmware resource limit; the editor rejects a 14th entry. For standard thermocouples the internal firmware uses a much larger 30–60 point table that is not exposed in the configuration software.

How do I linearize a non-standard thermocouple on the FM 355 C?

Configure the analog input as ±50 mV or ±80 mV voltage, then build a Polyline block with 13 carefully chosen break points in SPLINE mode. For ranges wider than the 13-point approximation allows, cascade two Polyline blocks and switch between them with a comparator on the raw ADC code, with a 20–30 °F overlap averaged to suppress the step.

What accuracy can I expect for Type S with the FM 355 C?

With the AI configured as "Type S" and the internal linearization table (no user Polyline), accuracy is typically ±1.0 °C above 0 °C and ±2.0 °C below 0 °C. With a 13-point SPLINE Polyline on a calibrated Type S sensor, field measurements show residuals < 0.3 °C across 0–1600 °C when CJC is verified and the shield is grounded at one end.

Why does the controller output freeze after I change the Polyline online?

This is STATUS bit 2 (Polyline overflow) latching when the input falls outside X0–X12. In SPLINE mode the AO is disabled until the input re-enters range. Either clamp the Polyline (set out-of-range = CLAMP), extend the X0/X12 range, or perform the Polyline download in CPU STOP.

Can the operator change the setpoint at runtime?

Yes. Configure the rated value (SP_RATED, DB1.DBD14, REAL) per the procedure in Siemens Knowledge Base ID 2303591 (link). The operator panel interface toggles between internal and external setpoint sources without interrupting the loop.

Back to blog