Resolving 'FB537 Cannot Be Imported - FC Out of Valid Range' in PCS 7 CFC / CEMAT

Resolving 'FB537 Cannot Be Imported - FC Out of Valid Range' in PCS 7 CFC / CEMAT

The error 'FB537 cannot be imported - FC is not in the valid range' during library import or block instantiation in SIMATIC PCS 7 occurs when an imported Function Block (such as CEMAT block FB537) internally calls standard Functions (FCs) whose numeric identifiers fall outside the valid user block ranges permitted by the Continuous Function Chart (CFC) compiler. To resolve this, open the CFC Editor, select Options -> Customize -> Compile/Download, locate the section 'Areas reserved for other applications', and expand the allowable FC number range (or increase the upper limit) so the required FC numbers are included within the permitted project boundaries.

Table of Contents

CFC Block Number Ranges and Compiler Range Validation

In SIMATIC PCS 7, the Continuous Function Chart (CFC) editor manages controller memory allocation by enforcing strict partitioning of Function (FC), Function Block (FB), and Data Block (DB) number ranges. This partitioning prevents user charts from colliding with internal system functions, module drivers, or communication blocks.

When an engineer imports an industry library—such as SIMATIC PCS 7 Minerals CEMAT (6ES7658-2BC58-0YA5) or a custom technological package—the imported blocks (e.g. FB537) often contain internal calls to pre-compiled helper functions (FCs). If the target project's CFC compiler settings restrict FC numbers to a narrow default range (e.g. FC1 to FC60), any block calling an FC numbered outside that range (such as FC300 or FC500) will be rejected immediately by the CFC block type import engine.

Root Causes of FC Number Range Violations During Library Import

When attempting to import block types into the CFC chart catalog (Options -> Block Types), the compiler evaluates every cross-referenced block against the project's compilation parameters:

  1. Restricted Reserved Range: The target project was configured with a restricted FC range reserved for user blocks, causing CEMAT helper functions to fall into the forbidden zone.
  2. Overlapping Subsystem Allocations: The required FC number conflicts with ranges claimed by other installed packages (such as SFC runtime system or Driver Generator).
  3. Missing System Packages: CEMAT requires specific foundational libraries (such as the standard STEP 7 communication FCs and CEMAT system functions) to be installed in the S7 Program 'Blocks' folder prior to importing technological FBs.

Comparison of CFC Block Range Configuration Parameters

The following table details the customizable block ranges in CFC under Options -> Customize -> Compile/Download:

Range CategoryParameter NameDefault RangeTypical CEMAT / Large Library RequirementInstalled Block Numbers (DB)Lower / Upper LimitDB61 to DB999DB61 to DB2047 (Extended for large systems)Installed Block Numbers (FC)Lower / Upper LimitFC61 to FC250FC61 to FC1000 (Expanded for CEMAT helper FCs)Areas Reserved for Other Apps (FC)Reserved FC RangeFC1 to FC60Adjusted to allow required library FCsAreas Reserved for Other Apps (DB)Reserved DB RangeDB1 to DB60DB1 to DB60 (User data blocks)Maximum Number of Block TypesCatalog Capacity300 Types500 to 1000 Types

Step-by-Step Procedure to Adjust FC Range Limits in CFC

Follow this procedure to expand the allowable FC range and successfully import FB537:

  1. Open CFC Compile/Download Settings:
    - Launch SIMATIC Manager and open any CFC chart.
    - In the CFC menu bar, select Options -> Customize -> Compile/Download....

  2. Identify and Expand the FC Range:
    - In the 'Customize Compile/Download' dialog, locate the section Installed block numbers.
    - Inspect the FC fields (Lower limit and Upper limit).
    - Increase the Upper limit (e.g. increase from 250 to 1000 or 1500).
    - Under Areas reserved for other applications, ensure the reserved range does not block the specific FC called by FB537.
    - Click OK to save settings.

  3. Import the Block Type into CFC:
    - In the CFC Editor, select menu Options -> Block Types....
    - In the left pane ('Block types in chart folder'), click the arrow to pull FB537 from the S7 Program block folder into the chart catalog.
    - The compiler validates the cross-referenced FCs against the newly expanded range and successfully registers the block type.

  4. Recompile Charts:
    - Place FB537 in your technological chart.
    - Select Chart -> Compile -> Changes only to verify clean compilation.

Verification

Verify block import and compilation:
1. Open the CFC block catalog (left task card) and verify that FB537 appears under its technological family.
2. Drag FB537 into an active CFC chart; confirm that the block drops cleanly without error prompts.
3. Select Chart -> Compile -> Changes only. Confirm that the compile log reports 0 Errors.
4. Open SIMATIC Manager cross-references (Tools -> Reference Data -> Display). Confirm that the helper FC called by FB537 is correctly linked in the call tree.

Limitations and Operational Precautions

  1. Never Overlap SFC System Ranges: When expanding the FC upper limit, do not overlap with reserved system ranges (e.g. FB1000-1199 for SFC). Keep user FC ranges below FC1000 unless verified in Siemens manuals.
  2. CPU Architecture Limits: S7-400 CPUs have physical block number limits. Verify that the configured FC numbers do not exceed the maximum block number supported by your CPU model (e.g. maximum FC number of 2048 or 4096 on CPU 410-5H).
  3. Do Not Renumber System Helper FCs: Never attempt to manually renumber proprietary CEMAT helper FCs in the S7 Program 'Blocks' folder. The calling FB contains hardcoded call instructions that will crash if the FC is renumbered.

Engineer FAQ

Why does CFC care about FC numbers when importing an FB?

CFC manages controller memory monolithically. If an FB calls helper FCs whose numbers fall outside the permitted ranges configured in CFC, the compiler rejects the FB to protect against overlapping memory corruption.

Where do I find out which FC number is causing the error?

In SIMATIC Manager, open the S7 Program 'Blocks' folder, right-click FB537, select Object Properties, and check the 'Calls' tab to see which FCs are referenced by the block.

Can I change CFC block ranges in an active project without a CPU STOP?

Yes. Changing block range boundaries under Options -> Customize -> Compile/Download only alters the offline compiler's allocation rules. It does not affect running blocks in the controller until blocks are compiled and downloaded.

Technical References

Related Articles

Related Tags

  • CFC Block Types
  • FB537 Import Error
  • FC Range Limits
  • CEMAT Library
  • Compile Download Options
  • S7-400 Memory
6 respuestas