Understanding CFC-Generated ES_MAP and ES_IL Blocks in SIMATIC PCS 7: Chart Reference Data and Reserved Number Ranges

Understanding CFC-Generated ES_MAP and ES_IL Blocks in SIMATIC PCS 7: Chart Reference Data and Reserved Number Ranges

In SIMATIC PCS 7, blocks marked with author ES_MAP or ES_IL in the SIMATIC Manager block folder are generated automatically by the CFC compiler. These system blocks include cross-chart interconnection mappers, chart organization blocks, and driver coordination modules that translate high-level graphical CFC connections into executable S7 statement lists. Engineers can inspect these generated blocks and their chart mappings via Chart Reference Data (Plan-Referenzdaten) under Block Types. To prevent collisions with user-created function blocks, engineers configure reserved number ranges in the CFC Editor under Options -> Customize -> Compile/Download.

Table of Contents

Role of CFC Compiler Generated Blocks in SIMATIC PCS 7

Continuous Function Chart (CFC) in SIMATIC PCS 7 provides a graphical programming environment where process control engineers interconnect standard function blocks (such as APL MotL, PIDConL, or driver blocks). However, S7-400 CPUs do not natively execute graphical charts. The CFC compiler translates chart connections, runtime group sequences, and cross-chart communication into standard S7 Organization Blocks (OBs), Function Blocks (FBs), Functions (FCs), and Data Blocks (DBs).

During this compilation process, the compiler automatically generates helper blocks to manage runtime overhead, interlock mapping, and driver coordination without requiring manual intervention from the programmer.

Author Tags in SIMATIC Manager: ES_MAP and ES_IL Explained

When opening the offline block folder of an S7 program in SIMATIC Manager (View -> Details), the Author column identifies the origin of each block:

  • ES_MAP: Generated by the Engineering System Mapper. These blocks handle complex signal routing between charts, global data exchanges, and runtime group calling stubs.

  • ES_IL: Generated by the Interconnection Logic / Intermediate Language compiler. These blocks represent compiled CFC logic modules, evaluating dynamic expressions and internal chart structures.

  • DRV_MAP / GEN_MOD: Driver generator blocks created when Generate Module Drivers is selected during compilation, binding physical hardware I/O addresses to diagnostic and channel blocks (Pcs7DiIn, FbAnIn).

Viewing Compiler Blocks via Chart Reference Data (Plan-Referenzdaten)

To determine exactly which CFC chart originated a specific ES_MAP block:

  1. Open any CFC chart in the project.
  2. In the menu bar, navigate to Options -> Chart Reference Data (German: Extras -> Plan-Referenzdaten).
  3. In the Chart Reference Data window, select the Block Types view (typically the 9th icon on the toolbar or accessible via the View menu).
  4. The table displays every FB and FC in the CPU, listing its Block Number, Name, Author (ES_MAP), and the exact CFC Chart and runtime group in which it was instantiated.
  5. Double-clicking any entry navigates directly to the originating chart location.

Configuring Reserved Number Ranges for Compiler-Generated Blocks

To prevent the CFC compiler from overwriting or colliding with user-written FBs, FCs, or third-party communication packages:

  1. Open any CFC chart.
  2. Navigate to Options -> Customize -> Compile/Download....
  3. The dialog displays the number ranges allocated for compiler-generated blocks:
    - FC numbers reserved for other applications (e.g., FC 1 to FC 60 reserved for user logic).
    - DB numbers reserved for other applications.
    - Compiler range for FBs, FCs, and DBs (e.g., FC 61 to FC 1024 allocated for CFC generation).
  4. Adjust these boundaries to protect proprietary libraries or hardware communication blocks (e.g. CP 443 communication FCs AG_SEND/AG_RECV).

CFC Compiler Generated Block Types and Number Range Configuration

The following table summarizes the block classifications generated during PCS 7 chart compilation:

Compiler Author TagBlock CategoryTypical Number RangeFunction in Runtime ExecutionConfiguration LocationES_MAPFB, FC, DBUser-Defined (e.g. FC 61-1024)Inter-chart routing and runtime group executionCFC: Options -> Customize -> Compile/DownloadES_ILFC, DBUser-Defined (e.g. FC 61-1024)Intermediate language chart sequencingCFC: Options -> Customize -> Compile/DownloadDRV_MAP / GENFB, DBLibrary / Driver RangeSignal conditioning and module diagnostic linkingModule Driver Generator (during compile)User / LibraryFB, FCLower Range (e.g. FC 1-60)Custom SCL / STL logic and standard communication blocksSIMATIC Manager Symbol Table / Block FolderSFC_RINTFB, DBSFC Reserved RangeSequential Function Chart runtime coordinationSFC Editor: Options -> Customize

Best Practices for Managing Block Numbers and Avoiding Conflicts

Observe these best practices when engineering PCS 7 projects:

  • Never Manually Delete ES_MAP Blocks: Deleting compiler blocks directly from the block folder corrupts chart consistency. If clean compilation is needed, execute Compile Charts -> Entire Program with the option Generate SCL Source or Delete unused blocks.

  • Reserve Sufficient Numbers for Growth: Large multi-CPU architectures can consume hundreds of compiler-generated FCs and DBs. Ensure that S7-400 CPU work memory and block number limits (e.g. up to 8192 DBs/FCs in modern CPU 410-5H) are not restricted by narrow compiler ranges.

  • Export Chart Reference Data: Maintain an exported CSV of Chart Reference Data during major plant commissioning phases to verify block allocation across AS controllers.

Verification

Verify block allocation and compilation health through these steps:

  1. Compile Consistency Check: In SIMATIC Manager, perform Check Block Consistency (Options -> Check Block Consistency) to verify all ES_MAP calls resolve without interface mismatches.
  2. CFC Compilation Log: After compilation, inspect the CFC log window. Ensure zero errors and confirm that generated blocks fit within designated ranges.
  3. Online CPU Block Inspection: Open the online block folder of the S7-400 controller. Verify that block sizes and execution times match offline projections.
  4. Chart Reference Cross-Reference: Search for a newly added CFC signal in Chart Reference Data to ensure its ES_MAP routing entry is properly indexed.

Limitations and Operational Precautions

Keep these limitations in mind:

  • Read-Only Status: Blocks with author ES_MAP or ES_IL should never be edited manually in the LAD/FBD/STL editor. Any manual modifications will be overwritten during the subsequent CFC compilation.

  • CPU Stop Risk during Full Download: Modifying compiler number ranges in Customize -> Compile/Download changes the internal block map, requiring an Entire Program compilation and full AS download, which halts the CPU.

  • Commercial Accuracy Disclaimer: Software order numbers (MLFBs), package structures, and hardware capacity prerequisites vary across PCS 7 versions and hardware platforms. System integrators must confirm exact software entitlements and licensing requirements against the official Siemens Catalog CA 01 and obtain an authorized Siemens distributor quotation prior to purchasing.

Engineer FAQ

Can I open and view the code inside an ES_MAP block?

Yes, you can view the block in the STL/LAD editor as read-only. However, the code consists of generated intermediate pointer operations and runtime group calls, making manual debugging impractical. Always perform debugging in CFC Test Mode.

What causes compiler error 'FC number range exhausted'?

This occurs when the number of CFC-generated blocks exceeds the upper bound configured in Options -> Customize -> Compile/Download. Expand the reserved upper FC number limit to resolve the error.

Does modifying the compiler reserved range require a full AS download?

Yes. Altering the reserved block numbers forces the CFC compiler to rebuild the internal block mapping table, which requires an Entire Program compile and a full download while the CPU is in STOP.

Technical References

Related Articles

Related Tags

  • SIMATIC PCS 7
  • CFC
  • ES_MAP
  • ES_IL
  • Chart Reference Data
  • Block Types
  • Compile and Download
6 respuestas